Was ist die "beste LaTeX-Praxis" für das Schreiben von Absolutwert-Symbolen? Gibt es irgendwelche Pakete, die gute Methoden bieten?
Einige Optionen sind |x|
und \mid x \mid
, aber ich bin nicht sicher, was am besten ist...
Ich habe den nachstehenden Code mit "DeclarePairedDelimiter" aus dem Paket "Mathtools" (http://www.ctan.org/pkg/mathtools) verwendet.
Da ich nicht glaube, dass ich einen Fall habe, in dem ich nicht möchte, dass dies auf der Grundlage des Parameters skaliert, verwende ich https://tex.stackexchange.com/questions/23178/swap-definition-of-starred-and-non-starred-command, so dass die normale Verwendung automatisch skaliert wird und die mit Sternen versehene Version nicht:
Wenn Sie es andersherum haben wollen, kommentieren Sie den Code zwischen "makeatother...\makeatletter" aus.
\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}
Beachten Sie, wenn Sie nur |
verwenden, erhalten Sie einen Mathord-Abstand, der sich von dem Abstand unterscheidet, den Sie von gepaarten mathopen/mathclose-Begrenzern oder von \left/\right
erhalten würden, selbst wenn \left/\right
das Symbol nicht streckt. Persönlich bevorzuge ich hier den Links/Rechts-Abstand von mathinner (auch wenn @egreg sagt, dass ich generell falsch liege:-)
\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}
Man kann auch das Paket commath
verwenden.
\documentclass{article}
\usepackage{commath}
\begin{document}
\[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \]
\end{document}