Работа в системе LaTeX



         

Оформление подрисуночной подписи


Обсудим, как можно менять оформление подписи под рисунком (или таблицей), создаваемой командой \caption).

Над и под подписью предусмотрены вертикальные отбивки. Их размеры хранятся в параметрах со значением длины (растяжимой) \abovecaptionskip (отбивка над подписью) и \belowcaptionskip (под подписью). В стандарте отбивка над подписью равна 10pt (без растяжимости или сжимаемости), а под подписью — нулю.

Чтобы изменить само оформление подписи, надо переопределить команду \@makecaption; вот ее стандартное определение в адаптированном виде (параметр #1 — номер иллюстрации или таблицы с подписью, то есть значение команды \thefigure или \thetable; параметр #2 — текст подписи):

\newcommand{\@makecaption}[2]{% \vspace{\abovecaptionskip}% \sbox{\@tempboxa}{#1: #2} \ifdim \wd\@tempboxa >\hsize #1: #2\par \else \global\@minipagefalse \hbox to \hsize {\hfil #1: #2\hfil}% \fi \vspace{\belowcaptionskip}}

Разберем этот код. Во второй и последней строчках вокруг подписи делаются отбивки, как было объяснено выше. В третьей строке в блоковую переменную \@tempboxa (эта переменная используется LaTeX'ом для временного хранения данных такого рода) записывается текст подписи вместе с номером (пока что в одну строку; поскольку в данный момент этот текст еще не печатается, нас не волнует, не окажется ли он длинней, чем ширина полосы). В следующих шести строках (с помошью не рассматривавшейся нами TeX'овской конструкции "условных макросов") длина подписи с номером сравнивается с шириной текста (она обозначена \tex'овским параметром \hsize: при одноколонном наборе это то же самое, что \textwidth), а при многоколонном — \columnwidth). Если подпись вместе с номером длиннее строки, то она печатается как абзац (часть кода между \ifdim) и \else), а если не длиннее, то центрируется (часть кода между \else и \fi). Код на седьмой строке воспринимайте как данность.

Что можно изменить в этом определении? Поскольку #1 — это номер, а #2 — текст подписи, нетрудно заметить, что номер отделяется от подписи двоеточием, что с отечественными полиграфическими традициями не согласуется.


Содержание  Назад  Вперед