我在表格中有一些文本,我想添加强制换行符。我想插入强制换行符而不必指定列宽,即以下内容:
\begin{tabular}{|c|c|c|}
\hline
Foo bar & Foo <forced line break here> bar & Foo bar \\
\hline
\end{tabular}
我知道\\
在大多数情况下都会插入一个换行符,但在这里它会开始一个新的表格行。
之前有人问过类似的问题:如何在表格中换行
答案1
使用makecell
包。此包提供用于格式化单元格的命令,包括\thead
(用于标题单元格)和\makecell
(用于常规单元格)。例如,要创建包含换行符的单元格:
\makecell{Some really \\ longer text}
此外,水平和垂直对齐方式可以独立于它们所在表的对齐方式进行选择。默认值为cc
,但你可以在序言中使用以下命令全局更改它
\renewcommand{\cellalign}{vh}
\renewcommand{\theadalign}{vh}
其中v
是t
、c
或之一,b
并且、或h
之一。或者,对于单个单元格,您可以使用或命令和可选参数。l
c
r
\makecell
\thead
[vh]
演示:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{fourier}
\usepackage{array}
\usepackage{makecell}
\renewcommand\theadalign{bc}
\renewcommand\theadfont{\bfseries}
\renewcommand\theadgape{\Gape[4pt]}
\renewcommand\cellgape{\Gape[4pt]}
\begin{document}
\begin{center}
\begin{tabular}{ | c | c | c |}
\hline
\thead{A Head} & \thead{A Second \\ Head} & \thead{A Third \\ Head} \\
\hline
Some text & \makecell{Some really \\ longer text} & Text text text \\
\hline
\end{tabular}
\end{center}
\end{document}
答案2
这是一个相当老的问题,但我还是会添加我的答案,因为我建议的方法没有出现在其他方法中
\begin{tabular}{|c|c|c|}
\hline
Foo bar & \begin{tabular}[x]{@{}c@{}}Foo\\bar\end{tabular} & Foo bar \\
\hline
\end{tabular}
其中x
是t
、c
或 ,b
以强制所需的垂直对齐。
如果在多个地方都需要这样做,最好定义一个命令
\newcommand{\specialcell}[2][c]{%
\begin{tabular}[#1]{@{}c@{}}#2\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
可能存在更多变化,比如还指定特殊单元格中的水平对齐。
注意@{}
抑制单元格文本前后添加的空间。
答案3
您可以将单元格布局切换为段落以使用该\newline
命令。
\begin{tabular}{|p{2cm}|p{2cm}|}
\hline
Test & foo \newline bar \\
...
编辑:
p
如果您还想指定对齐方式,请使用以下命令:
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
答案4
使用tabularx
环境而不是tabular
,然后\newline
在单元格内需要换行的位置使用。
\usepackage{tabularx}
\begin{tabularx}{\textwidth}{lX}
Section: & This is my \newline
long paragraph \\
\end{tabularx}
除了常见的列类型外,环境还具有一种特殊的列类型,其第一个参数是表格的所需宽度。该列tabularx
将具有必要的宽度,以使整个表格达到所需的宽度。X
X
笔记:\newline
在标准类型的列中不会生效。
详情tabularx
可参阅这里。