2010-05-27 28 views
5

编译乳胶文档时,编译器会发出大量“对象”文件。这混乱了我正在工作的目录,并且很难像SVN一样使用VCS。当我使用C++代码工作时,我为代码和对象提供了单独的目录,我可以在源目录上运行make,但.o文件转到构建目录。执行乳胶文档的单独编译

有没有一种合适的方式来执行与Latex文档分开的编译?可以通过使用Makefile或将选项传递给latex编译器来完成吗?

感谢

回答

4

您可以使用目录结构:

pdflatex --output-directory=tmp file.tex 

,所有的文件将被存储在文件夹tmp(PDF格式包括在内)。

因为这不是一个最佳的解决方案,所以我制作了我自己的工具pydflatex,它通过存储辅助文件(使用上面的技巧)编译LaTeX源文件,并将pdf返回到当前目录,所以在编译你的目录中只有file.texfile.pdf。这对版本控制起到了很好的作用。

+0

乳胶命令也有这个--output-directory选项,谢谢 – tonicebrian 2010-06-29 15:13:33

+1

确切地说,'pdflatex'和'latex'都是到主命令'pdftex'的符号链接,所以它们有相同的选项。顺便说一下,我不认为现在使用'latex'命令(vs'pdflatex')的兴趣不大,因为pdf现在已经完全取代了dvi。 – 2010-06-30 10:15:08

2

我不禁大为乳胶(作为最后用户认真对待20年前;-),但对于Subversion,你应该在svn:ignore财产读 - 它可以很容易忽略带有扩展名的文件而不是想要的版本(目标文件,Python中的字节码文件通常可以放在与源文件相同的目录中,一些文本编辑器使用的备份文件,& c)。

+0

颠覆是一个问题,但不是重要的问题。您可以使用svn:ignore,但是您必须在每个文档上指定该属性并且它不是最优的。其他让我困扰的问题是,使用shell无法自动完成,因为所有具有不同扩展名的文件名相同,或者在Latex变得混乱时只是rm“对象”文件。 – tonicebrian 2010-06-29 15:10:07

0

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

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

使用这种方法,你可以保持像下面

/ 
    main.tex 
    /src 
     maindocument.tex 
0

除了上面的两个选项。

  1. 使用Lyx:它照顾单独的文件。我认为它将Latex文件复制到它自己的私人目录并在其上运行乳胶。在任何情况下,当前目录中都不会创建任何内容。
  2. 使用makefile或其中一个特殊的Latex make程序,并让您的常规目标运行make clean