
Me encontré con un problema al escribir mi informe. No sé cómo solucionar esto. El problema es el siguiente:
Tengo dos comandos personalizados definidos así:
\newcommand{\slr}[1][n]{\ensuremath{{\bf SL}(#1,\mathbb{R})}}
\newcommand{\lie}[1][G]{\ensuremath{{\bf L}(#1)}}
De modo que el primer comando da una salida como ${\bf SL}(n,\mathbb{R})$
y el segundo comando da una salida como ${\bf L}(G)$
. Aquí $n$
y $G$
son respectivamente los argumentos predeterminados.
Ahora, cuando uso estos dos comandos juntos, espero obtener
$${\bf L}({\bf SL}(2,\mathbb{R}))$$
Sin embargo, por alguna razón lo que obtengo es
$$ {\bf L}({\bf SL}(2),\mathbb{R})$$
¿Alguna idea de lo que está pasando aquí?
Respuesta1
El problema \lie[\slr[2]]
es que el argumento opcional to \lie
se considera \slr[2
. Puedes resolver el problema con xparse
:
\documentclass{article}
\usepackage{amsmath,amssymb,xparse}
\DeclareMathOperator{\slrop}{\mathbf{SL}}
\DeclareMathOperator{\lieop}{\mathbf{L}}
\NewDocumentCommand{\slr}{O{n}}{\slrop(#1,\mathbb{R})}
\NewDocumentCommand{\lie}{O{G}}{\lieop(#1)}
\begin{document}
Here it is: $\lie[\slr]$
With optional argument: $\lie[\slr[2]]$
\end{document}
Lo eliminé \ensuremath
porque creo que no se gana nada al usarlo \lie
en el texto en lugar de $\lie$
; por el contrario, creo firmemente que la última forma es mucho mejor, porque las matemáticas siempre se tratan como matemáticas.
Respuesta2
No puedo verlo:
\documentclass{article}
\usepackage{amsmath}
\usepackage{amssymb}
\newcommand\slr[1][n]{\ensuremath{\mathbf{SL}(#1,\mathbb{R})}}
\newcommand\lie[1][G]{\ensuremath{\mathbf{L}}(#1)}
\begin{document}
\[ {\bf L}({\bf SL}(2,\mathbb{R})) \]
\[ \lie[{\slr[2]}] \]
\[ \slr[\lie] \]
\end{document}
Tienes que poner el argumento opcional entre llaves:[{\slr[2]}]