我是否可以不使用 \begin{equation} 而使用 \tag 命令?

我是否可以不使用 \begin{equation} 而使用 \tag 命令?

我目前正在学习 LaTeX,主要用于编写带有公式的文本。我已经在其他 SE 网站(例如物理或数学)上积累了一些使用 LaTeX 编写的经验。现在我开始学习在专用软件中编写 LaTeX(我使用 TeXstudio,但这可能不相关)。

我注意到,当使用带有 $$...$$ 的方程式时,无法使用 \tag 命令。例如,以下代码:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
    $$a=b\tag{1}$$
\end{document}

输出“a=b”而不是“a=b (1)”。我还收到错误代码:

包 amsmath 错误:\tag 此处不允许。$$a=b\tag

经过更多的实验后,我发现使用 \tag 命令的唯一(?)方法是使用方程工作区:

\documentclass{article}
\usepackage{amsmath}
\begin{document}
    \begin{equation}
        a=b\tag{1}
    \end{equation}
\end{document}

输出正确的结果

在此处输入图片描述

使用方程工作区,您会得到一个默认的数字标签,但是这样,您可以将其更改为您想要的任何值。

我有两个问题:

  1. 为什么使用带有 $$...$$ 或 $...$ 的方程式时是否无法添加标签?

  2. 有什么解决方法吗?使用方程式环境没什么问题,但有时我觉得“$”方法更舒服

答案1

如果你跑

\documentclass{article}
\usepackage{amsmath}
\begin{document}
\show\tag
\end{document}

你会看到的

> \tag=macro:
->\invalid@tag {\string \tag \space not allowed here}.
l.4 \show\tag

该宏\tag由 定义amsmath,其“正常”定义是产生错误。只有进入amsmath数学环境之一时,宏才会被重新定义以执行其应执行的操作。例如, 、和\tag的扩展涉及宏,其定义包含以下行\begin{equation}\begin{equation*}\[\mathdisplay

\let\tag\tag@in@display

类似地align,,,,flaligngather得出multline

\let\tag\tag@in@align

由于这些\let分配发生在一个组中,因此的重新定义\tag仅限于当前环境,并且在退出时\tag恢复其正常定义(产生错误)。

这解释了您的“为什么”问题:当您使用$$上述任何一项时\let,都不会执行,并\tag产生错误。

有解决方法吗?可能有。您可以按照定义$$$ $$$对齐

不要。永远不要。请阅读为什么\[ … \]最好$$ … $$?然后忘记前面的段落。

如果你想\tag为单行方程式提供手册,请使用\[...\]。它涉及的笔画数与 相同$$...$$。不可否认,德语键盘布局并不容易;这就是为什么即使我住在德国,我也有一个 qwerty 键盘:-)

相关内容