## 编译环境 操作系统 * [×] Windows 7/8/10 * [ ] macOS * [×] Linux `若需勾选,请把[ ]改成[x]` Tex发行版 * [×] TexLive `2020` * [ ] MikTeX `版本号` * [ ] CTeX `若需勾选,请把[ ]改成[x]` ## 我的问题 需要每页不同的页脚,类似于每页页脚显示一句名人名言。 之前使用了夜神的方法。 https://github.com/xiaoleeza/fancyheading/blob/master/fancyheading.tex 但是这个需要每句话前面加序号。 ``` {0}{Guilty consciences make men cowards.} {1}{做贼心虚。} {2}{Honesty is the best policy.} {3}{做人诚信为本。} {4}{Come what may, heaven won't fall.} {5}{做你的吧,天塌不下来。} ``` 我后来找到了一个不需要加序号的方法,但是因为硬盘损坏丢失资料了,找不到了,所以在这里问问万能的大神们,怎么才能不需要加前面的序号方便我调整每页显示的顺序?

1 回答1

1
`\setwisdom[分隔符]{名言列表}`和`\addwisdom[分隔符]{名言列表}`设置名言列表 ```tex \documentclass{ctexart} \usepackage{fancyhdr} \usepackage{xparse} \usepackage{xcolor} \ExplSyntaxOn \seq_new:N \g__wisdom_seq \int_new:N \g__wisdom_idx_int \int_gzero:N \g__wisdom_idx_int \msg_new:nnn { wisdom } { invalid } { Invalid~index! } \NewDocumentCommand \setwisdom { O{\\} m } { \set_wisdom:nn { #1 } { #2 } } \NewDocumentCommand \addwisdom { O{\\} m } { \add_wisdom:nn { #1 } { #2 } } \NewDocumentCommand \usewisdom { o } { \IfValueTF { #1 } { \int_compare:nTF { 1 <= #1 <= \seq_count:N \g__wisdom_seq } { \seq_item:Nn \g__wisdom_seq { #1 } } { \msg_error:nn { wisdom } { invalid } } } { \use_wisdom: } } \cs_new_protected:Nn \set_wisdom:nn { \seq_gclear:N \g__wisdom_seq \seq_gset_split:Nnn \g__wisdom_seq { #1 } { #2 } } \cs_new_protected:Nn \add_wisdom:nn { \seq_set_split:Nnn \l_tmpa_seq { #1 } { #2 } \seq_gconcat:NNN \g__wisdom_seq \g__wisdom_seq \l_tmpa_seq } \cs_new_protected:Nn \use_wisdom: { \int_compare:nTF { \g__wisdom_idx_int = \seq_count:N \g__wisdom_seq } { \int_gzero:N \g__wisdom_idx_int } { \int_gincr:N \g__wisdom_idx_int } \seq_item:Nn \g__wisdom_seq { \g__wisdom_idx_int } } \ExplSyntaxOff \fancyhf{} \renewcommand\headrulewidth{0pt} \pagestyle{fancy} \fancyfoot[C]{\itshape\color{teal}\usewisdom} \setwisdom{ Guilty consciences make men cowards.\\ 做贼心虚。\\ Honesty is the best policy.\\ 做人诚信为本。 } \addwisdom{ Come what may, heaven won't fall.\\ 做你的吧,天塌不下来。 } \begin{document} abc \newpage abc \newpage abc \newpage abc \end{document} ```

作者追问:2020-09-24 09:04

十分感谢大佬的解答,测试过程中发现一句名言无法手动换行,\par或者空行均报错,可否解决?

作者追问:2020-09-24 09:11

已解决,我把识别一句的标记修改即可。感谢大佬解答!

  • 十分感谢大佬耐心解答!写了这么多的代码! –  2020-09-24 09:12 回复

你的回答

请登录后回答

你的回答将会帮助更多人,请务必认真回答问题。