我是 LaTeX 新手。我有一个 LaTeX 格式的表格,我想将其包含在我的文档中。由于这是一个大表格,我想将其保存在另一个文件中,然后将其加载到我的主文档中。
我怎样才能做到这一点?
答案1
您的问题并没有解释您的表格是怎样的,除了它很大并且您想将其保存在另一个文件中,但您并没有说它是否已经被格式化为tabular
或仅包含raw
数据。
如果你的外部文件(table.tex
)已经格式化,则类似于:
\begin{tabular}{ccc}
\toprule
A & B & C \\
\midrule
a & b & c \\
aa & bb & cc \\
\bottomrule
\end{tabular}
您只需要\input
在文本中您想要的位置添加它即可。要使用的命令是\input{name-of-your-file}
。
但是,如果你的文件只包含数据而没有LaTeX
格式化命令,则有多个包可用于处理和格式化文档中的数据。其中一个包是pgfplotstable
它是 的一部分pgfplots
。
举例来说,假设您的数据文件 ( table-raw.txt
) 包含:
A B C
a b c
aa bb cc
使用命令\pgfplotstabletypeset[formatting options]{table-raw.txt}
您可以在文本编译期间处理和排版其内容。
下一个代码显示两种解决方案的示例:
\documentclass{article}
\usepackage{booktabs}
\usepackage{pgfplotstable}
\begin{document}
File \texttt{table.tex} contains an already formatted \LaTeX\ tabular.
To include it in your text just use \verb+\input{table.tex}+: where you want it.
\begin{center}
\input{table.tex}
\end{center}
File \texttt{table-raw.txt} contains some data organized in rows and columns.
Its \LaTeX\ format will be generated with \texttt{pgfplotstable} help.
\begin{center}
\pgfplotstabletypeset[%
every head row/.style={before row=\toprule,
after row=\midrule},
every last row/.style={after row=\bottomrule},
col sep=space,
header=true,
string type]{table-raw.txt}
\end{center}
\end{document}
答案2
这个答案由 @Werner 在 StackOverflow 主网站上使用catchfile
包为我提供非常好用的功能,因此我将其复制到了这里。
%main.tex
\documentclass{article}
\usepackage{filecontents,catchfile}
\begin{filecontents*}{table.tex}
%table.tex
\hline
a & b \\
\hline
c & d \\
\hline
\end{filecontents*}
\begin{document}
Table test.
1. Insert a full table
\begin{tabular}{|c|c|}
\hline
a & b \\
\hline
c & d \\
\hline
\end{tabular}
2. Input the body of table from a separate file
\CatchFileDef{\mytable}{table.tex}{}% table.tex > \mytable
\begin{tabular}{|c|c|}
\mytable
\end{tabular}
\end{document}