Hoe kun je argmin of argmax in latex krijgen? Twee oplossingen die ik heb gevonden zijn:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
Nog andere ideeën?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Reacties
Antwoord
Zoals Pieter opmerkte, is de juiste manier om argmin en argmax operators in LaTeX te definiëren:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
Eigenlijk gebruik je de amsopn
pakket zou voldoende zijn, maar het” wordt intern door amsmath
geladen, wat sowieso wordt aanbevolen voor het zetten van wiskunde.
Het *
in \DeclareMathOperator*
plaatst het onderstreepte argument onder het woord in plaats van rechtsonder.
Opmerkingen
- Als je
\DeclareMathOperator*{\argmin}{\arg\!\min}
gebruikt, verwijder je de lelijke ruimte tussenarg
enmin
. - @rbp Waarom zou je
\arg\min
gebruiken als je gewoonargmin
doet hetzelfde? - @egreg je ‘ hebt gelijk. Ik kwam tot deze door wat te experimenteren met andere opties en ‘ niet terug te kijken 🙂
- In ConTeXt is dat:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
- Uitleg: ik heb de dunne spatie (\,) tussen arg en min gelaten omdat ‘ is wat de originele poster in de vraag, dus ik ging ervan uit dat ze de ruimte daar wilden. Persoonlijk zou ik
\DeclareMathOperator*{\argmin}{argmin}
doen, zonder de spatie.
Answer
Samenvatting
In het vervolg wordt LaTeX verondersteld.
Inleidende vragen
1. Moet een dunne spatie “arg” van “min” scheiden?
Dit is een kwestie van persoonlijke voorkeur. De standaarddefinitie voor \limsup
heeft een dunne spatie, aan de andere kant wordt “arcsin” meestal geschreven zonder spatie tussen de twee componenten. Consistentie is, zoals altijd, het sleutelwoord: het gebruik van een macrodefinitie zorgt ervoor en ook het gemak van het aanpassen van de typografie in het hele document, als het overschakelen van de ene optie naar de andere nodig is.
2. Moeten limieten in weergavestijl onder de operator vallen?
Ook dit is discutabel en de conventies die worden gebruikt in het veld waarvoor het document is geschreven, moeten worden gevolgd.
3. Moet de naam van de operator rechtop worden gezet?
Zeker, net als alle andere namen van operators / functies, zoals sinus en cosinus.
Beschikbare tools
1. amsmath
Met amsmath
kan men in de preambule
\DeclareMathOperator*{\argmin}{arg\,min} % thin space, limits underneath in displays \DeclareMathOperator*{\argmin}{argmin} % no space, limits underneath in displays \DeclareMathOperator{\argmin}{arg\,min} % thin space, limits on side in displays \DeclareMathOperator{\argmin}{argmin} % no space, limits on side in displays
Natuurlijk mag er slechts één hiervan worden gebruikt. In het document is het voldoende om \argmin
in te typen en de afstand rond de operator zal de juiste zijn volgens de gebruikelijke regels voor wiskundig zetwerk.
De schijnbaar verschillend
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
is niet echt zo, omdat het “in wezen hetzelfde is als \DeclareMathOperator*{\argmin}{argmin}
; bovendien gebruikt het een verouderd commando, dat zou \operatorname*
moeten zijn.
2. Geen pakket
De volgende definities lijken erg op de bovenstaande, in dezelfde volgorde
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Met \underset
\underset{x}{\mathrm{argmin}}
Dit werd ook vermeld in de vraag en in één antwoord, maar het is fout, zoals de visuele vergelijking zal laten zien.
3. Verschillen
De “geen pakket” -versie is veel stijver dan de amsmath
-versie, omdat dit pakket de nonamelimits
optie die automatisch alle operators wijzigt, zoals \lim
, \max
die gewoonlijk limieten hebben eronder (in displays) om ze aan de zijkant te hebben. Dezelfde optie zou natuurlijk ook werken op nieuw gedefinieerde operatoren, op voorwaarde dat \DeclareMathOperator*
is gebruikt.
Testdocument
In de volgende test document, worden de voorgestelde definities of constructies vergeleken.
\documentclass{article} \usepackage{amsmath} % limits underneath \DeclareMathOperator*{\argminA}{arg\,min} % Jan Hlavacek \DeclareMathOperator*{\argminB}{argmin} % Jan Hlavacek \DeclareMathOperator*{\argminC}{\arg\min} % rbp \newcommand{\argminD}{\arg\!\min} % AlfC \newcommand{\argminE}{\mathop{\mathrm{argmin}}} % ASdeL \newcommand{\argminF}{\mathop{\mathrm{argmin}}\limits} % ASdeL % limits on side \DeclareMathOperator{\argminG}{arg\,min} % Jan Hlavacek \DeclareMathOperator{\argminH}{argmin} % Jan Hlavacek \newcommand{\argminI}{\mathop{\mathrm{argmin}}\nolimits} % ASdeL \newcommand{\cs}[1]{\texttt{\symbol{`\\}#1}} \begin{document} \begin{align} &\cs{argminA} & \argminA_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminB} & \argminB_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminC} & \argminC_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminD} & \argminD_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminE} & \argminE_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminF} & \argminF_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{underset} & \underset{x}{\mathrm{argmin}} f(x) &= \{x \mid f(x) = \min_{x"} f(x")\}\\ &\cs{argminG} & \argminG_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminH} & \argminH_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \\ &\cs{argminI} & \argminI_x f(x) &= \{x \mid f(x) = \min_{x"} f(x")\} \end{align} \end{document}
Resultaten
Zoals voorspeld, zetten veel regels hetzelfde. De macros die zijn gedefinieerd met \mathop
zullen echter niet voldoen aan de optie nonamelimits
. Ook het resultaat van \argminD
is duidelijk verkeerd, aangezien de limiet onder “max” wordt gezet en niet onder de hele operatornaam.
De constructie met \underset
is verkeerd omdat het niet de juiste tussenruimte gebruikt na de operator: een dunne spatie volgt alle andere en het is de juiste manier om te zetten . Vergelijk \sin x
en \mathrm{sin}x
om deze dunne ruimte in een andere context te zien.
Merk op dat \argminC
en \argminA
geven hetzelfde resultaat, evenals \argminD
en \argminB
. Uitleg: \arg
en \max
zijn al gedefinieerd als operators, dus TeX voegt een dunne spatie in als de ene direct op de andere volgt. Als je \argminC
of \argminD
gebruikt, laat TeX gewoon wat meer draaien, zonder voordeel ten opzichte van \argminA
of \argminB
.
Reacties
- Dit zou het geaccepteerde antwoord moeten zijn.
- Is niet ‘ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
anders doordat ‘ tamsmath
pakket? - @HomeroEsmeraldo
\operatornamewithlimits
is een verouderd commando gedefinieerd dooramsopn
(een pakket geladen dooramsmath
, wordt zelden op zichzelf gebruikt). - Bedankt. Om de een of andere reden gaf alleen
\underset
bevredigende resultaten voor with (waarbij x onder argmin staat, niet ernaast). - hoe zit het met hoe het werkt in Jupyter ?
Answer
Ik gebruik \newcommand{\argmin}{\operatornamewithlimits{argmin}}
.
Reacties
- +1 Ik vind dit leuk – waarom dingen te ingewikkeld maken? Dit ziet er precies hetzelfde uit als het
\DeclareMathOperator*
antwoord. - Dit levert ” argmin “. Om ” arg min ” (misschien wel de meest gebruikelijke notatie) te krijgen, stelt u deze in op
{arg\,min}
. - Google gaf me 669.000 antwoorden voor ” arg min ” en 520.000 antwoorden voor ” argmin “, dus ik ‘ zou het een gelijkspel noemen. 😉
- dit werkt …? ontbreekt er een importinstructie?
- Google Scholar heeft 171.000 voor ” arg min ” en 116.000 voor ” argmin “.
Antwoord
Gebruik \usepackage{amsmath}
en vervolgens:
\operatorname*{argmin}_\theta f(x)
Of op dezelfde manier (voor het toevoegen van een spatie)
\operatorname*{arg\,max}_\theta f(x)
Reacties
- beknopt en ter zake!
Antwoord
Een ander alternatief (in zekere zin de slechtere oplossing, zie onderstaande opmerking), zou kunnen zijn om \argmin
te definiëren in termen van \min
en \arg
opdrachten.
\newcommand{\argmin}{\arg\!\min}
Op deze manier zal 1) \argmin
zich altijd op dezelfde manier gedragen aangezien \min
, 2) amsmath
niet nodig heeft of \operator...
-opdrachten nodig heeft 3) ja, de variabele is niet gecentreerd (het is gecentreerd in het min
deel ), maar dat is misschien zelfs wat u wilt (aangezien het op dezelfde manier is gecentreerd a \min
, ook de “g” in \arg
verlaagt het onder-argument niet verder).
\documentclass[fleqn]{article} \newcommand{\argmin}{\arg\!\min} \begin{document} \[ \argmin_x f(x) = \{x | f(x) = \min_{x"} f(x")\} \] \[ \min_x f(x) = \{f(x) | f(x) < f(x_0) \forall x_0 \in R \] \end{document}
Opmerkingen
- Dit lijkt ‘ geen goed idee.
\argmin_{x\in X\cap Y} f(x)
zal het volledig verbreken. - Waar is het
\arg
commando eigenlijk voor? - @ThomasAhle,
arg
is voor de argumentfunctie (hoek in het complexe vlak, $ z = | z | e ^ {i \ arg z} $. Tohecz heeft trouwens gelijk. - @ boycott.se-yo ‘, goed punt.
Antwoord
of je zou het underset commando kunnen gebruiken. Bijvoorbeeld:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Reacties
- Gelieve ‘ dit niet te gebruiken. Dit maakt
argmin
eenmathord
in plaats van eenmathop
en de spatiëring is onjuist. Bovendien worden hierdoor de limieten niet automatisch aangepast in de inline wiskundige modus.
Antwoord
Ik zou \mathop
en \mathrm
, en uiteindelijk \limits
of \nolimits
, afhankelijk van het gewenste gedrag in combinatie met _
en ^
. Zie hieronder.
\documentclass{article} \begin{document} { nothing: \newcommand{\argmin}{\mathop{\mathrm{argmin}}} $\argmin_a^b$ $$\argmin_a^b$$ } { limits: \newcommand{\argmin}{\mathop{\mathrm{argmin}}\limits} $\argmin_a^b$ $$\argmin_a^b$$ } { nolimits: \newcommand{\argmin}{\mathop{\mathrm{argmin}}\nolimits} $\argmin_a^b$ $$\argmin_a^b$$ } \end{document}
Antwoord
Dit werkt zonder enig aanvullend pakket. Het zal echter een nieuwe regel aanmaken.
$$\pi(s) = arg\max_\theta$$
Reacties
-
$$...$$
wordt niet aanbevolen voor gebruik met LaTeX. Gebruik beter\[ ... \]
voor de juiste verticale afstand. - Deze oplossing zal argmax niet correct zetten. Hier zal arg cursief zijn (en met een slechte spatiëring), en max zal rechtop staan.
\DeclareMathOperator
is de manier om in dit geval te gaan.\text{arg}\,\max\limits_{\theta}\,