我正在尝试为我的所有表格创建一个子目录,并以类似的方式使用它\graphicspath
。我有很多表格,不想在主文本中看到它们。
答案1
要将表放在子目录中的单独文件中,您可以执行以下操作:
创建一个子目录(例如“tables”)
在该子目录中创建一个包含具有表定义的新命令的 tex 文件,例如文件“chapter1tables.tex”,其中包含:
\newcommand*\TableOneOne{% \begin{tabular}{|c|c|} \hline 1 & a \\ \hline 2 & b \\ \hline \end{tabular} }
input
主 tex 文件中的“chapter1tables.tex”文件在需要时调用表定义的命令:
\documentclass{article} \input{tables/chapter1tables} \begin{document} Here comes the table: \TableOneOne \end{document}
答案2
\includegraphics
这里与和类似\graphicspath
。如果\tablepath
没有定义,命令会尝试包含当前目录中作为参数给出的文件名。
如果\tablepath
已定义,它将查看该文件是否存在,否则它将尝试使用本地目录(再次)
\documentclass{article}
\newcommand{\tablepath}{mytables}
\makeatletter
\newcommand{\includetable}[1]{%
\@ifundefined{tablepath}{%
\InputIfFileExists{#1}{}{}%
}{%
\InputIfFileExists{\tablepath/#1}{}{\InputIfFileExists{#1}{}{}}%
}
}
\makeatother
\begin{document}
\includetable{tablea}
\includetable{tableb}
\end{document}
tablea
以下是和的定义tableb
:
tablea.tex
\begin{tabular}{ll}
\hline
A & B \tabularnewline
\hline
\end{tabular}
tableb.tex
——我已将其存储在我的mytables
目录中。
\begin{tabular}{ll}
\hline
C & D \tabularnewline
\hline
\end{tabular}