Re: 次ページにまわるときのカウンタの値

名前: .
日時: 2008-08-19 09:53:58
IPアドレス: 59.134.169.*

>>51877 下記の例を検討してください. 少なくとも,ページ番号については次のことを認識しておく必要があります. ・テキスト部分を処理しているときには,「段落内のテキストを組んでいる時点での」 ページ番号しかわかりません. ・TeX は「段落単位」で処理するため,ある段落の途中で改ページが起こるような 場合であっても,段落全体を改ページ前に作成してからページ分割処理を行います. したがって,段落内で \thepage のようなものを用いてもそれは「その箇所が 実際に出力される箇所での」ページ番号を指すとは限りません. # これは,枠で囲んでいない場合についてもあてはまります. ・それゆえ,本文中でページ番号を取得する際には必ず相互参照を 用いなければなりません. # 一方,ヘッダ・フッタはページ出力時に作成されるので, # ヘッダ・フッタの中で \thepage を用いるのは問題ありません. 一方,ヘッダ・フッタに載せる情報を「ページ分割を考慮した形で」更新させるには, \mark を用います(実際には,\markboth などの,LaTeX が \mark の管理のために 用意しているマクロを用います). # これ以上詳しいことについては然るべき参考書(『The TeXbook』など)を # 参照してください. \documentclass{jarticle} \usepackage{ascmac} \newcounter{parcounter} \setcounter{parcounter}{0} \makeatletter \def\outputpar{% \stepcounter{parcounter}% \edef\@screenid{id:\the\c@parcounter}% \begin{screen} あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえおあいうえお あいうえお。 現在のページは \label{\@screenid}\pageref{\@screenid}ページ, 段落番号は\arabic{parcounter}です。 \end{screen}% \markboth{\arabic{parcounter}}{\arabic{parcounter}}% \vspace{\baselineskip}} \def\ps@paracnt{% \def\@oddhead{\hfill ページ番号:\thepage{}, このページの最終段落番号:\leftmark}%%% \leftmark は \botmark を内部で使用 \let\@evenhead\@oddhead \let\@oddfoot\@empty \let\@evenfoot\@empty \let\@mkboth\@gobbletwo} \makeatother \pagestyle{paracnt} \begin{document} \newcount\loopcount \loop \ifnum\loopcount<20 \outputpar \advance\loopcount by 1 \repeat \end{document}

この書き込みへの返事:

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