Как скопировать таблицы с многострочными ячейками
Я пытаюсь написать короткую статью с LaTeX и добавить таблицу с тремя столбцами.
+-------------+-----------------+--------------------------------------+
| AAAAAAAAAA | BBBBBBBBBBBBBBB | Betty Botter Bought a Bit of Butter |
| | | but the Butter Bitter |
+-------------+-----------------+--------------------------------------+
| CCCCCCCC | DDDD | Betty Botter Thought: |
| | | If I Put This Bitter Butter in My |
| | | Batter it Will Make My Batter Bitter |
+-------------+-----------------+--------------------------------------+
К сожалению, я не могу найти правильную идиому, чтобы сделать это.
Я пробовал:
\begin{tabular}{lll}
AAAAAAAAAA & BBBBBBBBBBBBBBB & Betty Botter Bought a Bit of Butter but
the Butter Bitter \\
CCCCCCCC & DDDD & Betty Botter Thought: \newline If I Put This Bitter Butter in My Batter it Will Make My Batter Bitter
\end{tabular}
Но LaTeX не делает никаких строк или форматирования внутри ячейки. Я предполагаю, что мне нужно сказать это, чтобы сделать это.. Но как?
Ответы
Ответ 1
Используйте дескриптор столбца p
:
Изменить
\begin{tabular}{lll}
к
\begin{tabular}{llp{5cm}}
Чтобы явно вставить разрывы строк:
CCCCCCCC & DDDD & \parbox{5cm}{Betty Botter Thought: \\ If I Put This Bitter Butter in My Batter it Will Make My Batter Bitter}
Ответ 2
Это я нашел до сих пор для своих нужд: Ссылка здесь.
Создает новую команду, которая сделает таблицу внутри таблицы более подходящей:
\newcommand{\specialcell}[2][c]{%
\begin{tabular}[#1]{@{}[email protected]{}}#2\end{tabular}}
Итак, если вы хотите сделать принудительный разрыв строки внутри ячейки, как здесь:
\begin{tabular}{|c|c|c|}
\hline
Foo bar & Foo <forced line break here> bar & Foo bar \\
\hline
\end{tabular}
В итоге вы получите такой код:
Foo bar & \specialcell{Foo\\bar} & Foo bar \\ % vertically centered
Foo bar & \specialcell[t]{Foo\\bar} & Foo bar \\ % aligned with top rule
Foo bar & \specialcell[b]{Foo\\bar} & Foo bar \\ % aligned with bottom rule
Горизонтальное выравнивание можно контролировать в объявлении новой команды, изменяя c @ на l @или r @
Все кредиты идут на egreg из форума Tex
Ответ 3
Вот ответ без фантазийного кодирования. Напишите свои строки в отдельных строках. Опустите \hline для всех, кроме последней строки (строки). Он быстрый и грязный, но, эй, он работает и дает мне именно то, что я хочу, для простых таблиц. Я делал рекламу, чтобы ездить на автомобильных ветровых стеклах. У меня есть 3 центрированных строки в каждой ячейке
iTutor Grahamstown
Mathematics Tutor
0793296211
Я хотел повторить это в своей таблице. Я просто оставил \hline для первых двух строк. Множество \hlines и '|' чтобы облегчить распечатку распечатки.
\begin{tabular}{||c||c||c||c||}
\hline\hline
iTutor Grahamstown &iTutor Grahamstown&iTutor Grahamstown &iTutor Grahamstown \\ %No \hline
Mathematics Tutor & Mathematics Tutor & Mathematics Tutor&Mathematics Tutor \\ %No \hline
0793296211 & 0793296211 & 0793296211 & 0793296211\\ \hline\hline\hline %\hline now
\end{tabular}
Я надеюсь, что это поможет.