¿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 entreargymin. - @rbp ¿Por qué debería uno usar
\arg\mincuando simplementeargminhace 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 usaamsmathpaquete? - @HomeroEsmeraldo
\operatornamewithlimitses un comando obsoleto definido poramsopn(un paquete cargado poramsmath, que rara vez se usa solo). - Gracias. Por alguna razón, solo
\undersetdio 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
\argde todos modos? - @ThomasAhle,
arges 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
argminsea unamathorden lugar demathopy 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.
\DeclareMathOperatores el camino a seguir en este caso.\text{arg}\,\max\limits_{\theta}\,