有没有方法可以重复整个表格?我已经使用 xparse 定义了自定义表格格式,并且可能有大约 50 个这样的自定义表格。我想创建表格的附录,包括所有内容。我不想重复内容,因为它经常变化
编辑:一种解决方案是使用单独的文件并多次包含它。这不是一个很好的解决方案,因为我的一些“表格”实际上只有 2-3 行长,而且我本来就有很多表格(例如,~50 个单独的包含文件比当前的内联表格更难处理)
答案1
那么使用filecontents
包?此方法本质上会创建单独的文件,但处理起来更容易。查看示例:
\documentclass{article}
\usepackage{filecontents}
\begin{document}
\begin{filecontents}{mytable.tex}
\begin{center}
\begin{tabular}{l*{6}{c}r}
Team & P & W & D & L & F & A & Pts \\
\hline
Manchester United & 6 & 4 & 0 & 2 & 10 & 5 & 12 \\
Celtic & 6 & 3 & 0 & 3 & 8 & 9 & 9 \\
Benfica & 6 & 2 & 1 & 3 & 7 & 8 & 7 \\
FC Copenhagen & 6 & 2 & 1 & 3 & 5 & 8 & 7 \\
\end{tabular}
\end{center}
\end{filecontents}
\input{mytable.tex}
\input{mytable.tex}
\input{mytable.tex}
\input{mytable.tex}
\end{document}
及其结果:
当然,你可以将此包与其他包组合使用,例如ltxtable
,以增强结果,正如包装文件所建议的那样。
表格示例取自LaTeX 维基百科。
答案2
您可以使用collect
包;使用定义一个集合\definecollection{<name>}
,然后使用collect*
环境包装你的表;然后简单地使用将你的集合包含在附录中\includecollection{<name>}
;一个小例子:
\documentclass{article}
\usepackage{booktabs}
\usepackage{collect}
\definecollection{mytables}
\begin{document}
\section{Test section}
\begin{collect*}{mytables}{}{\par\bigskip}{}{}
\noindent\begin{tabular}{*{3}{l}}
\toprule
Header1 & Header 2 & Header3 \\
\midrule
column1a & column2a & column 3a \\
column1b & column2b & column 3b \\
column1c & column2c & column 3c \\
\bottomrule
\end{tabular}
\end{collect*}
\begin{collect*}{mytables}{}{\par\bigskip}{}{}
\noindent\begin{tabular}{*{2}{l}}
\toprule
Header1 & Header 2 \\
\midrule
column1a & column2a \\
column1b & column2b \\
column1c & column2c \\
column1d & column2d \\
\bottomrule
\end{tabular}
\end{collect*}
\section{Appendix}
\includecollection{mytables}
\end{document}