据我所知,\\
和\newline
都插入一个新行。但它们没有相同的扩展,并且跟踪显示它们不执行相同的命令,那么它们有什么区别?
答案1
从使用角度来看,\\
和之间有区别\newline
:
-
告诉 LaTeX 开始新行。此命令有星号版本,并带有可选参数:
\\*
:类似于,\\
但也通过发出 来告诉 LaTeX 不要在该行之后开始新页面\nobreak
。\\[<len>]
:指定<len>
在下一行之前插入的垂直空间。也可以是负数。
以上两种方法也可以混合使用。即同时使用星号 + 可选参数组合
\\*[<len>]
。 -
与 相同
\\
,但不带星号。
从技术角度来看(latex.ltx
),这些命令定义如下,证明了\\
(无星号且没有可选参数) 和之间的相似性\newline
:
\DeclareRobustCommand\\{%
\let \reserved@e \relax
\let \reserved@f \relax
\@ifstar{\let \reserved@e \vadjust \let \reserved@f \nobreak \@xnewline}%
\@xnewline}
\expandafter\let\expandafter\@normalcr
\csname\expandafter\@gobble\string\\ \endcsname
\DeclareRobustCommand\newline{\@normalcr\relax}
LaTeX 还会\\
根据您使用的环境重新定义其他含义。例如,在array
ortabular
环境中,常用的含义\\
与在常规文本中使用时的含义略有不同。