如何防止脚注在页面顶部留下空白?

如何防止脚注在页面顶部留下空白?

我的文档末尾有一长串脚注(而不是放在引用它们的页面底部),虽然现在看起来差不多没问题,但问题是,当脚注的第一页写满时,这些脚注会继续写在下一页,但底部对齐在第二页上,在上面留出一个空白区域,大概是用于内容(但实际上没有内容)。这看起来很愚蠢,因为这些页面只用于脚注,尽管我理解底部对齐,但由于没有内容,也许不应该有空白?

我该如何排版这些?我当前的源代码如下:

\footnotetext[1]{A footnote.}
\footnotetext[2]{Another footnote.}
\footnotetext[2]{And so on...}

在某些时候,上述序列会产生新页面。我使用的是 XeTex,没有覆盖任何东西,但我愿意包含额外的包,例如footmisc和什么,或者可能覆盖命令或类似方法。但是,我仍然相信这个问题有简单的解决方案?有没有某种控件可以允许专用的脚注页面?

答案1

修订的解决方案(headnotes环境)

我创建了一个headnotes环境,它试图模拟脚注的外观,但从页面顶部开始(并独自占据整个页面)。我的定义(article类)中有一些特定于类的尺寸,可能需要为其他文档类重新校准。

在这个 MWE 中,我有 2 页文本,后面是 2 页脚注、2 页头注,最后还有 2 页文本,目的是比较边距位置、页码位置、标尺位置等。

\documentclass{article}
\usepackage{everypage}
\usepackage[nopar]{lipsum}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newlength\svparindent
\newenvironment{headnotes}%
  {\svparindent=\parindent\relax\gdef\headruleactive{T}\headnoterule}%
  {\atxy{0in}{0in}{\gdef\headruleactive{F}}}
\newcommand\headnoterule{%
 \AddEverypageHook{\if T\headruleactive%
    \atxy{\dimexpr\PageLeftMargin+\oddsidemargin}%
      {\dimexpr\PageTopMargin+\headsep+\headheight+\topmargin+1pt}%
      {\rule{32ex}{.4pt}}% THIS EMULATES THE \footnoterule
    \addtolength{\textheight}{-1.2ex}\addtolength{\headsep}{1.2ex}%
    \addtolength{\footskip}{-1.2ex}%
  \fi}}
\newcommand\atxy[3]{%
 \AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
  \raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
\def\headruleactive{F}
\newcounter{headnote}
\refstepcounter{headnote}
\newcommand\headnote[2][]{\parindent=\dimexpr\svparindent-4pt\relax%
  \footnotesize$^\theheadnote$#2\par\refstepcounter{headnote}}
\begin{document}

\lipsum[1-6]\clearpage
\footnotetext[1]{This is my footnote}
\footnotetext[2]{\lipsum[1]}
\footnotetext[3]{\lipsum[2]}
\footnotetext[4]{\lipsum[3-5]}
\footnotetext[5]{\lipsum[2]}
\footnotetext[6]{\lipsum[3-5]}
\footnotetext[7]{\lipsum[2]}
\footnotetext[8]{\lipsum[3-5]}
\clearpage

\begin{headnotes}
\headnote{This is my headnote}
\headnote{\lipsum[1]}
\headnote{\lipsum[2]}
\headnote{\lipsum[3-5]}
\headnote{\lipsum[2]}
\headnote{\lipsum[3-5]}
\headnote{\lipsum[2]}
\headnote{\lipsum[3-5]}
\end{headnotes}

\clearpage \lipsum[1-6]
\end{document}

原始解决方案(人工干预)

虽然它不是完全自动化的,但您可以将适当的内容添加\vspace到最后一个脚注的末尾。如果注释回到页面底部,您就会知道是否添加了太多内容。

\documentclass{article}
\usepackage[nopar]{lipsum}
\begin{document}

\footnotetext[1]{This is my footnote}

\footnotetext[2]{\lipsum[1]}

\footnotetext[3]{\lipsum[2]}

\footnotetext[4]{\lipsum[3-5]}

\footnotetext[5]{\lipsum[2]}

\footnotetext[6]{\lipsum[3-5]}

\footnotetext[7]{\lipsum[2]}

\footnotetext[8]{\lipsum[3-5]\vspace{2.9in}}

\end{document}

相关内容