Quelles sont les "meilleures pratiques LaTeX" pour écrire des symboles de valeur absolue ? Existe-t-il des paquets qui fournissent de bonnes méthodes ?
Parmi les options, il y a |x|
et mid x \mid
, mais je ne suis pas sûr de la meilleure...
J'ai utilisé le code ci-dessous en utilisant DeclarePairedDelimiter
du [paquet mathtools
] (http://www.ctan.org/pkg/mathtools).
Comme je ne pense pas avoir de cas où je ne veux pas que cela soit mis à l'échelle en fonction du paramètre, j'utilise https://tex.stackexchange.com/questions/23178/swap-definition-of-starred-and-non-starred-command pour que l'utilisation normale soit automatiquement mise à l'échelle, et la version étoilée non :
![entrez la description de l'image ici][1]
Si vous voulez l'inverse, commentez le code entre \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}
[1] : http://i.stack.imgur.com/eTNHX.png [2] : http://i.stack.imgur.com/UG42y.png
Notez que si vous utilisez simplement |
, vous obtenez l'espacement mathinner, qui est différent de l'espacement que vous obtiendriez avec les délimiteurs jumelés mathopen/mathclose ou avec \left/\right
même si \left/\right
n'étire pas le symbole. Personnellement, je préfère l'espacement gauche/droite de mathinner ici (même si @egreg dit que j'ai généralement tort :-)
\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}
![entrez la description de l'image ici][1]
On peut aussi utiliser le paquet commath
.
\documentclass{article}
\usepackage{commath}
\begin{document}
\[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \]
\end{document}
![entrez la description de l'image ici][1]