Comment pouvez-vous obtenir largmin ou largmax en Latex? Jai trouvé deux solutions:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
Dautres idées?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Commentaires
Réponse
Comme la souligné Pieter, la manière correcte de définir les opérateurs argmin et argmax dans LaTeX est:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
En fait, en utilisant le amsopn
serait suffisant mais il » est chargé par amsmath
en interne, ce qui est recommandé pour la composition mathématique de toute façon.
Le *
in \DeclareMathOperator*
place largument souligné sous le mot plutôt quen bas à droite de celui-ci.
Commentaires
- Si vous utilisez
\DeclareMathOperator*{\argmin}{\arg\!\min}
, vous supprimez le vilain espace entrearg
etmin
. - @rbp Pourquoi utiliser
\arg\min
quand simplementargmin
fait de même? - @egreg vous ‘ avez raison. Je suis arrivé à celui-ci après avoir expérimenté dautres options, et je nai ‘ pas regarder en arrière 🙂
- In ConTeXt cest-à-dire:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
- Explication: Jai laissé lespace mince (\,) entre arg et min parce que ‘ est ce que laffiche originale avait dans le question, alors jai supposé quils voulaient lespace là-bas. Personnellement, je ferais simplement
\DeclareMathOperator*{\argmin}{argmin}
, sans lespace.
Réponse
Résumé
Dans la suite, LaTeX est supposé.
Questions préliminaires
1. Un espace fin doit-il séparer «arg» de «min»?
Cest une question de préférence personnelle. La définition par défaut de \limsup
a un espace mince, par contre «arcsin» est généralement écrit sans espace entre les deux composants. La cohérence est, comme toujours, le mot-clé: lutilisation dune définition de macro le garantira ainsi que la facilité de modification de la composition de lensemble du document, si le passage dune option à une autre est nécessaire.
2. Les limites devraient-elles être inférieures à lopérateur dans le style daffichage?
Cela est également discutable et les conventions utilisées dans le champ pour lequel le document est écrit doivent être suivies.
3. Le nom de lopérateur doit-il être composé verticalement?
Certainement, comme tous les autres noms dopérateur / fonction tels que sinus et cosinus.
Outils disponibles
1. amsmath
Avec amsmath
on peut faire, dans le préambule,
\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
Bien sûr, un seul dentre eux doit être utilisé. Dans le document, il suffit de taper \argmin
et lespacement autour de lopérateur sera le bon selon les règles courantes de la composition mathématique.
Lapparemment différent
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
nest pas vraiment le cas, car cest essentiellement la même chose que \DeclareMathOperator*{\argmin}{argmin}
; de plus, il utilise une commande obsolète, qui devrait être \operatorname*
.
2. Aucun paquet
Les définitions suivantes sont très similaires à celles ci-dessus, dans le même ordre
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Avec \underset
\underset{x}{\mathrm{argmin}}
Cela a également été mentionné dans la question et dans une réponse, mais cest faux, comme le montre la comparaison visuelle.
3. Différences
La version « no package » est beaucoup plus rigide que la version amsmath
, car ce package peut recevoir la nonamelimits
qui modifiera automatiquement tous les opérateurs tels que \lim
, \max
qui ont généralement des limites en dessous (dans affiche) pour les avoir sur le côté. La même option agirait bien sûr également sur les opérateurs nouvellement définis, à condition que \DeclareMathOperator*
ait été utilisé.
Document de test
Dans le test suivant document, les définitions ou constructions proposées seront comparées.
\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}
Résultats
Comme prévu, de nombreuses lignes sont composées de la même manière. Cependant, les macros définies avec \mathop
nobéiront pas à loption nonamelimits
. De plus, le résultat de \argminD
est clairement faux, car la limite est composée en dessous de «max» et non en dessous du nom complet de lopérateur.
La construction avec \underset
est fausse car elle nutilisera pas lespacement correct après lopérateur: un espace fin suit tous les autres et cest la bonne façon de composer . Comparez \sin x
et \mathrm{sin}x
pour voir cet espace mince dans un contexte différent.
Notez que \argminC
et \argminA
donnent le même résultat, ainsi que \argminD
et \argminB
. Explication: \arg
et \max
sont déjà définis comme opérateurs, donc TeX insère un espace fin si lun en suit directement un autre. Utiliser \argminC
ou \argminD
fait simplement tourner TeX un peu plus, sans aucun avantage par rapport à \argminA
ou \argminB
.
Commentaires
- Cela devrait être la réponse acceptée.
- Isn ‘ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
différent en ce quil nutilise ‘ tamsmath
package? - @HomeroEsmeraldo
\operatornamewithlimits
est une commande obsolète définie paramsopn
(un package chargé paramsmath
, rarement utilisé seul). - Merci. Pour une raison quelconque, seul
\underset
a donné des résultats satisfaisants pour with (avec x étant sous argmin, pas adjacent). - et comment le faire fonctionner dans Jupyter ?
Réponse
Jutilise \newcommand{\argmin}{\operatornamewithlimits{argmin}}
.
Commentaires
- +1 Jaime ça – pourquoi trop compliquer les choses? Cela ressemble exactement à la réponse
\DeclareMathOperator*
. - Cela donne » argmin « . Pour obtenir » arg min » (sans doute la notation la plus courante), définissez-le sur
{arg\,min}
. - Google ma donné 669 000 réponses pour » arg min » et 520 000 réponses pour » argmin « , donc je ‘ d appeler cela une égalité. 😉
- ça marche …? une instruction dimportation manque-t-elle?
- Google Scholar ma obtenu 171 000 pour » arg min » et 116 000 pour » argmin « .
Réponse
Utilisez \usepackage{amsmath}
puis:
\operatorname*{argmin}_\theta f(x)
Ou de la même manière (pour ajouter un espace),
\operatorname*{arg\,max}_\theta f(x)
Commentaires
- concis et précis!
Réponse
Une autre alternative (dans un certain sens, la solution la plus pauvre, voir le commentaire ci-dessous), pourrait être de définir \argmin
en termes de \min
et \arg
.
\newcommand{\argmin}{\arg\!\min}
De cette manière, 1) \argmin
se comportera toujours de la même manière car \min
, 2) na pas besoin de amsmath
ou ne se soucie pas des commandes \operator...
3) oui, la variable nest pas centrée (elle est centrée dans la partie min
), mais cela peut même être ce que vous voulez (car il est centré de la même manière a \min
, également le « g » dans \arg
nabaisse pas davantage le sous-argument).
\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}
Commentaires
- Cela ‘ ne semble pas être une bonne idée.
\argmin_{x\in X\cap Y} f(x)
le cassera complètement. - À quoi sert la commande
\arg
de toute façon? - @ThomasAhle,
arg
est pour la fonction argument (angle dans le plan complexe, $ z = | z | e ^ {i \ arg z} $. Tohecz est juste à côté. - @ boycott.se-yo ‘, bon point.
Réponse
ou vous pouvez utiliser la commande underet. Par exemple:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Commentaires
- Veuillez ne ‘ pas lutiliser. Cela fait de
argmin
unmathord
plutôt quunmathop
et lespacement est incorrect. De plus, cela najustera pas automatiquement les limites en mode mathématique en ligne.
Réponse
Jutiliserais \mathop
et \mathrm
, et éventuellement \limits
ou \nolimits
, selon le comportement souhaité lorsquil est combiné avec _
et ^
. Voir ci-dessous.
\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éponse
Cela fonctionne sans package supplémentaire. Cependant, il créera une nouvelle ligne.
$$\pi(s) = arg\max_\theta$$
Commentaires
-
$$...$$
nest pas recommandé dutiliser avec LaTeX. Mieux vaut utiliser\[ ... \]
pour un espacement vertical correct. - Cette solution ne composera pas correctement argmax. Ici, arg sera en italique (et avec un mauvais espacement), et max sera à la verticale.
\DeclareMathOperator
est la voie à suivre dans ce cas.\text{arg}\,\max\limits_{\theta}\,