5

编译乳胶文档时,编译器会发出很多“对象”文件。这使我正在处理的目录变得混乱,并且难以使用像 SVN 这样的 VCS。当我使用 C++ 代码时,我有单独的代码和对象目录,我可以在源目录上运行 make,但 .o 文件转到构建目录。

是否有适当的方法来使用 Latex 文档执行这种单独的编译?可以通过使用 Makefile 或通过将选项传递给乳胶编译器来完成吗?

谢谢

4

4 回答 4

4

您可以使用:

pdflatex --output-directory=tmp file.tex

所有文件都将存储在文件夹中tmp(包括pdf)。

因为这不是最佳解决方案,所以我制作了自己的工具pydflatex,它通过隐藏辅助文件(使用上面的技巧)来编译 LaTeX 源代码,并将 pdf 带回当前目录,所以编译后你只有file.texfile.pdf在您的目录中。这与版本控制配合得很好。

于 2010-05-27T05:51:32.007 回答
2

我对 LaTeX 帮不上什么忙(最后一个用户是 20 年前认真的;-),但是对于 Subversion,你应该阅读svn:ignore属性——它可以很容易地忽略带有你想要的扩展名的文件到版本(目标文件,像 Python 一样的字节码文件通常可以放在与源相同的目录中,一些文本编辑器使用的备份文件,&c)。

于 2010-05-27T05:14:26.800 回答
0

Latex 在主文档所在的目录下生成临时文件。如果您希望将内容放置在不同的位置,请尝试使用如下所示的主文件。

\documentclass{article}
\input{src/maindocument.tex}

使用此方法,您可以维护如下目录结构

/
    main.tex
    /src
         maindocument.tex
于 2010-05-27T05:28:20.877 回答
0

除了上述之外,还有两种选择。

  1. 使用 Lyx:它负责处理单独的文件。我认为它将 Latex 文件复制到它自己的私有目录并在其上运行 latex。在任何情况下,都不会在当前目录中创建任何内容。
  2. 使用 makefile 或特殊的 Latex make 程序之一,并让您的常规目标运行make clean.
于 2010-05-27T06:34:42.423 回答