¿Comando para argmin o argmax?

¿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

  • ¿Cómo es que estas soluciones (especialmente la segunda) no se sienten bien? El \DeclareMathOperator es el camino a seguir en este caso.
  • Personalmente, me gusta el aspecto de \text{arg}\,\max\limits_{\theta}\,
  • ¿qué pasa con cómo hacer que funcione en Jupyter?

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 entre arg y min.
  • @rbp ¿Por qué debería uno usar \arg\min cuando simplemente argmin 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} 

ingrese la descripción de la imagen aquí

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 usa amsmath paquete?
  • @HomeroEsmeraldo \operatornamewithlimits es un comando obsoleto definido por amsopn (un paquete cargado por amsmath, 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) 

ingrese la descripción de la imagen aquí

O de manera similar (para agregar un espacio),

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

ingrese la descripción de la imagen aquí

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} 

argmin

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 una mathord en lugar de mathop 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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *