15.07.2013 Views

breqn

breqn

breqn

SHOW MORE
SHOW LESS

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 &#2\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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!