Wie können Sie Argmin oder Argmax in Latex erhalten? Zwei Lösungen, die ich gefunden habe, sind:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
Irgendwelche anderen Ideen?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Kommentare
- Wie fühlen sich diese Lösungen (insbesondere die zweite) nicht richtig an? Die
\DeclareMathOperatorist in diesem Fall der Weg. - Ich persönlich mag das Aussehen von
- wie funktioniert es in Jupyter?
Antwort
Wie Pieter betonte, ist die korrekte Definition von Argmin- und Argmax-Operatoren in LaTeX:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
Verwenden Sie tatsächlich die würde ausreichen, wird jedoch intern von amsmath geladen, was ohnehin für den mathematischen Satz empfohlen wird.
Die * in \DeclareMathOperator* platziert das unterstrichene Argument unter dem Wort und nicht rechts unten.
Kommentare
- Wenn Sie
\DeclareMathOperator*{\argmin}{\arg\!\min}verwenden, wird der hässliche Raum zwischenargundmin. - @rbp Warum sollte man
\arg\minverwenden, wenn einfachargminmacht dasselbe? - @egreg Sie ‚ haben Recht. Ich bin durch Experimente mit anderen Optionen zu diesem gekommen und habe ‚ nicht zurückgeschaut 🙂
- In ConTeXt heißt das:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}} - Erläuterung: Ich habe den dünnen Abstand (\,) zwischen arg und min belassen, da ‚ das ist, was das Originalplakat in der Frage, also nahm ich an, dass sie den Raum dort wollten. Persönlich würde ich nur
\DeclareMathOperator*{\argmin}{argmin}ohne Leerzeichen ausführen.
Antwort
Zusammenfassung
In der Folge wird LaTeX angenommen.
Vorfragen
1. Sollte ein dünner Raum „arg“ von „min“ trennen?
Dies ist eine Frage der persönlichen Präferenz. Die Standarddefinition für \limsup hat ein dünnes Leerzeichen. Andererseits wird „arcsin“ normalerweise ohne Leerzeichen zwischen den beiden Komponenten geschrieben. Konsistenz ist wie immer das Schlüsselwort: Die Verwendung einer Makrodefinition stellt dies sicher und erleichtert auch das Ändern des Satzes im gesamten Dokument, wenn ein Wechsel von einer Option zu einer anderen erforderlich ist.
2. Sollten die Grenzwerte im Anzeigestil unter den Operator fallen?
Auch dies ist umstritten, und die in dem Feld, für das das Dokument geschrieben wurde, verwendeten Konventionen sollten befolgt werden.
3. Sollte der Operatorname aufrecht gesetzt werden?
Definitiv wie alle anderen Operator- / Funktionsnamen wie Sinus und Cosinus.
Verfügbare Werkzeuge
1. amsmath
Mit amsmath kann in der Präambel
\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
Natürlich sollte nur eine davon verwendet werden. In dem Dokument ist es ausreichend, \argmin einzugeben, und der Abstand um den Operator ist gemäß den allgemeinen Regeln des mathematischen Satzes der richtige.
Das scheinbar anders
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
ist nicht wirklich so, weil es im Wesentlichen dasselbe ist wie \DeclareMathOperator*{\argmin}{argmin}; Außerdem wird ein veralteter Befehl verwendet, der \operatorname* sein sollte.
2. Kein Paket
Die folgenden Definitionen sind den obigen sehr ähnlich, in derselben Reihenfolge
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Mit \underset
\underset{x}{\mathrm{argmin}}
Dies wurde auch in der Frage und in einer Antwort erwähnt, ist aber falsch, wie der visuelle Vergleich zeigen wird.
3. Unterschiede
Die Version „kein Paket“ ist viel starrer als die Version amsmath, da dieses Paket die nonamelimits Option, die automatisch alle Operatoren wie \lim, \max ändert, unter denen normalerweise Grenzwerte liegen (in Displays), um sie auf der Seite zu haben. Die gleiche Option würde natürlich auch für neu definierte Operatoren gelten, vorausgesetzt, \DeclareMathOperator* wurde verwendet.
Testdokument
Im folgenden Test Dokument werden die vorgeschlagenen Definitionen oder Konstruktionen verglichen.
\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}
Ergebnisse
Wie vorhergesagt, werden viele Zeilen gleich gesetzt. Die mit \mathop definierten Makros befolgen jedoch nicht die Option nonamelimits. Auch das Ergebnis von \argminD ist eindeutig falsch, da der Grenzwert unter „max“ und nicht unter dem gesamten Operatornamen gesetzt wird.
Die Konstruktion mit \underset ist falsch, da nach dem Operator nicht der richtige Abstand verwendet wird: Ein dünnes Leerzeichen folgt allen anderen und ist der richtige Weg zum Satz . Vergleichen Sie \sin x und \mathrm{sin}x, um diesen dünnen Raum in einem anderen Kontext zu sehen.
Beachten Sie, dass \argminC und \argminA ergeben das gleiche Ergebnis sowie \argminD und \argminB. Erläuterung: \arg und \max sind bereits als Operatoren definiert, sodass TeX ein dünnes Leerzeichen einfügt, wenn eines direkt einem anderen folgt. Wenn Sie \argminC oder \argminD verwenden, dreht TeX nur ein wenig mehr, ohne Vorteil gegenüber \argminA oder \argminB.
Kommentare
- Dies sollte die akzeptierte Antwort sein.
- Ist ‚ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}nicht anders, da ‚amsmathPaket? - @HomeroEsmeraldo
\operatornamewithlimitsist ein veralteter Befehl, der durchamsopn(ein vonamsmathgeladenes Paket, das nur selten von sich selbst verwendet wird). - Danke. Aus irgendeinem Grund lieferte nur
\undersetzufriedenstellende Ergebnisse für with (wobei x unter argmin steht und nicht daneben liegt). - Wie funktioniert es in Jupyter? ?
Antwort
Ich verwende \newcommand{\argmin}{\operatornamewithlimits{argmin}}.
Kommentare
- +1 Ich mag das – warum Dinge zu kompliziert? Dies sieht genauso aus wie die Antwort
\DeclareMathOperator*. - Dies ergibt “ argmin „. Um “ arg min “ (wohl die üblichste Notation) zu erhalten, setzen Sie es auf
{arg\,min}. - Google gab mir 669.000 Antworten für “ arg min “ und 520.000 Antworten für “ argmin „, daher würde ich ‚ ein Unentschieden nennen. 😉
- das funktioniert …? Fehlt eine Importanweisung?
- Google Scholar hat mir 171.000 für “ arg min “ und 116.000 für “ argmin „.
Antwort
Verwenden Sie \usepackage{amsmath} und dann:
\operatorname*{argmin}_\theta f(x)
Oder ähnlich (zum Hinzufügen eines Leerzeichens)
\operatorname*{arg\,max}_\theta f(x)
Kommentare
- prägnant und auf den Punkt!
Antwort
Eine weitere Alternative (in gewissem Sinne die schlechtere Lösung, siehe Kommentar unten) könnte darin bestehen, \argmin in Bezug auf \min und \arg Befehle.
\newcommand{\argmin}{\arg\!\min}
Auf diese Weise verhält sich 1) \argmin immer gleich als \min, 2) braucht amsmath nicht oder kümmert sich nicht um \operator... Befehle 3) Ja, die Variable ist nicht zentriert (sie ist im Teil min zentriert ), aber das kann sogar das sein, was Sie wollen (da es auf die gleiche Weise zentriert ist wie ein \min, auch das „g“ in \arg senkt das Unterargument nicht weiter).
\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}
Kommentare
- Dies ‚ sieht nicht nach einer guten Idee aus.
\argmin_{x\in X\cap Y} f(x)wird es vollständig beschädigen. - Wofür ist der Befehl
\argüberhaupt? - @ThomasAhle,
argsteht für die Argumentfunktion (Winkel in der komplexen Ebene, $ z = | z | e ^ {i \ arg z} $. Tohecz ist übrigens richtig. - @ boycott.se-yo ‚, guter Punkt.
Antwort
oder Sie können den Befehl underset verwenden. Beispiel:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Kommentare
- Bitte verwenden Sie dies nicht ‚. Dies macht
argminzu einemmathordanstelle einesmathopund der Abstand ist falsch. Außerdem werden die Grenzwerte im Inline-Mathematikmodus nicht automatisch angepasst.
Antwort
Ich würde \mathop und \mathrm und schließlich \limits oder \nolimits, abhängig vom gewünschten Verhalten in Kombination mit _ und ^. Siehe unten.
\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}
Antwort
Dies funktioniert ohne zusätzliches Paket. Es wird jedoch eine neue Zeile erstellt.
$$\pi(s) = arg\max_\theta$$
Kommentare
-
$$...$$wird für die Verwendung mit LaTeX nicht empfohlen. Verwenden Sie besser\[ ... \]für den korrekten vertikalen Abstand. - Diese Lösung setzt argmax nicht richtig. Hier ist arg kursiv (und mit schlechtem Abstand) und max ist aufrecht.