我使用它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,就像问题中那样。第三个替代方案的优点是不需要这样的假设。