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



         

Пересечения линеек


Возможностей окружения {array} вполне хватает для печати простейших линованных таблиц, но в более сложных случаях возникают проблемы. Если подключить стилевой пакет {hhline}, работа с линованными таблицами облегчается.

Итак, предположим, что этот пакет подключен. Тогда для задания горизонтальных линеек становится доступной, наряду с уже известными \hline и \cline, новая команда \hhline, в аргументе которой описывается как сама линейка, так и ее пересечения с вертикальными линейками. Вот первый пример ее использования:

\begin{tabular}{|c|cc|c|} \hline А & Б & В & Г\\ \hhline{|=|~~|-|} Д & Е & Ж & З\\ \hline \end{tabular}
\begin{tabular}{|c|cc|c|} \hline А & Б & В & Г\\ \hhline{|=|~~|-|} Д & Е & Ж & З\\ \hline \end{tabular}

Аргумент команды \hhline устроен следующим образом. Во-первых, в нем сказано, что на территории первой колонки линейка должна быть двойной (символ =), на территории второй и третьей колонок линейки не должно быть вовсе (символ ~ - "тильда"), а на территории четвертой колонки линейка должна быть одинарной (символ -). Если в таблице

n
колонок, то в аргументе \hhline должны присутствовать
n
символов -, = или ~, имеющих тот же смысл, что и выше.

Между этими символами, описывающими поведение линейки внутри колонок, расположены символы, описывающие пересечения горизонтальной линейки с вертикальными. В нашем примере это были вертикальные черточки |; кроме них, для задания информации о пересечениях линеек можно использовать символы :, #, а также буквы t и b. Какие именно пересечения линеек можно получить с их помощью, видно из следующей таблицы:

\begin{center} \begin{tabular}{@{}lcccccc@{}} На печати & \TT & \TTa & \TTT, \TTTu, \TTTl & \XX &\XXa&\XXX, \XXXu, \XXXl \\ В аргументе \cs(hhline) & \ttfamily |- & \ttfamily -| & \ttfamily -|- & \ttfamily |= & \ttfamily =| & \ttfamily =|=\\[4pt] На печати & \YY & \YYa & \YYY, \YYYu, \YYYl & \LL & \LLa & \LLL\\ В аргументе \cs(hhline) & \ttfamily := & \ttfamily =: & \ttfamily =:= & \ttfamily ||- & \ttfamily -|| & \ttfamily -||- \\[4pt] На печати & \ZZ & \ZZa & \ZZZ & \UU & \UUa & \UUU, \UUUu, \UUUl\\ В аргументе \cs(hhline) & \ttfamily |:= & \ttfamily =:| &\ttfamily =::= & \ttfamily \char`\#= & \ttfamily =\char`\# & \ttfamily =\char`\#=\\[4pt] На печати & \WW & \RR & \QQ & \PP & \ZZZu & \ZZZl \\ В аргументе \cs(hhline) & \ttfamily|t:= & \ttfamily |b:= & \ttfamily =:t| & \ttfamily =:b| & \ttfamily =:t:= & \ttfamily =:b:= \end{tabular} \end{center}

Вот пример таблицы, в которой используются эти возможности команды \hhline:

\begin{tabular}{||cc||cc||} \hhline{|t:==:t:==:t|} 1 & 2 & 3 & 4\\ 5 & 6 & 7 & 8\\ \hhline{#==::==||} А & Б & В & Г\\ \hhline{||--||~~} Д & Е & Ж & З\\ \hhline{|b:==:b:==:b|} \end{tabular}
\begin{tabular}{||cc||cc||} \hhline{|t:==:t:==:t|} 1 &2 &3 &4\\5 &6 &7 &8\\ \hhline{#==::==||} А & Б & В & Г\\ \hhline{||--||~~} Д & Е & Ж & З\\ \hhline{|b:==:b:==:b|} \end{tabular}

Подчеркнем, что команда \hhline обрабатывает пересечения линеек независимо от того, какие вертикальные линейки заданы в преамбуле. Забота о том, чтобы аргумент \hhline был согласован с преамбулой, лежит на вас.




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