很抱歉我不得不再次在新帖子中提问,但我的声誉不够高,无法发表评论。
我对 classicthesis 样式有疑问。一个部分的名称对于一行来说太长,这会导致页眉出现问题。我尝试使用 \sectionmark 创建一个新页眉来修复此问题,但这仅适用于后续页面,而不适用于该部分首次出现的页面。目录中应该显示该部分的正常长版本。
我得到的提示是 classicthesis 破坏了更改标题的可能性: https://tex.stackexchange.com/questions/295176/classicthesis-header-too-long
有人有办法解决这个问题吗?
\documentclass[headinclude,footinclude=true,cleardoublepage=empty,ngerman,american]{scrreprt}
\input{classicthesis-config}
\begin{document}
\pagestyle{scrheadings}
\chapter{Nice chapter}
\newpage
\section[short and nice]{overlong title} \sectionmark{short and nice}
\newpage
Useless text
\end{document}
答案1
因为classicthesis
使用包,titlesec
正常的 KOMA-Script 解决方案(使用选项headings=headings=optiontoheadandtoc
)不起作用。
如果你使用
\section{overlong title}\sectionmark{short}
首先,该\section
命令设置一个右标记,然后\sectionmark
设置一个新的右标记。但通常页面上的第一个右标记会转到页眉。因此,\sectionmark
仅在后续页面上更改页眉条目。
和
\let\rightmark\rightbotmark
在您的序言中,每一页都会使用最后一个右标记,而不是第一个右标记。
\documentclass[headinclude,footinclude=true,cleardoublepage=empty,ngerman,american]{scrreprt}
\usepackage{blindtext}% dummy text
\input{classicthesis-config}
\let\rightmark\rightbotmark
\begin{document}
\pagestyle{scrheadings}
\chapter{Nice chapter}
\Blindtext
\section{overlong title}\sectionmark{short}
\Blindtext[10]
\section{Test 1}
\section{Test 2}
\end{document}
但请注意,在包含两个或更多新部分的页面上,最后一个部分将位于页眉中,请参见上面示例的第 5 页。
据我所知,classicthesis
加载包scrlayer-scrheadings
。如果您只想用于\rightbotmark
某些部分标题,您可以定义新的页面样式:
\newpairofpagestyles[scrheadings]{userightbotmark}{\let\rightmark\rightbotmark}
并使用它
\section{overlong title}\sectionmark{short}\thispagestyle{userightbotmark}
代码:
\documentclass[headinclude,footinclude=true,cleardoublepage=empty,ngerman,american]{scrreprt}
\usepackage{blindtext}
\input{classicthesis-config}
\newpairofpagestyles[scrheadings]{userightbotmark}{\let\rightmark\rightbotmark}
\begin{document}
\pagestyle{scrheadings}
\chapter{Nice chapter}
\Blindtext
\section{overlong title}\sectionmark{short}\thispagestyle{userightbotmark}
\Blindtext[10]
\section{Test 1}
\section{Test 2}
\end{document}