Как обернуть текст в таблицы LaTeX?



Я создаю отчет в LaTeX, который включает в себя несколько таблиц. Я застрял на этом, поскольку мои данные ячейки в таблице превышают ширину страницы. Могу ли я каким-то образом обернуть текст так, чтобы он попал в следующую строку в той же ячейке таблицы?



Это как-то связано с шириной стола? Но поскольку он превышает ширину страницы, это не будет иметь значения, не так ли?

814   6  

6 ответов:

используйте P{width} для спецификаторов столбцов вместо l/r / c.

\begin{tabular}{|p{1cm}|p{3cm}|}
  This text will be wrapped & Some more text \
\end{tabular}

обычной tabular среда, Вы хотите использовать p{width} тип столбца, как marcog указывает. Но это заставляет вас давать явные ширины.

другое решение-это tabularx среда:

\usepackage{tabularx}
...
\begin{tabularx}{\linewidth}{ r X }
    right-aligned foo & long long line of blah blah that will wrap when the table fills the column width\
\end{tabularx}

все столбцы X имеют одинаковую ширину. Вы можете повлиять на это, установив \hsize в объявлении формата:

>{\setlength\hsize{.5\hsize}} X >{\setlength\hsize{1.5\hsize}} X

но тогда все факторы должны суммироваться до 1, я полагаю (я взял это из LaTeX companion). Также пакет tabulary что отрегулирует ширины столбца для того чтобы сбалансировать высоты строки. Для получения подробной информации, вы можете получить документацию для каждого пакета с texdoc tabulary (в TeXlive).

другой вариант-вставить мини-страницу в каждую ячейку, где требуется перенос текста, например:

\begin{table}[H]
\begin{tabular}{l}
\begin{minipage}[t]{0.8\columnwidth}%
a very long line a very long line a very long line a very long line
a very long line a very long line a very long line a very long line
a very long line a very long line a very long line %
\end{minipage}\tabularnewline
\end{tabular}
\end{table}

мне нравится простота tabulary пакет:

\usepackage{tabulary}
...
\begin{tabulary}{\linewidth}{LCL}
    \hline
    Short sentences      & \#  & Long sentences                                                 \
    \hline
    This is short.       & 173 & This is much loooooooonger, because there are many more words.  \
    This is not shorter. & 317 & This is still loooooooonger, because there are many more words. \
    \hline
\end{tabulary} 

в примере вы упорядочиваете всю ширину таблицы относительно \textwidth. Например, 0,4 из них. Затем все остальное автоматически делается пакетом.

большая часть примера взята из http://en.wikibooks.org/wiki/LaTeX/Tables .

если вы хотите обернуть текст, но сохранить выравнивание, то вы можете обернуть эту ячейку в minipage или varwidth среда (varwidth происходит из пакета varwidth). Varwidth будет "таким же широким, как его содержимое, но не шире X". Вы можете создать пользовательский тип столбца, который действует как "p{xx}", но сжимается, чтобы соответствовать с помощью

\newcolumntype{M}[1]{>{\begin{varwidth}[t]{#1}}l<{\end{varwidth}}}

что может потребовать . Затем, когда вы используете что-то вроде \begin{tabular}{llM{2in}} первые две колонки у нас нормальные левосторонние и третья столбец будет нормально выровнен по левому краю, но если он станет шире, чем 2 дюйма, то текст будет завернут.

\begin{table}
 \caption{ Example of force text wrap}
 \begin{center}
  \begin{tabular}{|c|c|}
   \hline
   cell 1       &   cell 2 \   \hline
   cell 3                &       cell 4 & & very big line that needs to be wrap. \ \hline
   cell 5       &   cell 6 \   \hline
  \end{tabular}
  \label{table:example}
 \end{center}
\end{table}

Comments

    Ничего не найдено.