先决条件
xelatex
,仅在 shell 中。book
文档样式
目标
目标是在每页的标题中,book
将章节名称自然地放置在水平规则之上,或者位于该规则之下或靠近该规则(在正面/背面的适当一侧),呈现第一个和最后一个项目的标签。(想想“字典”)
解决方案
(阅读评论后进行了编辑)
所以,这看起来是个常见问题。我不知道为什么我之前没能认出答案。
有几个关键步骤。
使用该fancyhdr
包。
\usepackage{fancyhdr}
\pagestyle{fancy}
定义新标题
\fancyhead[LE,RO] {\rightmark -- \leftmark}
\fancyhead[LO,RE] {\chaptername\ \thechapter}
使用简单的标记定义元素
因此,在我的 MWE 中,每次添加开始时figure
:
\markboth{Alpha}{Alpha}
\begin{figure}[H]
% ...
\markboth{Beta}{Beta}
\begin{figure}[H]
% ...
结果是右页页眉为
Chapter N X - Y
和背面页面
X - Y Chapter N
我不知怎么的丢失了章节的名称(我可以获得章节编号,但找不到章节名称),但我可以对其进行修改。
足够接近。
MWE 解释
下面的 MWE 是一本书,其中每一章都是图表。
每个图都有一些属性:标签/名称,其实并不重要。但它是一个字符串。我以希腊字母名称为例。将它们视为标签。
每个图都有一个这样的标签。书中大约有 1,000 个这样的图,跨越 220-240 页。
因此,在 MWE 中,第 2 页的章节名称下,字符串将是:
“Episilon-Kappa”。
在第 3 页,章节标题会出现在那里(如果确实如此,章节名称会出现在右页上,只是看起来……以后再问不同的问题)。
“Lambda - Pi”等等。
等等。每页页眉在靠近章节标题的外边距中都有 XY 范围。
LaTeX 中是否存在某种习语(或具有该功能的包)可以帮助实现标题修饰的自动化?
额外加分:而不是每页,范围 XY 将计算在第一个标签之间背面到最后一个标签右页并且呈现的“XY”跨度将出现在外边距附近,并且 X 位于背面和 Y右页。
如果有帮助的话,我确实可以灵活地生成.tex
。所有图形实际上都是从软件生成的 LaTeX 渲染的,因此,如果我需要调整每个图形,我可以在.tex
生成 时进行调整。换句话说,我可以将任意工具插入每个figure
图形中,这些工具可帮助计算该图形的 XY 范围的分页/标题背面到右页跨度。
如果我遗漏了一些有助于我理解的内容,请发表评论。
谢谢。
回购步骤:
$ xelatex mwe.tex
\documentclass[12pt,twocolum]{book}
\usepackage{float}
\usepackage{lipsum}
% ...
\begin{document}
% ...
\mainmatter
\twocolumn
\chapter{Hook, Line, Sinker}
% The figure pertaining to Alpha
\begin{figure}[H] {\textbf{Alpha}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Beta
\begin{figure}[H] {\textbf{Beta}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Gamma
\begin{figure}[H] {\textbf{Gamma}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Delta
\begin{figure}[H] {\textbf{Delta}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Epsilon
\begin{figure}[H] {\textbf{Epsilon}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Zeta
\begin{figure}[H] {\textbf{Zeta}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Eta
\begin{figure}[H] {\textbf{Eta}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Theta
\begin{figure}[H] {\textbf{Theta}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Iota
\begin{figure}[H] {\textbf{Iota}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Kappa
\begin{figure}[H] {\textbf{Kappa}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Lambda
\begin{figure}[H] {\textbf{Lambda}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Mu
\begin{figure}[H] {\textbf{Mu}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Nu
\begin{figure}[H] {\textbf{Nu}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Xi
\begin{figure}[H] {\textbf{Xi}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Omicron
\begin{figure}[H] {\textbf{Omicron}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Pi
\begin{figure}[H] {\textbf{Pi}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Rho
\begin{figure}[H] {\textbf{Rho}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Sigma
\begin{figure}[H] {\textbf{Sigma}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Tau
\begin{figure}[H] {\textbf{Tau}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Upsilon
\begin{figure}[H] {\textbf{Upsilon}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Phi
\begin{figure}[H] {\textbf{Phi}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Chi
\begin{figure}[H] {\textbf{Chi}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Psi
\begin{figure}[H] {\textbf{Psi}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
% The figure pertaining to Omega
\begin{figure}[H] {\textbf{Omega}}\\ \lipsum[75] \caption{Foo, bar}
\end{figure}
\end{document}
密切相关?
我在手册的哪里可以找到关于计算页面中某些参考/标签第一次出现的指导。
迷你 MWE(伪代码)将像这样运行:
\newcomamnd{\TestFirstOnPage[1]{%
% Do something to test if #1 has been on this page yet?
% Or rather, some code that can test a counter that has the min/max
% value in the given page where it is used?
% If so, print winner-chicken-dinner #1
% else, wompwomp #1
}
% ...
\begin{document}
\TestFirstOnPage{Foo}
\TestFirstOnPage{Bar}
\TestFirstOnPage{Foo}
% ...
\end{document}
渲染
winner-chicken-dinner Foo
winner-chicken-dinner Bar
wompwomp Foo