我正在写一本有很多章节的书,\input{filename.tex}
书中的每一章都使用一个命令book.tex
。如何使它们不在同一目录中?是否可以有带有子目录的目录?book.tex
filename.tex
book.tex
filename.tex
答案1
\newcommand\subdir{mysubdir}
...
\input{\subdir/file}
然后,如果子目录发生变化,则只需更改一个名称。但是,如果您使用章节,则使用\include
而不是更有意义。\input
答案2
假设目录结构如下(其中目录Work
包含以下子目录:Chap01
和Chap02
,每个子目录都有.tex
自己的文件):
Work/
|-Book.tex
|-mystyle.sty
|-Chap01/
|-chapter01.tex
|-Chap02/
|-chapter02.tex
那么主文件将具有以下基本结构:
% Contents of Book.tex
\documentclass{book}
\usepackage{mystyle}
\begin{document}
\include{Chap01/chapter01}% NOTE: these 'sub-files' must not include things like
\include{Chap02/chapter02}% \usepackage, \begin{document}, or \end{document}
% You could also use \input; for the relative advantages, see http://tex.stackexchange.com/q/246/8528
% \input{Chap01/chapter01}
% \input{Chap02/chapter02}
\end{document}
包含的文件看起来如下:
% Contents of chapter01.tex
\chapter{The First Chapter}
This is the first chapter.
答案3
为了使此功能正常工作,您需要一个包含章节 .tex 文件的文件夹 Work/Book。
或者,您可以直接在花括号中为每个 指定一个相对于主 .tex 文件路径的路径\include
,这样就不需要定义了\subdir
。只需记住使用 / 而不是 \ 来连接路径中的文件夹即可。