“bigfoot” 中带有“\FN@beforebreak”的不需要的垂直空格

“bigfoot” 中带有“\FN@beforebreak”的不需要的垂直空格

我使用它bigfoot来创建两种类型的脚注。我还想在长脚注延续到下一页时放置点(\FN@beforebreak)。我使用它\raisebox{12pt}[0pt][0pt],它的高度应该是 0。但在脚注分隔符后仍会出现垂直空间。

平均能量 (背面):

\documentclass{article}
\usepackage{blindtext}
\usepackage{bigfoot}

\DeclareNewFootnote{default}
\DeclareNewFootnote{B}[alph]

\setlength{\skip\footinsB}{0pt}

% fix bug in bigfoot 2015/08/30 2.1
% see https://tex.stackexchange.com/questions/471379/footnote-marks-missplaced-with-bigfoot/
\usepackage{xpatch}
\makeatletter
\patchcmd\FN@allmarks{266}{256}{}{\fail}

\renewcommand\FN@beforebreak{\hbox{%
\raisebox{12pt}[0pt][0pt]{\hspace\textwidth~\dots{}}%
}}
\makeatother

\begin{document}
\Blindtext[1][1]
\blindtext[1]\footnote{\Blindtext[3][2] New line}
Some words\footnoteB{See the vertical space}
\Blindtext[2][1]
Text\footnoteB{no vertical space}

\end{document}

休息前预览:

在此处输入图片描述

不间断预览:

在此处输入图片描述

答案1

问题是 beforebreak 标记排版在文本下方的行上。是的,您可以使用它向上移动一行,\raisebox但那行多余的行仍然存在。这里有两个版本,它们垂直退格以隐藏该空白行。

首先,在点后备份

\renewcommand\FN@beforebreak{\hbox{%
  \raisebox{12pt}[0pt][0pt]{\hspace\textwidth~\dots{}}%
}\vspace*{-12pt}}

或者在点前后退,而不是抬起它们

\renewcommand\FN@beforebreak{\vskip-12pt
  \rlap{\hspace\textwidth~\dots}%
}

可能最令人满意的是完全避免行间跳跃,而不是删除它

\renewcommand\FN@beforebreak{\begingroup\nobreak
  \baselineskip\z@skip \lineskiplimit-\maxdimen
  \rlap{\hspace\textwidth~\dots}%
\endgroup}

在前两个定义中,我假设行距为 12pt,就像问题中那样。第三个替代方案的优点是不需要这样的假设。

相关内容