我如何知道要使用哪个版本的命令?

我如何知道要使用哪个版本的命令?

LaTeX 有很多命令的功能非常相似。这通常是因为其中一些命令已经过时了。

例如:$x^2$vs \(^2\);据我了解,第二个示例是更现代的版本,应在可能时使用。

其他示例:\it与更现代的\itshape和我实际上应该使用的相比\textit{}

我已经听过足够多关于这些的提及,我想我知道我应该使用哪一个;然而,也有一些事情\begin{center}对比\centering与上下文相关(由于垂直间距)

这些是我从脑海中挑选出来的例子;$$...$$vs \[...\]vs\begin{equation}...\end{equation}是下面有人提到的另一个例子。

有没有简单的方法可以告诉我什么时候应该使用哪个命令?对于软件包中的内容,通常很容易查看手册并了解哪个是最新的,但核心 LaTeX 内容呢?有没有一个何时使用各种版本命令的列表?或者更好的是,一个一般的经验法则,这样我就可以知道我是否应该学习一种新的方式来做事?

答案1

  1. $...$在 LaTeX 手册中被提及为 的“简写” \(...\)。我们知道事实并非如此,但手册并没有详细介绍 TeX 编程,因此对于手册的目的而言,这是一个很好的近似事实,手册建议$...$建议很短公式,推荐\(...\)更长的公式。

  2. \it和等命令\bf已正式宣布过时。因此不应使用它们。故事结束。

  3. $$...$$在手册中没有提及,并且我们知道由于各种原因在 LaTeX 中使用它是错误的。

  4. 有几个命令有“双重”形式,但事实并非如此。两者之间有明显的区别

    Your {\itshape hovercraft} is full of eels
    

    Your \textit{hovercraft} is full of eels
    

    但这并不意味着\itshape不应该使用。它更好的地方是在环境的定义中,比如

    \newenvironment{iquote}{\begin{quote}\itshape}{\end{quote}}
    

    定义iquote以斜体显示引号的环境。\textit此处使用是错误的。

  5. 有一些成对的:\raggedrightflushleft\raggedleftflushright和。这类似于上面讨论的字体开关和字体命令之间的区别。'开关'形式,比如说,更适合用于定义环境,因为也会\centering在居中文本的上方和下方留出一些空间;和也是一样。请注意,这里的所有开关都需要在末尾有一个明确的段落终止符,无论是由还是由提供它的命令给出,例如。因此,如果您需要不规则的右引号,您可以定义center\centeringcenterflushleftflushright\par\end{...}\end{quote}

    \newenvironment{rquote}{\begin{quote}\raggedright}{\end{quote}}
    
  6. \[...\]相当于\begin{displaymath}...\end{displaymath}但是非常与 不同,因为后者也在等式中添加了一个数字。定义环境的\begin{equation}...\end{equation}原因是:将等式从改为(或反过来)比从改为更容易。amsmathequation*equationequation*equationdisplaymath

  7. 在 LaTeX 文档中发现的一些结构实际上是外来的。例如\centerline,,\llap\hbox精明的(或有男子气概的)LaTeX 程序员可以从中受益,但最好坚持使用 LaTeX 的相应命令

    \makebox[\columnwidth]{...}
    \makebox[0pt][r]{...}
    \mbox{...}
    

    在 LaTeX 文档中,保留较低级别的命令用于包,并在需要时使用它们知道他们所做的事情并不直观。

举个例子。就在几个小时前,我回答了一个问题,这个问题源于一个用户在网上发现的一个宏的奇怪行为。建议的代码使用了神秘的参数,例如\hoffset;我建议的代码使用了正常的 LaTeX 命令,除了 、\bgroup\egroup\dimexpr这些命令始终存在于 LaTeX 程序员的工具箱中)。非工作代码和工作代码之间的区别在于;-)

答案2

答案是“你不需要”,但不幸的是,该网站不允许简短而切中要点的回答,因此需要一个更具讨论性的答案……

例如:$x^2$vs \(^2\);据我了解,第二个示例是更现代的版本,应在可能时使用。

其实并不是更现代;\(从一开始就使用 LaTeX,虽然$是 TeX 原语,所以在某种意义上更老。\(旨在提供更好的错误诊断,因为系统可以判断\(zzz\(不匹配,而如果你错过了一些$东西,就会与预期的数学不符,开始变得接近数学,你会得到奇怪的错误。不幸的是,的标准定义\(是脆弱的,而它$是强大的,所以如果你使用它,比如说\caption你会得到非常奇怪的错误。所以这是一个错误检测机制的例子,它产生的错误比检测到的错误还多。这个fixltx2e包很\(强大,但如果人们知道足够多的方法来使用这个包,他们就不会犯那么多简单的数学模式分隔符错误了……

其他示例:\it与更现代的\itshape和我实际上应该使用的相比\textit{}

在那里你不一定有选择,\it只是没有在 LaTeX2e 格式中定义。article而其他一些类定义

\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf}

所以你可以假装又回到了 1980 年代

我已经听过足够多关于这些的提及,我想我知道我应该使用哪一个;然而,也有像\begin{center}vs \centering

它们的作用不同:内部\begin{center}用于\centering居中,但它也是一个乳胶显示环境(列表),因此用垂直空间设置内容。所以这取决于你是只想将某些东西居中还是想制作居中显示。

答案3

简而言之:

例如:$x^2$ vs (^2);据我了解,第二个例子是更现代的版本,应在可能的情况下使用。

不太好。第一种更安全。但在 的情况下,\[ \]$$ $$一种是更好的选择。

其他示例:\it 与更现代的 \itshape 以及我实际上应该使用的 \textit{}

\textit还进行了适当的斜体修正。

我已经听过足够多关于这些的提及,我想我知道我应该使用哪一个;然而,还有诸如 \begin{center} 与 \centering

\begin{center}增加了额外的垂直间距,\centering- 不是。

答案4

对于此类问题,您可以参考“LATEX2ε 使用基本指南” 讨论了过时的命令和软件包。其他语言的版本也可以在加拿大运输安全局

相关内容