Problema para armazenar número com ifeqcase de xstring

Problema para armazenar número com ifeqcase de xstring

Preciso do valor de uma variável, definida em ifeqcase, fora de ifeqcase. Por exemplo, este código não funciona

\documentclass[12pt]{article}
\usepackage{fontspec}
\usepackage{xunicode}
\usepackage{geometry}
\usepackage{calculator,calculus}
\usepackage{multido}
\usepackage{xstring}
\usepackage[fontsize=22pt]{scrextend}
\setmainfont{Latin Modern Sans Quotation}
\geometry{papersize{30cm,19.35cm},left=1cm,right=1cm,top=1cm,bottom=1cm}
\pagestyle{empty}
\newcommand{\valeurcal}[2]{
\SUBTRACT{1}{\ra}{\partiell}
\MULTIPLY{\partiell}{#1}{\partielll}
\MULTIPLY{\ra}{#2}{\partiell}
\ADD{\partiell}{\partielll}{\leresultat}
}

\begin{document}
\multido{\ra=0.0+0.2}{1}{
\valeurcal{0}{5}
\ROUND[0]{\leresultat}{\coupe}
\IfEqCase{\coupe}{%
{1}{ \COPY{5}{\nouvcoupe}}% test with calculator
{2}{  \def\nouvcoupe{6}}}% test with def, edef and gdef (thank for the answer)
value of nouvcoupe : \nouvcoupe}
\end{document}

dê-me: sequência de controle indefinida. (compilado com xelatex)

O problema parece vir com \valeurcal{0}{5}. Se eu substituir \valeurcal{0}{5}por \COPY{2}{\leresultat}posso compilá-lo (mas não funciona)!

\valeurcal{0}{5}calcular 0*(1-\ra)+5*\raonde \ra O que você me aconselha? Agradeço antecipadamente.

Responder1

usar

\gdef\nouvcoupe{6}

globaldefinitivamenteiniciação

Responder2

OK, [\def\nouvcoupe{6}]estava faltando

\IfEqCase{\coupe}{%
{1}{ \COPY{5}{\nouvcoupe}}% test with calculator
{2}{  \def\nouvcoupe{6}}}[\def\nouvcoupe{6}]

está bem

informação relacionada