发货时脚注的高度是多少?

发货时脚注的高度是多少?

假设我想在输出时绘制一条水平线,如果页面中有脚注,则该线位于脚注的顶部,否则位于文本的底部。我如何才能检索脚注部分的高度来实现这一点?

例如,以下内容在页面末尾放置一行(包括脚注):

\documentclass{article}
\usepackage{atbegshi}
\usepackage{picture}

\makeatletter
\AtBeginShipout{%
  \AtBeginShipoutUpperLeftForeground{%
    \dimen@i\topmargin\advance\dimen@i\headheight%
    \advance\dimen@i\headsep\advance\dimen@i 1in%
    \advance\dimen@i\textheight%
    \put(0, -\dimen@i){\line(1,0){2\textwidth}}}
}

\newcount\@cp
\def\copypasta#1#2{\@cp=0\loop\ifnum\@cp<#1 #2\advance\@cp by1\repeat}
\begin{document}
\copypasta{400}{white purple }
\footnote{Oh noes}
\copypasta{200}{brown fox }
\end{document}

谢谢!

答案1

从评论中摘录:

非答案:\ht\footins告诉您当前排队等待插入的脚注有多高,但这没有帮助,因为 (i) 如果此页面的脚注太多,其中一些可能会被推迟,并且 (ii) 在调用 shipout 钩子时,您感兴趣的脚注将从此寄存器中分离出来。但是,如果您可以得到\ht\footins插入前后的值之间的差异......

重新定义:是的,好主意。事实上,您可以通过在顶部\output放置一个来避免弄乱尺寸:\hrule\box\footins

\制作字母
\edef\@@output{\the\output}
\output={\setbox\footins=\vbox{\hrule 宽度 2in\unvbox\footins}
\@@输出}

相关内容