fancyhdr 包中页脚的垂直对齐

fancyhdr 包中页脚的垂直对齐

我有一个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}}}

相关内容