创建水平表的正确方法是什么?

创建水平表的正确方法是什么?

我想要一个水平表,如下所示:

水平表

但是,当使用通常的方法创建表时,预先定义列数很快就会变得很麻烦(特别是因为我想使用数据工具生成它们):

\begin{tabular}{ | l | l | l | l | l | l | l | l | l | l | l | l | l | l | }

我也希望它是多行的。 有更好的方法吗?

答案1

如果你指定的列数多于你使用的列数,并不会发生太糟糕的事情,所以如果你使用

 {|*{50}{l|}}

并且没有一行超过 3 个条目,LaTeX 不使用额外的 col 规范,只是创建一个 3 列表格。

答案2

(La)TeXtabular不需要预定义行数。但是,对于列,这在常规设置中是必需的。您可以使用规范来组合类似的列规范*{<num>}{<col spec>}。这将重复<col spec>多次<num>。因此,定义

\begin{tabular}{ | *{14}{l|} }

相当于

\begin{tabular}{ | l | l | l | l | l | l | l | l | l | l | l | l | l | l | }

并且在代码可读性方面要好得多。

答案3

我不知道我是否完全理解你所说的“必须预先定义行数”的意思(你的意思是写?)。例如,只要您知道表格应该包含左对齐的标题列,并且n居中数据列 - 所有列都由垂直线分隔,根据您给出的示例 - 以下操作无需太多设置成本即可工作(我假设n = 10):

\begin{table}
\caption{An easily defined tabular environment} \label{tab:easy}
\begin{tabular}{|l*{10}{|c}|}
...
\end{tabular}
\end{table}

附录:假设表格(第一行或标题行除外)将用数据工具填充,并且您事先不知道确切的数据列数。但是,只要您知道最大可能数字——比如说,15——您可以使用该信息设置环境tabular。即,您将设置\begin{tabular}{|l*{15}{|c}|}。如果实际表格最终只包含 [!] 12 个数据列,则指定过多的居中列数不会造成任何损害。

答案4

一个简单的解决方案与tblr环境tabularray包:它不需要预定义的列数。

\documentclass{article}

\usepackage[margin=1cm]{geometry}

\usepackage{tabularray}

\begin{document}

\begin{center}
  \begin{tblr}{hlines, vlines}
    A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D \\
    A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D \\
  \end{tblr}
\end{center}

\bigskip

\begin{center}
  \begin{tblr}{hlines, vlines, columns={5mm}} % all columns have fixed widths
    A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D \\
    A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D \\
  \end{tblr}
\end{center}

\bigskip

\begin{center}
  \begin{tblr}{hlines, vlines, columns={co=1}} % all columns are X columns
    A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D \\
    A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D & A & B & C & D \\
  \end{tblr}
\end{center}

\end{document}

在此处输入图片描述

相关内容