名前: 本田 日時: 2002-02-22 10:44:51 IPアドレス: 202.224.196.*
>>6844 %アイデアは %(0)数式番号は"(式番号)"だけ %(1)ラベルをauxに吐き出すときに,何章のものかを附加する %(2)参照する際に,chapterカウンタとラベルの中の章番号を比較する %(3)同じであれば章番号を出力しない,異なるものであるなら章番号を出力する %こんな感じでしょうか. %#(0)の前提がないとこの形式の意味は余りないように思います. \documentclass{jbook} \makeatletter \def\theequation{\the\c@equation} \long\def\@secondofthree#1#2#3{#2} \long\def\@firstofthree#1#2#3{#1} \def\eqlabel#1{\@bsphack \protected@write\@auxout{}% {\string\newlabel{#1}{{\@currentlabel}{\thechapter}{\thepage}}}% \@esphack} \def\eqref#1{\expandafter\eq@setref\csname r@#1\endcsname{#1}} \def\eq@setref#1#2{% \ifx#1\relax \protect\G@refundefinedtrue \nfss@text{\reset@font\bfseries ??}% \@latex@warning{Reference `#2' on page \thepage \space undefined}% \else \edef\eq@ref@chapter{\expandafter\@secondofthree#1}% \ifnum\c@chapter=\eq@ref@chapter\relax% \expandafter\@firstofthree#1% \else% \expandafter\@secondofthree#1.\expandafter\@firstofthree#1% \fi% \null% \fi} \def\eqpageref#1{\expandafter\@setref\csname r@#1\endcsname \@thirdofthree{#1}} \makeatother \begin{document} \chapter{あいうえお} \begin{eqnarray} y=ax \eqlabel{1A} \end{eqnarray} \begin{eqnarray} y=ax \eqlabel{1B} \end{eqnarray} (\eqref{1A}),(\eqref{2A}) \par \eqpageref{1A},\eqpageref{2A} \chapter{あいうえお} \begin{eqnarray} y=ax \eqlabel{2A} \end{eqnarray} \begin{eqnarray} y=ax \eqlabel{2B} \end{eqnarray} (\eqref{1B}),(\eqref{2B}) \par \eqpageref{1B},\eqpageref{2B} \end{document}
この書き込みへの返事: