Mercurial > hg > Papers > 2013 > sugi-thesis
comparison Draft/picins.sty @ 6:52dff3fd4f40
add Draft
author | sugi |
---|---|
date | Mon, 18 Feb 2013 02:48:08 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5:b817e83013a7 | 6:52dff3fd4f40 |
---|---|
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 } |