考虑文档中的一个简单表格:
\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\\}
\begin{document}
\begin{mytabular}
\row{1}{2}{3}
\row{4}{5}{6}
\row{7}{8}{9}
\end{mytabular}
\end{document}
您可能还想看看