Absolutte værdisymboler
On januar 29, 2021 by adminHvad er de “bedste LaTeX-metoder” til at skrive absolutte værdisymboler? Er der nogen pakker, der giver gode metoder?
Nogle muligheder inkluderer |x|
og \mid x \mid
, men jeg er ikke sikker på, hvad der er bedst …
Kommentarer
Svar
Jeg har brugt koden nedenfor ved hjælp af \DeclarePairedDelimiter
fra mathtools
pakke .
Da jeg ikke tror, jeg har en sag, hvor jeg ikke ønsker, at dette skaleres ud fra parameteren, jeg bruger Skift definition af stjernemarkeret og ikke-stjernekommando , så den normale brug automatisk skaleres, og den stjernemarkerede version vandt “t:
Hvis du vil have det omvendt, skal du kommentere koden mellem \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: Aftalt. Men jeg har ikke stødt på det med
\abs
endnu. BTW, jeg kan godt lide, at din ” altid generelt er forkert ” 🙂 - @jamaicanworm: Jeg brugte
\dfrac
i dette tilfælde til at lave en større brøkdel i inline-tilstand. Dette anbefales normalt ikke i inline-tilstand, da det bryder mellemrum mellem afsnit. Jeg opdaterer løsningen for at fjerne den. - Der ‘ er en grund til, at det ‘ er at foretrække at bruge
*
-version til den automatiske størrelsesændringsmakro: altid ved hjælp af\left
og\right
er generelt forkert. - +1, selvom jeg må sige, at dette svar ikke er meget skumlæsningsvenligt med den enorme ” stjernemarkeret ” / ” ikke-stjernemarkeret ” billede og bemærkningen et eller andet sted i teksten ” BTW, normal adfærd er omvendt “. Spørgsmålet OTOH er et, der gør alt i denne tråd meget tilbøjelig til at blive letlæst.
- en klar fordel ved at bruge kommandoer som
\abs
og\norm
som ingen ser ud til at have nævnt: da|
-symbolet har særlig betydning imakeidx
-konteksten, forsøger at gå ind i terminologi ved hjælp af en nøgne|
inden for\index{...}
vil resultere i (forsinkede) fejl og en masse hårtrækning for nogen, der ikke rigtig kender med den brug. kommandoer som dem, der vises her (eller endda bare bare\vert
,\Vert
eller\mid
) er et parti sikrere og værd at blive fortrolig med.
Svar
Bemærk, hvis du bruger bare |
du får matematikafstand, hvilket er forskelligt fra afstanden, du ville få fra parrede mathopen / mathclose-afgrænsninger eller fra \left/\right
selvom \left/\right
ikke strækker symbolet. Personligt foretrækker jeg mellemrummet mellem venstre og højre fra mathinner her (selvom @egreg siger, at jeg “generelt er forkert 🙂
\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 også bruge commath
pakke.
\documentclass{article} \usepackage{commath} \begin{document} \[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \] \end{document}
Kommentarer
- +1 til denne, da den inkluderer semantik og har en relativt kort syntaks.
- Afstanden er på en eller anden måde dårlig, når den bruges som abonnement.
\abs{}
afphysics
er efter min mening det bedre valg.
Svar
physics
LaTeX-pakken implementerer også abs
og norm
:
\documentclass{article} \usepackage{physics} \begin{document} \[ c = \abs{-c} \] \[ \vu{a} = \frac{\vb{a}}{\norm{\vb{a}}} \] \end{document}
Kommentarer
- Jeg synes, det er den nemmeste løsning!
Svar
En enkel, indfødt LaTeX-måde at gøre dette på er ved at bruge \|
afgrænser med standard \left
og \right
modifikatorer ( kilde ).
For eksempel:
\left\| \sum_{i=1}^{n} x^2 \right\|
giver
Kommentarer
- Også: ved hjælp af
|
afgrænser (uden den foregående tilbageslag) ts en enkelt lodret bjælke. - For sjov kan du prøve
\|+a\|
, da du kan se, er dette forkert, og derfor bør brugere generelt ikke brug bare|...|
eller\|...\|
, da de ved et uheld kan komme i situationer, hvor dette er forkert. Jeg ‘ lader det være som en øvelse, hvorfor dette sker. Plus i dit eksempel behøver hegnene ikke at være så høje. - Med
\|+a\|
synes afstanden at være forkert, men med\left\|+a\right\|
det ser ud til at være fint. - Korrekt, fordi den ene er tilbage og den anden har højre. Men
\left
og\right
skal kun tilføjes, når det faktisk er nødvendigt (hvilket faktisk ikke ofte er). Min klage over dit svar er, at det generelt ikke er godt af grunde, der forklares i kommentarer til andre svar i denne tråd.
Svar
\documentclass{article} \usepackage{amsmath} \begin{document} \[ %begin equation \lVert w \rVert %end equation \] \end{document}
Svar
For LyX-brugere: måske har jeg lige overset, hvordan man gør det korrekt, men jeg kunne ikke find en måde at gøre dette indbygget på.
Jeg brugte således et 1×1-Matrix-miljø og indstillede typen til determinant. Det kan bare være et hack, men det fungerer fint i min brugsfase.
Kommentarer
- I det mindste i tilfælde af Lyx 2.1.4 finder jeg, at jeg simpelthen kan skrive \ lvert og \ rvert i min displayformel og Lyx ” gør det rigtige. ” I mit specifikke tilfælde vil jeg have absolutværdi-bjælker omkring en brøkdel, så jeg brugte \ bigg \ lvert på den ene side og \ bigg \ rvert på den anden side.
Svar
Hvis du ikke vil bruge nogen pakke, skal du bruge \mid
.
Kommentarer
-
\vert
kræver ikke ‘ t en hvilken som helst pakke enten, og afstanden er ikke ‘ t så forfærdelig som med\mid
.
\usepackage{amsmath}...\(\lvert x\rvert\)
;\mid
angiver et relationssymbol og er forkert for den absolutte værdi.$\usepackage{mathtools}...\DeclarePairedDelimiter{\vert}{\lvert}{\rvert}
som svaret på dit svar på et tidligere spørgsmål? tex.stackexchange.com/a/42274/9757\vert
er ikke et godt valg , som det ‘ allerede er defineret.|
symbol?|
, men i nogle situationer er det nødvendigt med en vis pleje. ce\(|{-1}|=1\)
uden seler ville komme forkert ud, mens\(\lvert-1\rvert=1\)
helt sikkert giver korrekt output.