如何使用多行单元格对表进行编码

时间:2010-05-24 08:48:56

标签: latex tabular

我正在尝试用LaTeX写一篇简短的论文,需要添加一个包含3列的表。

+-------------+-----------------+--------------------------------------+
| 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不会在单元格中进行任何换行或格式化。我想我需要告诉它这样做..但是怎么样?

4 个答案:

答案 0 :(得分:73)

使用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}

答案 1 :(得分:5)

这是我到目前为止根据我的需求找到的答案:Link here

它创建了一个新命令,它将以更恰当的方式在表中创建表:

\newcommand{\specialcell}[2][c]{%
\begin{tabular}[#1]{@{}c@{}}#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 forum

答案 2 :(得分:0)

正如@aioobe在他的回答中所写,在这种情况下,可以从左对齐切换到

\begin{tabular}{lll}

paragraph 对齐,至少在第三行中必须手动插入自定义换行符:

\begin{tabular}{llp{.5\textwidth}}

进行此编辑后,可以使用命令\par(而不是\newline)在单元格内实现换行。

此代码:

\documentclass{article}

\begin{document}

\begin{tabular}{llp{.5\textwidth}}
AAAAAAAAAA & BBBBBBBBBBBBBBB & Betty Botter Bought a Bit of Butter \par but the Butter's Bitter\\
CCCCCCCC & DDDD & Betty Botter Thought: \par If I Put This Bitter Butter in My \par Batter it Will Make My Batter Bitter\\
\end{tabular}

\end{document}

产生请求的输出:

screenshot of output

答案 3 :(得分:-1)

这是一个没有花哨的编码的答案。将行写在单独的行中。除了最后一行(线)之外,除了最后一行(线)之外,除了\ 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}  

我希望这会有所帮助。