我有一些代码,当我使用时\\*
,它会导致一些东西变得不对齐,但是当我使用时\\
,对齐是正确的。
有什么不同?
答案1
该\\
命令是 LaTeX 最常重载的命令之一,即其实际定义取决于使用它的地方。
根据 Leslie Lamport 的 LaTeX 手册(应被视为此处的真相来源),其一般定义是
\\
产生明确的换行符(或指示一行的结束等)\\*
在此处产生换行但不分页
任一变体都可以使用可选参数在行或列后添加额外的空间。整个核心 LaTeX 都支持此语法,即使在技术上不可能有分页符的地方(例如在 内tabular
),您仍然可以书写\\*
而不会遇到问题。
在核心 LaTeX 中,该命令受 、 、 、 、 、 、array
等tabular
环境tabbing
和eqnarray
等center
命令flushleft
支持,也许还有其他命令。当然,它在普通段落文本中也受支持。但它确实有flushright
verse
\shortstack
\author
不同的内部定义在大多数这些地方。
\\
在标准 LaTeX 中,和之间可能会有空格(甚至换行符),*
这有时会让人大吃一惊。因此,在其数学环境(如等)中amsmath
重新定义,以便仅在紧随其后时才识别 。\\
align
*
现在,鉴于这\\
是一条如此简短的命令,其他软件包也采用了它,因此您可能会发现\\
其他软件包中对它的重新定义更多。理想情况下(假设它也用于指示“行/行中断”),所有这些附加组件都应遵循 LaTeX 示例并提供相同的语法,即支持表单*
和一个可选参数。但是,不能保证始终这样做。如果没有,我建议写信给软件包作者并要求完全支持标准 LaTeX 语法。毕竟,如果有人编写了superdupertabular
但这样做的方式使得您无法将标准主体tabular
不加改变地放入其中,那么这就没有那么有用了。
答案2
\\*
开始换行但避免开始新页面,即它相当于\\
紧接着\nopagebreak
。参见\newline 和 \\ 之间有什么区别?更多细节。
(根据以下评论的建议,\nobreak
由进行了修改)\nopagebreak