Kokia yra "geriausia LaTeX praktika" rašant absoliutinės vertės simbolius? Ar yra paketų, kuriuose pateikiami geri metodai?
Kai kurie variantai yra |x|
ir \mid x \mid
, bet nesu tikras, kuris iš jų geriausias...
Naudojau toliau pateiktą kodą, naudodamas \DeclarePairedDelimiter
iš mathtools
paketo.
Kadangi nemanau, kad turiu atvejį, kai nenoriu, kad tai būtų keičiama pagal parametrą, naudoju https://tex.stackexchange.com/questions/23178/swap-definition-of-starred-and-non-starred-command, kad įprastas naudojimas būtų automatiškai keičiamas, o žvaigždute pažymėta versija - ne:
Jei norite, kad būtų atvirkščiai, išmeskite kodą tarp \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}
Atkreipkite dėmesį, kad jei naudojate tik |
, gaunamas mathord intervalas, kuris skiriasi nuo intervalo, kurį gautumėte iš suporuotų mathopen/mathclose riboženklių arba iš \left/\right
, net jei \left/\right
neištempia simbolio. Asmeniškai man labiau patinka mathinner kairės/dešinės pusės atstumas (net jei @egreg sako, kad aš apskritai klystu:-)
\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}
Taip pat galima naudoti commath
paketą.
\documentclass{article}
\usepackage{commath}
\begin{document}
\[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \]
\end{document}