絶対値記号の書き方として、"best LaTeX practices"はありますか? 良い方法を提供するパッケージはありますか?
選択肢としては、|x|
や`mid x \mid
などがありますが、どれがベストなのかわかりません...。
以下のコードは、[mathtools]パッケージの`DeclarePairedDelimiter
を使用しています(http://www.ctan.org/pkg/mathtools)。
パラメータに応じてスケールして欲しくないケースはないと思うので、https://tex.stackexchange.com/questions/23178/swap-definition-of-starred-and-non-starred-command を利用して、通常の使用では自動的にスケールし、スター付きのバージョンではスケールしないようにしています。
.
逆にしたい場合は、\makeatother...\makeatletter
の間のコードをコメントアウトしてください。
\documentclass{article}
\usepackage{mathtools}
\DeclarePairedDelimiter\abs{\lvert}{\rvert}%
\DeclarePairedDelimiter\norm{\lVert}{\rVert}%
% Swap the definition of \abs* and \norm*, so that \abs
% and \norm resizes the size of the brackets, and the
% starred version does not.
\makeatletter
\let\oldabs\abs
\def\abs{\@ifstar{\oldabs}{\oldabs*}}
%
\let\oldnorm\norm
\def\norm{\@ifstar{\oldnorm}{\oldnorm*}}
\makeatother
\newcommand*{\Value}{\frac{1}{2}x^2}%
\begin{document}
\[\abs{\Value} \quad \norm{\Value} \qquad\text{non-starred} \]
\[\abs*{\Value} \quad \norm*{\Value} \qquad\text{starred}\qquad\]
\end{document}
これは、ペアになっている mathopen/mathclose デリミタや、たとえ left/\\
がシンボルをストレッチしないとしても left/right
から得られるスペーシングとは異なることに注意してください。個人的には、mathinner の左右の間隔の方が好きです(@egreg さんが一般的には間違っていると言っても)。
\documentclass{amsart}
\begin{document}
$ \log|x||y|b $
$ \log\left|x\right|\left|y\right|b $
$ \log\mathopen|x\mathclose|\mathopen|y\mathclose|b $
\end{document}
.