Я немного запутался, как изменить заголовки, чтобы они подходили. Я хотел бы иметь заголовок, где на нечетных страницах номер страницы был справа, а название главы (не раздела) слева, а на четных страницах наоборот. Я использовал следующий код, но смог переместить номер страницы только с помощью %KernXXem - и это не подходит для каждого названия главы. Более того, номер главы просто не отображается. Я был бы очень рад, если бы кто-нибудь мог мне помочь, так как я все еще учусь использовать latex. Заранее большое спасибо! :
\PassOptionsToPackage{headsepline, automark}{scrlayer-scrpage}
\setkomafont{pageheadfoot}{\normalfont} % Kapielname u.ä. nicht kursiv in Kopfzeile
\usepackage[automark,headsepline=.4pt]{scrlayer-scrpage}
\RequirePackage{scrlayer-scrpage} % provides headers and footers (KOMA Script)
\clearpairofpagestyles
\let\MakeMarkcase\spacedlowsmallcaps
\ifthenelse{\boolean{ct@nochapters}}%
{\relax}%
{\renewcommand{\chaptermark}[1]{\markboth{\spacedlowsmallcaps{#1}}{\spacedlowsmallcaps{#1}}}}
\renewcommand{\chaptermark}[1]{\markrboth{\textsc{\thechapter}\enspace\spacedlowsmallcaps{#1}\hline}
\automark[chapter]{chapter}
{\textsc{\thechapter}\enspace\spacedlowsmallcaps{#1}\hline}}
%links
\lehead{\mbox{\hfil{\small\pagemark\kern25em}\headmark\hfil}}
%rechts
\rohead{\mbox{\hfil{\small\headmark\kern25em\pagemark}}}
\ofoot[\small\pagemark]{}% only for plain.scrheadings page style (first page of a chapter)
\renewcommand{\headfont}{\small}
\DeclareRobustCommand{\fixBothHeadlines}[2]{} % <--- ToDo
\def\toc@heading{%
\ifthenelse{\boolean{ct@nochapters}}%
{\chapter*{\contentsname}}%chapters
\@mkboth{\spacedlowsmallcaps{\contentsname}}{\spacedlowsmallcaps{\contentsname}}}
решение1
Главу с номером слева от верхнего колонтитула и номером страницы справа от верхнего колонтитула можно создать с помощью:
\usepackage{scrlayer-scrpage}
\automark[chapter]{chapter}
\clearpairofpagestyles
\ihead{\headmark}
\ohead*{\pagemark}
Чтобы добавить горизонтальную линию под заголовком, просто добавьте option headsepline
и, возможно, option plainheadsepline
.
Для дополнительного изменения регистра знаков вы действительно можете переопределить \MakeMarkcase
. Кажется, вы ищете что-то вроде:
\usepackage{microtype}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textsc{\textls[80]{\MakeLowercase{#1}}}}
\AtBeginDocument{\let\MakeMarkcase\spacedlowsmallcaps}
Но чтобы изменить только шрифт, вы действительно можете использовать \setkomafont{…}{…}
или \addtokomafont{…}{…}
, например:
\setkomafont{pageheadfoot}{}
Примечание: \normalfont
это уже база, поэтому я ее сюда не добавлял.
В целом, похоже, вы ищете что-то вроде:
\documentclass[headsepline]{scrbook}
\usepackage{blindtext}
\usepackage{microtype}
\DeclareRobustCommand{\spacedlowsmallcaps}[1]{\textsc{\textls[80]{\MakeLowercase{#1}}}}
\usepackage{scrlayer-scrpage}
\automark[chapter]{chapter}
\clearpairofpagestyles
\ihead{\headmark}
\ohead*{\pagemark}
\setkomafont{pageheadfoot}{}
\AtBeginDocument{\let\MakeMarkcase\spacedlowsmallcaps}
\begin{document}
\blinddocument
\end{document}
Если вы также хотите, чтобы заголовок отображался на начальных страницах глав, вам нужен класс (например, классы KOMA-Script), который это поддерживает, например, добавьте
\renewcommand*{\chapterpagestyle}{headings}
к преамбуле документа примера выше, чтобы получить:
вместо номера страницы только на начальной странице главы.
См. «Верхние и нижние колонтитулы с scrlayer-scrpage
» вКОМА-Скриптруководства, а также«Как изменить заголовок и конец страницы»в вики KOMA-Script для получения дополнительной информации об использовании scrlayer-scrpage
. См. такжеscrlayer-scrpageтег здесь. Уже есть несколько вопросов и ответов по этому поводу.