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

       

Более сложные случаи


Надписи, охватывающие несколько колонок. Чтобы создать такую надпись, нужно на месте соответствующей графы таблицы записать команду \multicolumn. У этой команды три обязательных аргумента:

  1. Количество колонок, охватываемых нашей " нестандартной" графой.
  2. "Преамбула" нашей графы. В качестве таковой может выступать буква l, r или c (текст в графе был прижат влево, вправо или центрирован), возможно, с символами | слева или справа, если мы хотим, чтобы графа была ограничена вертикальными линейками.
  3. Текст, записываемый в графу.

Пример — в таблице (1)

(1)

Получается эта таблица таким образом (обратите внимание, что в строке с ценами в командах \multicolumn вертикальная черта стоит справа от c, но не стоит слева):

\begin{tabular}{|l|l|l|l|} \hline \multicolumn{4}{|c|}{\textbf{Популярные напитки}}\\ \hline Название & Старый мельник & Бочкарев & Очаковское\\ \hline Атрибут&Душевное & Правильное & Живительное\\ \hline Цена & \multicolumn{2}{c|}{15} & \multicolumn{1}{c|}{14}\\ \hline \end{tabular}

Если таблица, в которой вы используете \multicolumn, является к тому же еще и линованной, то возможностей команды \hline для рисования горизонтальных отрезков может не хватить: иногда бывает нужен горизонтальный отрезок, простирающийся не на всю ширину таблицы, а охватывающий только часть ее колонок. Для рисования таких отрезков предусмотрена команда \cline. Как и \hline, ее нужно давать сразу после \\ , но она имеет обязательный аргумент - номера первой и последней из колонок, охватываемых горизонтальной чертой, разделенные знаком "минус". Примеры использования команды \cline будут даны ниже .

Абзацы в графах таблицы. Иногда требуется, чтобы в графе таблицы стояла не строка, а абзац текста, переносы и разрывы строк в котором находятся автоматически. Чтобы этого добиться, надо в преамбуле вместо буквы l, c или r, описывающей структуру колонки, написать p{...}, где вместо многоточия должна быть указана ширина колонки (в TeX'овских единицах ).
Вот как можно представить в виде таблицы известную шутку М.М.Жванецкого:

\begin{tabular}{|p{5cm}|p{5cm}|} \hline \multicolumn{2}{|c|}{\large\textbf{Я видел раков}}\\ \hline Вчера: & Сегодня: \\ Маленькие, но по три рубля, но очень маленькие, но по три, но очень маленькие. & Большие, но по пять рублей, но большие, по пять рублей, но очень большие, но по пять.\\ \hline \end{tabular} По умолчанию абзацы в графах таблицы печатаются выровненными, но без абзацного отступа; если абзацный отступ нужен, начните абзац с установки необходимого значения параметра \parindent; если выравнивание не нужно, дайте команду \raggedright; одним словом, вы можете проделывать с этими абзацами все манипуляции, описанные в разд.3.6 .

Из этого правила есть одно важное исключение: для принудительного разрыва строки в абзацах, являющихся графами таблицы, вместо команды \\ надо использовать команду \tabularnewline (команда \\ в окружениях {tabular} и {array} означает "перейти к новой строке таблицы").

Что такое колонка? При работе с линованными таблицами возникает вопрос, как LaTeX понимает слова "одна колонка"? Пусть, например, преамбула таблицы имеет вид ||c|ll||r|l|l, и мы в одной из строк написали, скажем,

Что-то&\multicolumn{1}{r}{Что-то еще}&&&И еще&Еще\\" Напечатается ли в этой графе вертикальный отрезок между первой и второй колонками? Другой пример: пусть в таблице с той же преамбулой какая-то из строк имеет вид

Слово & Еще слово & Еще одно\\ (стало быть, заканчивается эта строка преждевременно); сколько вертикальных отрезков будет напечатано в конце этой строки? Ответ таков. Преамбула делится на части, соответствующие колонкам. Если в преамбуле присутствуют только буквы l, c, r или p, то каждая такая часть — это просто соответствующая буква (p — вместе с выражением после нее:p{...}). Если же, кроме этого, в преамбуле присутствуют вертикальные черточки между буквами или так называемые at-выражения (о них речь пойдет ниже), разделение преамбулы на колонки происходит по таким правилам:



  • в каждой из колонок присутствует одна и только одна из букв l, c, r или p (последняя — вместе с выражением "{...}");
  • каждая колонка, кроме, возможно, первой, начинается с буквы.
В нашем примере, в частности, колонки устроены так:

Поэтому в конце графы таблицы с такой преамбулой, оборванной после третьей колонки, будут напечатаны два вертикальных отрезка, поскольку они принадлежат третьей колонке. А если на месте второй графы такой таблицы написано "Что-то&\multicolumn{1}{r}{Что-то еще}", то вертикальный отрезок между первой и второй колонками также будет напечатан: этот отрезок является принадлежностью первой колонки, и команда \multicolumn, меняющая оформление второй колонки, отменить его не может.


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