Como você pode obter o argmin ou argmax no Latex? Duas soluções que encontrei são:
\underset{x}{\operatorname{argmax}} \DeclareMathOperator*{\argmin}{arg\,min}
Alguma outra ideia?
[1] http://www.breakthru.altervista.org/?p=27
[2] http://researchonsearch.blogspot.com/2007/05/enter-argmax-argmin-in-latex.html
Comentários
Resposta
Como Pieter apontou, a maneira correta de definir os operadores argmin e argmax em LaTeX é:
\usepackage{amsmath} \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min}
Na verdade, usando o seria suficiente, mas é carregado por amsmath
internamente, o que é recomendado para composição matemática de qualquer maneira.
O *
em \DeclareMathOperator*
coloca o argumento sublinhado abaixo da palavra em vez de no canto inferior direito dela.
Comentários
- Se você usar
\DeclareMathOperator*{\argmin}{\arg\!\min}
, você se livra do espaço feio entrearg
emin
. - @rbp Por que usar
\arg\min
quando simplesmenteargmin
faz o mesmo? - @egreg, você ‘ está certo. Cheguei a este depois de algumas experiências com outras opções e não ‘ olhei para trás 🙂
- Em ConTeXt que é:
\definemathcommand [argmin] [limop] {\mfunction{arg\,min}}
- Explicação: Eu deixei o espaço fino (\,) entre o arg e min porque ‘ é o que o pôster original tinha no questão, então presumi que eles queriam o espaço lá. Pessoalmente, eu apenas faria
\DeclareMathOperator*{\argmin}{argmin}
, sem o espaço.
Resposta
Resumo
Na sequência, o LaTeX é assumido.
Questões preliminares
1. Deve um espaço fino separar “arg” de “min”?
Esta é uma questão de preferência pessoal. A definição padrão para \limsup
tem um espaço fino, por outro lado, “arcsin” é geralmente escrito sem um espaço entre os dois componentes. Consistência é, como sempre, a palavra-chave: o uso de uma definição de macro irá garantir isso e também facilidade na modificação da composição em todo o documento, caso seja necessário mudar de uma opção para outra.
2. Os limites devem ficar abaixo do operador no estilo de exibição?
Também isso é discutível e as convenções usadas no campo para o qual o documento foi escrito devem ser seguidas.
3. O nome do operador deve ser formatado na vertical?
Definitivamente, como todos os outros nomes de operador / função, como seno e cosseno.
Ferramentas disponíveis
1. amsmath
Com amsmath
pode-se fazer, no 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
Claro, apenas um deles deve ser usado. No documento, é suficiente digitar \argmin
e o espaçamento ao redor do operador será o correto de acordo com as regras comuns de composição matemática.
O aparentemente diferente
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
não é realmente assim, porque é essencialmente o mesmo que \DeclareMathOperator*{\argmin}{argmin}
; além disso, ele usa um comando obsoleto, que deve ser \operatorname*
.
2. Sem pacote
As seguintes definições são muito semelhantes às anteriores, na mesma ordem
\newcommand{\argmin}{\mathop{\mathrm{arg\,min}} \newcommand{\argmin}{\mathop{\mathrm{argmin}} \newcommand{\argmin}{\mathop{\mathrm{arg\,min}\nolimits} \newcommand{\argmin}{\mathop{\mathrm{argmin}\nolimits}
Com \underset
\underset{x}{\mathrm{argmin}}
Isso também foi mencionado na pergunta e em uma resposta, mas está errado, como a comparação visual mostrará.
3. Diferenças
A versão “sem pacote” é muito mais rígida do que a versão amsmath
, porque este pacote pode receber o nonamelimits
opção que mudará automaticamente todos os operadores como \lim
, \max
que geralmente têm limites (em monitores) para tê-los ao lado. A mesma opção, é claro, atuaria também em operadores recém-definidos, desde que \DeclareMathOperator*
tenha sido usado.
Documento de teste
No teste a seguir documento, as definições ou construções propostas serão comparadas.
\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
Conforme previsto, muitas linhas são compostas da mesma forma. No entanto, as macros definidas com \mathop
não obedecerão à opção nonamelimits
. Além disso, o resultado de \argminD
está claramente errado, pois o limite é composto abaixo de “max” e não abaixo do nome do operador inteiro.
A construção com \underset
está errada porque não usará o espaçamento correto após o operador: um espaço fino segue todos os outros e é a maneira correta de escrever . Compare \sin x
e \mathrm{sin}x
para ver este espaço fino em um contexto diferente.
Observe que \argminC
e \argminA
fornecem o mesmo resultado, bem como \argminD
e \argminB
. Explicação: \arg
e \max
já estão definidos como operadores, então o TeX insere um espaço fino se um seguir diretamente outro. Usar \argminC
ou \argminD
apenas faz o TeX girar um pouco mais, sem nenhuma vantagem sobre \argminA
ou \argminB
.
Comentários
- Essa deve ser a resposta aceita.
- Não é ‘ t
\newcommand{\argmin}{\operatornamewithlimits{argmin}}
diferente por não ‘ usaramsmath
pacote? - @HomeroEsmeraldo
\operatornamewithlimits
é um comando obsoleto definido poramsopn
(um pacote carregado poramsmath
, raramente usado sozinho). - Obrigado. Por alguma razão, apenas
\underset
deu resultados satisfatórios para com (com x sendo sob argmin, não adjacente a ele). - e como fazê-lo funcionar no Jupyter ?
Resposta
Eu uso \newcommand{\argmin}{\operatornamewithlimits{argmin}}
.
Comentários
- +1 Eu gosto disso – por que complicar as coisas? É exatamente igual à
\DeclareMathOperator*
resposta. - Isso resulta em ” argmin “. Para obter ” arg min ” (possivelmente a notação mais comum), defina-o como
{arg\,min}
. - O Google me deu 669.000 respostas para ” arg min ” e 520.000 respostas para ” argmin “, então eu ‘ daria um empate. 😉
- isso funciona …? falta uma declaração de importação?
- O Google Scholar me deu 171.000 por ” arg min ” e 116.000 por ” argmin “.
Resposta
Use \usepackage{amsmath}
e, em seguida:
\operatorname*{argmin}_\theta f(x)
Ou da mesma forma (para adicionar um espaço),
\operatorname*{arg\,max}_\theta f(x)
Comentários
- conciso e direto ao ponto!
Resposta
Apenas outra alternativa (em certo sentido, a solução mais pobre, veja o comentário abaixo), poderia ser definir \argmin
em termos de \min
e \arg
comandos.
\newcommand{\argmin}{\arg\!\min}
Desta forma, 1) \argmin
se comportará sempre da mesma maneira como \min
, 2) não precisa amsmath
ou se preocupa com \operator...
comandos 3) sim, a variável não está centrada (está centrada na parte min
), mas pode até ser o que você deseja (uma vez que é centralizado da mesma forma em um \min
, também o “g” em \arg
não reduz ainda mais o sub-argumento).
\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}
Comentários
- Isso não ‘ não parece uma boa ideia.
\argmin_{x\in X\cap Y} f(x)
irá quebrá-lo completamente. - Para que serve o comando
\arg
? - @ThomasAhle,
arg
é para a função do argumento (ângulo no plano complexo, $ z = | z | e ^ {i \ arg z} $. Tohecz está bem a propósito. - @ boycott.se-yo ‘, ponto positivo.
Resposta
ou você pode usar o comando underset. Por exemplo:
R = \underset{n} {\mathrm{argmax}} ~P(L_n|\mathbf{x})
Comentários
- Não ‘ use isso. Isso torna
argmin
ummathord
em vez demathop
e o espaçamento está incorreto. Além disso, isso não ajustará automaticamente os limites no modo matemático embutido.
Resposta
Eu usaria \mathop
e \mathrm
e, eventualmente, \limits
ou \nolimits
, dependendo do comportamento desejado quando combinado com _
e ^
. Veja abaixo.
\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}
Resposta
Isso funciona sem qualquer pacote adicional. No entanto, ele criará uma nova linha.
$$\pi(s) = arg\max_\theta$$
Comentários
-
$$...$$
não é recomendado para uso com LaTeX. É melhor usar\[ ... \]
para o espaçamento vertical correto. - Esta solução não redigirá argmax corretamente. Aqui, arg estará em itálico (e com espaçamento incorreto) e o máximo em vertical.
\DeclareMathOperator
é o caminho a seguir neste caso.\text{arg}\,\max\limits_{\theta}\,