Re: lastpage.styとhyperref.styの競合について

名前: トノ
日時: 2007-01-11 22:41:21
IPアドレス: 125.3.119.*

>>46502 》 \Hy@setref@linkは 》 LateX標準ではない独自の参照ラベルが読めないと 》 いうことでいいんでしょうか? むしろ逆でしょう。hyperref は、\label も、さらに、\label によって aux ファイルに書出される \newlabel も再定義してしまっています。 lastpage.sty は確かに独自に参照ラベルの処理を行なっていますが、 その処理のうち、aux に書出す内容(\newlabel コマンドとその引数)は、 LaTeX 標準のものと同等です。 hyperref の側では、hyperref 流の \label によって aux への書き出しが 行なわれていると期待しているのに、LaTeX 標準の流儀の \newlabel が aux ファイルに記述されているため、\newlabel によって記憶された内容が \pageref で参照された時点(この時点で \@setref が呼出されているはず)で エラーになるものと思われます。 ※ このあたり、かなり推測が入っています。 なお、hyperref による \newline の再定義は、hyperref.sty の読込み時ではなく、 aux ファイルの中で行なわれているようです。この点については #46486 に 書かれていることが大きな手がかりになります。実際、#46483 のソース 2 でも、 aux ファイルを削除すれば、直後のタイプセットでエラーは生じません。 これで作成される aux ファイルと、同ソースから\usepackage{hyperref} を コメントアウトしてタイプセットした時のaux ファイルとを見比べると興味深いです。 ※ ちなみに、#46488 は、書込む前に某所で解決策を見かけたのですが、 違うアプローチでやって見せようとして失敗したものです。結局、 某所で見かけたのと本質的に同じとおぼしき方法を提示することになったわけで、 所詮、プロの向こうを張ろうというのが無謀だとわかってはいるものの、 ちょっと悔しい‥‥。 ※ 「本質的に同じ」かどうか断定的に判別できないあたりで既に 勝負が見えてしまっていますが‥‥。

この書き込みへの返事:

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