将中间文件和输出文件放在另一个文件夹中

将中间文件和输出文件放在另一个文件夹中

我正在尝试找出一种方法来将 TEX 文件与所有中间文件和输出文件完全分开。我尝试过各种方法,包括将 TeX 输出“捆绑”到目录中似乎不起作用。我正在使用 TexMaker + MikTex(便携式)。理想情况下,我希望我的文件/目录结构看起来像这样:

  • 特克斯项目
    • 文本文件
      • 1.tex
      • 2.tex
    • 内部文件
      • 1.出
      • 1.log
      • 1.辅助
      • 2.出
      • 2.log
      • 2.辅助
    • pdf文件
      • 1.pdf
      • 2.pdf

相反,我得到的是乱七八糟的东西,所有这些文件都位于同一个目录中。我尝试过在 pdflatex 上设置输出目录,但不起作用。pdf 文件仍然在同一个位置创建,但现在它没有显示在预览器中。这应该很容易解决,但我到目前为止还没有成功。我如何设置我的环境以在编译时使用上述结构?

更新:我相信我已经将范围缩小到 TexMaker 特有的某个方面。如果所需的辅助目录和输出目录通过命令行传递给 pdflatex,则一切都会按预期构建。但是,我收到许多弹出的消息框,提示找不到文件,并且 PDF 不会显示在内部查看器中。我看不到 TexMaker 中有任何明显的选项可以更改以解决此问题。那么,有人能够使我描述的场景与 TexMaker 一起工作吗?

答案1

根据 lockstep 的建议,我写了一个简短的答案:据我所知,目前这是不可能的,因为无法从 Texmaker GUI 内部更改消息/日志查看器和 pdf 查看器的路径。Texmaker 问题列表上有一个功能请求,以使路径可配置: http://code.google.com/p/texmaker/issues/detail?id=97 也许你很幸运,在以后的版本中这个功能会可用。我个人也会使用这个新功能(并且只备份输入文件夹,而不是输出文件夹)。

答案2

自 Texmaker 3.4 起,您可以指定选项“使用构建目录进行输出”,它会在您的项目文件夹中创建一个“build”文件夹,并将除 .tex 文件之外的所有内容保存在那里。查看手册现在,您还可以将输出目录指定为 pdflatex 的一个选项,例如 -output-directory pdf。但无论如何,您也会在构建文件夹中获得一份 pdf 副本。而且我还没有找到一种直接的方法将输出文件放在根文件夹中。

(并且文件夹中还有一个 .gz 文件,但您可以关闭此选项。)

答案3

对于 TeXstudio (由于是从 texmaker 派生出来的,因此可能与 TeXstudio 类似):

  1. 如果需要,将选项-aux_directory和添加-output-directory到 latex pdflatex 和其他命令中。
  2. 更改文件中相应的行(在我的例子中是 160 和 161 行)texstudio.ini,在 W7 中通常位于

C:\Users\username\AppData\Roaming\texstudio

相应地修改两个变量的路径。

Tools\Log%20Paths=C:\\\Users\\\username\\\AppData\\\Local\\\Temp

Tools\PDF%20Paths=D:\\\repos\\\pdf

(有意使用双反斜杠)

享受!

答案4

在 TeXstudio (2.10.8) 中,我们可以设置一个子目录,在此示例中名为“output”,如下所示:

菜单 > 选项 > 配置 TeXstudio ...

  • 命令 [Tab] > PdfLaTeX。添加键/值开关-output-directory=output

    所以我的命令从

    pdflatex.exe -synctex=1 -interaction=nonstopmode %.tex
    

    ... 到 ...

    pdflatex.exe -synctex=1 -interaction=nonstopmode -output-directory=output %.tex
    

    如果您使用除“PdfLaTeX”之外的其他构建命令,请在那里进行类似的更改。我只针对 PdfLaTex 进行构建,因此这就是我所需要更改的全部内容。

  • 命令 [Tab] > 外部 PDF 查看器。我使用的是 Foxit Reader,因此在本例中,我从... 更改为...

     "C:\PROGRAM FILES (X86)\FOXIT SOFTWARE\FOXIT READER\FOXITREADER.EXE" "?am.pdf"
    

    ... 到 ...

     "C:\PROGRAM FILES (X86)\FOXIT SOFTWARE\FOXIT READER\FOXITREADER.EXE"  C:\Users\John\Documents\Sda\Code\Markup\Latex\Examples\output\?rm.pdf"
    

    希望只需要一个相对路径,类似于\output\?rm.pdf,但到目前为止,我只能使它使用硬编码的绝对路径来工作。

  • 命令 [Tab] > Biber(用于 biblatex 包的参考书目)。

    改变

     biber.exe %
    

    ... 到 ...

     biber.exe -output-directory=output -input-directory=output %
    
  • 命令 [Tab] > BibTeX(用于 bibtex 包的参考书目)。

    改变

     bibtex.exe %.aux
    

    ... 到 ...

     bibtex.exe  output/%.aux
    
  • 构建 [Tab] > 附加搜索路径。将\output(带反斜杠)添加到“日志文件”和“PDF 文件”字段。

在当前窗口中加载源 MyExample.tex 文件后,按 F5(TeXstudio 菜单 > 工具 > 构建和查看)。构建完成后,PDF 查看器应能正确拾取并显示\output\MyExample.pdf

这结合并更新了@SisayChala 和@user44553 的答案。

相关内容