TeXの記憶(67) — equationカウンタの値を保存・復元する

LaTeXの数式は「equation」カウンタの値がその都度加算されて順に出力されます。

順に出力されるこの式番号を、ある環境内だけ別な番号を付けて、その後に続く数式は以前の番号に続くようにする必要があったので作ったマクロです。

1008

手順は、

  • 環境の始まりでequationカウンタの値を保存
  • equationカウンタをリセット
  • 環境が閉じるときに、保存しておいたequationカウンタの値を復元

という方法にしました。

\newcounter{ENVeqcntsave} % 環境内用のカウンタ
\newenvironment{ENV}
{\vskip5mm\hrule\vskip2mm
  \setcounter{ENVeqcntsave}{\value{equation}}%  元の式番号を保存しておく
  \setcounter{equation}{0}%                     仮に環境の中でカウンタをリセット
   \def\theequation{\arabic{equation}}}%        環境内での式番号の形式
{\vskip2mm\hrule\vskip5mm
  \setcounter{equation}{\value{ENVeqcntsave}}}% 保存しておいた値を戻す

再び環境が現れたら、毎回式番号は「1」から始まります。

\begin{align}
  \sin\alpha\cos\beta&=\dfrac{1}{2}\{\sin(\alpha+\beta)+\sin(\alpha-\beta)\}\\
  \cos\alpha\cos\beta&=\dfrac{1}{2}\{\cos(\alpha+\beta)+\cos(\alpha-\beta)\}\\
  \sin\alpha\sin\beta &= -\dfrac{1}{2}\{\cos(\alpha+\beta)-\cos(\alpha-\beta)\}
\end{align}

\begin{ENV}
  コラム〜3倍角の公式
  \begin{align}
    \sin3\alpha &= 3\sin\alpha-4\sin^3\alpha \label{aaa}\\
    \cos3\alpha &= 4\cos^3\alpha - 3\cos\alpha,\\
    \tan3\alpha &= \dfrac{3\tan\alpha-\tan^3\alpha}{1-3\tan^2\alpha}
  \end{align}
\end{ENV}

\begin{align}
  \sin A + \sin B &= 2\sin\dfrac{A+B}{2}\cos\dfrac{A-B}{2}\\
  \sin A - \sin B &= 2\sin\dfrac{A-B}{2}\cos\dfrac{A+B}{2} 
\end{align}

コメント