我正在尝试使用字典样式的范围作为页眉titlesec
,但如果给定页面上只有一个范围,则在尝试折叠它们时遇到问题。
这文档这表明这是可能的,但也非常模糊:
“当然,如果页面中只有一个部分,则应该对这个例子进行微调以折叠范围,但它提示了如何获得令人惊叹的标题。”
给出以下代码,我希望第二页的页眉显示“3”而不是“3-3”。为什么不起作用ifstrequal
?
\documentclass[]{书} \usepackage{lipsum} \usepackage[pagestyles]{titlesec} \usepackage{etoolbox} \renewcommand{\thesection}{\arabic{section}} \newpagestyle{页面样式}{ \sethead[\ifstrequal{\toptitlemarks\thesection}{\bottitlemarks\thesection}{\toptitlemarks\thesection}{\toptitlemarks\thesection---\bottitlemarks\thesection}] [] [] {} {} {\ifstrequal{\toptitlemarks\thesection}{\bottitlemarks\thesection}{\toptitlemarks\thesection}{\toptitlemarks\thesection---\bottitlemarks\thesection}} } \pagestyle{页面样式} \开始{文档} \部分{} \lipsum[1-2] \部分{} \lipsum[1] \部分{} \lipsum[1-6] \部分{} \lipsum[1-2] \结束{文档}
答案1
这是一个解决方案。titleps 的文档
切换机制的一个缺点是,比较来自顶部标记和底部标记的命令并不是一件容易的事。这个宏只是让它变得更简单。如果你想将当前命令
\thesection
与顶部标记中的命令进行比较,请写:\ifsamemark\toptitlemarks\thesection{<true>}{<false>}
\documentclass[]{book}
\usepackage{lipsum}
\usepackage[pagestyles]{titlesec}
\usepackage{etoolbox}
\renewcommand{\thesection}{\arabic{section}}
\newpagestyle{pagestyle}{
\sethead[\ifsamemark\toptitlemarks\thesection{\ifsamemark\bottitlemarks\thesection{\toptitlemarks\thesection}{\toptitlemarks\thesection---\bottitlemarks\thesection}}{\toptitlemarks\thesection---\bottitlemarks\thesection}]
[]
[]
{}
{}
{\ifsamemark\bottitlemarks\thesection{\ifsamemark\toptitlemarks\thesection{\toptitlemarks\thesection}{\toptitlemarks\thesection---\bottitlemarks\thesection}}{\toptitlemarks\thesection---\bottitlemarks\thesection}}
}
\pagestyle{pagestyle}
\begin{document}
\section{}
\lipsum[1-2]
\section{}
\lipsum[1]
\section{}
\lipsum[1-6]
\section{}
\lipsum[1-2]
\end{document}