.png)
Извините, что мне снова приходится спрашивать в новом посте, но моя репутация недостаточно высока, чтобы написать комментарий.
У меня проблема со стилем classicthesis. Название одного раздела слишком длинное для одной строки, что вызывает проблемы в заголовке. Я пытался исправить это с помощью нового заголовка с использованием \sectionmark, но это работает только для следующих страниц, а не для страницы, где раздел встречается впервые. В Toc должна отображаться обычная длинная версия раздела.
Я понял, что 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 примера выше.
AFAIK 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}