記号変更したenumerate環境におけるlabelとrefの相違

記号変更したenumerate環境におけるlabelとrefの相違

- Wakui の投稿
返信数: 4
いつもお世話になっております。
早速ですが、質問をさせていただきます。

通常のenumerate環境の設定で(1), (2)のように表示する設定にしてるため、
部分的にナンバリングを変えたく

¥begin{enumerate}
¥renewcommand{¥labelenumi}{(¥roman{enumi})}
¥item ...¥label{enum:a}
¥item ...¥label{enum:b}
¥end{enumerate}
(¥ref{enum:a}), (¥ref{enum:b})

のように、部分的にナンバリングの記号を変えてlabelをつけました。
ところが、上記のrefで呼び出すと、ナンバリングは
(i)
(ii)
になっているはずなのに、refのところに表示される番号は
(1), (2)となってしまい、通常設定したナンバリングに戻ってしまいます。
refを¥end{enumerate}の前に突っ込んでもやはり(1), (2)と表示されてしまいます。
これは、そういう仕様なのでしょうか・・・?
Wakui への返信

Re: 記号変更したenumerate環境におけるlabelとrefの相違

- aminophen の投稿
そういう仕様でしょう。

> \renewcommand{\labelenumi}{(\roman{enumi})}

これは参照される側の表示方式を変えるだけです。
両方変えようとすると、その両者の大元を再定義すれば、できなくはないようです。
(ほかのところで不都合が起きないかどうかは未検討)

\documentclass{jsarticle}
\begin{document}

\makeatletter
\renewcommand{\theenumi}{(\@roman\c@enumi)}
\renewcommand{\labelenumi}{\theenumi}
\makeatother
\begin{enumerate}
\item ...\label{enum:a}
\item ...\label{enum:b}
\end{enumerate}
\ref{enum:a}, \ref{enum:b}

\end{document}
aminophen への返信

Re: 記号変更したenumerate環境におけるlabelとrefの相違

- 和田 勇 の投稿
全体に影響しちゃいそうでご希望には沿わないと思いますが、 enumerate パッケージを利用を検討されてみては?[] の中には任意の文字列とカウンタの出力タイプ A a I i 1 のうち一つを指定できるようです。

\documentclass{article}
\usepackage{enumerate}
\begin{document}

\begin{enumerate}[EX i.]
\item LABEL is EX i. \label{LA}
\item ...
\end{enumerate}

(EX~ \ref{LA})

\begin{enumerate}[i]
\item LABEL is i \label{LB}
\item ...
\end{enumerate}

(\ref{LB})

\end{document}
aminophen への返信

Re: 記号変更したenumerate環境におけるlabelとrefの相違

- Wakui の投稿
お返事ありがとうございます。
最初に示した命令では、labelまでは変えてくれないのですね・・・
ご提示いただいた方法で試してみたら、問題はなかったので、このコマンドを採用させていただきます。
ありがとうございます。