为了使我的书更容易装订,我想自动将签名编号以小字体放在每个八度签名的第一页页脚中(第一个签名除外,因为它有标题页)。
所以这意味着我想这样做:
If
(page number) == ( [some number that is evenly dividable with 16] + 1 )
then
write "Book title --- ( ( [page number]-1 ) / 16)"
with small type in the footer of the page
- 在 Context 中如何实现这一点?
- 如何在 Plain Tex 中实现这一点?
很高兴收到任何指点或例子。谢谢!
答案1
纯 tex 版本(如果需要,可以使用 e-tex 算法以经典 tex 编写)
\vsize 4\baselineskip
\hsize 5cm
\pdfpageheight\dimexpr6\baselineskip+2in\relax
\pdfpagewidth\dimexpr\hsize+2in\relax
\footline={
\hss\tenrm
[original plain footer: \folio]
\ifnum\numexpr ((\pageno-1)/16)*16\relax=\numexpr\pageno-1\relax
{\fiverm
[The title
(page \the\pageno)
signature \the\numexpr ((\pageno-1)/16)+1\relax]
}\fi
\hss
}
\raggedright\raggedbottom
\def\a{Red yellow blue green }
\def\b{\a\a\par\a\a\a\par}
\def\c{One two three four \a\a\a five six seven\par}
\def\d{\c\c\c\c\par\a\b\c\a\a\b\b\c\c\a\b\c\c}
\d\d
\bye
答案2
以下是在 ConTeXt 中执行此操作的一种方法:
% Set footnotes in small size
\setupfooter[style=small]
% Determine footnote content based on lua code
\setupfootertexts[\luasetup{footer}]
% Get the page number. If page % 16 == 1, typeset content
\startluasetups footer
local counters = structures.counters
local page = counters.value("userpage")
local signature
if page > 1 and page % 16 == 1 then
signature = (page - 1)/16
context("Book title (%s)", signature)
end
\stopluasetups
% Example
\starttext
\dorecurse{60}{\input knuth \page}
\stoptext