Befehl für argmin oder argmax?

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 \DeclareMathOperator ist 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 zwischen arg und min.
  • @rbp Warum sollte man \arg\min verwenden, wenn einfach argmin macht 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} 

Geben Sie hier die Bildbeschreibung ein.

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 ‚ amsmath Paket?
  • @HomeroEsmeraldo \operatornamewithlimits ist ein veralteter Befehl, der durch amsopn (ein von amsmath geladenes Paket, das nur selten von sich selbst verwendet wird).
  • Danke. Aus irgendeinem Grund lieferte nur \underset zufriedenstellende 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) 

Geben Sie hier die Bildbeschreibung ein.

Oder ähnlich (zum Hinzufügen eines Leerzeichens)

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

Geben Sie hier die Bildbeschreibung ein.

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} 

argmin

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, arg steht 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 argmin zu einem mathord anstelle eines mathop und 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.