有时我想暂时禁止创建一些具体的辅助文件。实际示例如下:
在编辑文档的后期阶段,
.toc
直接在文件中修复某些内容是获得特定结果的最简单方法。(我知道这很丑陋并且具有潜在的危险,但是......)获得
reledpar
平衡布局可能需要进行大量编译,每次编译都非常耗时。当结果最终确定(并写入辅助文件)时,我不希望在更改文本中的细节时破坏它,因为这可能会造成拼写错误,从而导致编译错误。
\nofiles
在第一种情况下会有所帮助,但会阻止创建全部辅助文件。的自定义文件完全reledpar
不受影响。\nofiles
对于这两种情况,操作系统锁定相关文件都是可行的,但缺点是会抛出“我无法在文件上写入......”错误,需要我做出反应。
所以我正在寻找一种定制\nofiles
仅阻止的方法具体的文件。
或者是否可以采取另一种方法,指示 TeX 放弃写入不可写的文件?
答案1
这有一个手动编辑的 LOT,其余所有写入均保持不变(许多写入被重定向到日志文件)
\begin{filecontents}{\jobname.lot}
\contentsline {table}{\numberline {1}{HERE ztztztz}}{100}
\contentsline {table}{\numberline {2}{THERE ztztztzzzz}}{200}
\end{filecontents}
\documentclass{article}
\makeatletter
\def\tmplot{lot}
\def\@starttoc#1{%
\begingroup
\makeatletter
\@input{\jobname.#1}%
\if@filesw
\def\tmp{#1}%
\ifx\tmp\tmplot
\expandafter\let\csname tf@#1\endcsname\m@ne
\else
\expandafter\newwrite\csname tf@#1\endcsname
\immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
\fi
\fi
\@nobreakfalse
\endgroup}
\makeatother
\begin{document}
\tableofcontents
\listoftables
\listoffigures
\section{zzz}
z
\begin{table}
\caption{ztztztz}
\end{table}
\begin{figure}
\caption{zfzfzfz}
\end{figure}
\section{zzz}
z
\begin{table}
\caption{ztztztzzzz}
\end{table}
\begin{figure}
\caption{zfzfzfzzzz}
\end{figure}
\end{document}