Опубликован: 07.02.2007 | Доступ: свободный | Студентов: 4014 / 1341 | Оценка: 4.56 / 3.95 | Длительность: 23:09:00
Специальности: Художник
Лекция 6:

Печать текста с выравниванием

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

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

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

\begin{tabbing}
парочка \=позиций
\=табуляции\\
\>плюс\>еще
одна здесь:\=\\
теперь\>их\>
уже\>три\\
Вторую \>мы\quad
\=сменим \>
и посмотрим:\\
где\>эти\>
позиции\>теперь\\
\end{tabbing}
\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}
\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}
\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}
\begin{tabbing}
слева\`справа\\
\a`a gauche\`\a`a droite\\
links\`rechts\\
pa kreisi\`pa labi\\
\end{tabbing}

Кстати, здесь нам вообще не понадобилось устанавливать позиции табуляции. Впрочем, смотрится эта таблица неважно.

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

\begin{tabbing}
раз \=два \=три \=\kill
раз\>два\>три\>четыре\+\\
два\+\\ три\+\\ четыре\\
\<три\\ четыре\-\-\\
два\-\\
раз\>два\>три\>четыре\\
\end{tabbing}
\begin{tabbing}
раз \=два \=три \=\kill
раз\>два\>три\>четыре\+\\
два\+\\ три\+\\ четыре\\
\<три\\ четыре\-\-\\
два\-\\
раз\>два\>три\>четыре\\
\end{tabbing}

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

Нина Казачек
Нина Казачек
Василий Майоров
Василий Майоров