comparison 14/homework/morals/4-21/eclbkbox.sty @ 84:cbf5b8a64520

add homework
author Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp>
date Thu, 24 Apr 2014 03:38:27 +0900
parents
children
comparison
equal deleted inserted replaced
83:0691a56cff56 84:cbf5b8a64520
1 % eclbkbox.sty by Hideki Isozaki, 1992
2 % Date: May 28, 1993
3
4 \newbox\bk@bxb
5 \newbox\bk@bxa
6 \newif\if@bkcont
7 \newif\ifbkcount
8 \newcount\bk@lcnt
9
10 \def\breakboxskip{2pt}
11 \def\breakboxparindent{1.8em}
12
13 \def\breakbox{\vskip\breakboxskip\relax
14 \setbox\bk@bxb\vbox\bgroup
15 \advance\linewidth -2\fboxrule
16 \advance\linewidth -2\fboxsep
17 \hsize\linewidth\@parboxrestore
18 \parindent\breakboxparindent\relax}
19
20 % \@tempdimb: amount of vertical skip
21 % between the first line (\bk@bxa) and the rest (\bk@bxb)
22 \def\bk@split{%
23 \@tempdimb\ht\bk@bxb % height of original box
24 \advance\@tempdimb\dp\bk@bxb
25 \setbox\bk@bxa\vsplit\bk@bxb to\z@ % split it
26 \setbox\bk@bxa\vbox{\unvbox\bk@bxa}% recover height & depth of \bk@bxa
27 \setbox\@tempboxa\vbox{\copy\bk@bxa\copy\bk@bxb}% naive concatenation
28 \advance\@tempdimb-\ht\@tempboxa
29 \advance\@tempdimb-\dp\@tempboxa}% gap between two boxes
30
31
32 % \@tempdima: height of the first line (\bk@bxa) + fboxsep
33 \def\bk@addfsepht{%
34 \setbox\bk@bxa\vbox{\vskip\fboxsep\box\bk@bxa}}
35
36 \def\bk@addskipht{%
37 \setbox\bk@bxa\vbox{\vskip\@tempdimb\box\bk@bxa}}
38
39 % \@tempdima: depth of the first line (\bk@bxa) + fboxsep
40 \def\bk@addfsepdp{%
41 \@tempdima\dp\bk@bxa
42 \advance\@tempdima\fboxsep
43 \dp\bk@bxa\@tempdima}
44
45 % \@tempdima: depth of the first line (\bk@bxa) + vertical skip
46 \def\bk@addskipdp{%
47 \@tempdima\dp\bk@bxa
48 \advance\@tempdima\@tempdimb
49 \dp\bk@bxa\@tempdima}
50
51 \def\bk@line{%
52 \hbox to \linewidth{\ifbkcount\smash{\llap{\the\bk@lcnt\ }}\fi
53 \vrule \@width\fboxrule\hskip\fboxsep
54 \box\bk@bxa\hfil
55 \hskip\fboxsep\vrule \@width\fboxrule}}
56
57 \def\endbreakbox{\egroup
58 \ifhmode\par\fi{\noindent\bk@lcnt\@ne
59 \@bkconttrue\baselineskip\z@\lineskiplimit\z@
60 \lineskip\z@\vfuzz\maxdimen
61 \bk@split\bk@addfsepht\bk@addskipdp
62 \ifvoid\bk@bxb % Only one line
63 \def\bk@fstln{\bk@addfsepdp
64 \vbox{\hrule\@height\fboxrule\bk@line\hrule\@height\fboxrule}}%
65 \else % More than one line
66 \def\bk@fstln{\vbox{\hrule\@height\fboxrule\bk@line}\hfil
67 \advance\bk@lcnt\@ne
68 \loop
69 \bk@split\bk@addskipdp\leavevmode
70 \ifvoid\bk@bxb % The last line
71 \@bkcontfalse\bk@addfsepdp
72 \vtop{\bk@line\hrule\@height\fboxrule}%
73 \else % 2,...,(n-1)
74 \bk@line
75 \fi
76 \hfil\advance\bk@lcnt\@ne
77 \if@bkcont\repeat}%
78 \fi
79 \leavevmode\bk@fstln\par}\vskip\breakboxskip\relax}
80
81 \bkcountfalse
82