名前: しっぽ愛好家 日時: 2004-10-06 19:14:22 IPアドレス: 211.4.44.*
>>31967 自分で作成するファイルの場合には, ・{ と },\begingroup と \endgroup は必ず一対を同時に書く ・そもそも,“環境”以外の形での明示的なグルーピングを 必要としないように記述する ように心がけるのが先決でしょう. しかし, ・編集時のミスでグルーピングがおかしくなった ・閉じていないグループがあるファイルを他人が送りつけてきた 等のやむを得ない事情がある場合には \end{document} の直前でグループを閉じた上で \@currentlabel を読めば,どのあたりでグルーピングが おかしくなっているかの見当をつけることができます. \documentclass{jarticle} \begin{document} \section{サンプル} \subsection{サンプル} サンプル {\gtfamily 何かのサンプル… \subsection{sample} ... %%% 中略 文書終わり. }%%% (*) %%% ``}'' ではうまくグループを閉じることができない場合には %%% \endgroup にします. \makeatletter \typeout{<<<\@currentlabel>>>} \end{document} この例の場合,<<<1.1>>> と表示されますが,それは, (*) の行で補った閉じ括弧に対応する開き括弧は,\@currentlabel が ``1.1'' であるようなところにある,ということを表します. \label{<label-string>}(<label-string> は文字列)を用いた時点の \@currentlabel が \ref{<label-string>} によって取得される,という 相互参照の仕組みに注意すると,\@currentlabel が 1.1 であるところ, というのは 1.1 項だと見当がつきます(もちろん,``図1.1'' などでも \@currentlabel は 1.1 になりますが…何らかの環境の中でグルーピングが おかしくなっていたら,別のエラーが生じるでしょう). %%% このアイデアは,『LaTeX 自由自在』の 14.1.6 項によります.
この書き込みへの返事: