산술 표현식이 포함된 pgffor 루프

산술 표현식이 포함된 pgffor 루프

xintexpr나는 멋진 구문 때문에 이 패키지를 좋아하게 되었습니다 . 명령을 M번 반복하고 또 다른 명령을 5-M = N번 반복하고 싶습니다. 루프 에 있는 후자의 산술 표현식으로 인해 오류가 발생합니다 foreach. \letcs를 사용하면 표현식을 계산할 수 있다고 생각했나요 ? 또한 문제가 확장/

아래 MWE:

\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}

답변1

표현식을 완전히 확장하고 싶습니다.

\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}

이것은 인쇄됩니다

음 NN

다른 접근 방식을 사용하면 다음과 같습니다.

\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}

관련 정보