
Gostaria de definir algumas variáveis em um documento tex. Por exemplo, escrevo .tex
algo semelhante a: Our tool succeeds to validate x samples by Method A, and y samples by Method B. Thus its score is z
. Onde z
é definido como x+y
e x
(resp. y
) é instanciado em outro lugar por um número, por exemplo, 30
(resp. 50
). Como resultado, após a compilação, o texto acaba sendo Our tool succeeds to validate 30 samples by Method A, and 50 samples by Method B. Thus its score is 80
.
A vantagem disso, é que só preciso alterar o valor de algumas variáveis, para alterar todos os números do texto...
Alguém sabe como alcançar isso?
Responder1
\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}
saída-
Responder2
Você pode usar expl3
recursos, em particular o xfp
pacote, que apresenta \fpeval
e \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}
Claro que você também pode usar \x{}
em vez de \inteval{\x}
, mas com o \inteval
método você também pode fazer
\newcommand{\z}{\x+3*\y}
E use \inteval{\z}
.
Isso pressupõe operações em números inteiros; se precisar de ponto flutuante, você pode usar \fpeval
em vez de \inteval
(mas as coisas ficam mais complexas).
Responder3
Você pode usar contadores para isso:
\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}.