Problema con el nuevo comando
Como estoy tomando una clase de álgebra lineal, a menudo necesito escribir M (mxn, K) y lo encuentro molesto.
Traté de definir un comando: \newcommand{\M}[3]{M(#1 \times #2, #3)}pero esto da un resultado extraño:
¿Cómo puedo solucionar este problema? Gracias por adelantado
Respuestas
Si tu defines
\newcommand{\M}[3]{M(#1 \times #2, #3)}
entonces la sintaxis de entrada debería ser
\M{2}{2}{\mathbb{R}}
y no
\M{2,2,\mathbb{R}}
que de hecho reproduce la salida extraña y, posiblemente, algunos mensajes de error.
Ejemplo:
\documentclass{article}
\usepackage{amsmath,amssymb}
\newcommand{\RR}{\mathbb{R}} % the reals
\newcommand{\M}[3]{M(#1\times #2,#3)}
\begin{document}
Good syntax \verb|\M{2}{2}{\RR}| yields $A\in\M{2}{2}{\RR}$
Bad syntax \verb|\M{2,2,\RR}| yields $A\in\M{2,2,\RR}$
\end{document}
¿Puede hacer que funcione la sintaxis, ciertamente más fácil? Si.
\documentclass{article}
\usepackage{amsmath,amssymb}
%\usepackage{xparse}% not needed for LaTeX 2020-10-01 or later
\newcommand{\RR}{\mathbb{R}} % the reals
\NewDocumentCommand{\M}{>{\SplitArgument{2}{,}}m}{\MLONG#1}
\NewDocumentCommand{\MLONG}{mmm}{M(#1\times #2,#3)}
\begin{document}
Good new syntax \verb|\M{2,2,\RR}| yields $A\in\M{2,2,\RR}$
\end{document}
Donde esta el secreto El preprocesador \SplitArgument{2}{,}le dice a LaTeX que lea el argumento, que debe contener dos comas, y pasar #1como
{<a>}{<b>}{<c>}
cuando el argumento es <a>,<b>,<c>. Entonces, podemos alimentar el argumento transformado con \MLONGtres argumentos estándar.
Como dijo Campa, siempre debe proporcionar una MWE
Por el momento, echa un vistazo a
\documentclass[12pt]{article}
\usepackage[a4paper]{geometry}
\usepackage{mathtools,amsfonts}
\newcommand{\M}[3]{\ensuremath{M(#1 \times #2, #3)}}
\begin{document}
\M{1}{2}{\mathbb{R}}
\end{document}
dando
como se esperaba.
Como se identificaron las otras respuestas, el problema era que necesita escribir \M{2}{2}{R}para usar su macro en el documento.
Es comprensible que desee evitar escribirlo de esa manera, ya que las llaves son difíciles de escribir. egreg mostró una forma de reducir (pero no eliminar) las llaves con LaTeX moderno.
Si desea utilizar una sintaxis similar a la forma en que la escribió en el texto de su pregunta, otro enfoque es la antigua definición de estilo TeX
\def\M(#1x#2,#3){M(#1 \times #2, \mathbb{#3})}
Entonces puedes escribir \M(2x2,R)en tu documento.