根据另一个变量定义数值变量

根据另一个变量定义数值变量

因此,我有一个名为的变量number,其定义如下:

\def\number{0.25}

我想自动定义一个数字,它将给我1-number(在本例中,它将给我0.75)。我尝试这样做:

\def\othernumber{1-\number}

但是,这似乎不起作用。引擎似乎没有意识到我想\number从中减去1。有人能帮我修复这个语法吗?谢谢 :)

答案1

你可以使用pgf包来实现这一点。而不是 TeX 原始版本,\def你需要使用\pgfmathsetmacro

\documentclass{article}
\usepackage{pgf}

\begin{document}
\pgfmathsetmacro{\first}{0.25}
\pgfmathsetmacro{\second}{1-\first}

The value of \verb|\first| is \first

The value of \verb|\second| is \second
\end{document}

在此处输入图片描述

答案2

您可以使用xparsexfp(后者允许动态计算):

\documentclass{article}
\usepackage{xparse,xfp}

\ExplSyntaxOn
\NewDocumentCommand{\defineconstant}{mm}
 {
  \cs_new:Npx #1 { \fp_eval:n { #2 } }
 }
\ExplSyntaxOff

\begin{document}

\defineconstant{\constantA}{0.25}
\defineconstant{\constantB}{1-\constantA}
\defineconstant{\constantC}{round(sqrt(\constantA),2)+\constantB/2}

The value of \verb|\constantA| is \constantA

The value of \verb|\constantB| is \constantB

The value of \verb|\constantC| is \constantC

\fpeval{round(\constantA-\constantC+exp(2),4)}

\end{document}

在此处输入图片描述

相关内容