2010-08-19 3 views
2

У меня есть следующий кусок кода латекса:переменной оценки в латексных

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

я ожидал \ D, чтобы иметь значение 1.5. Но это не так. Однако, добавление скобки к определению \ с как

\def\c{\a+\b} 

Не работает либо, потому что, если я использую \ с где-то, он жалуется на скобке. Есть ли способ оценить \ c, прежде чем делить его на 2 в определении \ d? Как:

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

(я сделал, что \ Eval, чтобы показать, что я имею в виду)

ответ

2

Вы можете использовать calc пакет для арифметических операций. Пакет fp работает с реальными числами.

Для обсуждения проблем LaTeX вы любезно приглашены посетить tex.stackexchange.com.

2

Необходимо знать, что \def о создании текста для замещения выпуска. Он всегда вернет вам то, что вы вложили, совершенно не зная ничего о математике. Если мы предположим, что вы используете электронную TeX (вероятно), то для целых выражений, которые вы могли бы сделать

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

Это использует электронную TeX примитивного \intexpr, который делает целую математику. Для реальных чисел Стефан прав, что пакет fp - лучший подход.

Смежные вопросы