2 \ifx\hsplit@defined\@undefined
3 \def\hsplit@defined{\relax}%
9 \newdimen\hsplit@tmpdim
10 \def\hsplit#1\to#2\into#3{% \hsplit\boxnum\to\dimen\into\outboxnum
12 \multiply\hsplit@tmpdim by -1
13 \advance\hsplit@tmpdim by \wd#1%
14 \setbox\hsplit@tmpbox=\vbox{\hfuzz=\maxdimen\hbadness=\@M
15 \hsize=\hsplit@tmpdim\nointerlineskip
16 \global\hsplit@tmpdim=#2
17 \global\multiply\hsplit@tmpdim by -2
18 \global\advance\hsplit@tmpdim by \wd#1
19 \noindent\kern\hsplit@tmpdim\unhbox#1}%
20 %\showbox\hsplit@tmpbox
21 \setbox\hsplit@tmpbox=\vbox{% get into internal vertical mode
23 \hsplit@makehboxofhboxesandsplit
24 \global\setbox\hsplit@tmpbow=\hbox{\unhbox\hsplit@tmpbow
25 \hsplit@removehboxes\unskip\unpenalty}%
26 \hbadness=\@M\hfuzz=\maxdimen
27 \global\setbox\hsplit@tmpbov=\hbox to #2{\unhbox\hsplit@tmpbov\unskip}%
28 % Now we've got the first line in \hsplit@tmpbov starting with a kern
29 %\showbox\hsplit@tmpbow
31 %\showbox\hsplit@tmpbov
32 \setbox#1=\box\hsplit@tmpbow
33 \setbox\hsplit@tmpbox=\vbox{\hbadness=\@M\hfuzz=\maxdimen
34 \hsize=\maxdimen\nointerlineskip
35 \noindent\break\unhbox\hsplit@tmpbov}%
36 %\showbox\hsplit@tmpbox
37 \setbox\hsplit@tmpbox=\vbox{% get into internal vertical mode
39 \hsplit@makehboxofhboxesandsplit
40 %\showbox\hsplit@tmpbov
41 \global\setbox\hsplit@tmpbow=\hbox{\unhbox\hsplit@tmpbow
42 \hsplit@removehboxes\unskip\unpenalty}%
43 %\showbox\hsplit@tmpbow
45 \setbox#3=\box\hsplit@tmpbow
47 \def\hsplit@makehboxofhboxesandsplit{%
48 \setbox\hsplit@tmpboy=\hbox{}%
50 \setbox\hsplit@tmpboz=\lastbox
52 \setbox\hsplit@tmpbow=\copy\hsplit@tmpboy
53 \setbox\hsplit@tmpbov=\copy\hsplit@tmpboz
54 \setbox\hsplit@tmpboy=\hbox{\box\hsplit@tmpboz\unhbox\hsplit@tmpboy}%
59 \def\hsplit@removehboxes{%
60 \setbox\hsplit@tmpboz=\lastbox
62 {\hsplit@removehboxes}% for use local tmpboz
64 \unskip % removes \rightskip