
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}.