TeX 引擎无法在 Windows 中写入隐藏的辅助文件

TeX 引擎无法在 Windows 中写入隐藏的辅助文件

为了使我的 latex 文件夹干净,我尝试使用以下 DOS 命令隐藏所有辅助文件:

attrib +S +H *.aux
......
attrib +S +H *.toc

xelatex但是当我尝试再次编译我的 latex 文件时,pdflatex在 MiKTeX 中出现了以下错误:

I can't write on file `somename.aux'.

是否可以启用辅助文件xelatexpdflatex写入内容,而这些文件仍然保持隐藏?

顺便说一句:我不想将辅助文件放入其他文件夹,因为这样会导致其他问题。

答案1

看来 Windows 隐藏文件只能以读/写或附加模式打开,而不能以纯写模式打开。奇怪的是,我似乎找不到太多关于此的官方文档,但您可以使用代码或简单的 cmd.exe 脚本(我在 Windows 8.1 上运行过)自行测试:

C:\>echo "hello" > temp.aux
C:\>attrib +H temp.aux
C:\>echo "hello" >> temp.aux
C:\>echo "hello" > temp.aux
Access is denied.

使用 Procmon.exe 可以看到错误发生在pdflatex尝试以写入模式打开 .aux 文件时。其他程序也有这个问题(我认为是 wordpad 和 GitHub 客户端,其中 .gitignore/.gitattributes 文件是隐藏的)。

最好的办法是将 PDF 编译调用与脚本中的隐藏和取消隐藏调用包装在一起。

相关内容