就像fancyhdr一样,怎么设置Tex在每一页自动加载一个命令或内容。更深入一下,就是想知道页眉页脚等的底层实现。比如,设置在每一页开头都加入‘123’这三个数字。

3 回答3

1
1. 页眉页脚没什么实现机制,就是用盒子(hbox,vbox)摆放到指定位置。具体实现在 `texdoc source2e`, sec. 65.1,涉及摆放和输出页眉页脚的代码在 602 行开始。 2. 在每一页都加入特定内容,有几种做法。 1. 第一种,放在页眉页脚里。如果需要让内容的位置超出页眉页脚范围,可以用盒子手动调整到绝对位置,也可以用 tikz nodes 摆放到相对位置(一个例子见[这则知乎回答](https://www.zhihu.com/question/303812076/answer/551320176)的后半段) 2. 第二种是在一页内容已经生成后,去 patch 那个即将输出的一页。有宏包 `atbegshi`(更现代)、`everyshi`(更早期)、`eso-pic`(侧重插图)。这里有个变量,即插入的内容是在页面既有内容的底层还是上层,这在遇到内容重叠覆盖时需要理清楚。 注意,以上两种方式生成的内容,都和版心里既有的内容无法建立联系。假设有需求,希望每页第一行的内容是一段长度随机的文本,当页的正常内容紧跟在随机文本之后插入。那么这种需求,以上两种方式都无法实现。
  • 回复 cqz14063 : 在 http://texdoc.net/ 搜索下载宏包文档 – 论坛 github.com/CTeX 2019-10-18 17:51 回复
  • 回复 论坛 github.com/CTeX :请问哪有atbegshi的使用方法吗?网上没找到 – cqz14063 2019-10-18 15:16 回复
  • 回复 cqz14063 :没明白你想问什么,能否展开具体说说? – 论坛 github.com/CTeX 2019-10-18 14:59 回复
  • 请问hook是什么操作 – cqz14063 2019-10-18 07:58 回复
0
占个沙发,别误会(等待他人回答后会有邮件自动通知我,我也好奇这个要怎么实现。
  • 嘻嘻,可以哦 – cqz14063 2019-10-18 07:58 回复
0
可参考我写的《[不使用atbegshi宏包向\shipout添加钩子的方法研究](https://wenda.latexstudio.net/q-2411.html)》和《[【经验+提问】plain TeX 原理的 LaTeX 实现——页面钩子练习](https://wenda.latexstudio.net/q-2415.html)》。

你的回答

请登录后回答

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