классическая проблема тезиса (слишком длинный заголовок)

классическая проблема тезиса (слишком длинный заголовок)

Извините, что мне снова приходится спрашивать в новом посте, но моя репутация недостаточно высока, чтобы написать комментарий.

У меня проблема со стилем 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}

Связанный контент