如何在文档类中定义表格?

如何在文档类中定义表格?

考虑文档中的一个简单表格:

\begin{tabular}{ l c r }
  1 & 2 & 3 \\
  4 & 5 & 6 \\
  7 & 8 & 9 \\
\end{tabular}

我们如何在 中定义此表,documentclass因为用户仅放置每个单元格的值。我的意思是如何在 中设置变量documentclass,例如,对于部分:

\section*{Section Header}
Section body

如何定义表格,因为用户可以在文档中填写变量,如下所示:

\table{header1,header2,header3}
row1: cell1, cell2, cell3
...

答案1

定义此环境

\RequirePackage{booktabs}
\newenvironment{commontabular}[3]
  {\begin{tabular}{lcr}
   \toprule
   \bfseries #1 & \bfseries #2 & \bfseries #3 \\
   \midrule}
  {\bottomrule
   \end{tabular}}

然后告诉用户输入他们的表格

\begin{commontabular}{header1}{header2}{header3}
1 & 2 & 3 \\
4 & 5 & 6 \\
7 & 8 & 9 \\
\end{commontabular}

对表使用非标准语法是没有意义的,因为这会妨碍代码的可重用性。

但我认为提供这样的捷径也没什么意义。

答案2

有几种方法可以实现你想要的使用\newcommand\newenvironment然而,我们必须记住这两个命令都可以接受最多9 个论点。

因此,借用 Yiannis 的想法

琐事清单终极指南

我们有以下代码

\documentclass{article}

\newenvironment{mytabular}
  {\trivlist\item
   \tabular{lcr}}
  {\endtabular\endtrivlist}

\newcommand{\row}[3]{#1&#2&#3\\}

\begin{document}

\begin{mytabular}
   \row{1}{2}{3}
   \row{4}{5}{6}
   \row{7}{8}{9}
\end{mytabular}

\end{document}

您可能还想看看

如何分离表格内容和表格样式

相关内容