\\* 起什么作用?

\\* 起什么作用?

我有一些代码,当我使用时\\*,它会导致一些东西变得不对齐,但是当我使用时\\,对齐是正确的。

有什么不同?

答案1

\\命令是 LaTeX 最常重载的命令之一,即其实际定义取决于使用它的地方。

根据 Leslie Lamport 的 LaTeX 手册(应被视为此处的真相来源),其一般定义是

  • \\ 产生明确的换行符(或指示一行的结束等)
  • \\* 在此处产生换行但不分页

任一变体都可以使用可选参数在行或列后添加额外的空间。整个核心 LaTeX 都支持此语法,即使在技术上不可能有分页符的地方(例如在 内tabular),您仍然可以书写\\*而不会遇到问题。

在核心 LaTeX 中,该命令受 、 、 、 、 、 、arraytabular环境tabbingeqnarraycenter命令flushleft支持,也许还有其他命令。当然,它在普通段落文本中也受支持。但它确实有flushrightverse\shortstack\author不同的内部定义在大多数这些地方。

\\在标准 LaTeX 中,和之间可能会有空格(甚至换行符),*这有时会让人大吃一惊。因此,在其数学环境(如等)中amsmath重新定义,以便仅在紧随其后时才识别 。\\align*

现在,鉴于这\\是一条如此简短的命令,其他软件包也采用了它,因此您可能会发现\\其他软件包中对它的重新定义更多。理想情况下(假设它也用于指示“行/行中断”),所有这些附加组件都应遵循 LaTeX 示例并提供相同的语法,即支持表单*和一个可选参数。但是,不能保证始终这样做。如果没有,我建议写信给软件包作者并要求完全支持标准 LaTeX 语法。毕竟,如果有人编写了superdupertabular但这样做的方式使得您无法将标准主体tabular不加改变地放入其中,那么这就没有那么有用了。

答案2

\\*开始换行但避免开始新页面,即它相当于\\紧接着\nopagebreak。参见\newline 和 \\ 之间有什么区别?更多细节。

(根据以下评论的建议,\nobreak由进行了修改)\nopagebreak

相关内容