使用包输入文档titlesec, pagestyles
可以轻松标记第一的和最后的页眉中的章节标题。但如何显示全部页面中出现的分节标记与页眉有什么关系?谢谢!
这里是 MWE:
\documentclass[a4paper]{book}
\usepackage[pagestyles]{titlesec}
\newpagestyle{mapage}{%
\setheadrule{1pt}
\sethead[\color{red}\bfseries\toptitlemarks\sectiontitle--\bottitlemarks\sectiontitle][][\thepage/page header]
{\thepage/page header}{}{\color{red}\bfseries\toptitlemarks\sectiontitle--\bottitlemarks\sectiontitle}%odd head
\setfoot[][][]%even foot
{}{\thepage}{}
}
\usepackage{blindtext,multicol,xcolor}
\begin{document}
\pagestyle{mapage}
\begin{multicols}{3}
\section{AA}
\blindtext
\section{BB}
\blindtext
\section{CC}
\blindtext
\section{DD}
\blindtext
\section{EE}
\blindtext
\section{FF}
\section{GG}
\section{HH}
\blindtext
\section{II}
\section{JJ}
\section{KK}
\section{LL}
\end{multicols}
\begin{multicols}{3}
\section{MM}
\section{NN}
\section{OO}
\blindtext
\section{PP}
\section{QQ}
\section{RR}
\section{SS}
\section{TT}
\section{UU}
\blindtext
\section{VV}
\section{WW}
\section{XX}
\end{multicols}
\end{document}
答案1
我有一个使用的解决方案fancyhdr
,因为我对它比对 s 标头内容更熟悉titlesec
。我甚至不知道我的解决方案是否易于转换为titlesec
。
我的解决方案是将所有章节标题放入 LaTeX3 seq
(序列)中,并将章节标题的索引放入seq
标记中。然后,在页眉中,我从中提取页面第一个标记和最后一个标记之间的章节标题seq
。当然,这是通过一些 LaTeX3 编程完成的。
\documentclass[a4paper]{book}
\usepackage{fancyhdr}
\usepackage{extramarks}
\pagestyle{fancy}
\ExplSyntaxOn
\seq_new:N \section_list
\int_new:N \section_index
\renewcommand{\sectionmark}[1]{%
\seq_gput_right:Nn \section_list {#1}
\int_gincr:N \section_index
\markright{\int_use:N \section_index}
}
\fancyhead[LO,RE]{\thepage/page~header}
\fancyhead[LE,RO]{
\color{red}\bfseries
\seq_map_indexed_inline:Nn \section_list {
\int_compare:nNnF {##1} < {\firstrightmark} {
\int_compare:nNnTF {##1} < {\lastrightmark}
{##2--}
{
\int_compare:nNnT {##1} = {\lastrightmark}
{##2}
}
}
}
}
\ExplSyntaxOff
\usepackage{blindtext,multicol,xcolor}
\begin{document}
\begin{multicols}{3}
\section{AA}
\blindtext
\section{BB}
\blindtext
\section{CC}
\blindtext
\section{DD}
\blindtext
\section{EE}
\blindtext
\section{FF}
\section{GG}
\section{HH}
\blindtext
\section{II}
\section{JJ}
\section{KK}
\section{LL}
\end{multicols}
\begin{multicols}{3}
\section{MM}
\section{NN}
\section{OO}
\blindtext
\section{PP}
\section{QQ}
\section{RR}
\section{SS}
\section{TT}
\section{UU}
\blindtext
\section{VV}
\section{WW}
\section{XX}
\end{multicols}
\end{document}