botinsert

Anton Surda Anton.Surda at savba.sk
Thu Feb 12 15:37:33 CET 2004


Dobry den,

priamo v plaine nie je moznost umiestnovat plavajuce obrazky na spodok
strany. Dokonca ani v TBN nie je takato moznost uvedena ako ilustrativny
priklad v kapitole o insertoch. Zda sa, akoby tu mohli vznikat nejake
problemy. Skutocne, moj jednoduchy pokus zadefinovat \botinsert (prikladam
dole) pracuje vcelku slusne, ale situaciu, ked napisem niekolko \topinsertov
a \botinsertov v zmesi za sebou na jednom mieste, nezvladava a botinserty
spravidla hadze dole pod stranu. V Latexu to vraj funguje bez problemov.
Mohol by sa niekto so mnou podelit o nejake lepsie plainovske riesenie?

Vopred dakuje

Anton Surda




\newinsert\botins \newif\if at bot
\def\topinsert{\@midfalse\@botfalse\p at gefalse\@ins}
\def\midinsert{\@midtrue\@ins}
\def\pageinsert{\@midfalse\@botfalse\p at getrue\@ins}
\def\botinsert{\@midfalse\@bottrue\@ins}
\skip\topins=0pt minus6pt% space added when a topinsert is present
\skip\botins=0pt minus6pt% space added when a topinsert is present
\count\botins=1000 % magnification factor (1 to 1)
\dimen\botins=\maxdimen % no limit per page

\def\endinsert{\egroup % finish the \vbox
  \if at mid \dimen@\ht\z@ \advance\dimen@\dp\z@ \advance\dimen at 12\p@
    \advance\dimen@\pagetotal \advance\dimen at -\pageshrink
    \ifdim\dimen@>\pagegoal\@midfalse\p at gefalse\@botfalse\fi
    \dimen at 0\p@ \advance\dimen@\pagetotal \advance\dimen at -\pageshrink
    \ifdim\dimen@>\pagegoal\@midtrue\fi
  \fi
  \if at mid \medskip\bigskip\box\z@\bigbreak
   \else\if at bot\insert\botins{\penalty 100
    \splittopskip\z at skip
    \splitmaxdepth\maxdimen \floatingpenalty\z@
    \bigskip
    \box\z@\goodbreak}
    \else\insert\topins{\penalty100
    \splittopskip\z at skip
    \splitmaxdepth\maxdimen \floatingpenalty\z@
    \ifp at ge \dimen@\dp\z@
    \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
    \else \box\z@\nobreak\bigskip\fi}\fi\fi\endgroup}

\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
  \dimen@=\dp\@cclv \unvbox\@cclv
  \ifvoid\botins\else
  \unvbox\botins\fi
  \ifvoid\footins\else
    \vskip\skip\footins
    \footnoterule
    \unvbox\footins\fi
  \ifr at ggedbottom \kern-\dimen@ \vfil \fi}
\def\footnoterule{\kern-3\p@
  \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high






More information about the csTeX mailing list