Ποιες είναι οι "βέλτιστες πρακτικές του LaTeX" για τη συγγραφή συμβόλων απόλυτης τιμής; Υπάρχουν πακέτα που παρέχουν καλές μεθόδους;
Ορισμένες επιλογές περιλαμβάνουν |x|
και \mid x \mid
, αλλά δεν είμαι σίγουρος ποια είναι η καλύτερη...
Έχω χρησιμοποιήσει τον παρακάτω κώδικα χρησιμοποιώντας το \DeclarePairedDelimiter
από το πακέτο 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}
Σημειώστε ότι αν χρησιμοποιήσετε απλά το |
θα έχετε το mathord spacing, το οποίο είναι διαφορετικό από το spacing που θα παίρνατε από τα ζευγαρωμένα mathopen/mathclose delimiter ή από το \left/\right
ακόμα και αν το \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}
Μπορεί επίσης να χρησιμοποιηθεί το πακέτο commath
.
\documentclass{article}
\usepackage{commath}
\begin{document}
\[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \]
\end{document}