如何溢出/自动换行表格列中的数字?

如何溢出/自动换行表格列中的数字?

如何使列中的数字自动换行?

溢出

这里我有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包及其库(调用booktabssiunitx打包),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}

在此处输入图片描述

相关内容