bucle pgffor con expresión aritmética

bucle pgffor con expresión aritmética

Me he encariñado con este xintexprpaquete 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 foreachbucle. Pensé que \letse 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}

información relacionada