名前: Shizu 日時: 2010-07-25 08:36:26 IPアドレス: 218.221.137.*
>>55099 本田様, 早速のご返事ありがとうございます。 lastpageパッケージの内容を読み,真似してみました。 思い切って,\label の定義を,\protected@write を使う代わりに \immediate\write を使うように書き換えてみました。 すると,(\label の内容のauxへの書き出しが,「ページ出力時」ではなく, \label を使用したその瞬間に行われるようになるため)確かに問題は解決しました。 しかし,LaTeX でわざわざ \immediate\write ではなく \protected@write を使うようになっているのは,何かの意図があるはずです。 \immediate\write を使うよう定義変更すると,きっと何かの甚大な副作用を 生じるのではないかと恐れています。 \label のこの定義変更は,どんな副作用が生じえますでしょうか。 -------------------------------------------------- \documentclass{article} \makeatletter \def\label#1{\immediate\write\@auxout{\string\newlabel{#1}{{\@currentlabel}{\thepage}}}} \makeatother \begin{document} hoge \vskip 528pt page=\pageref{label} \vskip 0pt \label{label} \end{document} --------------------------------------------------
この書き込みへの返事: