我知道 TeX 用於\headline
放置標題。如果\headline
不存在,如何實作一個簡單版本?此外,人們可以在哪裡找到關於如何\headline
實現的簡單文件?教材?的一特別感興趣的是用於定位標題文字(或設定標題的框)的命令的使用。
答案1
\headline
是 中的命名令牌暫存器plain.tex
,分配為\newtoks\headline
,並設定為\headline={\hfil}
(空白)。然後它的內容透過巨集在輸出例程中使用\makeheadline
(簡化,寫為「open」):
\def\makeheadline{\vbox to 0pt{\vskip-22.5pt
\hbox to \hsize{\vbox to 8.5pt{}\the\headline}\vss}\nointerlineskip}
也就是說,預設包含與 10pt 設定一起使用的「硬常數」。且暫存器的內容用於水平模式(因此如果不在 a 內,則不能有垂直模式材質\vbox
),跨越H 水平的尺寸文字區塊的。整個框被設定為不佔用任何垂直空間,並由實際文字區塊上方 22.5pt 的常數支援。
Knuth 在 TeXbook 中關於 22.5pt 常數寫道:
神奇常數-22.5pt等於(topskip - strut高度 - 2(baselineskip)),即10pt - 8.5pt - 24pt;這會將標題的參考點置於頁面頂行參考點上方 24pt 處,除非標題或頂行太大。
此巨集也避免在標題和類型區塊之間插入正常的行間跳躍。
因此設定例如:
\headline={Testing headline\hfill \folio}
會將「測試標題」放在左側,然後將頁碼推到右側。
現在,這對於每個頁面都保持相同,但是如果您想要反面和正面有不同的頭部,您可以執行類似的操作
\newtoks\versohead \versohead={\folio\hfill Testing headline}
\newtoks\rectohead \rectohead={Testing headline\hfill \folio}
\headline={\ifodd\pageno\the\versohead\else\the\rectohead\fi}