\norm 符号在方程中有不同的大小

\norm 符号在方程中有不同的大小

在下面的 MWE 中,范数符号以不同的大小出现在分母中,如下所示:

在此处输入图片描述

我希望\norm分母中的线长度相同。谢谢您的帮助。

这是我的代码:

\documentclass{book}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{commath}
\usepackage[sc,osf]{mathpazo}

\begin{document}

\begin{equation*}
  \mu(\mathbf{A}) = \max_{1\leqslant i,j\leqslant n, i\neq j}\dfrac{|\mathbf{A'}_{:,i}\mathbf{A}_{:,j}|}{\norm{\mathbf{A}_{:,i}}\norm{\mathbf{A}_{:,j}}}
\end{equation*}

\end{document}

答案1

这是因为下标ij具有不同的深度并且您正在使用自动缩放。

mathtools由于您已经在使用和commath包,因此有两种简单的方法可以解决此问题:

解决方案mathtools(首选解决方案

使用从声明使\norm符号大小相同,并将大小作为 的可选参数给出。由于您使用的是包,它本身定义了,因此您可以在使用 (重新)声明 之前“保存”和“取消定义” 的旧定义。您还应该将素数放在 之外,否则下标会放得太靠右。\DeclarePairedDelimitermathtools\norm\norm[\big]{...}commath\norm\normmathtools\mathbf{...}

\documentclass{book}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{commath}
\usepackage[sc,osf]{mathpazo}

\let\oldnorm\norm   % <-- Store original \norm as \oldnorm
\let\norm\undefined % <-- "Undefine" \norm
\DeclarePairedDelimiter\norm{\lVert}{\rVert}

\begin{document}

\begin{equation*}
  \mu(\mathbf{A}) = \max_{1\leqslant i,j\leqslant n, i\neq j}\dfrac{|\mathbf{A}'_{:,i}\mathbf{A}_{:,j}|}{\norm[\big]{\mathbf{A}_{:,i}}\norm[\big]{\mathbf{A}_{:,j}}}
\end{equation*}

\end{document}

使用 mathtools 输出

或者不带可选参数(我认为最正确的大小),即{\norm{\mathbf{A}_{:,i}}\norm{\mathbf{A}_{:,j}}

最佳输出

解决方案commath

\norm来自的命令还commath带有一个可选参数,范围从04,其中0是最小尺寸和4最大尺寸。请注意第一个之前的间距\norm是错误的——您必须使用例如手动调整它\;才能获得令人满意的结果。

\documentclass{book}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{commath}
\usepackage[sc,osf]{mathpazo}

\begin{document}

\begin{equation*}
  \mu(\mathbf{A}) = \max_{1\leqslant i,j\leqslant n, i\neq j}\dfrac{|\mathbf{A}'_{:,i}\mathbf{A}_{:,j}|}{\norm[1]{\mathbf{A}_{:,i}}\norm[1]{\mathbf{A}_{:,j}}}
\end{equation*}

\end{document}

带逗号的输出


您也应该考虑使用\abs而不是|...|。方法与上面相同mathtools

\let\oldabs\abs % Store original \abs as \oldabs
\let\abs\undefined % "Undefine" \abs
\DeclarePairedDelimiter\abs{\lvert}{\rvert}

然后使用\abs*{...}它来自动调整大小,或者使用可选参数来手动调整大小\abs[\big]{...}

对于commath方法也与上面的相同:\abs[1]{...}


\norm如您所见,分母中第一个数字之前的间距commath(最后一张图片)是错误的,所以我个人建议使用该mathtools方法,因为它给出了正确的间距。

答案2

一个典型的例子,说明为什么\left不应\right在未经检查的情况下使用。出于多种原因,我不建议使用commath宏,请参阅https://tex.stackexchange.com/search?q=commath+user%3A4427对于其中一些人来说。

\left使用和的问题\right在这里显示得非常清楚:中的下降符j是导致分隔符大小突然增加的原因。

让我们简化一下情况。看下面的代码

\documentclass{article}
\usepackage[osf,sc]{mathpazo}
\usepackage{amsmath}

\begin{document}

\begin{gather}
\left\|\mathbf{A}_{i}\right\|\ne
\left\|\mathbf{A}'_{i}\right\|\ne
\left\|\mathbf{A}_{j}\right\|\ne
\left\|\mathbf{A}'_{j}\right\|
\\
\left\|\mathbf{A}_{i}\right\|+\left\|\mathbf{A}_{j}\right\|
\\
\lVert\mathbf{A}_{i}\rVert+\lVert\mathbf{A}_{j}\rVert
\\
\left\|\mathbf{A}'_{i}\right\|+\left\|\mathbf{A}'_{j}\right\|
\\
\lVert\mathbf{A}'_{i}\rVert+\lVert\mathbf{A}'_{j}\rVert
\end{gather}

\end{document}

和输出

在此处输入图片描述

使用\left\|and与使用from\right\|基本相同。\normcommath

你会注意到第 1 行中有 1 个分隔符大小,第 2 行和第 4 行中有 2 个分隔符大小。特别是,当\mathbf{A}'_{j}使用 时,尺寸肯定太大了。

对我来说,“正确”的输出是在第 3 行和第 5 行中,尺寸增加。

如果你使用mathtools,你可以定义一个正确的\norm宏并进行手动调整只有在必要时,这不是你的公式的情况。我还建议\substack使用长下标。

\documentclass{article}
\usepackage[osf,sc]{mathpazo}
\usepackage{amsmath,mathtools,amssymb}

\DeclarePairedDelimiter{\norm}{\lVert}{\rVert}

\begin{document}

\begin{equation*}
\mu(\mathbf{A}) =
\max_{1\leqslant i,j\leqslant n, i\neq j}
  \dfrac{|\mathbf{A'}_{:,i}\mathbf{A}_{:,j}|}
        {\norm{\mathbf{A}_{:,i}}\norm{\mathbf{A}_{:,j}}}
\end{equation*}

\begin{equation*}
\mu(\mathbf{A}) =
\max_{\substack{1\leqslant i,j\leqslant n \\ i\neq j}}
  \dfrac{|\mathbf{A'}_{:,i}\mathbf{A}_{:,j}|}
        {\norm{\mathbf{A}_{:,i}}\norm{\mathbf{A}_{:,j}}}
\end{equation*}

\end{document}

在此处输入图片描述

答案3

第一个 \norm 命令的大小与任何可用作可选参数的预定义大小都不对应。所以我能想到的唯一解决方案是\smashj:

\documentclass{book}
\usepackage{amsmath,amsfonts,amssymb,amsthm}
\usepackage{mathtools}
\usepackage{commath}
\usepackage[sc,osf]{mathpazo}

\begin{document}

\begin{equation*}
  \mu(\mathbf{A}) = \max_{1\leqslant i,j\leqslant n, i\neq j}\dfrac{|\mathbf{A'}_{:,i}\mathbf{A}_{:,j}|}{\norm{\mathbf{A}_{:,i}}\norm{\mathbf{A}_{:,\smash[b]{j}}}}
\end{equation*}

\end{document} 

在此处输入图片描述

答案4

您可以在第一个规范的索引中插入一个支柱,以使其更高:

\norm{\mathbf{A}_{:,i\mathstrut}}

支柱是宽度为零的“字母”,其高度和高度与其他字母一样。这迫使标准符号变得更大。

等长等宽条方程

相关内容