
我想在 tex 文檔中定義一些變數。例如,我寫的.tex
內容類似:Our tool succeeds to validate x samples by Method A, and y samples by Method B. Thus its score is z
。其中z
定義為x+y
,並且x
(resp. y
) 在其他地方由數字實例化,例如,30
(resp. 50
)。結果,編譯後的文字變成了Our tool succeeds to validate 30 samples by Method A, and 50 samples by Method B. Thus its score is 80
。
這樣做的好處是,我只需要更改一些變數的值,即可更改文字中的所有數字...
有誰知道如何實現這一目標?
答案1
\documentclass{article}
\newcommand\x{30}
\newcommand\y{50}
\begin{document}
I would like to define some variables in a tex document. For example,
I write in .tex something similar as: Our tool succeeds to validate \x\
samples by Method A, and \y\ samples by Method B. Thus its score is
\the\numexpr\x+\y\relax.
\end{document}
輸出-
答案2
您可以使用expl3
功能,特別是xfp
包,其中功能\fpeval
和\inteval
.
\documentclass{article}
\usepackage{xfp}
\newcommand\x{30}
\newcommand\y{50}
\begin{document}
I would like to define some variables in a \TeX{} document. For example,
I write in \texttt{.tex} something similar as: Our tool succeeds to
validate \inteval{\x} samples by Method~A, and \inteval{\y} samples by
Method~B. Thus its score is \inteval{\x+\y}.
\end{document}
當然你也可以使用\x{}
代替\inteval{\x}
,但是使用\inteval
方法你也可以這樣做
\newcommand{\z}{\x+3*\y}
並使用\inteval{\z}
.
這假設對整數進行運算;如果你需要浮點,你可以使用\fpeval
而不是\inteval
(但事情會變得更複雜)。
答案3
您可以為此使用計數器:
\newcounter{x}
\setcounter{x}{30}
\newcounter{y}
\setcounter{y}{50}
Our tool succeeds to validate \arabic{x} samples by Method A,
and \arabic{y} samples by Method B. Thus its score is
\the\numexpr\value{x}+\value{y}.