脚注中的 \\* 有效果吗?

脚注中的 \\* 有效果吗?

有人教导说,这\\*是换行的替代方法\\,它试图(通常不成功)阻止分页。通常\\*会在普通(“正文”)文本中使用。

(我在此确认egreg用户警告\\*不应使用”。)

那么脚注呢?在脚注中使用\\*Instead of是否有任何效果?\\(那又怎么样\nopagebreak?)

询问\\*在脚注中是否像在正文中一样起作用的理由是,根据对 LaTeX 的简单但明智的理解,有人可能会认为“一页只有一个分页符,因此这可能是正文中的分页符,而不是某些脚注内的任何内容”。

在下面的代码中

\documentclass{article}
\usepackage{lipsum}


\begin{document}

\lipsum[1-4]\footnote{
  no asterisk \\ asterisk \\*
  no asterisk \\ asterisk \\*
  no asterisk \\ asterisk \\*
  no asterisk \\ asterisk \\*
  no asterisk \\ asterisk \\*
  % the pagebreak happens here
  last line}
\lipsum[5]

\end{document}

使用\\*似乎没有效果(这与我\\在所有五个地方使用的效果相同;请注意,仅保留第五个\\*也不能阻止该特定的分页符)

脚注内的分页符

但谁知道为什么。(我显示的是两个输出页面中第一页的左下角。)

答案1

该问题与脚注无关。这在我的答案派生问题接下来是该答案的缩短版本;这是一个适用于正文和脚注的修复程序:

问题在于自动插入的。它通常小于 10000,并且即使其前面有(= )\interlinepenalty也允许分页。\nobreak\penalty10000

下面使用了一种解决方法。不是结束行,而是结束段落。然后需要逆转和避免\parskip和的影响:\parindent

\documentclass{article}
\usepackage{lipsum}

\newcommand*{\NLS}{%
  \par
  \nobreak
  \vspace{-\parskip}%
  \noindent
  \ignorespaces
}

\begin{document}

\lipsum[1-4]\footnote{
  no asterisk \\ asterisk \NLS
  no asterisk \\ asterisk \NLS
  no asterisk \\ asterisk \NLS
  no asterisk \\ asterisk \NLS
  no asterisk \\ asterisk \NLS
  last line}
\lipsum[5]  

\end{document}

第1页 第2页

相关内容