使用 scrlayer-scrpage 增加 \footheight

使用 scrlayer-scrpage 增加 \footheight

我遇到了一个非常奇怪的问题。我正在使用 scrlayer-scrpage 生成页眉和页脚。对于页眉,一切都运行良好,但对于页脚,在每个下一页上,页脚高度都会变大(见示例)。这可能是什么原因?...

\documentclass{scrartcl}

\usepackage[headsepline]{scrlayer-scrpage}
\ifoot[\the\footheight\quad\rule{2px}{\footheight}]{\the\footheight\quad\rule{2px}{\footheight}}

\usepackage{lipsum}
\title{test}

\begin{document}

\lipsum[1-40]

\end{document}

在此处输入图片描述

答案1

\footheight是脚的总高度,包括高度(底线以上的空间)脚的深度(底线以下的空间)。

您的规则从基线开始。因此,脚的高度必须至少是您的规则的高度加上 的深度\strutbox。因此,scrlayer-scrpage将前者放大\footheight\dp\strutbox在下一页上,您的规则再次从基线开始,因此将上一页的再次scrlayer-scrpage放大...\footheight\dp\strutbox

您可以通过以下方式下移规则\dp\strutbox

\documentclass{scrartcl}
\usepackage[headsepline]{scrlayer-scrpage}

\ifoot*{\the\footheight\quad\rule[-\dp\strutbox]{2px}{\footheight}}

\usepackage{lipsum}
\begin{document}
\lipsum[1-40]
\end{document}

在此处输入图片描述

或者你必须缩短规则\dp\strutbox

\documentclass{scrartcl}
\usepackage[headsepline]{scrlayer-scrpage}

\ifoot*{\the\footheight\quad\rule{2px}{\dimexpr\footheight-\dp\strutbox\relax}}

\usepackage{lipsum}
\begin{document}
\lipsum[1-40]
\end{document}

在此处输入图片描述

或者你可以使用隐藏规则的高度\smash

\documentclass{scrartcl}
\usepackage[headsepline]{scrlayer-scrpage}

\ifoot*{\the\footheight\quad\smash{\rule{2px}{\footheight}}}

\usepackage{lipsum}
\begin{document}
\lipsum[1-40]
\end{document}

在此处输入图片描述


注意

\ifoot*{\the\footheight\quad\rule[-\dp\strutbox]{2px}{\footheight}}

\ifoot
  [{\the\footheight\quad\rule[-\dp\strutbox]{2px}{\footheight}}]
   {\the\footheight\quad\rule[-\dp\strutbox]{2px}{\footheight}}

相关内容