我是新来的,我遇到了一个问题,尽管使用了 Google 和 Co,但我自己还是无法解决。
到目前为止,我创建了一个标题,它由双面文档左侧的当前章节名称和右侧页面上的节名称以及标题分隔线组成。
下面的代码显示了使用的 KomaOptions\usepackage{scrlayer-scrpage}
\KOMAoptions{automark
headsepline=true, % header line
footsepline=false, % footer line
cleardoublepage=plain, % set empty pages to style 'plain'
plainheadsepline=false, % activate header line for plain pages
plainfootsepline=false} % activate footer line for plain pages
\pagestyle{scrheadings}
\clearscrheadfoot
\lehead{\headmark{}}
\rohead{\headmark{}}
\ofoot*{\pagemark}
但是,如果文档左页没有打印章节名称,该如何去掉页首分隔线呢?下面的图片可以说明这个问题。
第一个没问题,因为它至少包含一个部分名称。
第二张图,打印头分离线。如何去除它?
这里是 MWE
\documentclass[twoside]{scrbook}
\usepackage{lipsum}
\usepackage[automark]{scrlayer-scrpage} % Koma header and footer package
\KOMAoptions{headsepline=true, % header line
footsepline=false, % footer line
cleardoublepage=plain, % set empty pages to style 'plain'
plainheadsepline=false, % activate header line for plain pages
plainfootsepline=false} % activate footer line for plain pages
\pagestyle{scrheadings}
\clearscrheadfoot
\lehead{\headmark{}}
\rohead{\headmark{}}
\ofoot*{\pagemark}
\begin{document}
\chapter{Test}
\lipsum
\lipsum
\chapter{Anhang}
\lipsum
\section{Infos}
\lipsum
\end{document}
答案1
下面检查\headmark
宽度是否为 0pt,如果是,则将颜色更改headsepline
为白色:
\documentclass[twoside]{scrbook}
\usepackage[automark]{scrlayer-scrpage}
\usepackage{xcolor}
\KOMAoptions{%
headsepline=true, % header line
footsepline=false, % footer line
cleardoublepage=plain, % set empty pages to style 'plain'
plainheadsepline=false, % activate header line for plain pages
plainfootsepline=false} % activate footer line for plain pages
\pagestyle{scrheadings}
\clearscrheadfoot
\newcommand*{\specialheadmark}{%
\setbox0\hbox{\headmark}%
\ifdim\wd0=0pt\relax%
\global\setkomafont{headsepline}{\color{white}}%
\else%
\global\setkomafont{headsepline}{\color{black}}%
\fi%
\unhbox0%
}
\lehead{\specialheadmark}
\rohead{\specialheadmark}
\ofoot*{\pagemark}
\usepackage{blindtext}
\begin{document}
\blinddocument
\chapter{Foo}
\clearpage
\blindtext
\clearpage
\blindtext
\clearpage
\blindtext
\end{document}
第 6 和 7 页:
答案2
以下是另一个建议,headsepline
即在页面\headmark
为空时禁用该功能:
\documentclass[twoside]{scrbook}
\usepackage[automark]{scrlayer-scrpage}% sets pagestyle scrheadings automatically
\KOMAoptions{headsepline=true}
\AddToLayerPageStyleOptions{scrheadings}
{oninit={% will be excecuted whenever the output of the layers is initialized
\ifstr{\headmark}{}{\KOMAoptions{headsepline=false}}{}%
}}
\clearpairofpagestyles
\ohead{\headmark}
\ofoot*{\pagemark}
\usepackage{blindtext}% only for dummy text
\begin{document}
\blinddocument
\chapter{Foo}
\Blindtext[20]
\blinddocument
\end{document}
请注意\clearscrheadfoot
是过时软件包的命令scrpage2
。它仅出于兼容性原因才起作用。我已将其替换为\clearpairofpagestyles
。