2 つのカウンタA
とを考えます。B
の初期値はB
と同じですA
。
\newcounter{A}
\newcounter{B}
\setcounter{A}{1}
\setcounter{B}{\theA}
コマンドを検討しsetA
てsetB
変更します。
\newcommand{\setA}[1]{\setcounter{A}{#1}}
\newcommand{\setB}[1]{\setcounter{B}{#1}}
ムウェ
\documentclass{report}
\newcounter{A}
\newcounter{B}
\setcounter{A}{1}
\setcounter{B}{\theA}
\newcommand{\setA}[1]{\setcounter{A}{#1}}
\newcommand{\setB}[1]{\setcounter{B}{#1}}
\begin{document}
A=\theA
B=\theB
\medskip
\setA{3}
A=\theA
B=\theB
\medskip
\setB{5}
A=\theA
B=\theB
\end{document}
1番目のバリエーション
B
を変更したときに も変更したいとしますA
。その場合、次のように定義できます。
\newcommand{\setA}[1]{\setcounter{A}{#1}\setcounter{B}{\theA}}
しかし、この場合、私たちB
が変わった後に私たちが変わると、A
彼らは違ったものになるでしょう。
1回目のMWE
\documentclass{report}
\newcounter{A}
\newcounter{B}
\setcounter{A}{1}
\setcounter{B}{\theA}
\newcommand{\setA}[1]{\setcounter{A}{#1}\setcounter{B}{\theA}}
\newcommand{\setB}[1]{\setcounter{B}{#1}}
\begin{document}
A=\theA
B=\theB
\medskip
\setA{3}
A=\theA
B=\theB
\medskip
\setB{5}
A=\theA
B=\theB
\end{document}
最初に変更しB
、後で変更するとA
、以前のもの\theB
は失われ、当然それらは等しくなります。
\begin{document}
\setB{5}
A=\theA
B=\theB
\medskip
\setA{3}
A=\theA
B=\theB
\medskip
A=\theA
B=\theB
\end{document}
望ましい出力
B
私は依存させたいA
もし、もし、コマンドは\setB
使用されなかったどこでもコード内。
つまり、以下のコードは
\begin{document}
\setB{5}
A=\theA
B=\theB
\medskip
\setA{3}% from here I want to keep \theB because it was used
A=\theA
B=\theB
\medskip
A=\theA
B=\theB
\end{document}
答え1
このようなもの?
\documentclass{report}
\newcounter{A}
\newcounter{B}
\setcounter{A}{1}
\setcounter{B}{\value{A}}
\newif\ifB
\Bfalse
\newcommand{\setA}[1]{\setcounter{A}{#1}\ifB\else\setcounter{B}{#1}\fi}
\newcommand{\setB}[1]{\global\Btrue\setcounter{B}{#1}}
\begin{document}
\setB{5}
A=\theA
B=\theB
\medskip
\setA{3}
A=\theA
B=\theB
\medskip
A=\theA
B=\theB
\end{document}
答え2
ここにオプションがあります: B
print \theA
untilの表現\setB
を使用します。
\documentclass{article}
\newcounter{A}
\newcounter{B}
\setcounter{A}{1}
\setcounter{B}{\value{A}}
\renewcommand{\theB}{\theA}
\newcommand{\setA}[1]{\setcounter{A}{#1}}
\newcommand{\setB}[1]{\renewcommand{\theB}{\arabic{B}}\setcounter{B}{#1}}
\begin{document}
\setB{5}
A=\theA
B=\theB
\medskip
\setA{3}
A=\theA
B=\theB
\medskip
A=\theA
B=\theB
\end{document}
後者は数値ではない可能性があるため、ではなくを使用して\value{A}
設定することに注意してください。B
\theB