我正在使用 fancyhdr,并希望在页眉中每隔几页更改一次自定义文本。目前,我正在使用技巧markboth
- 我有一个函数\newcommand{\setheaderdata}[2]{\markboth{#1}{#2}}
,然后使用显示这些数据。
\fancypagestyle{mystyle}{\ \fancyhead[C]{\leftmark} \fancyfoot[LO]{\rightmark} }
问题是,现在我想在页眉中添加第三个文本,由于没有centermark
,我无法将其放入页眉中。
我曾尝试制作一个自定义命令,每次我想要更改标题文本时都会重新定义该命令,但由于某种原因,标题会忽略这次重新定义......
那么,如何将自定义文本(在整个文档中发生变化)放入页眉?
答案1
不幸的是,我找不到使用该fancyhdr
软件包的任何解决方案,而且据我所知,pagestyles 无法更新。但是(感谢 Bernard)我找到了使用该titleps
软件包的解决方案:
\newcommand{\headerdatafirst}{}
\newcommand{\headerdatasecond}{}
\newcommand{\headerdatathird}{}
\newshortmark\headerdatafirst
\newshortmark\headerdatasecond
\newshortmark\headerdatathird
\newpagestyle{datastyle}{
\sethead{\headerdatafirst}{\headerdatasecond}{\headerdatathird}
}
\newcommand{\setheaderdata}[3]{
\renewcommand{\headerdatafirst}{#1}
\preshortmark\headerdatafirst
\renewcommand{\headerdatasecond}{#2}
\preshortmark\headerdatasecond
\renewcommand{\headerdatathird}{#3}
\preshortmark\headerdatathird
}
现在每次setheaderdata
调用时,pagestyledatastyle
都会包含 header 中的参数(直到setheaderdata
再次调用)。