Cum puteți obține argmin sau argmax în Latex? Două soluții pe care le-am găsit sunt:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
Alte idei?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Comentarii
Răspunde
După cum a subliniat Pieter, modul corect de a defini operatorii argmin și argmax în LaTeX este:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
De fapt, utilizând ar fi suficient, dar este încărcat de amsmath
intern, ceea ce este oricum recomandat pentru tipărirea matematică.
în \DeclareMathOperator*
plasează argumentul subliniat sub cuvânt, mai degrabă decât în partea dreaptă jos a acestuia.
Comentarii
- Dacă utilizați
\DeclareMathOperator*{\argmin}{\arg\!\min}
, scăpați de spațiul urât dintrearg
șimin
. - @rbp De ce ar trebui să folosiți
\arg\min
atunci când pur și simpluargmin
face la fel? - @egreg ai ‘ dreptate. Am ajuns la aceasta din cauza unor experimentări cu alte opțiuni și nu am ‘ căutat înapoi 🙂
- În ConTeXt, adică:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
- Explicație: am lăsat spațiul subțire (\,) între arg și min, deoarece ‘ este ceea ce avea posterul original în întrebare, așa că am presupus că vor spațiul de acolo. Personal, aș face doar
\DeclareMathOperator*{\argmin}{argmin}
, fără spațiu.
Răspunde
Rezumat
În continuare, se presupune că LaTeX.
Întrebări preliminare
1. Ar trebui ca un spațiu subțire să separe „arg” de „min”?
Aceasta este o chestiune de preferință personală. Definiția implicită pentru \limsup
are un spațiu subțire, pe de altă parte, „arcsin” este de obicei scris fără un spațiu între cele două componente. Coerența este, ca întotdeauna, cuvântul cheie: utilizarea unei definiții macro o va asigura și, de asemenea, ușurința în modificarea tipăririi în întregul document, dacă este necesară trecerea de la o opțiune la alta.
2. Ar trebui ca limitele să fie mai mici decât operatorul în stil de afișare?
De asemenea, acest lucru este discutabil și convențiile utilizate în câmpul pentru care este scris documentul trebuie respectate.
3. Numele operatorului ar trebui să fie tipărit în poziție verticală?
Cu siguranță, la fel ca toate celelalte nume de operator / funcție precum sinus și cosinus.
Instrumente disponibile
1. amsmath
Cu amsmath
se poate face, în preambul,
\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
Desigur, numai unul dintre acestea ar trebui utilizat. În document este suficient să tastați \argmin
, iar spațiul în jurul operatorului va fi cel potrivit conform regulilor comune de tipare a matematicii.
diferit
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
nu este chiar așa, deoarece este în esență același cu \DeclareMathOperator*{\argmin}{argmin}
; în plus, folosește o comandă depreciată, care ar trebui să fie \operatorname*
.
2. Niciun pachet
Următoarele definiții sunt foarte asemănătoare cu cele de mai sus, în aceeași ordine
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Cu \underset
\underset{x}{\mathrm{argmin}}
Acest lucru a fost menționat și în întrebare și într-un singur răspuns, dar este greșit, așa cum va arăta comparația vizuală.
3. Diferențe
Versiunea „fără pachet” este mult mai rigidă decât versiunea amsmath
, deoarece acest pachet poate primi nonamelimits
opțiune care va schimba automat toți operatorii, cum ar fi \lim
, \max
care au de obicei limite dedesubt (în afișează) pentru a le avea pe lateral. Aceeași opțiune ar acționa, desigur, și asupra operatorilor nou definiți, cu condiția să se fi folosit \DeclareMathOperator*
.
Document de testare
În următorul test document, definițiile sau construcțiile propuse vor fi comparate.
\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}
Rezultate
După cum s-a prezis, mai multe linii tipăresc la fel. Cu toate acestea, macrocomenzile definite cu \mathop
nu vor respecta opțiunea nonamelimits
. De asemenea, rezultatul \argminD
este în mod clar greșit, deoarece limita este setată sub „max” și nu sub numele întregului operator.
Construcția cu \underset
este greșită, deoarece nu va folosi spațierea corectă după operator: un spațiu subțire urmează tuturor celorlalte și este modul corect de a tipări . Comparați \sin x
și \mathrm{sin}x
pentru a vedea acest spațiu subțire într-un context diferit.
Rețineți că \argminC
și \argminA
dau același rezultat, precum și \argminD
și \argminB
. Explicație: \arg
și \max
sunt deja definite ca operatori, așa că TeX introduce un spațiu subțire dacă urmează direct altul. Folosirea \argminC
sau \argminD
face ca TeX să-și învârtă roțile puțin mai mult, fără niciun avantaj față de \argminA
sau \argminB
.
Comentarii
- Acesta ar trebui să fie răspunsul acceptat.
- Nu este ‘ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
diferit prin faptul că nu ‘ nu foloseșteamsmath
? - @HomeroEsmeraldo
\operatornamewithlimits
este o comandă învechită definită deamsopn
(un pachet încărcat deamsmath
, rar folosit de el însuși). - Mulțumesc. Din anumite motive, numai
\underset
a dat rezultate satisfăcătoare pentru cu (cu x fiind sub argmin, nu adiacent la acesta). - ce să zicem cum să-l facem să funcționeze în Jupyter ?
Răspuns
Folosesc \newcommand{\argmin}{\operatornamewithlimits{argmin}}
.
Comentarii
- +1 Îmi place acest lucru – de ce să complicăm lucrurile în exces? Acest lucru arată exact la fel ca răspunsul
\DeclareMathOperator*
. - Aceasta generează ” argmin „. Pentru a obține ” arg min ” (probabil cea mai obișnuită notație), setați-l la
{arg\,min}
. - Google mi-a dat 669.000 de răspunsuri pentru ” arg min ” și 520.000 de răspunsuri pentru ” argmin „, așa că ‘ l-am numit egalitate. 😉
- asta funcționează …? lipsește o declarație de import?
- Google Scholar mi-a primit 171.000 pentru ” arg min ” și 116.000 pentru ” argmin „.
Răspuns
Utilizați \usepackage{amsmath}
și apoi:
\operatorname*{argmin}_\theta f(x)
Sau în mod similar (pentru adăugarea unui spațiu),
\operatorname*{arg\,max}_\theta f(x)
Comentarii
- concis și la obiect!
Răspunde
O altă alternativă (într-un anumit sens, soluția mai slabă din jur, a se vedea comentariul de mai jos), ar putea fi definirea \argmin
în termeni de \min
și \arg
.
\newcommand{\argmin}{\arg\!\min}
În acest fel, 1) \argmin
se va comporta întotdeauna în același mod ca \min
, 2) nu are nevoie de amsmath
sau de comenzi \operator...
3) da, variabila din necentrată (este centrată în partea min
), dar asta poate fi chiar ceea ce doriți (deoarece este centrat în aceleași moduri ca \min
, de asemenea, „g” din \arg
nu scade în continuare argumentul sub).
\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}
Comentarii
- Acest lucru nu arată ‘ ca o idee bună.
\argmin_{x\in X\cap Y} f(x)
o va rupe complet. - Pentru ce este oricum comanda
\arg
? - @ThomasAhle,
arg
este pentru funcția argument (unghiul în planul complex, $ z = | z | e ^ {i \ arg z} $. Tohecz este apropo. - @ boycott.se-yo ‘, punct bun.
Răspuns
sau puteți utiliza comanda underset. De exemplu:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Comentarii
- Vă rugăm să nu ‘ nu utilizați acest lucru. Aceasta face din
argmin
unmathord
mai degrabă decât unmathop
, iar spațiul este incorect. Mai mult, acest lucru nu va regla automat limitele în modul matematic în linie.
Răspuns
Aș folosi \mathop
și \mathrm
și, în cele din urmă, \limits
sau \nolimits
, în funcție de comportamentul dorit atunci când este combinat cu _
și ^
. Vedeți mai jos.
\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}
Răspuns
Acest lucru funcționează fără niciun pachet suplimentar. Cu toate acestea, va crea o nouă linie.
$$\pi(s) = arg\max_\theta$$
Comentarii
-
$$...$$
nu este recomandat să se utilizeze cu LaTeX. Utilizați mai bine\[ ... \]
pentru spațierea verticală corectă. - Această soluție nu va compensa argmax corect. Aici, arg va fi în cursiv (și cu spațierea slabă), iar max va fi în poziție verticală.
\DeclareMathOperator
este calea de urmat în acest caz.\text{arg}\,\max\limits_{\theta}\,