Comandă pentru argmin sau argmax?

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

  • Cum se simt că nu sunt corecte aceste soluții (în special a doua)? \DeclareMathOperator este calea de urmat în acest caz.
  • Personal, îmi place aspectul \text{arg}\,\max\limits_{\theta}\,
  • ce zici de cum să-l faci să funcționeze în Jupyter?

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 dintre arg și min.
  • @rbp De ce ar trebui să folosiți \arg\min atunci când pur și simplu argmin 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} 

introduceți descrierea imaginii aici

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ște amsmath?
  • @HomeroEsmeraldo \operatornamewithlimits este o comandă învechită definită de amsopn (un pachet încărcat de amsmath, 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) 

introduceți descrierea imaginii aici

Sau în mod similar (pentru adăugarea unui spațiu),

\operatorname*{arg\,max}_\theta f(x) 

introduceți descrierea imaginii aici

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} 

argmin

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 un mathord mai degrabă decât un mathop, 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ă.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *