czwartek, 4 czerwca 2009

LaTeX, tabele i \tabularnewline

Prosta tabela składająca się z dwóch kolumn, ale zawierająca wielowierszowe rubryki. Rubryki mają być składane ,,w chorągiewkę''. Zatem dodaję pakiet array i definiuję za pomocą \newcolumntype:


\usepackage{array}
\newcolumntype{L}{>{\raggedright\hspace{0pt}}p{.48\textwidth}}
\begin{document}

\begin{tabular*}{\textwidth}{@{\extracolsep{\stretch{1}}}LL}\hline
coś tam coś tam coś & coś tam coś tam coś \\
\end{tabular*}

Nie działa a przyczyna jest subtelna. Otóż \raggedright m.in. definiuje polecenie \\, które kończy wiersz. Wewnątrz tabular też jest zdefiniowane \\, które kończy wiersz tyle, że tabeli -- a to co innego. Na okoliczność tego konfliktu wymyślono polecenie \tabularnewline. Należy zamiast \\ na końcu wiersza tabeli wstawiać \tabularnewline i będzie git! Do dziś nie potrzebowałem \tabularnewline więc nawet nie wiedziałem, ze takie coś istnieje. Zamiast \tabularnewline można -- dołączając pakiet ragged2e -- wstawić ,,bezpieczną wersję'' \raggedright, czyli \RaggedRight.

Brak komentarzy:

Prześlij komentarz