我有一个目录,里面有一篇论文。它有各种子目录,里面都有内容。
paper1/
main.tex
intro/
intro.tex
conclusion/
conclusion.tex
static/
image1.png
image2.png
paper1 的 main.tex 看起来像:
\documentclass{article}
\begin{document}
\include{intro/intro}
\include{conclusion/conclusion}
\end{document}
paper1 的介绍包括我的静态图像:
\includegraphics{static/image1}
效果很好,很酷。
但是现在,我正在将所有这些论文整合到我的论文中。我希望能够将\include
我的论文放在我的文档中。我在论文文件夹中创建了指向 paper1 的符号链接:
dissertation/
thesis.tex
paper1/
...
并且想在 thesis.tex 中做类似下面的事情:
\begin{document}
\include{paper1/intro/intro}
\end{document}
但是,当我尝试编译它时,paper1/intro/intro.tex 中图形的路径无法解析,因为它们假定根目录为 paper1/。我现在有一个根目录为 dissertation/。我愿意重新设置 paper1/intro/intro.tex 中的路径,但我希望可以按照自己的意愿编译 paper1 或编译 dissertation,而不必来回“切换”路径。可能有一种巧妙的方法来构建目录等。
有没有办法用共享的 \includes 来编译 latex 文件,并根据需要智能地设置根目录?
答案1
这些路径是相对于 tex 进程的工作目录而不是文档的路径,因此您可以使用pdflatex thesis
和,pdflatex paper1/paper
但通常最好在文档目录中运行 pdflatex,因此不一定推荐这样做/
您可以简单地使用\include{intro}
并将其放入/some/path/dissertation//:
TEXINPUTS 环境变量中,然后仅通过文件名就可以递归找到该目录下的任何文件。
作为第三种选择使用
\include{\paperone/intro/intro}
在 paper1 文件中有
\providecommand\paperone{.}
但在论文中
\newcommand\paperone{paper1}
所以如果你运行你输入的论文,paper1/intro/intro.tex
但是如果你运行你输入的 paper1 文档./intro/intro.tex