如何使页脚移动到正文下方

如何使页脚移动到正文下方

如果您仔细查看下面 MWE 的第 20、25、26、31、32、37 和 41 页,您会发现正文和页码(在页脚中)之间有相当大的空白。除了第 41 页之外,在所有这些情况下,这个空白都是由于包nowidow操作而页脚保持在同一位置。(在第 41 页,出现这个空白只是因为文本在到达页脚之前就结束了。)

我希望正文和页脚之间不要有那么大的空间,即使是在第 41 页这样的页面上。有没有办法通过在必要时使页脚上升到正文底部以下来防止出现这种空间?(最好是一种自动且兼容的方式nowidow。)

设置footskip=0cm使geometry我更接近期望的结果,但显然还不够。

我正在使用 XeLaTeX。

为了便于理解,我附上了一张我想要实现的效果的照片,这张照片是从乔伊斯的一本旧书上取下来的。艺术家年轻时的肖像,希望这能有所帮助。我把书页举起来,让充足的光线照进来。透过书页,你可以看到页脚编号 [ 232 ] 大约在页脚编号 [ 231 ] 下面一行,因为每个页脚都尽可能紧跟在正文之后。(这并不是说这本书没有孤行或寡行。)

在此处输入图片描述

%%%%% Preamble

%%% Document class, packages

\documentclass{book}
\usepackage[paperwidth=4.25in, paperheight=5.5in, footskip=0cm]{geometry}
\usepackage[skip=0pt, indent=20pt]{parskip}
\usepackage{fancyhdr}
\usepackage{microtype}
\usepackage{titlesec}
\usepackage[all]{nowidow} % Eliminates orphans and widows
\usepackage{lipsum}

\emergencystretch 30pt % Causes text to better heed margin

%%% Fancy headers

\fancyhf{}
\pagestyle{fancy}
\renewcommand\headrulewidth{0pt}
\fancyfoot[CE,CO]{{\small[} \oldstylenums{\thepage} {\small]}}

%%%%% Document

\begin{document}

\lipsum[1-70]

\end{document}

答案1

虽然fancyhdr做了一些奇怪的事情(似乎它\baselineskip在页脚中排版了一个至少带有其他内容的框),我被黑客入侵下列:

  1. 隐藏文本的高度在页脚中;
  2. 取消跳过基线(但留下了 3.6pt 的额外空间,我不知道它们是从哪里来的)
  3. 现在您可以使用footskip参数来移动页脚。
\documentclass{book}
\usepackage[paperwidth=4.25in, paperheight=5.5in, footskip=8pt, showframe]{geometry}
\usepackage[skip=0pt, indent=20pt]{parskip}
\usepackage{fancyhdr}
\usepackage{microtype}
\usepackage{titlesec}
\usepackage[all]{nowidow} % Eliminates orphans and widows
\usepackage{lipsum}

\emergencystretch 30pt % Causes text to better heed margin

%%% Fancy headers
\usepackage{adjustbox}
\fancyhf{}
\pagestyle{fancy}
\renewcommand\headrulewidth{0pt}
\fancyfoot[CE,CO]{\raisebox{0pt}[0pt][0pt]{%
    {\small[} \oldstylenums{\thepage} {\small]}
}%
\par\vspace*{-\baselineskip}}

%%%%% Document

\begin{document}

\lipsum[1-70]

\end{document}

在此处输入图片描述

答案2

这显示了如何将页脚升高到超出 fancyhdr 允许的范围。

\documentclass{book}
\usepackage[paperwidth=4.25in, paperheight=5.5in, footskip=\baselineskip,showframe]{geometry}
\usepackage[skip=0pt, indent=20pt]{parskip}
\usepackage{fancyhdr}
\usepackage{microtype}
\usepackage{titlesec}
\usepackage[all]{nowidow} % Eliminates orphans and widows
\usepackage{lipsum}

\emergencystretch 30pt % Causes text to better heed margin

%%% Fancy headers

\fancyhf{}
\pagestyle{fancy}
\renewcommand\headrulewidth{0pt}
\fancyfoot[CE,CO]{\raisebox{\dp\strutbox}[0pt]{{\small[} \oldstylenums{\thepage} {\small]}}}

%%%%% Document

\begin{document}

\vspace*{\fill}Normal text positioning (baseline).\pagebreak

\lipsum[1-70]

\end{document}

相关内容