
Me he encariñado con este xintexpr
paquete por su agradable sintaxis. Me gustaría repetir un comando M veces y otro 5-M = N veces. Recibo un error debido a que la expresión aritmética de este último está en el foreach
bucle. Pensé que \let
se suponía que usar cs calcularía la expresión. También pensé que tal vez el problema estaba relacionado con la expansión/
MWE a continuación:
\documentclass[11pt,a4paper]{article}
\usepackage{pgffor}
\usepackage{xint}
\usepackage{xintexpr}
\begin{document}
\newcommand{\M}{3}
% my attempts below
\newcommand{\N}{\printnumber{{\xintiexpr5-\M\relax}}}
% \edef\N{\printnumber{\xintiexpr5-\M\relax}}
% \newcommand{\Na}{\xintiexpr5-\M\relax} % intermediate value
% \let\N\Na % tr
\foreach \m in {1,...,\M}{M}
\foreach \n in {1,...,\N}{N} % but the math wont work here
\end{document}
Respuesta1
Quieres hacer una expansión completa de la expresión:
\documentclass[11pt,a4paper]{article}
\usepackage{pgffor}
\usepackage{xint}
\usepackage{xintexpr}
\begin{document}
\newcommand{\M}{3}
\edef\N{\xintthe\xintiexpr5-\M\relax}
\foreach \m in {1,...,\M}{M}
\foreach \n in {1,...,\N}{N}
\end{document}
Esto se imprimirá
MMMNN
Con un enfoque diferente:
\documentclass[11pt,a4paper]{article}
\usepackage{pgffor}
\usepackage{xfp}
\begin{document}
\newcommand{\M}{3}
\foreach \m in {1,...,\M}{M}
\foreach \n in {1,...,\inteval{5-\M}}{N}
\end{document}