Re: \ajMaru{\ref{foo}}で丸数字が使えない

名前: 本田
日時: 2005-08-15 11:58:14
IPアドレス: 219.116.57.*

>>37449 #37449だけでは実も蓋もないので. おそらく下記のソースで発生するのが問題のエラーかと思われます \documentclass{jarticle} \usepackage{otf} \begin{document} \begin{enumerate} \item \label{A}みる \item \ajMaru{\ref{A}}にもどる \end{enumerate} \item \ajMaru{\ref{A}}にもどる で発生するのは ! Missing number, treated as zero. か ! Missing = inserted for \ifnum. でしょうか 原因は\aj@Maruなどが,当然のことですが, 引数は数字であることを前提としていることです. \refは対応するラベルが未定義のとき(*1)は当然数字にはなりません また,対応するラベルが定義されていて参照が完成していても(*2) 実は数字だけではありません LaTeXでは,(参照された数字)+\nullに pLaTeXでは,(参照された数字)+\relaxに展開されます #なぜこういうことになっているかは, #吉永「LaTeX2eマクロ&クラス プログラミング実践解説」p.169参照です (*1)このときが ! Missing number, treated as zero. (*2)このときが ! Missing = inserted for \ifnum. したがって,どんなときでも \refによる参照結果は\ajMaruの引数としては不正になると思われます. また,こういうことなので,仮に \ajMaru(正確にはその下請け)を再構築するにしても 結構厄介です #引数は\refなのか #\refで要求されているラベルが定義されているか #展開結果に後置されている\null(\hbox{}になっているかも) #もしくは\relaxを削除する #削除された文字列を\ajMaruに与える #これくらいは最低限確認しないといけない。。。 \ajMaru{\ref{A}}の形にこだわらない, 丸数字で出現したものはかならず丸数字で参照する, というのであれば \documentclass{jarticle} \usepackage{otf} \makeatletter \renewcommand{\theenumi}{\protect\ajMaru{\the\c@enumi}} \makeatother \begin{document} \begin{enumerate} \item \label{A}見る. \item \ref{A}にもどる \end{enumerate} \end{document} これくらいで十分かもしれません. ================= いい機会だったので今更ながら(^^;;;; otf packageをインスールしてみました. モリサワ・ヒラギノの共存はデフォルトではできないようですね 普通は共存させないような組み合わせですけど ぼちぼち考えてみます

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)