суббота, 21 сентября 2013 г.

Текст, выходящий за нижнюю границу multirow

Очень похоже, что в общем случае в latex нельзя нормально работать с multirow.
Простой пример:

\begin{tabular}{|c|c|}
\hline
1 & \multirow{2}{2cm}{очень очень очень длинный текст} \\
\cline{1-1}
2 &  \\
\hline
\end{tabular}




Я так и не нашёл адекватного способа решения этой проблемы.

Один из предлагаемых способов - вообще не использовать multirow:

\begin{tabular}{|c|p{2cm}|}
\hline
1 & Очень длинный текст \\
\cline{1-1}
2 &  \\
\hline
\end{tabular}


По очевидным причинам такой способ не подходит.

Можно гарантировать минимальную высоту ячейки при помощи команды \rule:

\newlength{\rowDepth}
\setlength{\rowDepth}{0.9cm}
\newcommand{\rowStrut}{\rule[-0.45\rowDepth]{0pt}{\rowDepth}}

\begin{tabular}{|c|c|}
\hline
1 & \multirow{2}[4]{2cm}{очень очень очень длинный текст} \rowStrut \\
\cline{1-1}
2 &  \rowStrut \\
\hline
\end{tabular}


Визуально это именно то что нам нужно. Проблема только в том, что для каждого конкретного случая придётся подгонять свои размеры.

Последний способ взят из весьма занятной книги "LATEX Table Hints and Tips" - Adrian P. Robson.

Комментариев нет:

Отправить комментарий