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



         

Лидеры


В оглавлении к этой книге (и ко многим другим тоже) место между названием раздела и номером страницы заполняется рядом из точек. Это можно сделать с помощью LaTeX'овской команда \dotfill. Она работает так же, как и \hfill, с той разницей, что пробел, образующийся в результате действия этой команды, заполняется точками:

\hbox to 3cm{А\dotfill Б}

\hbox to 3cm{А\dotfill Б}

Кроме этого, есть LaTeX'овская команда \hrulefill, которая также действует аналогично команде \hfill и при этом заполняет пробел линейкой:

\hbox to 5cm{1\hrulefill 2\hrulefill 3}

\hbox to 5cm{1\hrulefill 2\hrulefill 3}

В TeXнической терминологии такие заполнители называют лидерами (leaders).

На самом деле можно заполнить пробел не только точками или линейкой, но и любым повторяющимся текстом. Вот как это делается. Пусть мы хотим заполнить пробел повторяющимися твердыми знаками. Тогда можно написать так:

\hbox to 5cm{1\leaders \hbox{Ъ}\hfil 2}

\hbox to 5cm{1\leaders \hbox{Ъ}\hfil 2}

Если бы мы хотели, чтоб буквы Ъ шли не вплотную, можно было бы, например, вместо "Ъ" написать так:

\hbox to 2em{\hfil Ъ\hfil}

В общем случае применяйте команду \leaders так:

\leaders $\langle$ \textit{блок}$\rangle$ $\langle\mbox{\cs(hfil) \textit{или} \cs(hfill)}\rangle$

Здесь

\langle блок\rangle
- это любая TeX'овская команда для генерации блока, например, \hbox, с которой мы уже познакомились, или \vbox или \copy, о которых еще пойдет речь. Команды LaTeX'а (\mbox, \makebox, \parbox и т.п.) применять в этом контексте нельзя; если, тем не менее, хочется воспользоваться их возможностями, то их надо " спрятать" в \hbox, написав, например,

\hbox{\makebox[3em][r]{...}}

Между командой для генерации блока и командой \hfil или \hfill может быть пробел (например, конец строки). Команда \leaders работает так: выделяется столько свободного места, сколько получилось бы, если бы стояло просто \hfil или \hfill, а затем это место заполняется идущими вплотную друг к другу копиями

\langle блок\rangle
столько раз, сколько этот блок поместится по ширине на выделенное место (если ширина свободного места меньше ширины блока, то ни разу).

С помощью команды \leaders можно также изменить толщину линейки, заполняющей свободное место. Именно, команда \hrulefill является по существу сокращением от

\leaders\hrule\hfill

Если же мы скажем, например,

\leaders\hrule height 1pt \hfill

то линейка будет иметь толщину 1 пункт, вместо принятых по умолчанию 0.4 пункта. Можно также написать \hfil вместо \hfill, с очевидными последствиями.




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