如何使列中的数字自动换行?
这里我有tabular
一个环境内有一个环境table
(后者用于标题)。在其他地方,我使用longtabu
没有环境的 s table
,并且希望在两种情况下都换行。
\documentclass{article}
\usepackage{array}
\newlength\mylen
\setlength\mylen{2\tabcolsep}
\addtolength\mylen{\arrayrulewidth}
\begin{document}
\begin{table}
\begin{tabular}{|%
p{\dimexpr 0.08\linewidth-\mylen-\arrayrulewidth}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.06\linewidth-\mylen}|
p{\dimexpr 0.06\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|}
\hline
\textbf{h} & \textbf{a} & \textbf{b} & \textbf{c} &
\textbf{d} & \textbf{e} & \textbf{f} & \textbf{g} &
\textbf{h} & \textbf{i} & \textbf{j} & \textbf{k} \\
& & & & & & & & & & & \\
\hline
然后是实际的行:
& 2.072779 & 0.843488 & 0.877791 & 78.0 & 11.0 & 80.0
& 23.0 & 0.697509 & 0.772277 & 0.879121 & 0.003292 \\
最后:
\hline
\end{tabular}
\end{table}
\end{document}
答案1
尽管以下内容没有直接回答“如何在表格单元格中的数字内启用换行符”的问题,但基于包的以下布局landscape
可以pdflscape
作为替代方案:
\documentclass{article}
\usepackage{pdflscape}
\usepackage{booktabs}
\begin{document}
\begin{landscape}
\begin{table}
\centering
\begin{tabular}{|*{13}{c|}}
\hline
\textbf{h} & \textbf{a} & \textbf{b} & \textbf{c} &
\textbf{d} & \textbf{e} & \textbf{f} & \textbf{g} &
\textbf{h} & \textbf{i} & \textbf{j} & \textbf{k} \\
\hline
& 2.072779 & 0.843488 & 0.877791 & 78.0 & 11.0 & 80.0
& 23.0 & 0.697509 & 0.772277 & 0.879121 & 0.003292 \\
\hline
\end{tabular}
\end{table}
\end{landscape}
\begin{landscape}
\begin{table}
\centering
\begin{tabular}{*{13}{c}}
\toprule
\textbf{h} & \textbf{a} & \textbf{b} & \textbf{c} &
\textbf{d} & \textbf{e} & \textbf{f} & \textbf{g} &
\textbf{h} & \textbf{i} & \textbf{j} & \textbf{k} \\
\midrule
& 2.072779 & 0.843488 & 0.877791 & 78.0 & 11.0 & 80.0
& 23.0 & 0.697509 & 0.772277 & 0.879121 & 0.003292 \\
\bottomrule
\end{tabular}
\end{table}
\end{landscape}
\end{document}
如果您坚持允许换行,则可以使用该seqsplit
包,如以下示例所示:
\documentclass{article}
\usepackage{array}
\newlength\mylen
\setlength\mylen{2\tabcolsep}
\addtolength\mylen{\arrayrulewidth}
\usepackage{seqsplit}
\begin{document}
\begin{table}
\begin{tabular}{|%
p{\dimexpr 0.08\linewidth-\mylen-\arrayrulewidth}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.06\linewidth-\mylen}|
p{\dimexpr 0.06\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.10\linewidth-\mylen}|
p{\dimexpr 0.08\linewidth-\mylen}|}
\hline
\textbf{h} & \textbf{a} & \textbf{b} & \textbf{c} &
\textbf{d} & \textbf{e} & \textbf{f} & \textbf{g} &
\textbf{h} & \textbf{i} & \textbf{j} & \textbf{k} \\
& & & & & & & & & & & \\
\hline
& \seqsplit{2.072779} & \seqsplit{0.843488} & \seqsplit{0.877791} & \seqsplit{78.0} & \seqsplit{11.0} & \seqsplit{80.0}
& \seqsplit{23.0} & \seqsplit{0.697509} & \seqsplit{0.772277} & \seqsplit{0.879121} & \seqsplit{0.003292} \\
\hline
\end{tabular}
\end{table}
\end{document}
答案2
将数字分成几行并不是很聪明的想法,我认为最好拆分和转置表格:
(红线表示文本区域边框)
通过使用该tabularray
包及其库(调用booktabs
和siunitx
打包),MWE 是:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\begin{document}
\begin{table}
\centering
\begin{tblr}{hline{2-Y}, vlines,
colspec = {Q[c, font=\bfseries]
Q[c, si={table-format=2.6}] |
Q[c, font=\bfseries]
Q[c, si={table-format=2.6}]
},
}
\toprule
h & 2.072779 & f & 23.0 \\
a & 0.843488 & g & 0.697509 \\
b & 0.877791 & h & 0.772277 \\
c & 78.0 & i & 0.879121 \\
d & 11.0 & j & 0.003292 \\
e & 80.0 & & \\
\bottomrule
\end{tblr}
\end{table}
\end{document}
编辑:
您可以将表格拆分为多个部分,例如拆分为四个部分。在这种情况下,表格高度与将数字拆分为三行时的高度相同:
\documentclass{article}
\usepackage{tabularray}
\UseTblrLibrary{booktabs, siunitx}
\begin{document}
\begin{table}
\centering
\begin{tblr}{hline{2-Y}, vline{1-Y}=solid,
colspec = {*{4}{Q[c, font=\bfseries]
Q[c, si={table-format=2.6}] |}
},
}
\toprule
h & 2.072779 & c & 78.0 & f & 23.0 & i & 0.879121 \\
a & 0.843488 & d & 11.0 & g & 0.697509 & j & 0.003292 \\
b & 0.877791 & e & 80.0 & h & 0.772277 & & \\
\bottomrule
\end{tblr}
\end{table}
\end{document}