Kuinka saat argminin tai argmaxin Latexista? Kaksi löytämääni ratkaisua ovat:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
Onko muita ideoita?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Kommentit
Vastaa
Kuten Pieter huomautti, oikea tapa määrittää argmin- ja argmax-operaattorit LaTeX: ssä on:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
Oikeastaan käyttämällä amsopn
-paketti riittäisi, mutta se ladataan amsmath
sisäisesti, mikä on kuitenkin suositeltavaa matemaattiseen ladontaan.
*
kohtaan \DeclareMathOperator*
sijoittaa alleviivatun argumentin sanan alle sen oikeassa alakulmassa.
Kommentit
- Jos käytät
\DeclareMathOperator*{\argmin}{\arg\!\min}
-toimintoa, pääset eroon rummasta tilastaarg
jamin
. - @rbp Miksi
\arg\min
pitäisi käyttää, kun yksinkertaisestiargmin
tekee saman? - @egreg olet ’ oikeassa. Pääsin tähän kokeilemalla muita vaihtoehtoja, enkä ’ katsonut taaksepäin 🙂
- ConTeXt: ssä:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
- Selitys: Jätin argin ja min välisen ohuen tilan (\,) koska ’ s mitä alkuperäisellä julisteella oli kysymys, joten oletin, että he halusivat tilaa siellä. Henkilökohtaisesti tekisin vain
\DeclareMathOperator*{\argmin}{argmin}
ilman välilyöntiä.
Vastaa
Yhteenveto
Jatkossa oletetaan LaTeX.
Alustavat kysymykset
1. Pitäisikö ohut tila erottaa “arg” ja “min”?
Tässä on kyse henkilökohtaisista mieltymyksistä. Oletusmäärittelyssä \limsup
on ohut tila, toisaalta ”arcsin” kirjoitetaan yleensä ilman välilyöntiä kahden komponentin välillä. Johdonmukaisuus on, kuten aina, avainsana: makron määrittelyn avulla varmistetaan se ja myös koko asiakirjan kirjasimen muokkaamisen helppous, jos vaihdetaan vaihtoehdosta toiseen.
2. Pitäisikö rajoitusten ylittää operaattorin näyttötyyli?
Tämä on myös kiistanalainen ja asiakirjan kirjoituskentässä käytettyjä käytäntöjä tulisi noudattaa.
3. Pitäisikö operaattorin nimi olla pystysuuntainen?
Ehdottomasti, kuten kaikki muut operaattorin / funktion nimet, kuten sini ja kosini.
Käytettävissä olevat työkalut
1. amsmath
Kun amsmath
voidaan tehdä johdanto-osassa
\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
Tietysti vain yhtä näistä tulisi käyttää. Asiakirjassa riittää, että kirjoitat \argmin
, ja etäisyys operaattorin ympärillä on oikea matemaattisen ladonnan yleisten sääntöjen mukaisesti.
Näennäisesti näennäisesti erilainen
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
ei todellakaan ole, koska se on olennaisesti sama kuin \DeclareMathOperator*{\argmin}{argmin}
; Lisäksi se käyttää vanhentunutta komentoa, jonka tulisi olla \operatorname*
.
2. Ei pakettia
Seuraavat määritelmät ovat hyvin samanlaisia kuin yllä olevat, samassa järjestyksessä
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Kanssa \underset
\underset{x}{\mathrm{argmin}}
Tämä mainittiin myös kysymyksessä ja yhdessä vastauksessa, mutta se on väärä, kuten visuaalinen vertailu osoittaa.
3. Erot
”Ei pakettia” -versio on paljon jäykempi kuin amsmath
-versio, koska tämä paketti voi vastaanottaa nonamelimits
-vaihtoehto, joka muuttaa automaattisesti kaikki operaattorit, kuten \lim
, \max
, joiden alla on yleensä rajoituksia ( näytöt), jotta ne olisivat sivussa. Sama vaihtoehto toimisi tietysti myös uusille operaattoreille, jos \DeclareMathOperator*
on käytetty.
Testiasiakirja
Seuraavassa testissä asiakirjassa ehdotettuja määritelmiä tai rakenteita verrataan.
\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}
Tulokset
Kuten ennustettiin, monet rivit asettavat saman. \mathop
-kohdassa määritetyt makrot eivät kuitenkaan noudata vaihtoehtoa nonamelimits
. Myös \argminD
-tulos on selvästi väärä, koska raja on asetettu alle “max” eikä alle koko operaattorin nimen.
Rakenne, jossa on \underset
, on väärä, koska se ei käytä oikeaa väliä käyttäjän jälkeen: ohut tila seuraa kaikkia muita ja se on oikea tapa kirjoittaa . Vertaa \sin x
ja \mathrm{sin}x
nähdäksesi tämän ohuen tilan eri kontekstissa.
Huomaa, että \argminC
ja \argminA
antavat saman tuloksen, samoin kuin \argminD
ja \argminB
. Selitys: \arg
ja \max
on jo määritelty operaattoreiksi, joten TeX lisää ohuen tilan, jos toinen seuraa suoraan toista. \argminC
– tai \argminD
-toiminnon käyttäminen saa TeX-pyörän pyörimään hieman enemmän ilman etua \argminA
tai \argminB
.
Kommentit
- Tämän pitäisi olla hyväksytty vastaus.
- Isn ’ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
eroaa siitä, että se ei ’ käytäamsmath
-paketti? - @HomeroEsmeraldo
\operatornamewithlimits
on vanhentunut komento, jonka määritteleeamsopn
(paketti, jonka lataaamsmath
, käyttää itse harvoin). - Kiitos. Jostain syystä vain
\underset
antoi tyydyttävät tulokset (x: n ollessa argminin alla, ei sen vieressä). - entäs miten saada se toimimaan Jupyterissa ?
vastaus
Käytän \newcommand{\argmin}{\operatornamewithlimits{argmin}}
.
Kommentit
- +1 Pidän tästä – miksi monimutkaistaa asioita? Tämä näyttää täsmälleen samalta kuin
\DeclareMathOperator*
vastaus. - Tämä antaa ” argmin ”. Saadaksesi ” arg min ” (epäilemättä tavallisin merkintätapa), aseta se arvoon
{arg\,min}
. - Google antoi minulle 669 000 vastausta kysymykseen ” arg min ” ja 520 000 vastausta kyselyyn ” argmin ”, joten ’ kutsun sitä tasapeliksi. 😉
- tämä toimii …? onko puuttuvaa tuontilausetta?
- Google Scholar sai minut 171 000: lle ” arg min ” ja 116 000 varten ” argmin ”.
Vastaa
Käytä \usepackage{amsmath}
ja sitten:
\operatorname*{argmin}_\theta f(x)
Tai vastaavasti (välilyönnin lisäämiseksi),
\operatorname*{arg\,max}_\theta f(x)
kommentit
- ytimekäs ja asiaankuuluva!
Vastaa
Ainoa vaihtoehto (jossain mielessä huonompi ratkaisu, katso alla oleva kommentti) voisi olla määritellä \argmin
\min
ja \arg
-komennot.
\newcommand{\argmin}{\arg\!\min}
Tällä tavoin 1) \argmin
käyttäytyy aina samalla tavalla kuten \min
, 2) ei tarvitse amsmath
tai välitä komennoista \operator...
3) kyllä, muuttuja ei keskellä (se on keskitetty min
-osaan ), mutta se voi jopa olla mitä haluat (koska se on keskitetty samalla tavalla a \min
, myös ”g” ryhmässä \arg
ei laske aliargumenttia edelleen).
\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}
Kommentit
- Tämä ei ’ näytä hyvältä ajatukselta.
\argmin_{x\in X\cap Y} f(x)
rikkoo sen kokonaan. - Mille komennot
\arg
siis tarkoitetaan? - @ThomasAhle,
arg
on tarkoitettu argumenttitoiminnolle (kulma kompleksitasossa, $ z = | z | e ^ {i \ arg z} $. Tohecz on muuten oikea. - @ boycott.se-yo ’, hyvä asia.
Vastaa
tai voit käyttää alikomentokomentoa. Esimerkiksi:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Kommentit
- Älä käytä ’ tätä. Tämä tekee
argmin
amathord
pikemminkin kuinmathop
ja väli on väärä. Lisäksi tämä ei säädä rajoja automaattisesti matemaattisessa tilassa.
vastaus
Käytän \mathop
ja \mathrm
ja lopulta \limits
tai \nolimits
, riippuen halutusta käyttäytymisestä yhdistettynä _
ja ^
. Katso alla.
\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}
Vastaa
Tämä toimii ilman lisäpakettia. Se kuitenkin luo uuden rivin.
$$\pi(s) = arg\max_\theta$$
Kommentit
-
$$...$$
ei suositella käytettäväksi LaTeX: n kanssa. Paremman\[ ... \]
-toiminnon käyttäminen oikean pystysuoran välin suhteen. - Tämä ratkaisu ei kirjoita argmaxia oikein. Tässä arg on kursiivilla (ja huonoilla väleillä) ja max on pystyssä.
\DeclareMathOperator
on tapa tässä tapauksessa.