我有一个由许多小文件组成的 LaTeX 文档。当我编辑文本或公式时,我通常会查找一些特征文本并执行以下操作:
find -name "*.tex" > t
grep -n 'text of interest' `cat t` | tee v
vim -q v
我看到有一个currfile
包。我想知道是否有办法使用\currfilename
该包中的命令在页边空白处加盖文件名(和/或路径)的印章,或者甚至只是生成脚注。
编辑:我找到了一种在独立示例中执行此操作的方法,并将其作为自答发布在下面,我最初认为这已经足够了。但是,该答案使用了 fancyhdr,而我使用的是使用 scrpage2 的 classicthesis 模板,因此 fancyhdr 解决方案不起作用。我已经能够对 classicthesis.sty 进行更新,以使用 显示章节和节标题中的文件名\currfilepath
,但我真的希望这是一个页面级页脚(我最终会将其设置为以起草标志为条件)。
这是我想要修改的 classicthesis 中的 scrpage2 部分:
% ********************************************************************
% headlines
% ********************************************************************
\PassOptionsToPackage{automark}{scrpage2}
\RequirePackage{scrpage2} % provides headers and footers (KOMA Script)
\clearscrheadings
\setheadsepline{0pt}
\ifthenelse{\boolean{@nochapters}}%
{\relax}%
{\renewcommand{\chaptermark}[1]{\markboth{\spacedlowsmallcaps{#1}}{\spacedlowsmallcaps{#1}}}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\enspace\spacedlowsmallcaps{#1}}}
\lehead{\mbox{\llap{\small\thepage\kern2em}\headmark\hfil}}
\rohead{\mbox{\hfil{\headmark}\rlap{\small\kern2em\thepage}}}
\renewcommand{\headfont}{\small}
% \DeclareRobustCommand{\fixBothHeadlines}[2]{} % <--- ToDo
% hack to get the content headlines right (thanks, Lorenzo!)
\def\toc@heading{%
\ifthenelse{\boolean{@nochapters}}%
{\section*{\contentsname}}%nochapters
{\chapter*{\contentsname}}%chapters
\@mkboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}}
答案1
回答我自己的问题可能不太好,但我在以下问题中找到了解决此问题的机制:
下面的例子展示了事物是如何结合在一起的
\documentclass{article}
\usepackage{fancyhdr}
\usepackage{lipsum}
\usepackage{currfile}
\pagestyle{fancy}
\lhead{}
\chead{}
\rhead{}
\lfoot{}
\cfoot{\thepage}
\rfoot{\currfilepath}
\renewcommand\headrulewidth{0pt}
\renewcommand\footrulewidth{0pt}
\begin{document}
\lipsum
\clearpage
\lipsum
\clearpage
\include{a/b/f1}
\include{a/b/f2}
\include{a/b/f3}
\include{a/b/f4}
\include{a/b/f5}
\include{a/b/f6}
\end{document}
其中 f1、f2、f3、... 均包含以下内容
\lipsum
\clearpage
正如所期望的,我在所有生成的页面上看到a/b/f1.tex
了(以及在执行 的页面上的主 .tex 文件名)。a/b/f2.tex
\include
\include