名前: トノ 日時: 2007-01-10 23:34:48 IPアドレス: 219.116.31.*
>>46483 hyperref によって newlabel が再定義されてしまうのが原因らしいと見当は ついたものの、じゃあ、なぜ \usepackage{lastpage} の場合にエラーに ならないのかと悩んでしまいましたが‥‥ hyperref の側で、lastpage が読込まれているかどうかを判断して 個別的な解決をしているようですね。 そのあたりの理屈は分らないのですが、hyperref を欺いて、さも lastpage が 読込まれているかのようにすると回避できるようです。 ただし、他のパッケージもだまされるはずですから、別の相性問題が出てくる おそれもあります。 \documentclass{jarticle} \makeatletter \def\lastpage@putlabel{\addtocounter{page}{-1}% \immediate\write\@auxout{\string \newlabel{LastPage}{{}{\thepage}}}% \addtocounter{page}{1}} \AtEndDocument{% \message{AED: lastpage setting LastPage}% \clearpage\lastpage@putlabel}% \@namedef{ver@lastpage.sty}{} % ← ここで欺いています。 \makeatother \usepackage{hyperref} \begin{document} test. \pageref{LastPage} \end{document}
この書き込みへの返事: