Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Different ways to keep a bit of glue from disappearing at the beginning of a line<br />
after line breaking:<br />
• Zero-thickness rule<br />
• Null character<br />
• \vadjust{} (The TEXbook, Exercise ??)<br />
The null character idea would be nice except it creates a mathord which then<br />
screws up math spacing for e.g., a following unary minus sign. (the vrule is transparent<br />
to the math spacing). The vadjust is the cheapest in terms of box memory—it<br />
vanishes after the pass through TEX’s paragrapher. It is what I would have<br />
used, except that the equation contents get run through two paragraphing passes,<br />
once for breaking up LR boxes and once for the real typesetting. If \keep@glue<br />
were done with an empty vadjust, it would disappear after the first pass and—in<br />
particular—the pre-bin-op adjustment for relation symbols would disappear at a<br />
line break.<br />
84 \def\keep@glue{\z@rule\relax}<br />
\replicate This is a fully expandable way of making N copies of a token list. Based on a post<br />
of David Kastrup to comp.text.tex circa January 1999. The extra application of<br />
\number is needed for maximal robustness in case the repeat count N is given in<br />
some weird TEX form such as "E9 or \count9.<br />
\replicate@a<br />
\8m fix<br />
\8q fix<br />
85 % usage: \message{H\replicate{5}{i h}ow de doo dee!}<br />
86 \begingroup \catcode‘\&=11<br />
87 \gdef\replicate#1{%<br />
88 \csname &\expandafter\replicate@a\romannumeral\number\number#1 000q\endcsname<br />
89 }<br />
90 \endgroup<br />
91 \long\def\replicate@a#1#2\endcsname#3{#1\endcsname{#3}#2}<br />
92 \begingroup \catcode‘\&=11<br />
93 \long\gdef\&m#1#2{#1\csname \endcsname{#1}}<br />
94 \endgroup<br />
95 \@xp\let\csname\string &q\endcsname\@gobble<br />
\mathchars@reset Need to patch up this function from flexisym a little, to better handle certain<br />
constructed symbols like \neq.<br />
96 \ExplSyntaxOn<br />
97 \g@addto@macro\mathchars@reset{%<br />
98 %\let\@symRel\@secondoftwo \let\@symBin\@secondoftwo<br />
99 %\let\@symDeL\@secondoftwo \let\@symDeR\@secondoftwo<br />
20