Hice un comando \statementinput
que crea una tabla fácilmente con dos listas de elementos dadas. La mayoría de los elementos son fórmulas matemáticas y no quiero colocar cada uno de ellos \(\)
, así que utilicé el array
entorno interno \[\]
.
Cuando usé \mathrm
un elemento, dio errores. Pensé que la razón es que \mathrm
es frágil, así que agregué \robustify{\mathrm}
y todo parecía estar bien.
Ahora necesito usar \mathbf
. Todavía \robustify{\mathbf}
funciona, pero ahora usarlo \(\mathbf{A}\)
en un lugar normal no funciona y da un error Use of \reserved@a doesn't match its definition. \(\mathbf{A}
. ¿Como puedó resolver esté problema? ¡Gracias de antemano!
Aquí hay un MWE:
\documentclass{article}
\usepackage{tikz, etoolbox}
\usepackage{amsmath, amssymb}
\usepackage{array}
\makeatletter
\NewDocumentCommand{\statementapp}{m m m m}{%
\def\rowAname{#1}%
\def\rowBname{#2}%
\def\listA{#3}%
\def\listB{#4}%
\newcount\listlen
%
\let\arraycontent\empty
\xappto\arraycontent{\text{\rowAname}}
\foreach \Ae in \listA {%
\xappto\arraycontent{& \Ae}%
}%
\gappto\arraycontent{\\ \hline}
\xappto\arraycontent{\text{\rowBname}}
\foreach \Be [count=\n] in \listB {%
\xappto\arraycontent{& \Be}%
\global\let\listlen\n
}%
\[%
\begin{array}{|r<{\hspace{0.3pc}}|*{\listlen}{>{\hspace{0.3pc}}l|}}
\hline
\arraycontent \\
\hline
\end{array}\]%
}
\makeatother
\NewDocumentCommand{\statementinput}{m m}{%
\statementapp{Parameters}{Playing the role of}
{#1}{#2}%
}
\newcommand{\oo}{{\mathrm{o}}}
\robustify{\mathrm}
\robustify{\mathbf}
\begin{document}
\statementinput{\mathrm{Ab}Cd, 2}{B^\oo,4}
\statementinput{\mathbf{Ab}Cd, 2}{B^\oo,4}
%\(\mathbf{A}\) % does not work
\end{document}
Respuesta1
Estás usando las herramientas equivocadas.
\documentclass{article}
\usepackage{array}
\ExplSyntaxOn
\NewDocumentCommand{\statementapp}{mmmm}
{
\greatseo_statementapp:nnnn { #1 } { #2 } { #3 } { #4 }
}
\cs_new_protected:Nn \greatseo_statementapp:nnnn
{
\begin{tabular}
{
|r<{\hspace{0.3pc}}|*{\clist_count:n { #3 }}{>{\hspace{0.3pc}$}l<{$}|}
}
\hline
#1 & \clist_use:nn { #3 } { & } \\
\hline
#2 & \clist_use:nn { #4 } { & } \\
\hline
\end{tabular}
}
\ExplSyntaxOff
\NewDocumentCommand{\statementinput}{m m}{%
\statementapp{Parameters}{Playing the role of}
{#1}{#2}%
}
\newcommand{\oo}{{\mathrm{o}}}
\begin{document}
\statementinput{\mathrm{Ab}Cd, 2}{B^\oo,4}
\medskip
\statementinput{\mathbf{Ab}Cd, 2}{B^\oo,4}
\medskip
\statementinput{\mathbf{Ab}Cd, 2, 3, 4}{B^\oo,4,5,6}
\end{document}