我有一个主文档,并使用许多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
。