更长的脚注规则关于继续脚注

更长的脚注规则关于继续脚注

在使用 LuaLaTeX 排版的文档中我有一个footnoterule定义

\def\footnoterule{
    \kern -3.25pt
    \hrule height .25pt depth 0pt width .5\hsize
    \kern 3pt
}

即其长度是文本宽度的一半。但是现在我被要求对几个很长的脚注进行修改,这些脚注超过两页或更多页,以便延续此类脚注的开头长度为文本宽度的 ¾(.75\hsize)。

我已经尝试过包footmisc并且它可以用于一个简单的测试用例但是它在我的文档中没有任何作用(我想它与其他一些包冲突了;该文档很大,超过一千页,并且使用了很多其他包和自定义宏)。

我完全不知道从哪里开始,所以非常感谢任何建议。

答案1

您可以例行测试脚注是否\box\fotins以粘连开头\output。如果不以粘连开头,则正常脚注位于脚注的顶部。否则,它以粘连开头\splittopskip,这表明脚注的延续位于此页面脚注的顶部。

实施方案如下:

\newif\ifnextfoot

\def\testcontinuefoot{
   \setbox0=\vbox{\unvcopy\footins
   \loop
       \global\dimen0=\lastskip
       \unskip\unskip\unpenalty
       \setbox0=\lastbox
       \unless\ifvoid0 
   \repeat
   }
   \ifdim\dimen0=0pt \nextfootfalse \else \nextfoottrue \fi
}
\def\footnoterule{
   \kern -3.25pt
   \hrule height .25pt depth 0pt width 
       \ifnextfoot.75\else.5\fi \hsize  % .75 or .5 \hsize
   \kern 3pt
}
\output={\testcontinuefoot \plainoutput}

当然,我的代码适用于普通 TeX,不适用于 LaTeX。您提到了 LuaLaTeX,也就是说我的代码不能直接满足您的需求。但这个想法是可以使用的。

相关内容