![脚注中的 \\* 有效果吗?](https://linux22.com/image/288681/%E8%84%9A%E6%B3%A8%E4%B8%AD%E7%9A%84%20%5C%5C*%20%E6%9C%89%E6%95%88%E6%9E%9C%E5%90%97%EF%BC%9F.png)
有人教导说,这\\*
是换行的替代方法\\
,它试图(通常不成功)阻止分页。通常\\*
会在普通(“正文”)文本中使用。
(我在此确认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}