我遇到了一个非常奇怪的问题。我正在使用 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}}