我有一个twosided
文档,其中我使用 fancyhdr 包自定义页脚。奇怪的是,包含章节/节信息的内部页脚和包含页码的外部页脚在垂直方向上不对齐。页码总是高于文本。但是,如果我使用 fancyhead 而不是 fancyfoot,则页眉中的所有内容都完美对齐!不知道为什么这在页脚中不起作用。
有人可以帮忙吗?
我附上了一个简短的脚本来展示这个问题。为了方便起见,页眉和页脚都是活动的,以显示差异。
提前感谢您的反馈!
佩特拉
\documentclass[a5paper,twoside,11pt,openany,DIV=calc,ngerman,twocolumn,xcolor=dvipsnames]{scrbook}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\newcommand{\lkopf}[2]{\markboth{\ref{#1} #2}{}}
\newcommand{\rkopf}[2]{\markright{\ref{#1} #2}}
\fancypagestyle{plain}{ %
\fancyhf{} % remove everything
\renewcommand{\headrulewidth}{0pt} % remove lines as well
\renewcommand{\footrulewidth}{0pt}
\fancyfoot[LE,RO]{\thepage}
}
\fancypagestyle{myheadings}{
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[RE]{\leftmark}
\fancyhead[LO]{\rightmark}
\fancyfoot[LE,RO]{\thepage}
\fancyfoot[RE]{\leftmark}
\fancyfoot[LO]{\rightmark}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
}
\pagestyle{myheadings}
\begin{document}
\chapter*{Greetings}
\label{kap:greetings}
\lkopf{kap:greetings}{Greetings}
\twocolumn[
\section*{Greetings A}\label{gruss_A}
]
\rkopf{gruss_A}{Mr. A}
\lipsum
\lipsum
\lipsum
\lipsum
\twocolumn[
\section*{Greetings B}\label{gruss_B}
]
\rkopf{gruss_B}{Mr. B}
\lipsum[0]
\lipsum[100]
\end{document}
答案1
如果您使用页眉和页脚包,则不会出现此问题scrlayer-scrpage
。请注意,建议将其用于 KOMA-Script 类。
\documentclass[
paper=a5,
open=any,
DIV=calc,
ngerman,
twocolumn,
%xcolor=dvipsnames% unused/unknown option
]{scrbook}
\usepackage{lipsum}% only for dummy text
\usepackage{babel}
\usepackage[
manualmark,% set marks manually
headsepline=.5pt,
footsepline=.5pt
]{scrlayer-scrpage}
\clearpairofpagestyles
\ohead{\pagemark}
\ihead{\headmark}
\ofoot*{\pagemark}
\ifoot{\headmark}
\addtokomafont{pageheadfoot}{\normalfont}
\newcommand{\lkopf}[2]{\markboth{\ref{#1} #2}{}}
\newcommand{\rkopf}[2]{\markright{\ref{#1} #2}}
\begin{document}
\addchap*{Greetings}
\label{kap:greetings}
\lkopf{kap:greetings}{Greetings}
\twocolumn[
\addsec*{Greetings A}\label{gruss_A}
]
\rkopf{gruss_A}{Mr. A}
\lipsum
\lipsum
\lipsum
\lipsum
\twocolumn[
\addsec*{Greetings B}\label{gruss_B}
]
\rkopf{gruss_B}{Mr. B}
\lipsum[0]
\lipsum[100]
\end{document}
请注意,您使用的是未编号的章节和节。因此对这些章节和节的引用是空的。也许您想使用\nameref
?
示例:\nameref
\rkopf
\usepackage{nameref}
\newcommand{\lkopf}[2]{\markboth{\ref{#1} #2}{}}
\newcommand{\rkopf}[2]{\markright{\nameref{#1} #2}}
结果:
答案2
有一种方法可以解决这个问题,但我不知道为什么会发生这种情况,也许有人可以告诉我们发生了什么。一个可能的解决方案是将页眉和页脚的内容放在里面,\mbox
并将调整\fboxsep
为 0pt。
\setlength{\fboxsep}{0pt}
\newcommand{\lkopf}[2]{\markboth{\mbox{\ref{#1} #2}}{}}
\newcommand{\rkopf}[2]{\markright{\mbox{\ref{#1} #2}}}