我正在通过 Rmarkdown 生成 LaTeX 报告。因此,LaTeX 代码应该是通用的。我想在现有页脚中添加任意文本之内文档,以某种页面样式定义。
我尝试了以下方法:
\documentclass[a4paper,notitlepage]{article}
\usepackage{fancyhdr}
\makeatletter
\fancypagestyle{custom}{%
\fancyhf{}
\lfoot{\footnotesize Footnote}}
\newcommand\Lfoot[1]{\lfoot{\f@ncyolf\\#1}}
\makeatother
\pagestyle{custom}
\begin{document}
Text
\Lfoot{add text to footer}
\end{document}
问题是我无法添加\f@ncyolf
到\lfoot{}
。每个操作都可以正常工作,即添加\f@ncyolf
到文档或添加文本,而不是添加\f@ncyolf
到页脚。
我该怎么做?提前致谢!
答案1
\f@ncyolf
是一个内部宏,当您通过 更改页脚时,它会被重新定义\lfoot
。如果您在页脚文本中使用此宏,最终会得到一个递归定义,这将使 TeX 陷入循环,直到它因堆栈溢出而死掉。
您可以做的是为页脚的基础文本定义一个全局宏(\myfootertext
在示例中),并在每次\Lfoot
调用时扩展此文本:
\documentclass[a4paper,notitlepage]{article}
\usepackage{fancyhdr}
\newcommand\myfootertext{\footnotesize Footnote}
\fancypagestyle{custom}{%
\fancyhf{}
\lfoot{\myfootnotetext}}
\newcommand\Lfoot[1]{\lfoot{\myfootertext\\#1}}
\pagestyle{custom}
\begin{document}
Text
\Lfoot{add text to footer}
\newpage
Text
\Lfoot{add other text to footer}
\end{document}
将打印
脚注
将文本添加到页脚
在第一页
脚注
将其他文本添加到页脚
在第二页。