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

Более сложные средства


Интервалы и разрыв между строками. Команда \\ внутри окружения {tabbing} может иметь необязательный аргумент, действующий формально так же, как для этой команды, употребляемой внутри абзаца: если в квадратных скобках поставить длину (измеренную в воспринимаемых TeX'ом единицах, или же какой-либо LaTeX'овский параметр, значением которого является длина, например, \medskipamount), то после этой строки будет сделан дополнительный интервал, величина которого равна указанной длине. Имеет команда \\ и "вариант со звездочкой", если написать \\* вместо \\, то после строки, завершаемой этой командой, начинать новую страницу будет запрещено. Команда \\* также может принимать необязательный аргумент. Он имеет тот же смысл, что и для соответствующей команды без звездочки.

Переустановка позиций табуляции. Команды \=, устанавливающие позиции табуляции, можно давать не только в первой строке. Сначала пример:

\begin{tabbing} парочка \=позиций \=табуляции\\ \>плюс\>еще одна здесь:\=\\ теперь\>их\> уже\>три\\ Вторую \>мы\quad \=сменим \> и посмотрим:\\ где\>эти\> позиции\>теперь\\ \end{tabbing}

Опишем точно, как команда \= взаимодействует с \>. Внутри окружения {tabbing} в каждый момент LaTeX'у известно некоторое количество позиций табуляции, занумерованных подряд, от нуля до какого-то целого числа (не более двенадцати). При входе в окружение известна только позиция с номером нуль (это всегда начало строки). Увеличиваться число известных позиций может за счет команды \=, используются позиции табуляции командой \>. Если команда \= встречается в строке после того, как использованы все известные позиции табуляции, то количество известных позиций табуляции увеличивается на 1 и очередная позиция табуляции устанавливается в месте, куда попала команда \=. Если же \= встречается в строке до того, как все известные позиции табуляции израсходованы, то новых известных позиций не прибавляется, просто очередная по счету позиция табуляции заменяется на ту, которую задает команда \=.


Иногда бывает необходимо в пределах одной и той же таблицы временно перейти на новое расположение позиций табуляции, а затем вернуться к прежнему. Для этого используются команды \pushtabs и \poptabs. Первая из них запоминает расположение позиций табуляции; после этой команды можно позиции переустановить, пользоваться этими новыми переустановленными позициями... — после команды \poptabs значения старых позиций табуляции будут восстановлены. Пример:

\begin{tabbing} раз\quad\=два\quad\=три\quad\=четыре\\ \pushtabs гиппопотам\quad\=аллигатор\\ раз\>два\\ три\>четыре\\ \poptabs one\>two\>three\>four\\ viens\>divi\>tr\a=\i s\>\v{c}etri\\ \end{tabbing} Команды \pushtabs и \poptabs должны быть "сбалансированы": каждой команде \pushtabs, запоминающей позиции табуляции, должна соответствовать вспоминающая их команда \poptabs. Если это условие не выполнено, вы получите сообщение об ошибке. Обратите также внимание, что знак долготы над буквой i в слове tris ("три" по-латышски) мы поставили с помощью команды \a. \looseness 1

Экзотика. Для полноты картины опишем некоторые изысканные возможности окружения {tabbing}.

Команда \'(внутри окружения {tabbing}) размещает текст таким образом, чтобы он не начинался, а заканчивался у позиции табуляции. Сама эта команда позиций табуляции "не тратит"; просто весь текст, размещенный между \> или \= и \', размещается левее позиции табуляции, определяемой командой \> или \=. Таким способом можно верстать таблицы, в которых колонки выровнены по правому краю, а не по левому, как получается при обычном использовании {tabbing}. Вот пример:

\begin{tabbing} \hspace{3.5cm}\=\kill слева\>справа\'\\ \a`a gauche\>\a`a droite\'\\ links\>rechts\'\\ pa kreisi\>pa labi\' \end{tabbing} Еще раз обратите внимание, что для постановки диакритического знака над буквой a нам пришлось писать "\a`" вместо \` .

Команда \` внутри окружения {tabbing} прижимает весь текст строки, идущий после нее, к правому краю; между этой командой и командой, завершающей строку, не должно быть команд, использующих или устанавливающих позиции табуляции.


Например, таблицу, у которой первая колонка выровнена по левому краю, а вторая — по правому (как в предыдущем примере), можно было бы задать так:

\begin{tabbing} слева\`справа\\ \a`a gauche\`\a`a droite\\ links\`rechts\\ pa kreisi\`pa labi\\ \end{tabbing} Кстати, здесь нам вообще не понадобилось устанавливать позиции табуляции. Впрочем, смотрится эта таблица неважно.

Как мы уже отмечали, при начале новой строки текст начинается с нулевой позиции табуляции, т. е. с начала строки. Команда \+ позволяет изменить такое положение вещей: после этой команды при начале каждой новой строки текст будет начинаться не с нулевой, а с первой позиции табуляции (как если бы каждая последующая строка начиналась с команды \>). Если дать еще одну команду \+, то текст в последующих строках будет начинаться уже и не с первой, а со второй позиции, и т. д. Команда \- в окружении {tabbing} внутри окружения {tabbing} означает вовсе не место, где можно перенести слово (впрочем, команда с таким действием в этом окружении и не нужна): она действует противоположно команде \+. Наконец, команда \<, будучи употребленной в начале строки (в других местах ее употреблять нельзя), действует аналогично \-, но в пределах только этой строки (а не всех последующих, как \+ и \-). Следующий пример иллюстрирует все эти изыски:

\begin{tabbing} раз \=два \=три \=\kill раз\>два\>три\>четыре\+\\ два\+\\ три\+\\ четыре\\ \<три\\ четыре\-\-\\ два\-\\ раз\>два\>три\>четыре\\ \end{tabbing} Описанные в этом разделе возможности окружения {tabbing} на практике используются редко, поскольку для печати сложных таблиц в LaTeX'е есть более удобное средство — окружение {tabular}. Перейдем к его описанию.


Содержание раздела