在文档上标记输入的开始位置以及文件名

在文档上标记输入的开始位置以及文件名

我有一个主文档,并使用许多input{...}命令从许多部分编译整个文档。

我想在工作文档上标记每个新文件的开始input,以及当时的文件名。

我可以更新\input{..}命令,但我不希望标记破坏原本的标准输出,即标记应该是底图/水印。

是否有一个包可以做到这一点,我正在考虑一些与该 showkeys包类似的事情。

我考虑的是以下几点,每当使用输入时创建一个标签,依靠showkeys在文档上做底层标记,但它不起作用:

\let\oldinput\input
\newcounter{inputcounter}\setcounter{inputcounter}{0}
\renewcommand{\input}[1]{%
    \stepcounter{inputcounter}%
    \label{inp:\theinputcounter:#1}%
    \oldinput{#1}%
}

答案1

LaTeX 定义旨在\input允许标准 LaTeX 括号参数语法

\input{filename}

和原始的原始语法

\input filename % Space-terminated

但是,您已将其重新定义,使其仅适用于 LaTeX 语法。如果您查看 的定义\input,您会发现 LaTeX 语法分支由 处理\@iinput。因此,这就是进行更改的地方

\makeatletter
\newcounter{inputcounter}
\let\old@iinput\@iinput
\renewcommand{\@iinput}[1]{%
    \stepcounter{inputcounter}%
    \label{inp:\theinputcounter:#1}%
    \old@iinput{#1}%
}
\makeatother

这假设您不想跟踪原始语法的使用,该语法可能仅被跨格式的包(如)使用pgf

相关内容