是否可以TeX
在当前文件夹以外的其他地方写入?
以下操作无效:
\documentclass{article}
\begin{document}
\newwrite\tempfile
\openout\tempfile=/Users/colas/Desktop/coucou.aux
\write\tempfile{Test}
\closeout\tempfile
Test
\end{document}
错误是
./bac_a_sable.tex:13: 我无法在文件 `/Users/colas/Desktop/coucou.aux' 上写入。 \endgroup \set@typeset@protect l.13 \end{document}
答案1
TeX Live(我猜你正在使用它)通常不允许在当前目录路径之外进行文件写入操作,因为这是一个安全风险。这由设置控制openout_any
,可以采用以下三个值之一(信息复制自texmf.cnf
):
a
(任何):可以打开任何文件。r
(受限):不允许打开点文件p
(偏执):作为r
并不允许进入父目录,并限制绝对路径在之下$TEXMFOUTPUT
。
正常设置是p
,不允许进入父目录。我实在不建议更改此设置。
您可能需要考虑更改$TEXMFOUTPUT
为目标目录(因为您使用的是绝对路径),然后应该允许在 TeX 下进行写访问(如果文件系统允许),但我认为David 的评论更好:
保留安全设置要安全得多,但在当前目录中创建一个指向全局文件的符号链接,以便可以使用本地路径写入该文件
如果您确实要降低安全设置,您可以在文件中更改您的首选设置texmf.cnf
。但我真的不推荐它。