在我的文档中,我有一个用户定义的变量,例如:
\newcommand{\MyNumber}{30}
假设,如果我想使用 \MyNumber 的导数,它可能是 \MyNumber+10、100-\MyNumber、5*\MyNumber 或 \MyNumber/5,可以做到吗?
向前迈一步,如果我有:
\newcommand{\MyNumberA}{30}
\newcommand{\MyNumberB}{60}
我可以使用 \MyNumberA+\MyNumberB 吗?
答案1
您可以使用 etex
功能进行简单的计算:
\numexpr (\MyNumberA + 2* \MyNumberN)/3 \relax `
计算 \MyNumberA 和 \MyNumberB 的加权平均值。
类似地,您可以使用 进行带维度的计算\dimexpr
。
答案2
您可以使用 Plain TeX/LaTeX 计数器完成所有这些操作。
\documentclass{article}
\pagestyle{empty}% for cropping
\begin{document}
\obeylines%
\newcount\MyNumber%
\MyNumber=30%
\def\tp#1{\texttt{\string\MyNumber #1} =}%
\tp{} \the\MyNumber
\advance\MyNumber by 10\relax%
\tp{ + 10} \the\MyNumber
\multiply\MyNumber by 100\relax%
\tp{ * 100} \the\MyNumber
\medskip
Adding numbers:
\newcount\MyNumberA
\newcount\MyNumberB
\MyNumberA=30
\MyNumberB=60
\the\MyNumberA + \the\MyNumberB = \the\numexpr\MyNumberA + \MyNumberB\relax
\end{document}