Nopagebreak nopagebreak nopagebreak - 为什么 LaTeX 不听我的话?

Nopagebreak nopagebreak nopagebreak - 为什么 LaTeX 不听我的话?

有趣的是,我正在为课堂制作(手动)讲座幻灯片索引(与 latex、ppt 文件完全不同),当然 latex 坚持在我的项目中随意放置分页符。为什么没有像 Word 2007(以及我认为的所有其他版本)中那样的“将(段落)保留在下一个(段落)”选项。Word 真的比 Latex 更强大吗 [就段落流这一特定属性而言]?

*full page before here*
Knowledge in the \nopagebreak\\
\nopagebreak
\nopagebreak - Head

结果是

*full page*
Knowledge in the 
---8<--- Next page
- Head ... 

是的,我知道我可以在行\newpage前放置一个将其推至下一页,但必须有一种方法让 Latex 明白这不是我想要的,这两条线应该粘在一起!

编辑:完整上下文:

*empty line*
Knowledge in the \\
- Head \slid{44, 69}
- World \slid{5, \textbf{44}, 66, 69, 84}
*empty line*

滑动如下:

\newcommand{\slid}[1]{\dotfill #1 \nopagebreak\\}

似乎是 -World 行将 -Head 行拉下,如果我在它们之间添加一个空行,那么 Knowledge.. 和 -Head 都会停留在同一页,而 -World 则停留在下一页。但是当我将两者合并时,只有 -Head 被拉到新页面,而 Knowledge... 仍停留在上一页。

答案1

如果“- Head -”是正常的文本行,则\\*应该可以工作。如果不是,我们需要知道它是什么。在很多情况下\@afterheading可以使用解决方案,例如:

\makeatletter 
\def\mynobreakpar{\par\nobreak\@afterheading} 
\def\mynobreakline{\par\nobreak\vspace{-\parskip}\@afterheading\noindent} 
\makeatother

答案2

您可以使用minipage环境或\parbox。它们不会跨页面损坏。

此外,LaTeX 提供了\samepage可用作环境的命令:\begin{samepage}...\end{samepage}。但我不会使用,samepage因为它依赖于设置惩罚。

此外,needspace在这种情况下,包通常很方便。

答案3

您也可以使用 samepage 执行此操作:

*full page before here*
\begin{samepage}
Knowledge in the \\

- Head
\end{samepage}

答案4

你试过了吗\nopagebreak[4]?至于你问题的第二部分

Word 真的比 Latex 更强大吗?

绝对无法与 LaTeX 相比。Word 生成的文档丑陋、无结构,经常崩溃,会吞噬您的文件,而且您必须recover,不了解排版规则,而且您必须支付licence。与 LaTeX 不同,它处理单词而不是排版书籍、文章或其他结构化文档。

相关内容