
Ich möchte einige Variablen in einem Tex-Dokument definieren. Ich schreibe beispielsweise .tex
etwas Ähnliches wie: Our tool succeeds to validate x samples by Method A, and y samples by Method B. Thus its score is z
. Wobei z
definiert ist als x+y
und x
(bzw. y
) an anderer Stelle durch eine Zahl instanziiert wird, z. B. 30
(bzw. 50
). Als Ergebnis ergibt sich nach der Kompilierung der Text als Our tool succeeds to validate 30 samples by Method A, and 50 samples by Method B. Thus its score is 80
.
Der Vorteil dabei ist, dass ich nur den Wert einiger Variablen ändern muss, um alle Zahlen im Text zu ändern ...
Weiß jemand, wie das erreicht wird?
Antwort1
\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}
Ausgabe-
Antwort2
Sie können Features nutzen expl3
, insbesondere das xfp
Paket, welches Features \fpeval
und bietet \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}
Natürlich können Sie auch \x{}
anstelle von verwenden \inteval{\x}
, aber mit der \inteval
Methode können Sie auch
\newcommand{\z}{\x+3*\y}
und verwenden Sie \inteval{\z}
.
Dies setzt Operationen mit Ganzzahlen voraus. Wenn Sie Gleitkommazahlen benötigen, können Sie \fpeval
anstelle von verwenden \inteval
(die Dinge werden dann aber komplexer).
Antwort3
Hierzu können Sie Zähler verwenden:
\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}.