LaTeXのrenewcommandのスコープについて
自分用の覚書*1。LaTeXにはrenewcommandというコマンドがあるが、コマンドにスコープがあると最近になって気が付いたのでメモをしておく。LaTeXのソースとそれを手許の環境*2でコンパイルしたときのdvioutのスクリーンショットを貼っておく。
\documentclass{article} \begin{document} \newcommand{\HOGE}{\underline{hoge}} テキストモードの{\HOGE}。 インラインの数式モード(\$...\$)$\renewcommand{\HOGE}{hoge(renew)}\HOGE$ テキストモードに戻るとrenewcommandは解除されている$\Longrightarrow${\HOGE}。 次はquote環境 \begin{quote} \renewcommand{\HOGE}{hoge(renew)} \HOGE \end{quote} 環境が終わるとrenewcommandは解除されている$\Longrightarrow${\HOGE}。 次はenumerate環境 \begin{enumerate} \renewcommand{\HOGE}{hogehoge(renew)} \item \HOGE \item \HOGE \end{enumerate} 環境が終わるとrenewcommandは解除されている$\Longrightarrow${\HOGE}。 次はeqnarray環境 \begin{eqnarray} \renewcommand{\HOGE}{hogehogehoge} \HOGE & = & \HOGE \\ \renewcommand{\HOGE}{hogehoge} \HOGE & = & \HOGE \end{eqnarray} これはrenewcommandを含むarrayの要素にのみ適用され、次の要素では元に戻っている。 次はarray環境を含むequation環境 \begin{equation} \renewcommand{\HOGE}{hogehogehoge} \left. \begin{array}{cc} \HOGE & \HOGE \\ \HOGE & \HOGE \end{array} \right\} = \HOGE \end{equation} これは環境内のすべてに適用されている。 環境が終わるとrenewcommandは解除されている$\Longrightarrow${\HOGE}。 \end{document}