
Me gustaría definir algunas variables en un documento tex. Por ejemplo, escribo .tex
algo similar a: Our tool succeeds to validate x samples by Method A, and y samples by Method B. Thus its score is z
. Where z
se define como x+y
y x
(resp. y
) se instancia en otro lugar mediante un número, por ejemplo, 30
(resp. 50
). Como resultado, después de la compilación el texto resulta ser Our tool succeeds to validate 30 samples by Method A, and 50 samples by Method B. Thus its score is 80
.
La ventaja de esto es que solo necesito cambiar el valor de algunas variables, cambiar todos los números en el texto...
¿Alguien sabe como lograr esto?
Respuesta1
\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}
producción-
Respuesta2
Puede utilizar expl3
funciones, en particular el xfp
paquete, qué funciones \fpeval
y \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}
Por supuesto, también puedes usar \x{}
en lugar de \inteval{\x}
, pero con el \inteval
método también puedes hacerlo.
\newcommand{\z}{\x+3*\y}
y use \inteval{\z}
.
Esto supone operaciones con números enteros; si necesita punto flotante, puede usarlo \fpeval
en lugar de \inteval
(pero las cosas se vuelven más complejas).
Respuesta3
Puedes usar contadores para esto:
\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}.