¿Cómo se puede obtener argmin o argmax en Latex? Dos soluciones que encontré son:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
¿Alguna otra idea?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Comentarios
Respuesta
Como señaló Pieter, la forma correcta de definir los operadores argmin y argmax en LaTeX es:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
En realidad, usando el amsopn
sería suficiente, pero amsmath
lo carga internamente, lo que se recomienda para la composición tipográfica matemática de todos modos.
El *
en \DeclareMathOperator*
coloca el argumento subrayado debajo de la palabra en lugar de en la parte inferior derecha.
Comentarios
- Si usas
\DeclareMathOperator*{\argmin}{\arg\!\min}
te deshaces del feo espacio entrearg
ymin
. - @rbp ¿Por qué debería uno usar
\arg\min
cuando simplementeargmin
hace lo mismo? - @egreg, ‘ tienes razón. Llegué a este después de experimentar con otras opciones, y no ‘ miré hacia atrás 🙂
- En ConTeXt, es decir:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
- Explicación: Dejé el espacio delgado (\,) entre arg y min porque ese ‘ s lo que tenía el póster original en el pregunta, así que asumí que querían el espacio allí. Personalmente, solo haría
\DeclareMathOperator*{\argmin}{argmin}
, sin el espacio.
Responder
Resumen
En la secuela, se asume LaTeX.
Preguntas preliminares
1. ¿Debería un espacio delgado separar «arg» de «min»?
Esto es una cuestión de preferencia personal. La definición predeterminada de \limsup
tiene un espacio reducido, por otro lado, «arcsin» generalmente se escribe sin un espacio entre los dos componentes. La coherencia es, como siempre, la palabra clave: el uso de una macrodefinición lo asegurará y también la facilidad para modificar la composición tipográfica en todo el documento, si es necesario cambiar de una opción a otra.
2. ¿Deberían los límites ir por debajo del operador en el estilo de visualización?
También esto es discutible y se deben seguir las convenciones utilizadas en el campo para el que está escrito el documento.
3. ¿El nombre del operador debe escribirse en posición vertical?
Definitivamente, como todos los demás nombres de operadores / funciones, como seno y coseno.
Herramientas disponibles
1. amsmath
Con amsmath
se puede hacer, en el preámbulo,
\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
Por supuesto, solo se debe usar uno de estos. En el documento es suficiente escribir \argmin
y el espacio alrededor del operador será el correcto de acuerdo con las reglas comunes de la composición tipográfica matemática.
El aparentemente diferente
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
no es realmente así, porque «es esencialmente lo mismo que \DeclareMathOperator*{\argmin}{argmin}
; además, utiliza un comando obsoleto, que debería ser \operatorname*
.
2. Sin paquete
Las siguientes definiciones son muy similares a las anteriores, en el mismo orden
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Con \underset
\underset{x}{\mathrm{argmin}}
Esto también se mencionó en la pregunta y en una respuesta, pero es incorrecto, como lo mostrará la comparación visual.
3. Diferencias
La versión «sin paquete» es mucho más rígida que la versión amsmath
, porque este paquete puede recibir la nonamelimits
que cambiará automáticamente todos operadores como \lim
, \max
que normalmente tienen límites debajo (en pantallas) para tenerlos a un lado. Por supuesto, la misma opción actuaría también en los operadores recién definidos, siempre que se haya utilizado \DeclareMathOperator*
.
Documento de prueba
En la siguiente prueba documento, se compararán las definiciones o construcciones propuestas.
\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}
Resultados
Como se predijo, muchas líneas componen la misma tipografía. Sin embargo, las macros definidas con \mathop
no obedecerán la opción nonamelimits
. Además, el resultado de \argminD
es claramente incorrecto, ya que el límite está escrito por debajo de «max» y no por debajo del nombre completo del operador.
La construcción con \underset
es incorrecta porque no usará el espacio correcto después del operador: un espacio delgado sigue a todos los demás y es la forma correcta de componer . Compare \sin x
y \mathrm{sin}x
para ver este espacio reducido en un contexto diferente.
Tenga en cuenta que \argminC
y \argminA
dan el mismo resultado, así como \argminD
y \argminB
. Explicación: \arg
y \max
ya están definidos como operadores, por lo que TeX inserta un pequeño espacio si uno sigue directamente a otro. El uso de \argminC
o \argminD
solo hace que TeX gire un poco más, sin ninguna ventaja sobre \argminA
o \argminB
.
Comentarios
- Esta debe ser la respuesta aceptada.
- ¿No es ‘ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
diferente en que no ‘ no usaamsmath
paquete? - @HomeroEsmeraldo
\operatornamewithlimits
es un comando obsoleto definido poramsopn
(un paquete cargado poramsmath
, que rara vez se usa solo). - Gracias. Por alguna razón, solo
\underset
dio resultados satisfactorios para con (con x debajo de argmin, no adyacente a él). - ¿Y cómo hacer que funcione en Jupyter? ?
Responder
Yo uso \newcommand{\argmin}{\operatornamewithlimits{argmin}}
.
Comentarios
- +1 Me gusta esto, ¿por qué complicar demasiado las cosas? Esto se ve exactamente igual que la
\DeclareMathOperator*
respuesta. - Esto da como resultado » argmin «. Para obtener » arg min » (posiblemente la notación más habitual), establézcalo en
{arg\,min}
. - Google me dio 669.000 respuestas para » arg min » y 520.000 respuestas para » argmin «, así que ‘ lo llamaría empate. 😉
- esto funciona …? ¿Falta una declaración de importación?
- Google Scholar me consiguió 171.000 por » arg min » y 116.000 por » argmin «.
Respuesta
Utilice \usepackage{amsmath}
y luego:
\operatorname*{argmin}_\theta f(x)
O de manera similar (para agregar un espacio),
\operatorname*{arg\,max}_\theta f(x)
Comentarios
- conciso y al grano.
Responder
Solo otra alternativa (en cierto sentido, la solución más pobre, ver el comentario a continuación), podría ser definir \argmin
en términos de \min
y \arg
comandos.
\newcommand{\argmin}{\arg\!\min}
De esta manera, 1) \argmin
se comportará siempre de la misma manera ya que \min
, 2) no necesita amsmath
ni le importan \operator...
comandos 3) sí, la variable no está centrada (está centrada en la parte min
), pero eso puede ser incluso lo que desea (ya que está centrado de la misma manera que un \min
, también la «g» en \arg
no reduce aún más el argumento inferior).
\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}
Comentarios
- Esto no ‘ parece una buena idea.
\argmin_{x\in X\cap Y} f(x)
lo romperá por completo. - ¿Para qué sirve el comando
\arg
de todos modos? - @ThomasAhle,
arg
es para la función de argumento (ángulo en el plano complejo, $ z = | z | e ^ {i \ arg z} $. Tohecz es justo por cierto. - @ boycott.se-yo ‘, buen punto.
Responder
o puede usar el comando underset. Por ejemplo:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Comentarios
- Por favor, no ‘ t use esto. Esto hace que
argmin
sea unamathord
en lugar demathop
y el espaciado es incorrecto. Además, esto no ajustará automáticamente los límites en el modo matemático en línea.
Respuesta
Yo usaría \mathop
y \mathrm
y, finalmente, \limits
o \nolimits
, según el comportamiento deseado cuando se combina con _
y ^
. Vea a continuación.
\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}
Respuesta
Esto funciona sin ningún paquete adicional. Sin embargo, creará una nueva línea.
$$\pi(s) = arg\max_\theta$$
Comentarios
-
$$...$$
no se recomienda su uso con LaTeX. Es mejor usar\[ ... \]
para el espaciado vertical correcto. - Esta solución no compondrá argmax correctamente. Aquí, arg estará en cursiva (y con un espaciado incorrecto) y max estará en posición vertical.
\DeclareMathOperator
es el camino a seguir en este caso.\text{arg}\,\max\limits_{\theta}\,