我使用 Vim+latex。在我的项目目录中,我有另一个单独的 tex 文件(例如用于绘制图形的 tikz/PGF 文件)。当我输入 \ll 时,系统不会编译我当前的文件,而是编译项目文件。是否可以告诉系统编译我当前的文件?
多谢!
答案1
有些人可能会认为这是一种解决方法,但我认为它可以满足您的目的。从LaTeX-Suite 参考:
每次 LaTeX-Suite 打开新的 LaTeX 文件时,它都会尝试从当前文件的目录向上搜索(到文件系统的根目录),以查看是否找到 *.latexmain 格式的文件,从而确定该文件是否属于多文件项目。如果找到这样的文件,则认为当前文件属于更大的项目。
这意味着*.latexmain
每个项目可以有多个文件,只要它们位于不同的目录级别。
因此,让我们调用您的主文档mydoc.tex
和单独的文件myfig.tex
。如果您设置目录结构如下:
project-dir/
mydoc.tex
mydoc.latexmain
myfig/
myfig.tex
myfig.latexmain
myfiles/
ch01.tex
ch02.tex
一切都会如您所愿。如果myfig.tex
是活动缓冲区,并且您按下\ll
,LaTeX-Suite 将查找myfig.latexmain
并编译myfig.tex
。如果mydoc.tex
是活动缓冲区,mydoc.latexmain
将找到 并编译文档。如果myfiles/
是活动缓冲区中的任何内容,LaTeX-Suite 将不会在当前目录中找到任何*.latexmain
文件,并将向上遍历一级。然后它将mydoc.latexmain
根据需要查找和编译文档。
唯一的其他变化将是包含文档文本源的文件。我假设你正在使用
\includegraphics{myfig}
将图形文件的编译输出包含在文档中。由于文件位于不同的目录中,因此您需要将其更改为相对路径。如果图形包含在关卡中project-dir/
,请使用
\includegraphics{myfig/myfig}
或者,如果图形包含在关卡中myfiles/
,则使用
\includegraphics{../myfig/myfig}
包含编译的输出。
这种方法也可以扩展到多个图形文件:只需为每个图形引入另一个目录,以便*.latexmain
在目录树向上遍历期间总能首先找到适当的目录。
尽管如此,如果你需要对许多图形文件执行此操作,目录结构可能会很快变得过于复杂。最好看一下 TikZ 的外部化方法(当前第 50 章pgf
手动的)。