在下面的 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
这是因为下标i
和j
具有不同的深度并且您正在使用自动缩放。
mathtools
由于您已经在使用和commath
包,因此有两种简单的方法可以解决此问题:
解决方案mathtools
(首选解决方案†)
使用从声明使\norm
符号大小相同,并将大小作为 的可选参数给出。由于您使用的是包,它本身定义了,因此您可以在使用 (重新)声明 之前“保存”和“取消定义” 的旧定义。您还应该将素数放在 之外,否则下标会放得太靠右。\DeclarePairedDelimiter
mathtools
\norm
\norm[\big]{...}
commath
\norm
\norm
mathtools
\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}
或者不带可选参数(我认为最正确的大小),即{\norm{\mathbf{A}_{:,i}}\norm{\mathbf{A}_{:,j}}
:
解决方案commath
\norm
来自的命令还commath
带有一个可选参数,范围从0
到4
,其中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\|
基本相同。\norm
commath
你会注意到三第 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 命令的大小与任何可用作可选参数的预定义大小都不对应。所以我能想到的唯一解决方案是\smash
j:
\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}