Umisteni caption v picins
Jaromir Kuben
kuben at scova.vabo.cz
Thu Dec 21 17:28:38 CET 2000
Roman Sobotka píše:
>
> Dobry den
> Pouzivam makro picins pro umisteni obrazku. Bohuzel, v tomto makru zrejme
> nelze umistit popis obrazku timto zpusobem:
>
> AAAA
> AAAA
> caption AAAA
>
> Tedy po strane obrazku dole. Omlouvam se pokud to lze, ale v dokumentaci jsem
> to nenasel. Nemohl by mi nekdo poradit, jak predefinovat napr.
> \piccaptionside, aby se choval takto. Verim, ze existuje i nejake makro, co
> to resi, ale picins mi az na tento problem vyhovuje.
>
> S pozdravem
>
> Roman Sobotka
> Department of Plant Breeding and Genetics
> University of South Bohemia
> mailto: sobotka at zf.jcu.cz
>
> PGP Finger:C50947719BD876EC 1EBB2B9A5007F618
Dobry den.
Takovou volbu picins skutecne nema. Pred casem nekdo chtel,
aby byl popis nad obrazkem. Podarilo se mi tehdy upravit
ten styl, aby to delal misto pod nad a s minimem zasahu,
protoze celemu kodu poradne nerozumim.
Zkuste se podivat do archivu konference (treba pres
www.cstug.cz), moje odpoved i s upravou je
Re: Nazev obtekaneho obrazku Mon, 22 Mar 1999
Ted ale bohuzel na to nemam cas. Takze bez zaruky.
Volba \piccaptionside by mela udelat to, co chcete.
(Tri zmeny oproti originalu jsou oznaceny %zmena a %konec.)
Date
\usepackage{picins}
\makeatletter
\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{%
\let\par=\old at par\par%
\hangindent0pt\hangafter1%
\setbox\@BILD=\hbox{#7}%
\d at breite=#1\d at breite=\the\d at breite%
\ifdim\d at breite=0pt\d at breite=\wd\@BILD\fi%
\c at breite=\d at breite\divide\c at breite by65536%
\multiply\c at piccaption\c at piccaptionpos%
\d at hoehe=#2\d at hoehe=\the\d at hoehe%
\ifdim\d at hoehe=0pt\d at hoehe=\ht\@BILD\advance\d at hoehe by\dp\@BILD\fi%
\c at hoehe=\d at hoehe\divide\c at hoehe by65536%
\d at xoff=#3\c at xoff=\d at xoff\divide\c at xoff by65536%
\d at yoff=\d at hoehe%
\advance\d at yoff by-#4\c at yoff=\d at yoff\divide\c at yoff by65536%
\c at pos=1\unitlength1pt%
\if at offset%
\setbox\@BILD=\hbox{%
\begin{picture}(\c at breite,\c at hoehe)%
\put(0,0){\makebox(\c at breite,\c at hoehe){}}%
\put(\c at xoff,\c at yoff){\box\@BILD}%
\end{picture}%
}%
\else%
\setbox\@BILD=\hbox{%
\begin{picture}(\c at breite,\c at hoehe)%
\put(0,0){\makebox(\c at breite,\c at hoehe)[#6]{\box\@BILD}}%
\end{picture}%
}%
\fi%
\ifnum\c at piccaption=2%
\make at piccaption%
\advance\d at hoehe\ht\@TEXT\advance\d at hoehe\dp\@TEXT%
\c at hoehe=\d at hoehe\divide\c at hoehe by65536%
\setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}%
\hbox{\hspace{\fboxsep}\box\@TEXT}%
\vspace{4pt}}%
\fi%
\@tfor\@tempa := #5\do{%
\if\@tempa
f\setbox\@BILD=\hbox{\Rahmen(\c at breite,\c at hoehe){\box\@BILD}}\fi%
\if\@tempa
s\setbox\@BILD=\hbox{\Schatten(\c at breite,\c at hoehe){\box\@BILD}}\fi%
\if\@tempa
o\setbox\@BILD=\hbox{\Oval(\c at breite,\c at hoehe){\box\@BILD}}\fi%
\if\@tempa
d\setbox\@BILD=\hbox{\Strich(\c at breite,\c at hoehe){\box\@BILD}}\fi%
\if\@tempa
x\setbox\@BILD=\hbox{\Kasten(\c at breite,\c at hoehe){\box\@BILD}}\fi%
\if\@tempa l\c at pos=1\fi%
\if\@tempa r\c at pos=2\fi%
}%
\ifnum\c at piccaption=1%
\make at piccaption%
\advance\d at hoehe\ht\@TEXT\advance\d at hoehe\dp\@TEXT%
\c at hoehe=\d at hoehe\divide\c at hoehe by65536%
\setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}%
\fi%
\ifodd\count0\c at picpos=0\else\c at picpos=\@changemode\fi%
\pagetotal=\the\pagetotal%
\d at tmp=\pagegoal\advance\d at tmp by-\pagetotal\advance\d at tmp
by-\baselineskip%
\ifdim\d at hoehe>\d at tmp%
\vskip 0pt plus\d at hoehe\relax\pagebreak[3]\vskip 0pt
plus-\d at hoehe\relax%
\ifnum\c at picpos=1\c at picpos=0\else\c at picpos=\@changemode\fi%
\fi%
\ifnum\c at picpos=1\ifnum\c at pos=1\c at pos=2\else\c at pos=1\fi\fi%
\ifnum\@listdepth>0
\@listtrue\parshape 0%
\advance\hsize -\rightmargin%
\d at leftskip \leftskip%
\leftskip \@totalleftmargin%
\if at inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi%
\else\@listfalse\medskip%
\fi%
\if at list\d at tmpa=\linewidth\else\d at tmpa=\hsize\fi%
\ifnum\c at piccaption=3%
\make at piccaption%
\d at tmp\ht\@TEXT\advance\d at tmp\dp\@TEXT%
%zmena
\ifdim\d at hoehe>\d at tmp%
\setbox\@TEXT=\vbox
to\d at hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}}%
\else%
\setbox\@BILD=\vbox to\d at tmp{\vfill\box\@BILD}%
%konec
\d at hoehe\d at tmp%
\fi%
\fi%
\ifnum\c at piccaption=4%
\make at piccaption%
\d at tmp\ht\@TEXT\advance\d at tmp\dp\@TEXT%
\setbox\@TEXT=\vbox to\d at hoehe{\vspace{-10pt}\box\@TEXT\vfil}%
\advance\d at hoehe-\d at tmp%
\fi%
\ifnum\c at pos=1\d at tmpa=0pt%
\ifnum\c at piccaption>2%
%zmena
\setbox\@BILD=\hbox{\hbox{\fbox{\box\@TEXT}}\hspace{\d at pichskip}\box\@BILD}%
%konec
\fi%
\else\advance\d at tmpa by-\wd\@BILD\d at breite=-\d at breite%
\ifnum\c at piccaption>2%
\d at tmpa=0pt%
%zmena
\setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d at pichskip}\box\@BILD}%
%konec
\fi%
\fi%
\p at getot@l\the\pagetotal%
\d at bskip\d at hoehe\advance\d at bskip by\parskip\advance\d at bskip
by.3\baselineskip%
{\noindent\hspace*{\d at tmpa}\relax%
\box\@BILD\nopagebreak\vskip-\d at bskip\relax\nopagebreak}%
\d at tmp=-\d at hoehe\divide\d at tmp by\baselineskip%
\c at zeilen=\d at tmp\advance\c at zeilen by-1%
\ifdim\d at breite<0pt\advance\d at breite by-\d at pichskip%
\else\advance\d at breite by\d at pichskip%
\fi%
\hangindent=\d at breite%
\hangafter=\c at zeilen%
\let\par=\x at par%
\ifnum\c at piccaption=3%
\hangindent0pt\hangafter1\let\par=\old at par%
\vskip\d at hoehe\vskip.2\baselineskip%
\fi%
\c at piccaption=0%
}
\makeatother
Zdravi
Jaromir Kuben
More information about the csTeX
mailing list