2010-08-19 29 views
2

J'ai la pièce suivante de code latex:évaluation variable LATEX

\def\a{1} 
\def\b{2} 
\def\c{\a+\b} 
\def\d{\c/2} 

Je me attendais \ d avoir la valeur 1,5. Mais ce n'est pas le cas. Cependant, en ajoutant entre parenthèses à la définition de \ c comme

\def\c{\a+\b} 

Ne fonctionne pas non plus, parce que si je l'utilise \ c quelque part, il se plaint de la parenthèse. Existe-t-il un moyen d'évaluer \ c avant de le diviser par 2 dans la définition de \ d? Comme:

\def\d{\eval{\c}/2} 

(je fait que \ eval pour montrer ce que je veux dire)

Répondre

2

Vous pouvez utiliser le package calc pour les opérations arithmétiques. Le paquet fp fonctionne avec des nombres réels.

Pour discuter des problèmes de LaTeX, vous êtes invités à visiter tex.stackexchange.com.

2

Vous devez vous rappeler que \def concerne la création de texte de remplacement. Il vous restituera toujours ce que vous avez investi, en plus de ne rien savoir des mathématiques. Si nous supposons que vous utilisez e-TeX (probable), puis pour les expressions entières que vous pourriez faire

\def\a{1} 
\def\b{2} 
\edef\c{\number\intexpr \a + \b \relax} 
\edef\d{\number\intexpr \c/2 \relax} 

Il utilise l'e-TeX \intexpr primitive, qui fait les mathématiques entières. Pour les vrais nombres, Stefan a raison de dire que le paquet fp est la meilleure approche.