名前: . 日時: 2009-12-26 10:22:31 IPアドレス: 59.134.169.*
>>54220 >float の中身の高さが大きすぎるときに自動的に複数の float に >分割するという処理も原理的には可能 例えば,次のサンプルのようなことは一応可能です. # もっとも,「1 段幅の float の初回の分割サイズ」などについては # 改良の余地があります. %%% このサンプルは,test.tex というファイルに保存してください. %%% このサンプル自体を \verbatiminput で読み込みます. \documentclass{jarticle} %%% 実験用の設定 \advance\textwidth80mm \advance\oddsidemargin-40mm %%% ↓\verbatiminput のために使用 \usepackage{verbatim} \makeatletter \def\@xfloat#1[#2]{% \@nodocument \def\@captype{#1}% \def\@fps{#2}% \@onelevel@sanitize\@fps \def\reserved@b{!}% \ifx\reserved@b\@fps \@fpsadddefault \else \ifx\@fps\@empty \@fpsadddefault \fi \fi \ifhmode \@bsphack \@floatpenalty -\@Mii \else \@floatpenalty-\@Miii \fi \ifinner \@parmoderr\@floatpenalty\z@ \else \@next\@currbox\@freelist {\@tempcnta\sixt@@n \expandafter\@tfor\expandafter\reserved@a \expandafter:\expandafter=\@fps\do{% \if h\reserved@a \ifodd\@tempcnta\else \advance\@tempcnta\@ne \fi \fi \if t\reserved@a \@setfpsbit\tw@ \fi \if b\reserved@a \@setfpsbit 4\fi \if p\reserved@a \@setfpsbit 8\fi \if !\reserved@a \ifnum \@tempcnta>15 \advance\@tempcnta-\sixt@@n\relax \fi \fi}% \@tempcntb\csname ftype@\@captype \endcsname \multiply\@tempcntb\@xxxii \advance\@tempcnta\@tempcntb \global\count\@currbox\@tempcnta}% \@fltovf \fi \setbox\@tempboxa\vbox\bgroup \hsize\columnwidth \@parboxrestore \@floatboxreset} \def\@endfloatbox{% \par\vskip\z@skip%% \par\vskip\z@ added 15 Dec 87 \@minipagefalse \outer@nobreak \egroup} %% end of vbox \def\end@float{% \@endfloatbox \ifnum\@floatpenalty<\z@ \@largefloatcheck\@place@float \fi} \def\end@dblfloat{% \if@twocolumn \@endfloatbox \ifnum\@floatpenalty<\z@ \@largefloatcheck\@place@dblfloat \fi \ifnum \@floatpenalty =-\@Mii \@Esphack\fi \else \end@float \fi} \def\@place@float{% \@cons\@currlist\@currbox \ifnum\@floatpenalty<-\@Mii \penalty-\@Miv \@tempdima\prevdepth \vbox{}% \prevdepth\@tempdima \penalty\@floatpenalty \else \vadjust{\penalty-\@Miv \vbox{}\penalty\@floatpenalty}% \@Esphack \fi} \def\@place@dblfloat{\@cons\@dbldeferlist\@currbox} \def\@largefloatcheck#1{% %%% #1: \@place@float or \@place@dblfloat \@tempcnta=\count\@currbox \advance\vbadness\@M \splitmaxdepth\z@ \splittopskip\topskip \@whiledim\textheight<\ht\@tempboxa\do{% \setbox\z@\vsplit\@tempboxa to\textheight \global\setbox\@currbox \color@vbox \normalcolor \vbox{\unvbox\z@}% \color@endbox #1% \@next\@currbox\@freelist {\global\count\@currbox\@tempcnta}% \@fltovf}% \advance\vbadness-\@M \global\setbox\@currbox \color@vbox \normalcolor \vbox{\unvbox\@tempboxa}% \color@endbox #1} \makeatother \def\Text{% これは,意味のないサンプルテキストです. これは,意味のないサンプルテキストです. これは,意味のないサンプルテキストです. これは,意味のないサンプルテキストです. これは,意味のないサンプルテキストです.\par} \def\TEXT{\Text\Text\Text\Text\Text\Text\Text\Text\Text\Text} \begin{document}% \begin{figure} \verbatiminput{test.tex} \end{figure} \twocolumn ■\TEXT \begin{figure*}\linespread{.9}\selectfont \verbatiminput{test.tex} \end{figure*} □\TEXT \begin{figure} \footnotesize \verbatiminput{test.tex} \end{figure} ●\TEXT ○\TEXT \end{document}
この書き込みへの返事: