\labelのスコープ

名前: batch
日時: 2009-08-01 05:40:06
IPアドレス: 157.82.60.*

\labelを使った相互参照について質問なのですが、 ファイル内で一意なラベルを考えるのが正直面倒なので、 セクションごとにスコープを切るというのはできないのでしょうか? 例えば、 \section{foo} \begin{align} 式1 \label{hoge}\end{align} 参照されるのは\eqref{hoge} %式1が参照される \section{bar} \begin{align} 式2 \label{hoge}\end{align} %\section{foo}のhogeと重複扱いされない 参照されるのは\eqref{hoge} %式2が参照される といったものが実現したいのです。 例えばナイーブに、 \documentclass{jsarticle} \usepackage{hyperref} \newcommand{\slabel}[1]{\label{\thesection.#1}} \newcommand{\sref}[1]{\ref{\thesection.#1}} \begin{document} \section{foo} \begin{equation}\textrm{equation 1.}\slabel{hoge}\end{equation} 参照されるのは\sref{hoge} \section{bar} \begin{equation}\textrm{equation 2.}\slabel{hoge}\end{equation} 参照されるのは\sref{hoge} \end{document} とやってみたのですが、この手法はhyperrefを使うと ! Undefined control sequence. \slabel ...string \newlabel {#1}{{\thesubequation }{\thepage }{\expandafter ... とこけてしまいます(\usepackage{hyperref}をコメントアウトすれば通りました)。 何かうまい解決策はありますでしょうか? ちなみに環境はUbuntu 9.04でpteTeX-20090610をビルドしたものを使っています。

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます。適宜改行を入れてください)