使用 align 与 mathtools 时不显示方程式编号

使用 align 与 mathtools 时不显示方程式编号

在下面的

\documentclass{memoir}
\usepackage{amssymb,amsmath}
\usepackage[fixamsmath]{mathtools}
  \mathtoolsset{showonlyrefs,showmanualtags,mathic,centercolon}

\renewcommand{\u}{\textbf{u}}
\renewcommand{\v}{\textbf{v}}
\newcommand{\R}{\mathbb{R}}

\begin{document}
\begin{align}
  \langle \u,\v \rangle_{\text {euc}} := \sum_{i=1}^n u_i v_i \quad \forall \u,\v \in \R^n
\end{align}
\end{document}

我无法使公式的编号起作用,但公式仍正常显示。代码有问题吗?

答案1

'showonlyrefs' 选项mathtools使公式标签消失。取消它,你就会得到公式编号,正如你所要求的那样:

索尔-皮克

\documentclass{memoir}
\usepackage{amssymb,amsmath}
\usepackage[fixamsmath]{mathtools}
  \mathtoolsset{showmanualtags,mathic,centercolon}

\newcommand{\uvec}{\mathbf{u}}
\newcommand{\vvec}{\mathbf{v}}
\newcommand{\R}{\mathbb{R}}

\begin{document}
\begin{align}
  \langle \uvec,\vvec \rangle_{\textup{euc}} := \sum_{i=1}^n u_i v_i \quad \forall \uvec,\vvec \in \R^n
\end{align}
\end{document}

请注意,我 (1) 没有重新定义\u\v(将它们重命名为\uvec\vvec),(2)在和的定义中我使用了\mathbf而不是 ,并且 (3)使用了 而不是。\textbf\uvec\vvec\textup\text

答案2

您的代码没问题。经过小幅修改(如 Ruben 和 Mico 的评论中所建议的),并假设您的序言中没有任何东西可以阻止推挤方程编号,结果是:

结果

代码:

\documentclass[12pt,border=1mm,preview]{standalone}
\usepackage{amssymb,amsmath}

\renewcommand\u{\mathbf{u}}
\renewcommand\v{\mathbf{v}}
\newcommand\R{\mathbb{R}}

\begin{document}
\begin{equation}
  \langle \u,\v \rangle_{\textup{euc}} := 
    \sum_{i=1}^n u_i v_i \quad \forall\ \u,\v \in \R^n
\end{equation}
\end{document} 

align使用数学环境也会获得相同的结果gather。我没有更改向量的名称,因为它们不会影响方程编号,但是使用这种短名称并不好。例如,\u已经在某处定义了,所以我使用\renewcommand。更好的名称是(如评论中所建议的)\uvec, \vvec。同样,考虑 @daleif 评论也是不错的选择。

相关内容