63

我正在尝试用 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

4 回答 4

85

使用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}
于 2010-05-24T08:53:12.847 回答
10

这是我到目前为止找到的满足我需求的答案:链接在这里

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

\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@来控制水平对齐

所有的功劳都来自Tex论坛。点赞他的回答!

于 2016-01-05T03:16:24.563 回答
2

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

\begin{tabular}{lll}

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

\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}

产生请求的输出:

输出截图

于 2019-02-08T18:18:53.877 回答
-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}  

我希望这个对你有用。

于 2017-04-15T09:08:24.737 回答