在下面的
\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 评论也是不错的选择。