数値変数を定義する

数値変数を定義する

tex ドキュメントでいくつかの変数を定義したいと思います。たとえば、 の.texような記述をします:Our tool succeeds to validate x samples by Method A, and y samples by Method B. Thus its score is zzとして定義されx+yx(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}.

関連情報