Определить числовые переменные

Определить числовые переменные

Я хотел бы определить некоторые переменные в документе 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(соотв. y) инстанцируется где-то еще числом, например, 30(соотв. 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}.

Связанный контент