我正在使用该physics
包,在对齐方程时遇到问题
\begin{align}
\psi(\bm{z}) &= h`(\bm{w}^T\bm{z} + b)\bm{w}\\
\abs\Big{det\pdv{f}{\bm{z}}} = \abs{det(\bm{I} &+ \bm{u}\psi(\bm{z})^T)} = \abs{1 + \bm{u}^T\psi(\bm{z})}
\end{align}
上述代码会引发错误:可能是因为&
对齐字符位于 内\abs{}
。
我可以这样做来修复它:
\begin{align}
\psi(\bm{z}) &= h`(\bm{w}^T\bm{z} + b)\bm{w}\\
\abs\Big{det\pdv{f}{\bm{z}}} =
|det(\bm{I} &+ \bm{u}\psi(\bm{z})^T)| =
\abs{1 + \bm{u}^T\psi(\bm{z})}
\end{align}
但是,如果我这样做,我会注意到\abs{}
和|.|
的大小不同。我怎样才能按照我想要的方式对齐方程式并继续使用\abs{}
preferred?
以下是 MWE:
\documentclass{extarticle}
\usepackage{amsmath,bm,amssymb,amsthm,physics}
\begin{document}
%This doesn't work :(
%\begin{align}
% \psi(\bm{z}) &= h`(\bm{w}^T\bm{z} + b)\bm{w}\\
% \abs\Big{det\pdv{f}{\bm{z}}} = \abs{det(\bm{I} &+ \bm{u}\psi(\bm{z})^T)} = \abs{1 + \bm{u}^T\psi(\bm{z})}
%\end{align}
\begin{align}
\psi(\bm{z}) &= h`(\bm{w}^T\bm{z} + b)\bm{w}\\
\abs\Big{det\pdv{f}{\bm{z}}} = |det(\bm{I} &+ \bm{u}\psi(\bm{z})^T)| = \abs{1 + \bm{u}^T\psi(\bm{z})}
\end{align}
\end{document}
编辑:
经过进一步调查,第一个代码片段还有其他问题:删除 \abs 并将 det 更改为 \det 也会导致错误。我不确定问题是什么。
\begin{align}
\psi(\z) &= h`(\w^T\z + b)\w\\
\abs\Big{\det\pdv{f}{\z}} = |\det(\bm{I} &+ \bm{u}\psi(\z)^T)| = \abs{1 + \bm{u}^T\psi(\z)}
\end{align}
答案1
这个physics
包可以做很多有用的事情。不过,它也因对括号和方括号的含义做出词汇假设而闻名,这些假设可能合适也可能不合适。更改为det
导致\det
额外问题的事实似乎与此问题有关。
我建议,除非您对该包的功能投入了大量精力physics
,否则请加载该mathtools
包并提供您自己的 等定义\abs
,\pdv
如下例所示。请注意,这种方法允许&
对齐点出现在 内部\abs{...}
以及 内部\det(...)
。
gather
话虽如此,我认为对于当前的情况来说,使用环境而不是环境的结果align
在印刷上更优越(并且更容易创建!)。
值得注意的是,使用宏的语法略有不同\abs
:对于physics
包,写为\abs\Big{...}
,而对于mathtools
版本,写为\abs[\Big]{...}
。希望这不会对切换造成难以逾越的障碍。
\documentclass{extarticle}
\usepackage{mathtools} % for '\DeclarePairedDelimiter' macro
\usepackage{bm} % for '\bm' macro
%% provide your own definitions of \abs, \pdv, etc as needed:
\DeclarePairedDelimiter\abs\lvert\rvert
\newcommand\pdv[2]{\frac{\partial #1}{\partial #2}}
\begin{document}
Use \verb+gather+ and no alignment points:
\begin{gather}
\psi(\bm{z}) = h'(\bm{w}^T\bm{z} + b)\bm{w}\\
\abs[\Big]{\det\pdv{f}{\bm{z}}}
= \abs{\det(\bm{I} + \bm{u}\psi(\bm{z})^T)}
= \abs{1 + \bm{u}^T\psi(\bm{z})}
\end{gather}
\medskip
Use \verb+align+ and 1 alignment point per row:
\begin{align}
\psi(\bm{z}) &= h'(\bm{w}^T\bm{z} + b)\bm{w}\\
\abs[\Big]{\det\pdv{f}{\bm{z}}}
= \abs{\det(\bm{I} &+ \bm{u}\psi(\bm{z})^T)}
= \abs{1 + \bm{u}^T\psi(\bm{z})}
\end{align}
\end{document}