1% PICINS.STY --- Style File zum Einbinden von Bildern 2% Autor: J. Bleser, E. Lang 3% Hochschulrechenzentrum 4% Technische Hochschule Darmstadt 5% !!! Dieses Style-File ist urheberrechtlich geschuetzt !!! 6% !!! Aenderungen nur mit Zustimmung der Autoren !!! 7\message{Option `picins' Version 3.0 Sep. 1992, TH Darmstadt/HRZ} 8\newbox\@BILD% 9\newbox\@TEXT% 10\newdimen\d@breite% 11\newdimen\d@hoehe% 12\newdimen\d@xoff% 13\newdimen\d@yoff% 14\newdimen\d@shad% 15\newdimen\d@dash% 16\newdimen\d@boxl% 17\newdimen\d@pichskip% 18\newdimen\d@tmp 19\newdimen\d@tmpa 20\newdimen\d@bskip 21\newdimen\hsiz@% 22\newdimen\p@getot@l% 23\newcount\c@breite 24\newcount\c@hoehe 25\newcount\c@xoff 26\newcount\c@yoff 27\newcount\c@pos 28\newcount\c@shad 29\newcount\c@dash 30\newcount\c@boxl 31\newcount\c@zeilen% 32\newcount\@changemode% 33\newcount\c@piccaption% 34\newcount\c@piccaptionpos% 35\newcount\c@picpos 36\newcount\c@whole% 37\newcount\c@half% 38\newcount\c@tmp 39\newcount\c@tmpa 40\newcount\c@tmpb 41\newcount\c@tmpc 42\newcount\c@tmpd 43\newskip\d@leftskip 44\newif\if@list \@listfalse% 45\newif\if@offset% 46 47 48\c@piccaptionpos=1% 49\c@picpos=0 50\d@shad=4pt% 51\d@dash=4pt% 52\d@boxl=10pt% 53\d@pichskip=1em% 54\@changemode=0% 55\def\@captype{figure}% 56\let\old@par=\par% 57 58\def\pichskip#1{\d@pichskip #1\relax} 59 60 61\def\shadowthickness#1{\d@shad #1\relax} 62 63 64\def\dashlength#1{\d@dash #1\relax} 65 66 67\def\boxlength#1{\d@boxl #1\relax} 68 69 70\def\picchangemode{\@changemode=1}% 71\def\nopicchangemode{\@changemode=0}% 72 73 74\def\piccaptionoutside{\c@piccaptionpos=1}% 75\def\piccaptioninside{\c@piccaptionpos=2}% 76\def\piccaptionside{\c@piccaptionpos=3}% 77\def\piccaptiontopside{\c@piccaptionpos=4}% 78 79\def\piccaption{\@ifnextchar [{\@piccaption}{\@piccaption[]}} 80\def\@piccaption[#1]#2{\c@piccaption=1\def\sh@rtf@rm{#1}\def\capti@nt@xt{#2}} 81\def\make@piccaption{% 82 \hsiz@\d@breite% 83 \ifnum\c@piccaptionpos=2% 84 \advance\hsiz@ -2\fboxsep% 85 \fi% 86 \ifnum\c@piccaptionpos>2% 87 \hsiz@\hsize\advance\hsiz@-\d@breite\advance\hsiz@-\d@pichskip% 88 \fi% 89 \setbox\@TEXT=\vbox{\hsize\hsiz@\caption[\sh@rtf@rm]{\capti@nt@xt}}% 90} 91 92 93 94\def\newcaption{\refstepcounter\@captype\@dblarg{\@newcaption\@captype}} 95\long\def\@newcaption#1[#2]#3{% 96 \old@par% 97 \addcontentsline{\csname ext@#1\endcsname }{#1}% 98 {\protect\numberline{\csname the#1\endcsname}{\ignorespaces #2}} 99 \begingroup\@parboxrestore\normalsize% 100 \@newmakecaption{\csname fnum@#1\endcsname}{\ignorespaces #3}\old@par% 101 \endgroup% 102} 103\long\def\@newmakecaption#1#2{% 104 \vskip 10pt% 105 \setbox\@tempboxa \hbox {#1: #2}% 106 \ifdim \wd\@tempboxa >\hsize% 107 \setbox0=\hbox{#1: }\dimen0=\hsize\advance\dimen0 by-\wd0 108 \setbox1=\vtop{\hsize=\dimen0 #2} 109 \hbox{\box0 \box1} 110 \par 111 \else \hbox to\hsize {\hfil \box \@tempboxa \hfil} 112 \fi 113} 114 115 116 117 118 119\def\parpic{% 120 \@ifnextchar ({\iparpic}{\iparpic(0pt,0pt)} 121} 122\def\iparpic(#1,#2){% 123 \@ifnextchar ({\@offsettrue\iiparpic(#1,#2)}% 124 {\@offsetfalse\iiparpic(#1,#2)(0pt,0pt)} 125} 126\def\iiparpic(#1,#2)(#3,#4){% 127 \@ifnextchar [{\iiiparpic(#1,#2)(#3,#4)}{\iiiparpic(#1,#2)(#3,#4)[l]} 128} 129\def\iiiparpic(#1,#2)(#3,#4)[#5]{% 130 \@ifnextchar [{\ivparpic(#1,#2)(#3,#4)[#5]}{\ivparpic(#1,#2)(#3,#4)[#5][]} 131} 132\def\ivparpic(#1,#2)(#3,#4)[#5][#6]#7{% 133 \let\par=\old@par\par% 134 \hangindent0pt\hangafter1% 135 \setbox\@BILD=\hbox{#7}% 136 \d@breite=#1\d@breite=\the\d@breite% 137 \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi% 138 \c@breite=\d@breite\divide\c@breite by65536% 139 \multiply\c@piccaption\c@piccaptionpos% 140 \d@hoehe=#2\d@hoehe=\the\d@hoehe% 141 \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi% 142 \c@hoehe=\d@hoehe\divide\c@hoehe by65536% 143 \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536% 144 \d@yoff=\d@hoehe% 145 \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536% 146 \c@pos=1\unitlength1pt% 147 \if@offset% 148 \setbox\@BILD=\hbox{% 149 \begin{picture}(\c@breite,\c@hoehe)% 150 \put(0,0){\makebox(\c@breite,\c@hoehe){}}% 151 \put(\c@xoff,\c@yoff){\box\@BILD}% 152 \end{picture}% 153 }% 154 \else% 155 \setbox\@BILD=\hbox{% 156 \begin{picture}(\c@breite,\c@hoehe)% 157 \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}% 158 \end{picture}% 159 }% 160 \fi% 161 \ifnum\c@piccaption=2% 162 \make@piccaption% 163 \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT% 164 \c@hoehe=\d@hoehe\divide\c@hoehe by65536% 165 \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}% 166 \hbox{\hspace{\fboxsep}\box\@TEXT}% 167 \vspace{4pt}}% 168 \fi% 169 \@tfor\@tempa := #5\do{% 170 \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi% 171 \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi% 172 \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi% 173 \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi% 174 \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi% 175 \if\@tempa l\c@pos=1\fi% 176 \if\@tempa r\c@pos=2\fi% 177 }% 178 \ifnum\c@piccaption=1% 179 \make@piccaption% 180 \advance\d@hoehe\ht\@TEXT\advance\d@hoehe\dp\@TEXT% 181 \c@hoehe=\d@hoehe\divide\c@hoehe by65536% 182 \setbox\@BILD=\vbox{\box\@BILD\vspace{-5pt}\hbox{\box\@TEXT}\vspace{4pt}}% 183 \fi% 184 \ifodd\count0\c@picpos=0\else\c@picpos=\@changemode\fi% 185 \pagetotal=\the\pagetotal% 186 \d@tmp=\pagegoal\advance\d@tmp by-\pagetotal\advance\d@tmp by-\baselineskip% 187 \ifdim\d@hoehe>\d@tmp% 188 \vskip 0pt plus\d@hoehe\relax\pagebreak[3]\vskip 0pt plus-\d@hoehe\relax% 189 \ifnum\c@picpos=1\c@picpos=0\else\c@picpos=\@changemode\fi% 190 \fi% 191 \ifnum\c@picpos=1\ifnum\c@pos=1\c@pos=2\else\c@pos=1\fi\fi% 192 \ifnum\@listdepth>0 193 \@listtrue\parshape 0% 194 \advance\hsize -\rightmargin% 195 \d@leftskip \leftskip% 196 \leftskip \@totalleftmargin% 197 \if@inlabel\rule{\linewidth}{0pt}\vskip-\baselineskip\relax\fi% 198 \else\@listfalse\medskip% 199 \fi% 200 \if@list\d@tmpa=\linewidth\else\d@tmpa=\hsize\fi% 201 \ifnum\c@piccaption=3% 202 \make@piccaption% 203 \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT% 204 \ifdim\d@hoehe>\d@tmp% 205 \setbox\@TEXT=\vbox to\d@hoehe{\vfill\box\@TEXT\vspace{.2\baselineskip}\vfill}% 206 \else% 207 \setbox\@BILD=\vbox to\d@tmp{\vfill\box\@BILD\vfill}% 208 \d@hoehe\d@tmp% 209 \fi% 210 \fi% 211 \ifnum\c@piccaption=4% 212 \make@piccaption% 213 \d@tmp\ht\@TEXT\advance\d@tmp\dp\@TEXT% 214 \setbox\@TEXT=\vbox to\d@hoehe{\vspace{-10pt}\box\@TEXT\vfil}% 215 \advance\d@hoehe-\d@tmp% 216 \fi% 217 \ifnum\c@pos=1\d@tmpa=0pt% 218 \ifnum\c@piccaption>2% 219 \setbox\@BILD=\hbox{\box\@BILD\hspace{\d@pichskip}\hbox{\box\@TEXT}}% 220 \fi% 221 \else\advance\d@tmpa by-\wd\@BILD\d@breite=-\d@breite% 222 \ifnum\c@piccaption>2% 223 \d@tmpa=0pt% 224 \setbox\@BILD=\hbox{\hbox{\box\@TEXT}\hspace{\d@pichskip}\box\@BILD}% 225 \fi% 226 \fi% 227 \p@getot@l\the\pagetotal% 228 \d@bskip\d@hoehe\advance\d@bskip by\parskip\advance\d@bskip by.3\baselineskip% 229 {\noindent\hspace*{\d@tmpa}\relax% 230 \box\@BILD\nopagebreak\vskip-\d@bskip\relax\nopagebreak}% 231 \d@tmp=-\d@hoehe\divide\d@tmp by\baselineskip% 232 \c@zeilen=\d@tmp\advance\c@zeilen by-1% 233 \ifdim\d@breite<0pt\advance\d@breite by-\d@pichskip% 234 \else\advance\d@breite by\d@pichskip% 235 \fi% 236 \hangindent=\d@breite% 237 \hangafter=\c@zeilen% 238 \let\par=\x@par% 239 \ifnum\c@piccaption=3% 240 \hangindent0pt\hangafter1\let\par=\old@par% 241 \vskip\d@hoehe\vskip.2\baselineskip% 242 \fi% 243 \c@piccaption=0% 244} 245 246 247 248 249\newdimen\ptoti 250\newdimen\ptotii 251\def\x@par{% 252 \ptoti\pagetotal% 253 \old@par% 254 \ptotii\pagetotal% 255 \ifdim\ptoti=\ptotii% 256 \d@tmp\d@hoehe% 257 \else% 258 \d@tmp\baselineskip% 259 \multiply\d@tmp by\prevgraf% 260 \advance\d@tmp by\parskip% 261 \global\advance\d@hoehe by-\d@tmp\d@tmp=\d@hoehe% 262 \fi% 263 \ifdim\d@hoehe>0pt% 264 \divide\d@tmp by\baselineskip\c@zeilen=-\d@tmp\advance\c@zeilen by-1% 265 \c@zeilen=\the\c@zeilen% 266 \else\c@zeilen=0 267 \fi 268 \ifnum\c@zeilen<0\hangafter=\c@zeilen\hangindent=\d@breite% 269 \else\let\par=\old@par% 270 \hangindent 0pt% 271 \leftskip \d@leftskip% 272 \if@list\parshape \@ne \@totalleftmargin \linewidth% 273 \advance\hsize \rightmargin% 274 \fi% 275 \fi% 276} 277 278 279\def\picskip#1{% 280 \let\par=\old@par% 281 \par% 282 \pagetotal\the\pagetotal% 283 \c@tmp=#1\relax% 284 \ifnum\c@tmp=0% 285 \d@tmp\baselineskip\multiply\d@tmp by\prevgraf\advance\d@tmp\parskip% 286 \ifdim\p@getot@l<\pagetotal 287 \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex% 288 \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi% 289 \fi% 290 \ifdim\p@getot@l=\pagetotal% 291 \advance\d@hoehe by-\d@tmp\advance\d@hoehe by1ex% 292 \ifdim\d@hoehe>0pt\vspace*{\d@hoehe}\fi% 293 \fi% 294 \else\hangafter=-\c@tmp\hangindent=\d@breite% 295 \fi% 296 \leftskip \d@leftskip% 297 \if@list\parshape \@ne \@totalleftmargin \linewidth% 298 \advance\hsize \rightmargin% 299 \fi% 300} 301 302 303 304 305 306 307\def\hpic{% 308 \@ifnextchar ({\ihpic}{\ihpic(0pt,0pt)} 309} 310\def\ihpic(#1,#2){% 311 \@ifnextchar ({\@offsettrue\iihpic(#1,#2)}% 312 {\@offsetfalse\iihpic(#1,#2)(0pt,0pt)} 313} 314\def\iihpic(#1,#2)(#3,#4){% 315 \@ifnextchar [{\iiihpic(#1,#2)(#3,#4)}{\iiihpic(#1,#2)(#3,#4)[l]} 316} 317\def\iiihpic(#1,#2)(#3,#4)[#5]{% 318 \@ifnextchar [{\ivhpic(#1,#2)(#3,#4)[#5]}{\ivhpic(#1,#2)(#3,#4)[#5][]} 319} 320\def\ivhpic(#1,#2)(#3,#4)[#5][#6]#7{% 321 \setbox\@BILD=\hbox{#7}% 322 \d@breite=#1\d@breite=\the\d@breite% 323 \ifdim\d@breite=0pt\d@breite=\wd\@BILD\fi% 324 \c@breite=\d@breite\divide\c@breite by65536% 325 \d@hoehe=#2\d@hoehe=\the\d@hoehe% 326 \ifdim\d@hoehe=0pt\d@hoehe=\ht\@BILD\advance\d@hoehe by\dp\@BILD\fi% 327 \c@hoehe=\d@hoehe\divide\c@hoehe by65536% 328 \d@xoff=#3\c@xoff=\d@xoff\divide\c@xoff by65536% 329 \d@yoff=\d@hoehe% 330 \advance\d@yoff by-#4\c@yoff=\d@yoff\divide\c@yoff by65536% 331 \c@pos=0\d@tmpa=\parindent\parindent=0pt\unitlength1pt% 332 \if@offset 333 \setbox\@BILD=\hbox{% 334 \begin{picture}(\c@breite,\c@hoehe)% 335 \put(0,0){\makebox(\c@breite,\c@hoehe){}}% 336 \put(\c@xoff,\c@yoff){\box\@BILD}% 337 \end{picture}% 338 }% 339 \else% 340 \setbox\@BILD=\hbox{% 341 \begin{picture}(\c@breite,\c@hoehe)% 342 \put(0,0){\makebox(\c@breite,\c@hoehe)[#6]{\box\@BILD}}% 343 \end{picture}% 344 }% 345 \fi% 346 \@tfor\@tempa := #5\do{% 347 \if\@tempa f\setbox\@BILD=\hbox{\Rahmen(\c@breite,\c@hoehe){\box\@BILD}}\fi% 348 \if\@tempa s\setbox\@BILD=\hbox{\Schatten(\c@breite,\c@hoehe){\box\@BILD}}\fi% 349 \if\@tempa o\setbox\@BILD=\hbox{\Oval(\c@breite,\c@hoehe){\box\@BILD}}\fi% 350 \if\@tempa d\setbox\@BILD=\hbox{\Strich(\c@breite,\c@hoehe){\box\@BILD}}\fi% 351 \if\@tempa x\setbox\@BILD=\hbox{\Kasten(\c@breite,\c@hoehe){\box\@BILD}}\fi% 352 \if\@tempa t\c@pos=1\fi% 353 \if\@tempa b\c@pos=2\fi% 354 }% 355 \ifnum\c@pos=0\parbox{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% 356 \ifnum\c@pos=1\parbox[t]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% 357 \ifnum\c@pos=2\parbox[b]{\d@breite}{\makebox[0cm]{}\\\box\@BILD\smallskip}\fi% 358 \parindent=\d@tmpa% 359} 360 361 362 363 364 365 366\def\Rahmen(#1,#2)#3{% 367 \c@whole=\@wholewidth\divide\c@whole by65536% 368 \c@half=\@halfwidth\divide\c@half by65536% 369 \c@tmpa=#1\advance\c@tmpa by\c@whole\advance\c@tmpa by\c@whole% 370 \c@tmpb=#2\advance\c@tmpb by\c@whole\advance\c@tmpb by\c@whole% 371 \begin{picture}(\c@tmpa,\c@tmpb)% 372 \put(\c@whole,\c@half){\framebox(#1,#2){#3}}% 373 \end{picture}% 374 \global\advance\d@breite by2\@wholewidth% 375 \global\advance\d@hoehe by2\@wholewidth% 376} 377 378 379\def\Schatten(#1,#2)#3{% 380 \c@whole=\@wholewidth\divide\c@whole by65536% 381 \c@half=\@halfwidth\divide\c@half by65536% 382 \c@shad=\d@shad\divide\c@shad by65536% 383 \c@tmp=\c@whole\advance\c@tmp by\c@whole\c@tmpd=\c@tmp% 384 \advance\c@tmp by\c@shad% 385 \advance\c@tmpd by#1% 386 \advance\c@half by\c@shad% 387 \c@tmpa=#1\advance\c@tmpa by\c@tmp% 388 \c@tmpb=#2\advance\c@tmpb by\c@tmp% 389 \begin{picture}(\c@tmpa,\c@tmpb)% 390 \put(\c@whole,\c@half){\framebox(#1,#2){#3}}% 391 \put(\c@shad,0){\rule{\c@tmpd pt}{\c@shad pt}}% 392 \put(\c@tmpd,0){\rule{\c@shad pt}{#2 pt}}% 393 \end{picture}% 394 \global\advance\d@breite by2\@wholewidth\global\advance\d@breite by\d@shad% 395 \global\advance\d@hoehe by2\@wholewidth\global\advance\d@hoehe by\d@shad% 396} 397 398 399\def\Oval(#1,#2)#3{% 400 \@wholewidth=0.4pt% 401 \c@tmpa=\the#1\divide\c@tmpa by2% 402 \c@tmpb=\the#2\divide\c@tmpb by2% 403 \begin{picture}(#1,#2)% 404 \put(\c@tmpa,\c@tmpb){\oval(#1,#2)}% 405 \put(0.4,0.4){#3}% 406 \end{picture}% 407 \global\advance\d@breite by1pt\global\advance\d@hoehe by1pt% 408} 409 410 411\def\Strich(#1,#2)#3{% 412 \c@whole=\@wholewidth\divide\c@whole by65536% 413 \c@half=\@halfwidth\divide\c@half by65536% 414 \c@dash=\d@dash\divide\c@dash by65536% 415 \c@tmp=\c@whole\advance\c@tmp by\c@whole% 416 \c@tmpa=#1\advance\c@tmpa by\c@tmp% 417 \c@tmpb=#2\advance\c@tmpb by\c@tmp% 418 \c@tmpc=#1\advance\c@tmpc by\c@whole% 419 \c@tmpd=#2\advance\c@tmpd by\c@whole% 420 \begin{picture}(\c@tmpa,\c@tmpb)% 421 \put(\c@half,\c@half){\dashbox{\c@dash}(\c@tmpc,\c@tmpd){#3}}% 422 \end{picture}% 423 \global\advance\d@breite by2\@wholewidth% 424 \global\advance\d@hoehe by2\@wholewidth% 425} 426 427 428\def\Kasten(#1,#2)#3{% 429 \@wholewidth=0.4pt% 430 \c@boxl=\d@boxl\divide\c@boxl by65536\c@boxl=\the\c@boxl% 431 \c@tmpa=#1\advance\c@tmpa by\c@boxl% 432 \c@tmpb=#2\advance\c@tmpb by\c@boxl% 433 \c@tmp=#2% 434 \begin{picture}(\c@tmpa,\c@tmpb)% 435 \put(0,\c@boxl){\framebox(#1,#2){#3}}% 436 \put(\c@boxl,0){\line(-1,1){\c@boxl}}% 437 \put(\c@boxl,0){\line(1,0){#1}\line(-1,1){\c@boxl}}% 438 \put(\c@boxl,0){\put(#1,0){\line(0,1){\c@tmp}% 439 \put(0,\c@tmp){\line(-1,1){\c@boxl}}}}% 440 \end{picture}% 441 \global\advance\d@breite by\d@boxl% 442 \global\advance\d@hoehe by\d@boxl% 443} 444 445 446 447 448 449\newbox\env@box% 450\newdimen\d@envdp 451\newcount\c@hsize 452\newcount\c@envdp 453\newdimen\d@envb 454 455\long\def\frameenv{\@ifnextchar [{\@frameenv}{\@frameenv[\textwidth]}} 456\long\def\@frameenv[#1]{% 457 \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 458 \advance\textwidth by-2\@wholewidth 459 \advance\textwidth by-2\fboxsep 460 \hsize=\textwidth \linewidth=\textwidth 461 \setbox\env@box=\vbox\bgroup}% 462\def\endframeenv{% 463 \egroup% 464 \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ 465 \c@breite=\d@envb \divide\c@breite by65536 466 \advance\d@envb by-2\@wholewidth 467 \c@hsize=\d@envb \divide\c@hsize by65536% 468 \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% 469 \advance\d@envdp by2\fboxsep% 470 \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth 471 \c@hoehe=\d@hoehe \divide\c@hoehe by65536 472 \c@envdp=\d@envdp \divide\c@envdp by65536% 473 \c@tmp=\@wholewidth \divide\c@tmp by65536 474 \vskip\@wholewidth% 475 \unitlength 1pt\noindent% 476 \begin{picture}(\c@breite,\c@hoehe)(0,0) 477 \put(\c@tmp,\c@tmp){\framebox(\c@hsize,\c@envdp){\box\env@box}} 478 \end{picture}% 479} 480 481 482 483\long\def\shadowenv{\@ifnextchar [{\@shadowenv}{\@shadowenv[\textwidth]}} 484\long\def\@shadowenv[#1]{% 485 \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 486 \advance\textwidth by-2\@wholewidth 487 \advance\textwidth by-2\fboxsep 488 \advance\textwidth by-\d@shad% 489 \hsize=\textwidth \linewidth=\textwidth 490 \setbox\env@box=\vbox\bgroup}% 491\def\endshadowenv{% 492 \egroup 493 \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ 494 \d@tmpa=\d@envb 495 \c@breite=\d@envb \divide\c@breite by65536 496 \advance\d@envb by-2\@wholewidth \advance\d@envb by-\d@shad 497 \c@hsize=\d@envb \divide\c@hsize by65536% 498 \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% 499 \advance\d@envdp by2\fboxsep% 500 \c@envdp=\d@envdp \divide\c@envdp by65536% 501 \d@hoehe=\d@envdp 502 \advance\d@hoehe by2\@wholewidth \advance\d@hoehe by\d@shad 503 \c@hoehe=\d@hoehe \divide\c@hoehe by65536 504 \c@shad =\d@shad \divide\c@shad by65536 505 \c@tmp=\@wholewidth \divide\c@tmp by65536 506 \advance\d@tmpa by-2\d@shad 507 \c@xoff =\d@tmpa \divide\c@xoff by65536 508 \advance\c@xoff by\c@shad \advance\c@xoff by-1 509 \advance\d@envdp by\@wholewidth 510 \vskip\@halfwidth 511 \unitlength 1pt\noindent% 512 \begin{picture}(\c@breite,\c@hoehe)(0,0) 513 \put(\c@tmp,\c@shad){\framebox(\c@hsize,\c@envdp){\box\env@box}} 514 \put(\c@shad,0){\rule{\d@tmpa}{\d@shad}}% 515 \put(\c@xoff,0){\rule{\d@shad}{\d@envdp}}% 516 \end{picture}% 517 \vskip\@halfwidth 518} 519 520 521\long\def\dashenv{\@ifnextchar [{\@dashenv}{\@dashenv[\textwidth]}} 522\long\def\@dashenv[#1]{% 523 \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 524 \advance\textwidth by-2\@wholewidth \advance\textwidth by-2\fboxsep 525 \hsize=\textwidth \linewidth=\textwidth 526 \setbox\env@box=\vbox\bgroup}% 527\long\def\enddashenv{% 528 \egroup 529 \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ 530 \c@breite=\d@envb \divide\c@breite by65536 531 \advance\d@envb by-\@wholewidth 532 \c@hsize=\d@envb \divide\c@hsize by65536% 533 \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% 534 \advance\d@envdp by2\fboxsep% 535 \advance\d@envdp by\@wholewidth 536 \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth 537 \c@hoehe=\d@hoehe \divide\c@hoehe by65536 538 \c@envdp=\d@envdp \divide\c@envdp by65536% 539 \c@dash=\d@dash \divide\c@dash by65536% 540 \c@whole=\@wholewidth \divide\c@whole by65536 541 \c@half=\@halfwidth \divide\c@half by 65536 542 \noindent\unitlength 1pt 543 \begin{picture}(\c@breite,\c@hoehe)(0,0) 544 \put(\c@half,\c@whole){\dashbox{\c@dash}(\c@hsize,\c@envdp){\box\env@box}} 545 \end{picture}% 546} 547 548 549\long\def\ovalenv{\@ifnextchar [{\@ovalenv}{\@ovalenv[\textwidth]}}% 550\long\def\@ovalenv[#1]{% 551 \hsiz@=\textwidth \textwidth=#1 \d@envb=#1 552 \advance\textwidth by-4\fboxsep 553 \hsize=\textwidth \linewidth=\textwidth 554 \setbox\env@box=\vbox\bgroup}% 555\long\def\endovalenv{% 556 \egroup 557 \hsize=\hsiz@ \textwidth=\hsiz@ \linewidth=\hsiz@ 558 \@wholewidth=0.4pt 559 \c@breite=\d@envb \divide\c@breite by65536 560 \advance\d@envb by-2\@wholewidth 561 \c@hsize=\d@envb \divide\c@hsize by65536% 562 \d@envdp=\dp\env@box \advance\d@envdp by\ht\env@box% 563 \advance\d@envdp by4\fboxsep% 564 \c@envdp=\d@envdp \divide\c@envdp by65536% 565 \d@hoehe=\d@envdp \advance\d@hoehe by2\@wholewidth 566 \c@hoehe=\d@hoehe \divide\c@hoehe by65536 567 \c@tmpa=\c@hsize \divide\c@tmpa by2% 568 \c@tmpb=\c@envdp \divide\c@tmpb by2% 569 \d@tmpa=2\fboxsep \advance\d@tmpa by\@wholewidth 570 \c@xoff=\d@tmpa \divide\c@xoff by65536% 571 \advance\d@tmpa by\dp\env@box 572 \c@yoff=\d@tmpa \divide\c@yoff by65536% 573 \unitlength 1pt\noindent 574 \begin{picture}(\c@breite,\c@hoehe)(0,0) 575 \put(\c@tmpa,\c@tmpb){\oval(\c@hsize,\c@envdp)} 576 \put(\c@xoff,\c@yoff){\box\env@box}% 577 \end{picture}% 578} 579