我希望使用 将该部分显示在页眉中\automark
。但是,如果章节不包含部分,我希望该章节显示在页眉中。
我如何实现这个目标?
\documentclass[a4paper,headsepline,numbers=noenddot]{scrreprt}
\usepackage[english]{babel}
\usepackage{scrlayer-scrpage}
\usepackage{blindtext}
\renewcommand*{\chapterpagestyle}{empty}
\clearpairofpagestyles
\ihead{\headmark}
\ohead[]{\pagemark}
\automark[]{section}
\begin{document}
\chapter{Chapter 1}
\blindtext[10]
\chapter{Chapter 2}
\blindtext[12]
\section{Section 1}
\blindtext[14]
\chapter{Chapter 3}
\blindtext[10]
\end{document}
答案1
另外还有一个带星号的版本\automark
。
来自scrguien.pdf:
\automark
和之间的区别在于\automark*
,会删除或 的\automark
所有先前用法,而只会改变其参数的部分级别的行为。\automark
\automark*
\automark*
使用
\usepackage{scrlayer-scrpage}
\automark{chapter}
\automark*{section}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
只要出现第一节,该章节就会显示在标题中。
代码:
\documentclass[a4paper,headsepline,numbers=noenddot]{scrreprt}
\usepackage[english]{babel}
\usepackage{blindtext}
\usepackage{scrlayer-scrpage}
\automark{chapter}
\automark*{section}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\renewcommand*{\chapterpagestyle}{empty}
\begin{document}
\chapter{Chapter 1}
\blindtext[10]
\chapter{Chapter 2}
\blindtext[12]
\section{Section 1}
\blindtext[14]
\chapter{Chapter 3}
\blindtext[10]
\end{document}
答案2
在单面文档中,\section
命令不会发出\markright
。因此,在序言中添加以下几行
\renewcommand*{\sectionmark}[1]{%
\markright{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}#1}}%
}
同时删除以下行
\automark[]{section}
并加载scrlayer-scrpage
该automark
选项。
梅威瑟:
\documentclass[a4paper,headsepline,numbers=noenddot]{scrreprt}
\usepackage[english]{babel}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{blindtext}
\renewcommand*{\chapterpagestyle}{empty}
\clearpairofpagestyles
\ihead{\headmark}
\ohead{\pagemark}
\renewcommand*{\sectionmark}[1]{%
\markright{\MakeMarkcase{\ifnumbered{section}{\sectionmarkformat}{}#1}}%
}
\begin{document}
\chapter{Chapter 1}
\blindtext[10]
\chapter{Chapter 2}
\blindtext[12]
\section{Section 1}
\blindtext[14]
\chapter{Chapter 3}
\blindtext[10]
\end{document}
输出