未生成 \output 中定义的文件

未生成 \output 中定义的文件

我的示例 tex 文件如下

\documentclass[12pt]{article}

\begin{document}

\immediate\openout5=sample

\immediate\write5{ \noexpand\documentstyle[12pt]{article} }
\immediate\write5{ \noexpand\begin{document} }

\immediate\write5{Hello Hello}

\immediate\write5{ \noexpand\end{document} }
\immediate\closeout5

\end{document}

为什么我没有看到当前目录中生成任何 sample.tex 或 sample.aux 文件?

答案1

如果你将文件命名为sample.tex,则pdflatex在其上运行将覆盖该文件。事实上,运行后

pdflatex sample

在该代码的工作目录中sample.tex,该目录将包含

jagnan > ls
sample.aux  sample.log  sample.tex

并将cat sample.tex显示

 \documentstyle [12pt]{article} 
 \begin {document} 
Hello Hello
 \end {document} 

但是,根据您的操作系统,覆盖文件的结果可能会不同,甚至可能导致运行不成功。

如果我将您的代码保存在名称下jagnan.tex,则运行pdflatex jagnan目录将填充

jagnan > ls
jagnan.aux  jagnan.log  jagnan.tex  sample.tex

答案2

当我使用参数 -output-directory 从 shell 运行 pdflatex 时,它会在指定目录中生成所有文件 - .log .aux 以及 sample.tex。

pdflatex -output-directory . experiment003.tex

这是我在 TexWorks 中设置配置的步骤:

  1. 转到“编辑”->“首选项”->“排版”选项卡
  2. 在处理工具部分单击“+”以添加新工具
  3. 将此工具命名为“mytex”
  4. 选择“pdflatex.exe”(来自正确的目录)作为要使用的程序
  5. 添加 '-output-directory=.' 和 '$fullname' 作为参数
  6. 您也可以选择更改其在下拉菜单中的位置或将其设置为默认程序

如果需要更改现有命令,则需要检查有关每个所用程序的命令行参数的文档并进行适当设置。

感谢 David 和 egreg 的所有帮助和指点。

相关内容