Symboly absolutní hodnoty
On 29 ledna, 2021 by adminJaké jsou „nejlepší postupy LaTeXu“ pro psaní symbolů absolutní hodnoty? Existují nějaké balíčky, které poskytují dobré metody?
Některé možnosti zahrnují |x|
a \mid x \mid
, ale já ne jistě, co je nejlepší …
Komentáře
Odpověď
Níže uvedený kód používám pomocí \DeclarePairedDelimiter
z mathtools
balíček .
Protože si nemyslím, že mám případ, kdy nechci, aby to bylo škálovatelné parametr, používám Zaměnit definici příkazu s hvězdičkou a bez hvězdičky , aby se normální použití automaticky změnilo a verze s hvězdičkou nevyhrála „t:
Pokud to chcete opačně, komentujte kód mezi \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}
Komentáře
- @egreg: Souhlasím. S tím jsem se ale zatím
\abs
nestretl. BTW, líbí se mi vaše “ vždy se obecně mýlí “ 🙂 - @jamaicanworm: Použil jsem
\dfrac
v tomto případě k vytvoření většího podílu v inline režimu. To se v řádkovém režimu obvykle nedoporučuje, protože to naruší mezery mezi odstavci. Aktualizuji řešení, abych to odstranil. - Proto je ‚ důvod, proč je ‚ vhodnější použít
*
– verze pro makro pro automatickou změnu velikosti: vždy pomocí\left
a\right
je obecně špatně. - +1, i když musím říci, že tato odpověď není příliš skromná pro čtení s obrovským “ hvězdičkový “ / “ nehvězdný “ obrázek a poznámka někde v textu “ BTW, normální chování je naopak „. Otázka OTOH je ta, díky níž je vše v tomto vlákně velmi náchylné ke čtení.
- jednoznačnou výhodou používání příkazů jako
\abs
a\norm
o kterém se zdá se nikdo nezmínil: protože symbol|
má v kontextumakeidx
zvláštní význam, pokus o zadání terminologie pomocí holého|
v rámci\index{...}
bude mít za následek (zpožděné) chyby a spoustu tahání za vlasy pro někoho, kdo není opravdu známý s tímto využitím. příkazy, jako jsou ty zde zobrazené (nebo dokonce jen holé\vert
,\Vert
nebo\mid
) je mnohem bezpečnější a stojí za to se s ním seznámit.
Odpověď
Všimněte si, zda stačí použít |
získáte mathordové mezery, které se liší od mezer, které získáte od spárovaných oddělovačů mathopen / mathclose nebo od \left/\right
i když symbol \left/\right
neroztáhne. Osobně zde dávám přednost levému / pravému rozestupu od mathinnera (i když @egreg říká, že jsem obecně špatně 🙂
\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}
Odpověď
Lze také použít commath
balíček.
\documentclass{article} \usepackage{commath} \begin{document} \[ \norm{a \vec{u}} = \abs{a} \, \norm{\vec{v}} \] \end{document}
Komentáře
- +1 pro tuto, protože zahrnuje sémantiku a má relativně krátkou syntaxi.
- Mezery jsou při použití jako dolní index nějak špatné. div id = „6e31f2ab16“>
z physics
je podle mého názoru lepší volbou.
Odpověď
physics
Balíček LaTeX také implementuje abs
a norm
:
\documentclass{article} \usepackage{physics} \begin{document} \[ c = \abs{-c} \] \[ \vu{a} = \frac{\vb{a}}{\norm{\vb{a}}} \] \end{document}
komentáře
- Myslím, že toto je nejjednodušší řešení!
Odpověď
Jednoduchý nativní způsob LaTeXu je použití oddělovače \|
se standardními \left
a \right
modifikátory ( zdroj ).
Například:
\left\| \sum_{i=1}^{n} x^2 \right\|
dává
Komentáře
- Také: použití oddělovače
|
(bez předchozího zpětného lomítka) jeden svislý pruh. - Pro zábavu zkuste
\|+a\|
, jak vidíte, je to špatné, a proto by uživatelé obecně neměli stačí použít|...|
nebo\|...\|
, protože by se mohly náhodou dostat do situací, kdy to není správné. ‚ Nechám to jako cvičení, proč se to stane. Navíc ve vašem příkladu nemusí být ploty tak vysoké. - U
\|+a\|
se zdá, že mezery jsou špatné, ale u\left\|+a\right\|
vypadá to, že je v pořádku. - Správně, protože jeden je vlevo a druhý vpravo.
\left
a\right
by však měly být přidány, pouze pokud je to skutečně potřeba (což ve skutečnosti není často). Na vaši odpověď si stěžuji, že to obecně není dobré, z důvodů vysvětlených v komentářích k dalším odpovědím v tomto vlákně.
Odpověď
\documentclass{article} \usepackage{amsmath} \begin{document} \[ %begin equation \lVert w \rVert %end equation \] \end{document}
Odpověď
Pro uživatele LyX: možná jsem jen přehlédl, jak to udělat správně, ale nemohl jsem najděte způsob, jak to udělat nativně.
Použil jsem tedy prostředí 1×1-Matrix a nastavil druh na determinant. Může to být jen hack, ale v mém případě použití to funguje dobře.
Komentáře
- Alespoň v případě Lyx 2.1.4 zjišťuji, že do svého vzorce pro zobrazení mohu jednoduše napsat \ lvert a \ rvert a Lyx “ dělá správnou věc. “ V mém konkrétním případě chci pruhy absolutní hodnoty kolem zlomku, takže jsem použil \ bigg \ lvert na jedné straně a \ bigg \ rvert na druhé straně.
Odpověď
Pokud nechcete použít žádný balíček, použijte \mid
.
Komentáře
-
\vert
nevyžaduje ‚ t jakýkoli balíček a mezery nejsou ‚ tak hrozné jako u\mid
.
\usepackage{amsmath}...\(\lvert x\rvert\)
;\mid
označuje relační symbol a je pro absolutní hodnotu nesprávný.$\usepackage{mathtools}...\DeclarePairedDelimiter{\vert}{\lvert}{\rvert}
podle vaší odpovědi na předchozí otázku? tex.stackexchange.com/a/42274/9757\vert
není dobrá volba ‚ s již definováno.|
klávesnice?|
, ale v některých situacích je nutná určitá péče. ce\(|{-1}|=1\)
bez složených závorek by vyšlo špatně, zatímco\(\lvert-1\rvert=1\)
určitě dává správný výstup.