Re: 組版されている位置を知りたい

名前: しっぽ愛好家
日時: 2003-08-17 20:58:39
IPアドレス: 210.234.44.*

>>21010 >あるページの途中から >横幅任意(適当)、縦幅はページの残った長さの長方形を描くということです。 >具体的には \fbox で 高さ指定の minipage を囲むつもりでした。 まだ,状況が判然としないのですが,下記の例に示すような処理を お考えなのでしょうか? %%% なお,下記の例の bottombox 環境は,その直前の段落が %%% 終了していなければ終了させます. \documentclass{jarticle} \makeatletter \newbox\@bottombox@text \def\bottombox#1{% #1: width \if@noskipsec \leavevmode \fi \if@inlabel \leavevmode \fi \ifhmode \unskip\par \fi \@bottombox@find@boxsize \ifdim\dimen@<\baselineskip \newpage \@bottombox@find@boxsize \fi \advance\dimen@-2\fboxsep \advance\dimen@-2\fboxrule \advance\dimen@-\dp\strutbox \setbox\@bottombox@text\vbox to\dimen@\bgroup \hsize#1\relax \@parboxrestore \@setminipage} \def\@bottombox@find@boxsize{% \dimen@\pagegoal \advance\dimen@-\pagetotal \ifdim\dimen@>\@colroom \dimen@\@colroom \fi} \def\endbottombox{% \ifhmode \unskip\strut\par \fi \vfill \egroup \noindent \fbox{\box\@bottombox@text}% \par%%% ページ下部を枠で埋めるのですから, %%% さらに \newpage を行っても構わないでしょう. \@endpetrue} \makeatother \begin{document} \def\text{% ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと\par} %%% bottombox 環境の前にあるテキストの分量を変更してみてください. \text\text\text \text\text\text \begin{bottombox}{15zw} ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと \end{bottombox} \text\text\text \end{document} [補足] (TeX 自身が提供する機能では)``現在の位置'' を知ることができない, というのは先にお話ししたとおりですが,\pagegoal と \pagetotal という 寸法を用いて ``現在のページの残りサイズ'' を見積もることはできます. 実際,これらは概ね次のような寸法です. \pagegoal: 次のページ分割位置までの ``目標サイズ'' \pagetotal: 現在の ``ページ'' 上に配置されたテキストなどの高さ %%% ただし,これらはページ分割可能な箇所(i.e. メイン垂直リスト内)で %%% 用いないと意図どおりの値を与えませんし,現在のページにまったく %%% ボックスが含まれなければ \pagegoal は \maxdimen になるといった %%% 例外もあります. そこで,\pagegoal - \pagetotal を計算すると,概ね,現在のページの 残りサイズが割り出せる,ということになります. なお,単純に \textheight - \pagetotal を計算してはいけないことに 注意してください.実際,脚注や float が占める部分が存在するので, テキスト部分自身の高さは \textheight になるとは限りません. %%% もっと丁寧には,``現在のページ上にあるグルーの縮小度の合計'' の %%% \pageshrink も考慮した方がよいでしょう.実際,現在のページ上のグルーの %%% 縮小度が充分に大きければ,\pagegoal - \pagetotal + (1 行分) (以上)の %%% テキストが現在のページに収まってしまい,\penalty の加減によっては実際に %%% そういうページ分割が起こる,という可能性も生じます. %%% %%% ただし,上記の例の bottombox 環境では,\endbottombox の際に %%% %%% \newpage も行うことにすると,``1 行余分に入る可能性'' を %%% %%% 気にせずに済みます.

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)