Печать текста с выравниванием
Более сложные средства
Интервалы и разрыв между строками. Команда \\ внутри окружения {tabbing} может иметь необязательный аргумент, действующий формально так же, как для этой команды, употребляемой внутри абзаца: если в квадратных скобках поставить длину (измеренную в воспринимаемых TeX'ом единицах, или же какой-либо LaTeX'овский параметр, значением которого является длина, например, \medskipamount ), то после этой строки будет сделан дополнительный интервал, величина которого равна указанной длине. Имеет команда \\ и "вариант со звездочкой", если написать \\* вместо \\, то после строки, завершаемой этой командой, начинать новую страницу будет запрещено. Команда \\* также может принимать необязательный аргумент. Он имеет тот же смысл, что и для соответствующей команды без звездочки.
Переустановка позиций табуляции. Команды \=, устанавливающие позиции табуляции, можно давать не только в первой строке. Сначала пример:
![\begin{tabbing}
парочка \=позиций
\=табуляции\\
\>плюс\>еще
одна здесь:\=\\
теперь\>их\>
уже\>три\\
Вторую \>мы\quad
\=сменим \>
и посмотрим:\\
где\>эти\>
позиции\>теперь\\
\end{tabbing}](/sites/default/files/tex_cache/18c6e11c5dceaa1f3930f19709e88ac0.png)
\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}](/sites/default/files/tex_cache/c30cd7ef9f6e545dc0dc11f540566dd4.png)
\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}](/sites/default/files/tex_cache/a4cccab44c50c38a6c5091b9c242269b.png)
\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}](/sites/default/files/tex_cache/cf0d45cdc7da15e4dffd4fbb2dfdf71d.png)
\begin{tabbing} слева\`справа\\ \a`a gauche\`\a`a droite\\ links\`rechts\\ pa kreisi\`pa labi\\ \end{tabbing}
Кстати, здесь нам вообще не понадобилось устанавливать позиции табуляции. Впрочем, смотрится эта таблица неважно.
Как мы уже отмечали, при начале новой строки текст начинается с нулевой позиции табуляции, т. е. с начала строки. Команда \+ позволяет изменить такое положение вещей: после этой команды при начале каждой новой строки текст будет начинаться не с нулевой, а с первой позиции табуляции (как если бы каждая последующая строка начиналась с команды \> ). Если дать еще одну команду \+, то текст в последующих строках будет начинаться уже и не с первой, а со второй позиции, и т. д. Команда \- в окружении {tabbing} внутри окружения {tabbing} означает вовсе не место, где можно перенести слово (впрочем, команда с таким действием в этом окружении и не нужна): она действует противоположно команде \+. Наконец, команда \<, будучи употребленной в начале строки (в других местах ее употреблять нельзя), действует аналогично \-, но в пределах только этой строки (а не всех последующих, как \+ и \- ). Следующий пример иллюстрирует все эти изыски:
![\begin{tabbing}
раз \=два \=три \=\kill
раз\>два\>три\>четыре\+\\
два\+\\ три\+\\ четыре\\
\<три\\ четыре\-\-\\
два\-\\
раз\>два\>три\>четыре\\
\end{tabbing}](/sites/default/files/tex_cache/147dc818f335cee0e41266414bb5cc06.png)
\begin{tabbing} раз \=два \=три \=\kill раз\>два\>три\>четыре\+\\ два\+\\ три\+\\ четыре\\ \<три\\ четыре\-\-\\ два\-\\ раз\>два\>три\>четыре\\ \end{tabbing}
Описанные в этом разделе возможности окружения {tabbing} на практике используются редко, поскольку для печати сложных таблиц в LaTeX'е есть более удобное средство — окружение {tabular}. Перейдем к его описанию.