четверг, 7 апреля 2011 г.

LongTable and Caption

Все мы знаем, что несчастный ГОСТ требует оформление таблиц по виду:

Обычно используя всем хорошо известный файл dissert.cls можно добиться такого результата в таблицах обычного типа. Но что делать, когда нужна длинная таблица на несколько страниц? Искользуя пакет logntable мы обретаем счастье только по одному признаку - длинная таблица. Caption в этом случае абсолютно стандартный.

Пришло время в этом разобраться. Проблема в том, что caption для стилевого файла longtable собственный и задаётся он собственным макаром.

Для того, чтобы сделать его такого вида, как было указано ранее вам необходимо:
  1. Найти файл longtable.sty, который лежит в /usr/share/texmf-texlive/tex/latex/tools
  2. Скопировать его в папку с компилируемым теховским файлом.
  3. Открыть его
Далее исполняем мои нехитрые инструкции, а именно:
  1. Находим поиском в каше файла строки
    \def\LT@makecaption#1#2#3{%
    \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
    \sbox\@tempboxa{#1{#2: }#3}%
    \ifdim\wd\@tempboxa>\hsize
    #1{#2: }#3%
    \else
    \hbox to\hsize{\hfil\box\@tempboxa\hfil}%
    \fi
    \endgraf\vskip\baselineskip}%
    \hss}}}

  2. Заменяем всю эту лабуду на следующее:
    \def\LT@makecaption#1#2#3{%
    \LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
    \sbox\@tempboxa{#1{#2: }#3}%
    \hfill \normalfont #1#2 \par \centering #3 \par
    \endgraf\vskip\belowcaptionskip}%
    \hss}}}
  3. Далее отыскиваем переменную \LTcapwidth в начале файла и присваиваем ей вместо стандартной лабуды: \LTcapwidth=\textwidth
  4. Сохраняем файл и радуемся при компиляции!
Вот так всё просто!

LaTex, функции и диплом

Наверное каждый в своей жизни оформлял титульную страницу к какой-нибудь работе.
Обычно все занимаются копипастоп (и это правильно), но как сделать грамотный копипаст в Latex? А очень просто и сегодня я расскажу вам об этом на примере моего диплома!

Набив любой титульник мы получим вполне заурядный слив. Далее нам необходимо сделать ход конём, а именно - создать место для росписи. Обычно это никто не делает и именно поэтому у нас это должно выглядеть круто!
Для этого создадим функцию (да, да, ламеры, в LaTeX есть функции!) и вставим её до фразы \begin{document}:
\newcommand{\podpis}[2]{%
#1%
\hfill\hfill\parbox{0.25\textwidth}{\center%
/\hrulefill / \\[-0.005\textheight]\footnotesize%
(подпись, дата)%
}\hfill\parbox{0.3\textwidth}{\center /\underline{%
#2%
}/ \\[-0.005\textheight]\footnotesize%
(расшифровка подписи)%
}}

А теперь коротко о том зачем и как. Функция состоит из:
\создание_новой_команды{\как_её_вызывать}[соклько_параметров_давать]{%
тело функции в котором и должны присутствовать наши параметры обозначенные переменными как #1, #1
}

Таким образом если написать заветную функцию \podpis и скормить ей два параметра:
\podpis{Начальник}{Василий Пупкин}

То на выходе мы получим всю красоту!