Hvad er "bedste LaTeX-praksis" for at skrive absolutte værdisymboler? Er der nogen pakker, der giver gode metoder?
Nogle muligheder omfatter |x|
og \mid x \mid
, men jeg er ikke sikker på, hvad der er bedst...
Jeg har brugt nedenstående kode ved hjælp af \DeclarePairedDelimiter
fra [mathtools
-pakken] (http://www.ctan.org/pkg/mathtools).
Da jeg ikke tror, at jeg har et tilfælde, hvor jeg ikke ønsker, at dette skalere baseret på parameteren, gør jeg brug af https://tex.stackexchange.com/questions/23178/swap-definition-of-starred-and-non-starred-command, så den normale brug automatisk skaleres, og den stjernede version ikke skaleres:
Hvis du vil have det omvendt, skal du kommentere koden mellem \makeatother...\makeatletter
ud.
\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}
Bemærk, at hvis du bare bruger |
, får du mathord-afstanden, som er forskellig fra den afstand, du ville få fra parrede mathopen/mathclose-afgrænsere eller fra \left/\right
, selv om \left/\right
ikke strækker symbolet. Personligt foretrækker jeg venstre/højre afstanden fra mathinner her (selv om @egreg siger at jeg generelt tager fejl:-)
\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}