2010-05-24 3 views
48

Я пытаюсь написать короткую бумагу с помощью LaTeX и добавить таблицу с тремя столбцами.Как скопировать таблицы с многострочными ячейками

+-------------+-----------------+--------------------------------------+ 
| AAAAAAAAAA | BBBBBBBBBBBBBBB | Betty Botter Bought a Bit of Butter | 
|    |     | but the Butter's 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's 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

Duplicate question: http://stackoverflow.com/questions/2687033/multiple-lines-in-a-cell-of-a-table (этот вопрос является немного более общим по охвату). –

ответ

66

Используйте дескриптор 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} 
+5

Можно ли каким-либо образом объединить p {} с одним из других дескрипторов столбцов?Смысл, способ сказать, что столбец p {5cm} должен быть слева, справа или по центру? – jja

+0

@jja как обход для выравнивания справа внутри p {}, я использую \ hfill в начале каждой строки. – Frizi

2

Это Я нашел до сих пор для своих нужд: Link here.

Он создает новую команду, которая будет делать таблицу внутри таблицы в более правильном пути:

\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 @ до л @ или г @

все заслуга egreg из Tex forum

0

Вот ответ, не фантазии кодирования. Напишите свои строки в отдельных строках. Опустите \ 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} 

Я надеюсь, что это поможет.

Смежные вопросы