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

问题描述 投票:55回答:4

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

latex tabular
4个回答
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}

6
投票

这是我到目前为止为我的需求找到的答案: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 @,可以在新命令的声明中控制水平对齐

所有的功劳都来自egregTex forum


0
投票

正如@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}

产生请求的输出:

screenshot of output


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

我希望这个对你有用。

© www.soinside.com 2019 - 2024. All rights reserved.