Оценка переменных в LateX - PullRequest
       27

Оценка переменных в LateX

2 голосов
/ 19 августа 2010

У меня есть следующий фрагмент латексного кода:

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

Я ожидал, что \ d будет иметь значение 1,5.Но это не так.Однако добавление круглых скобок к определению \ c, например

\def\c{\a+\b}

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

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

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

Ответы [ 2 ]

3 голосов
/ 19 августа 2010

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

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

2 голосов
/ 20 августа 2010

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

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

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

...