名前: たれぱんだ 日時: 2007-01-10 20:58:58 IPアドレス: 157.82.13.*
たれぱんだと申します。 WindowsXPとW32TeXを使って論文を書いているのですが、 追加パッケージとしてlastpage.styとhyperref.styを 使っています。ただ、表紙と裏表紙をページ数にカウント したくなかったので、lastpage.styのソースを丸ごと コピーして、スタイルファイルを読み込む代わりに \def\lastpage@putlabel{\addtocounter{page}{-2}% \immediate\write\@auxout{\string \newlabel{LastPage}{{}{\thepage}}}% \addtocounter{page}{2}} \AtEndDocument{% \message{AED: lastpage setting LastPage}% \clearpage\lastpage@putlabel}% % 本来のlastpage.styは-2と2の代わりに-1と1が設定されています というマクロを定義しました。すると、次のような エラーを吐くようになりました。 Runaway argument? {\@secondoffive }\fi \end {document} ! File ended while scanning use of \Hy@setref@link. <inserted text> \par ちなみに、-2と2がいけないのかと思い、-1と1で(つまり元々の lastpage.styと全く同じ定義で)コンパイルしてみても、やはり エラーがでました。hyperrefのソースを少し追ってみたのですが 私の力では原因がわかりませんでした。単に別ファイルで定義 するか、プリアンブルに書くかだけの違いのように思えるのですが、 何か勘違いをしているのでしょうか?おわかりになる方がいたら ご教授頂ければ幸いです。 以下に現象を再現する簡単なサンプルコードを示します。 1. エラーが出ないパターン \documentclass{jarticle} \usepackage{lastpage} \usepackage{hyperref} \begin{document} test. \pageref{LastPage} \end{document} 2. エラーが出るパターン \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}% \makeatother \usepackage{hyperref} \begin{document} test. \pageref{LastPage} \end{document}
この書き込みへの返事: