Absoluta värdesymboler
On januari 29, 2021 by adminVilka är de ”bästa LaTeX-metoderna” för att skriva absoluta värdesymboler? Finns det några paket som ger bra metoder?
Vissa alternativ inkluderar |x|
och \mid x \mid
, men jag är inte säker på vilken som är bäst …
Kommentarer
Svar
Jag har använt koden nedan med \DeclarePairedDelimiter
från mathtools
paket .
Eftersom jag inte tror att jag har ett fall där jag inte vill att detta ska skalas baserat på parametern använder jag Byt definition av stjärnmärkt och icke-stjärnmärkt kommando så att normal användning automatiskt skalas och den stjärnmärkta versionen vann ”t:
Om du vill ha det tvärtom kommentera koden mellan \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}
Kommentarer
- @egreg: Överens. Men jag har inte stött på det med
\abs
än. BTW, jag gillar att din ” alltid i allmänhet är fel ” 🙂 - @jamaicanworm: Jag använde
\dfrac
i det här fallet för att skapa en större bråkdel i inline-läge. Detta rekommenderas normalt inte i inline-läge eftersom det bryter avståndet mellan stycken. Jag kommer att uppdatera lösningen för att ta bort den. - Det ’ är anledningen till att det ’ är att föredra att använda
*
-version för det automatiska storleksändringsmakrot: alltid med\left
och\right
är i allmänhet fel. - +1, även om jag måste säga att det här svaret inte är mycket lättlästvänligt med den enorma ” stjärnmärkt ” / ” icke-stjärnmärkt ” bild och anmärkningen någonstans i texten ” BTW, normalt beteende är tvärtom ”. Frågan OTOH är en som gör allt i denna tråd mycket benägen att läsas.
- en bestämd fördel med att använda kommandon som
\abs
och\norm
som ingen tycks ha nämnt: eftersom|
-symbolen har en speciell betydelse imakeidx
-kontext, försöker skriva in terminologi med en|
inom\index{...}
kommer att leda till (fördröjda) fel och mycket hårdragning för någon som inte riktigt känner med den användningen. kommandon som de som visas här (eller till och med bara\vert
,\Vert
eller\mid
) är ett parti säkrare och värt att bekanta sig med.
Svar
Observera om du använder bara |
du får matematikavstånd, vilket skiljer sig från det avstånd du får från parade mathopen / mathclose-avgränsare eller från \left/\right
även om \left/\right
inte sträcker symbolen. Personligen föredrar jag avståndet mellan vänster och höger från matematikern här (även om @egreg säger att jag ”är i allmänhet fel 🙂
\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}
Svar
Man kan också använda commath
paket.
\documentclass{article} \usepackage{commath} \begin{document} \[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \] \end{document}
Kommentarer
- +1 för den här, eftersom den inkluderar semantik och har en relativt kort syntax.
- Avståndet är på något sätt dåligt när det används som prenumeration. div id = ”6e31f2ab16”>
av physics
är enligt min mening det bättre valet.
Svar
physics
LaTeX-paketet implementerar också abs
och norm
:
\documentclass{article} \usepackage{physics} \begin{document} \[ c = \abs{-c} \] \[ \vu{a} = \frac{\vb{a}}{\norm{\vb{a}}} \] \end{document}
Kommentarer
- Jag tycker att det här är den enklaste lösningen!
Svar
Ett enkelt, LaTeX-infödd sätt att göra detta är att använda \|
avgränsare, med standard \left
och \right
modifierare ( källa ).
Till exempel:
\left\| \sum_{i=1}^{n} x^2 \right\|
ger
Kommentarer
- Dessutom: med hjälp av
|
avgränsare (utan föregående bakåtvänd snedstreck) ts ett enstaka vertikalt fält. - För skojs skull försök
\|+a\|
, eftersom du kan se att detta är fel, och alltså bör användarna inte göra använd bara|...|
eller\|...\|
eftersom de av misstag kan komma i situationer där detta är fel. Jag ’ Jag lämnar det som en övning varför detta händer. Plus i ditt exempel behöver staketet inte vara så högt. - Med
\|+a\|
verkar avståndet vara fel, men med\left\|+a\right\|
det verkar vara bra. - Korrekt eftersom den ena är kvar och den andra har rätt. Men
\left
och\right
bör bara läggas till när det verkligen behövs (vilket faktiskt inte ofta). Mitt klagomål till ditt svar är att det inte är bra i allmänhet, av skäl som förklaras i kommentarer till andra svar i den här tråden.
Svar
\documentclass{article} \usepackage{amsmath} \begin{document} \[ %begin equation \lVert w \rVert %end equation \] \end{document}
Svar
För LyX-användare: kanske har jag bara förbisett hur man gör det korrekt, men jag kunde inte hitta ett sätt att göra detta naturligt.
Jag använde därmed en 1×1-Matrix-miljö och ställde in typen som determinant. Det kan bara vara ett hack, men det fungerar bra i mitt användningsfall.
Kommentarer
- Åtminstone när det gäller Lyx 2.1.4, tycker jag att jag helt enkelt kan skriva \ lvert och \ rvert i min visningsformel och Lyx ” gör rätt. ” I mitt specifika fall vill jag ha absoluta värdefält runt en bråkdel, så jag använde \ bigg \ lvert på ena sidan och \ bigg \ rvert på andra sidan.
Svar
Om du inte vill använda något paket, använd \mid
.
Kommentarer
-
\vert
kräver inte ’ t vilket paket som helst, och avståndet är inte ’ t lika hemskt som med\mid
.
\usepackage{amsmath}...\(\lvert x\rvert\)
;\mid
betecknar en relationssymbol och är fel för det absoluta värdet.$\usepackage{mathtools}...\DeclarePairedDelimiter{\vert}{\lvert}{\rvert}
enligt ditt svar på en tidigare fråga? tex.stackexchange.com/a/42274/9757\vert
är inte ett bra val , som det ’ redan definierats.|
?|
, men i vissa situationer krävs en viss vård. ce\(|{-1}|=1\)
utan hängslen skulle bli fel, medan\(\lvert-1\rvert=1\)
ger säkert rätt resultat.