summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2007-12-28 01:36:57 +0000
committerKarl Berry <karl@freefriends.org>2007-12-28 01:36:57 +0000
commit6c5ddd1296ce22ce1bd3f196c9deabe0bcbdf8cd (patch)
tree404401d5860a4e9d9c08f3720cb92e7d145def50 /Master
parent8ebc58dba0381898ce61235b298edc2b31fbbc28 (diff)
mh update: breqn v0.97a, flexisym v0.96, mathstyle v0.84 (27dec07)
git-svn-id: svn://tug.org/texlive/trunk@5960 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/mh/README7
-rw-r--r--Master/texmf-dist/doc/latex/mh/breqn-technotes.pdfbin0 -> 180636 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mh/breqn-technotes.tex145
-rw-r--r--Master/texmf-dist/doc/latex/mh/breqn.pdfbin377686 -> 452391 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mh/cmbase.sym5
-rw-r--r--Master/texmf-dist/doc/latex/mh/eqbreaks.pdf976
-rw-r--r--Master/texmf-dist/doc/latex/mh/eqlayouts.pdfbin110022 -> 109696 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mh/flexisym.pdfbin139528 -> 166936 bytes
-rw-r--r--Master/texmf-dist/doc/latex/mh/mathpazo.sym5
-rw-r--r--Master/texmf-dist/doc/latex/mh/mathptmx.sym5
-rw-r--r--Master/texmf-dist/doc/latex/mh/mathstyle.pdfbin86156 -> 100771 bytes
-rw-r--r--Master/texmf-dist/source/latex/mh/breqn.dtx678
-rw-r--r--Master/texmf-dist/source/latex/mh/empheq.ins56
-rw-r--r--Master/texmf-dist/source/latex/mh/empheq07.ins54
-rw-r--r--Master/texmf-dist/source/latex/mh/flexisym.dtx36
-rw-r--r--Master/texmf-dist/source/latex/mh/mathstyle.dtx15
-rw-r--r--Master/texmf-dist/source/latex/mh/mathtools.ins54
-rw-r--r--Master/texmf-dist/source/latex/mh/mhsetup.ins54
-rw-r--r--Master/texmf-dist/tex/latex/mh/breqn.sty321
-rw-r--r--Master/texmf-dist/tex/latex/mh/flexisym.sty10
-rw-r--r--Master/texmf-dist/tex/latex/mh/mathstyle.sty3
-rwxr-xr-xMaster/tlpkg/bin/ctan2tds61
22 files changed, 828 insertions, 1657 deletions
diff --git a/Master/texmf-dist/doc/latex/mh/README b/Master/texmf-dist/doc/latex/mh/README
index d41d1ccb3db..f4cde904cc5 100644
--- a/Master/texmf-dist/doc/latex/mh/README
+++ b/Master/texmf-dist/doc/latex/mh/README
@@ -13,14 +13,15 @@ The files in the mh bundle are listed are
empheq.dtx
empheq07.dtx
eqlayouts.tex
- eqbreaks.pdf
+ breqn-technotes.tex
and derived files. The derived files of each .dtx-file are listed
at the top of the respective .dtx-file.
INSTALLATION
============
-See the .dtx-files for details.
+Running TeX on each dtx file extracts the runtime files. See the dtx
+files for details.
DESCRIPTION
===========
@@ -101,4 +102,4 @@ probably be an integral part of LaTeX3.
===========
-This README file was last revised 2007/12/10.
+This README file was last revised 2007/12/19.
diff --git a/Master/texmf-dist/doc/latex/mh/breqn-technotes.pdf b/Master/texmf-dist/doc/latex/mh/breqn-technotes.pdf
new file mode 100644
index 00000000000..63a388d1353
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mh/breqn-technotes.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mh/breqn-technotes.tex b/Master/texmf-dist/doc/latex/mh/breqn-technotes.tex
new file mode 100644
index 00000000000..e8c6174cbbf
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/mh/breqn-technotes.tex
@@ -0,0 +1,145 @@
+\documentclass{article}
+\usepackage{lmodern}
+\usepackage[T1]{fontenc}
+\usepackage{breqn}
+\def\eqnumside{L}
+\providecommand*\cs[1]{\texttt{\textbackslash#1}}
+
+\usepackage{hyperref}
+
+\title{Technical notes on equation breaking}
+\author{Michael J.\ Downes \and Morten H\o gholm}
+\begin{document}
+
+\maketitle
+
+
+\section{Tag placement}
+
+The method used by the breqn package to place the equation number is
+rather more complicated than you might think, and the whole reason is
+to allow the number to stay properly centered on the total height even
+when the height fluctuates due to stretching or shrinking of the page.
+
+
+Consider the following equation:
+\begin{dmath}[number={3.15}]
+ N_{0} \simeq \left( \frac{\nu}{\lVert u\rVert_{H^{i}}} \right)
+ \lvert I\rvert^{-1/2}
+\end{dmath}
+It will have only one line, if the column width is not too narrow.
+
+Scrutinizing the vertical list will shed light on some of the basic properties
+shared by all breqn equations. After that we will look at what would happen if
+two or more lines were needed. The numbers added on the left in the following
+\cs{showlists} output mark the points of interest.
+\begin{verbatim}
+[1] \penalty 10000
+ \glue(\abovedisplayskip) 0.0
+ \penalty 10000
+ \glue(\belowdisplayskip) 0.0
+[2] \glue 4.0 plus 4.0
+ \glue(\lineskip) 1.0
+[3] \vbox(16.53902+0.0)x0.0, glue set 16.53902fil
+ .\glue 0.0 plus 1.0fil minus 1.0fil
+ \penalty 10000
+[4] \glue -8.51945
+[5] \hbox(7.5+2.5)x25.55563
+ .\OT1/cmr/m/n/10 (
+ .\OT1/cmr/m/n/10 3
+ .\OT1/cmr/m/n/10 .
+ .\OT1/cmr/m/n/10 1
+ .\OT1/cmr/m/n/10 5
+ .\kern 0.0
+ .\OT1/cmr/m/n/10 )
+ \penalty 10000
+[6] \glue(\parskip) -18.01956
+[7] \hbox(16.53902+9.50012)x360.0, glue set 1.78647
+\end{verbatim}
+\begin{enumerate}
+\item These four lines are a hidden display structure from \TeX's
+ primitive \texttt{\$\$} mechanism. It is used only to get the value
+ of \cs{predisplaysize} so that we can later calculate by hand
+ whether to use the short display skips or the regular ones. (The
+ reason that we have to do it by hand traces back to the fact that
+ \TeX\ 3.x does not allow unhboxing in math mode.) The penalties come
+ from \cs{predisplaypenalty} and \cs{postdisplaypenalty}, which were
+ locally set to 10000 to ensure there would be no unintended page
+ breaks at these glue nodes.
+
+\item These two glue nodes are the ones that would normally have been
+ produced at the top of a display; the first one is the above-display
+ skip node (though we had to put it in by hand with \cs{vskip}) and
+ the second one is the usual baselineskip/lineskip node.
+
+\item This is a dummy copy of the equation's first line, which is
+ thrown in here to get the proper value of baselineskip (or lineskip
+ in this case). Why do we need this? Because this ensures that we get
+ the top spacing right before we fiddle with the glue nodes
+ surrounding the equation number. And if the equation has a frame,
+ this box is a good place to add it from.
+
+\item This is a special glue node that brings us to the right vertical
+ position for adding the equation number. Its value is calculated
+ from the variables that you would expect, given the presence of the
+ dummy first line above the num- ber: starting position of the
+ equation, height of first line, total height of equation body. If
+ the equation body had more than one line, with stretchable glue
+ between the lines, half of the stretch would be added in this glue
+ node.
+
+\item The hbox containing the equation number.
+
+\item Backspace to bring the equation body to the right starting point. We use
+ \cs{parskip} to put this glue in place because we're going to get a
+ parskip node here in any case when we add the equation body with (in
+ essence). If we didn't do this we'd get two glue nodes instead of
+ one, to no purpose.
+
+\cs{\noindent} \cs{unhbox}\cs{EQ@box}.
+
+
+\item And lastly we see here the first line of the equation body,
+ which appears to have height 16.5pt and depth 9.5pt.
+\end{enumerate}
+
+For comparison, the vertical list produced from the above equation in
+standard \LaTeX\ would look like this, if the same values of
+columnwidth and abovedisplayskip are used:
+\begin{verbatim}
+[1] \penalty 10000
+[2] \glue(\abovedisplayskip) 4.0 plus 4.0
+ \glue(\lineskip) 1.0
+ \hbox(16.53902+9.50012)x232.94844
+[3] .\hbox(7.5+2.5)x25.55563
+ ..\hbox(7.5+2.5)x25.55563
+ ...\OT1/cmr/m/n/10 (
+ ...\OT1/cmr/m/n/10 3
+ ...\OT1/cmr/m/n/10 .
+ ...\OT1/cmr/m/n/10 1
+ ...\OT1/cmr/m/n/10 5
+ ...\kern 0.0
+ ...\OT1/cmr/m/n/10 )
+ .\kern101.49591
+[4] .\hbox(16.53902+9.50012)x105.8969
+ ...
+[5] \penalty 0
+[6] \glue(\belowdisplayskip) 4.0 plus 4.0
+ \glue(\lineskip) 1.0
+ \hbox(6.94444+1.94444)x345.0, glue set 62.1106fil
+\end{verbatim}
+
+\begin{enumerate}
+ \item \cs{predisplaypenalty}
+ \item \cs{abovedisplayskip}
+ \item equation number box
+ \item equation body
+ \item \cs{postdisplaypenaltly}
+ \item \cs{belowdisplayskip}
+\end{enumerate}
+
+
+
+
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/mh/breqn.pdf b/Master/texmf-dist/doc/latex/mh/breqn.pdf
index 120e081c698..e94a3618a6f 100644
--- a/Master/texmf-dist/doc/latex/mh/breqn.pdf
+++ b/Master/texmf-dist/doc/latex/mh/breqn.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mh/cmbase.sym b/Master/texmf-dist/doc/latex/mh/cmbase.sym
index 151aac3c742..7a468eea799 100644
--- a/Master/texmf-dist/doc/latex/mh/cmbase.sym
+++ b/Master/texmf-dist/doc/latex/mh/cmbase.sym
@@ -28,7 +28,7 @@
%% flexisym.sty, flexisym.pdf, flexisym.ins, flexisym.drv,
%% cmbase.sym, mathpazo.sym, mathptmx.sym, msabm.sym.
%%
-\ProvidesSymbols{cmbase}[2001/09/07 v0.91]
+\ProvidesSymbols{cmbase}[2007/12/19 v0.92]
\@xp\xdef\csname mg@OT1\endcsname{\hexnumber@\symoperators}
\@xp\xdef\csname mg@OML\endcsname{\hexnumber@\symletters}
\@xp\xdef\csname mg@OMS\endcsname{\hexnumber@\symsymbols}
@@ -332,7 +332,8 @@
\DeclareFlexCompoundSymbol{\neq}{Rel}{\not{=}}
\DeclareFlexCompoundSymbol{\mapsto}{Rel}{\mapstoOrd\rightarrow}
\DeclareFlexCompoundSymbol{\cong}{Rel}{\mathpalette\@vereq\sim}
-\newcommand*\joinord{\mkern-3mu }
+\providecommand*\joinord{}
+\renewcommand*\joinord{\mkern-3mu }
\DeclareFlexCompoundSymbol{\notin}{Rel}{\mathpalette\c@ncel\in}
\DeclareFlexCompoundSymbol{\rightleftharpoons}{Rel}{\mathpalette\rlh@{}}
\DeclareFlexCompoundSymbol{\doteq}{Rel}{\buildrel\textstyle.\over=}
diff --git a/Master/texmf-dist/doc/latex/mh/eqbreaks.pdf b/Master/texmf-dist/doc/latex/mh/eqbreaks.pdf
deleted file mode 100644
index 621bcc75dba..00000000000
--- a/Master/texmf-dist/doc/latex/mh/eqbreaks.pdf
+++ /dev/null
@@ -1,976 +0,0 @@
-%PDF-1.2
-7 0 obj
-<<
-/Type/Encoding
-/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress
-160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis]
->>
-endobj
-10 0 obj
-<<
-/Encoding 7 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F1
-/FontDescriptor 9 0 R
-/BaseFont/MALWXI+CMR12
-/FirstChar 33
-/LastChar 196
-/Widths[272 489.6 816 489.6 816 761.6 272 380.8 380.8 489.6 761.6 272 326.4 272 489.6
-489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 489.6 272 272 272 761.6 462.4
-462.4 761.6 734 693.4 707.2 747.8 666.2 639 768.3 734 353.2 503 761.2 611.8 897.2
-734 761.6 666.2 761.6 720.6 544 707.2 734 734 1006 734 734 598.4 272 489.6 272 489.6
-272 272 489.6 544 435.2 544 435.2 299.2 489.6 544 272 299.2 516.8 272 816 544 489.6
-544 516.8 380.8 386.2 380.8 544 516.8 707.2 516.8 516.8 435.2 489.6 979.2 489.6 489.6
-489.6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 611.8 816
-761.6 679.6 652.8 734 707.2 761.6 707.2 761.6 0 0 707.2 571.2 544 544 816 816 272
-299.2 489.6 489.6 489.6 489.6 489.6 734 435.2 489.6 707.2 761.6 489.6 883.8 992.6
-761.6 272 489.6]
->>
-endobj
-13 0 obj
-<<
-/Encoding 7 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F2
-/FontDescriptor 12 0 R
-/BaseFont/WFEUNY+CMR10
-/FirstChar 33
-/LastChar 196
-/Widths[277.8 500 833.3 500 833.3 777.8 277.8 388.9 388.9 500 777.8 277.8 333.3 277.8
-500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8 472.2 472.2 777.8
-750 708.3 722.2 763.9 680.6 652.8 784.7 750 361.1 513.9 777.8 625 916.7 750 777.8
-680.6 777.8 736.1 555.6 722.2 750 750 1027.8 750 750 611.1 277.8 500 277.8 500 277.8
-277.8 500 555.6 444.4 555.6 444.4 305.6 500 555.6 277.8 305.6 527.8 277.8 833.3 555.6
-500 555.6 527.8 391.7 394.4 388.9 555.6 527.8 722.2 527.8 527.8 444.4 500 1000 500
-500 500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 625 833.3
-777.8 694.4 666.7 750 722.2 777.8 722.2 777.8 0 0 722.2 583.3 555.6 555.6 833.3 833.3
-277.8 305.6 500 500 500 500 500 750 444.4 500 722.2 777.8 500 902.8 1013.9 777.8
-277.8 500]
->>
-endobj
-14 0 obj
-<<
-/Type/Encoding
-/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/omega/epsilon/theta1/pi1/rho1/sigma1/phi1/arrowlefttophalf/arrowleftbothalf/arrowrighttophalf/arrowrightbothalf/arrowhookleft/arrowhookright/triangleright/triangleleft/zerooldstyle/oneoldstyle/twooldstyle/threeoldstyle/fouroldstyle/fiveoldstyle/sixoldstyle/sevenoldstyle/eightoldstyle/nineoldstyle/period/comma/less/slash/greater/star/partialdiff/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/flat/natural/sharp/slurbelow/slurabove/lscript/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/dotlessi/dotlessj/weierstrass/vector/tie/psi
-160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/alpha/beta/gamma/delta/epsilon1/zeta/eta/theta/iota/kappa/lambda/mu/nu/xi/pi/rho/sigma/tau/upsilon/phi/chi/psi/tie]
->>
-endobj
-17 0 obj
-<<
-/Encoding 14 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F3
-/FontDescriptor 16 0 R
-/BaseFont/KCMZHQ+CMMI10
-/FirstChar 33
-/LastChar 196
-/Widths[622.5 466.3 591.4 828.1 517 362.8 654.2 1000 1000 1000 1000 277.8 277.8 500
-500 500 500 500 500 500 500 500 500 500 500 277.8 277.8 777.8 500 777.8 500 530.9
-750 758.5 714.7 827.9 738.2 643.1 786.2 831.3 439.6 554.5 849.3 680.6 970.1 803.5
-762.8 642 790.6 759.3 613.2 584.4 682.8 583.3 944.4 828.5 580.6 682.6 388.9 388.9
-388.9 1000 1000 416.7 528.6 429.2 432.8 520.5 465.6 489.6 477 576.2 344.5 411.8 520.6
-298.4 878 600.2 484.7 503.1 446.4 451.2 468.8 361.1 572.5 484.7 715.9 571.5 490.3
-465 322.5 384 636.5 500 277.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 615.3 833.3 762.8 694.4 742.4 831.3 779.9 583.3 666.7 612.2 0 0 772.4
-639.7 565.6 517.7 444.4 405.9 437.5 496.5 469.4 353.9 576.2 583.3 602.5 494 437.5
-570 517 571.4 437.2 540.3 595.8 625.7 651.4 277.8]
->>
-endobj
-20 0 obj
-<<
-/Encoding 7 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F4
-/FontDescriptor 19 0 R
-/BaseFont/ZNSNNO+CMR7
-/FirstChar 33
-/LastChar 196
-/Widths[323.4 569.4 938.5 569.4 938.5 877 323.4 446.4 446.4 569.4 877 323.4 384.9
-323.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 569.4 323.4 323.4
-323.4 877 538.7 538.7 877 843.3 798.6 815.5 860.1 767.9 737.1 883.9 843.3 412.7 583.3
-874 706.4 1027.8 843.3 877 767.9 877 829.4 631 815.5 843.3 843.3 1150.8 843.3 843.3
-692.5 323.4 569.4 323.4 569.4 323.4 323.4 569.4 631 507.9 631 507.9 354.2 569.4 631
-323.4 354.2 600.2 323.4 938.5 631 569.4 631 600.2 446.4 452.6 446.4 631 600.2 815.5
-600.2 600.2 507.9 569.4 1138.9 569.4 569.4 569.4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 706.4 938.5 877 781.8 754 843.3 815.5 877 815.5
-877 0 0 815.5 677.6 646.8 646.8 970.2 970.2 323.4 354.2 569.4 569.4 569.4 569.4 569.4
-843.3 507.9 569.4 815.5 877 569.4 1013.9 1136.9 877 323.4 569.4]
->>
-endobj
-21 0 obj
-<<
-/Type/Encoding
-/Differences[0/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/arrowright/arrowup/arrowdown/arrowboth/arrownortheast/arrowsoutheast/similarequal/arrowdblleft/arrowdblright/arrowdblup/arrowdbldown/arrowdblboth/arrownorthwest/arrowsouthwest/proportional/prime/infinity/element/owner/triangle/triangleinv/negationslash/mapsto/universal/existential/logicalnot/emptyset/Rfractur/Ifractur/latticetop/perpendicular/aleph/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/union/intersection/unionmulti/logicaland/logicalor/turnstileleft/turnstileright/floorleft/floorright/ceilingleft/ceilingright/braceleft/braceright/angbracketleft/angbracketright/bar/bardbl/arrowbothv/arrowdblbothv/backslash/wreathproduct/radical/coproduct/nabla/integral/unionsq/intersectionsq/subsetsqequal/supersetsqequal/section/dagger/daggerdbl/paragraph/club/diamond/heart/spade/arrowleft
-161/minus/periodcentered/multiply/asteriskmath/divide/diamondmath/plusminus/minusplus/circleplus/circleminus
-173/circlemultiply/circledivide/circledot/circlecopyrt/openbullet/bullet/equivasymptotic/equivalence/reflexsubset/reflexsuperset/lessequal/greaterequal/precedesequal/followsequal/similar/approxequal/propersubset/propersuperset/lessmuch/greatermuch/precedes/follows/arrowleft/spade]
->>
-endobj
-24 0 obj
-<<
-/Encoding 21 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F5
-/FontDescriptor 23 0 R
-/BaseFont/QGRDUG+CMSY10
-/FirstChar 33
-/LastChar 196
-/Widths[1000 500 500 1000 1000 1000 777.8 1000 1000 611.1 611.1 1000 1000 1000 777.8
-275 1000 666.7 666.7 888.9 888.9 0 0 555.6 555.6 666.7 500 722.2 722.2 777.8 777.8
-611.1 798.5 656.8 526.5 771.4 527.8 718.7 594.9 844.5 544.5 677.8 762 689.7 1200.9
-820.5 796.1 695.6 816.7 847.5 605.6 544.6 625.8 612.8 987.8 713.3 668.3 724.7 666.7
-666.7 666.7 666.7 666.7 611.1 611.1 444.4 444.4 444.4 444.4 500 500 388.9 388.9 277.8
-500 500 611.1 500 277.8 833.3 750 833.3 416.7 666.7 666.7 777.8 777.8 444.4 444.4
-444.4 611.1 777.8 777.8 777.8 777.8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 777.8 277.8 777.8 500 777.8 500 777.8 777.8 777.8 777.8 0 0 777.8
-777.8 777.8 1000 500 500 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8 777.8
-777.8 777.8 1000 1000 777.8 777.8 1000 777.8]
->>
-endobj
-27 0 obj
-<<
-/Type/Font
-/Subtype/Type1
-/Name/F6
-/FontDescriptor 26 0 R
-/BaseFont/PAMJDP+CMEX10
-/FirstChar 33
-/LastChar 196
-/Widths[791.7 583.3 583.3 638.9 638.9 638.9 638.9 805.6 805.6 805.6 805.6 1277.8
-1277.8 811.1 811.1 875 875 666.7 666.7 666.7 666.7 666.7 666.7 888.9 888.9 888.9
-888.9 888.9 888.9 888.9 666.7 875 875 875 875 611.1 611.1 833.3 1111.1 472.2 555.6
-1111.1 1511.1 1111.1 1511.1 1111.1 1511.1 1055.6 944.4 472.2 833.3 833.3 833.3 833.3
-833.3 1444.4 1277.8 555.6 1111.1 1111.1 1111.1 1111.1 1111.1 944.4 1277.8 555.6 1000
-1444.4 555.6 1000 1444.4 472.2 472.2 527.8 527.8 527.8 527.8 666.7 666.7 1000 1000
-1000 1000 1055.6 1055.6 1055.6 777.8 666.7 666.7 450 450 450 450 777.8 777.8 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 458.3 458.3 416.7 416.7
-472.2 472.2 472.2 472.2 583.3 583.3 0 0 472.2 472.2 333.3 555.6 577.8 577.8 597.2
-597.2 736.1 736.1 527.8 527.8 583.3 583.3 583.3 583.3 750 750 750 750 1044.4 1044.4
-791.7 777.8]
->>
-endobj
-30 0 obj
-<<
-/Encoding 14 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F7
-/FontDescriptor 29 0 R
-/BaseFont/QVRZWB+CMMI7
-/FirstChar 33
-/LastChar 196
-/Widths[719.7 539.7 689.9 950 592.7 439.2 751.4 1138.9 1138.9 1138.9 1138.9 339.3
-339.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 585.3 339.3
-339.3 892.9 585.3 892.9 585.3 610.1 859.1 863.2 819.4 934.1 838.7 724.5 889.4 935.6
-506.3 632 959.9 783.7 1089.4 904.9 868.9 727.3 899.7 860.6 701.5 674.8 778.2 674.6
-1074.4 936.9 671.5 778.4 462.3 462.3 462.3 1138.9 1138.9 478.2 619.7 502.4 510.5
-594.7 542 557.1 557.3 668.8 404.2 472.7 607.3 361.3 1013.7 706.2 563.9 588.9 523.6
-530.4 539.2 431.6 675.4 571.4 826.4 647.8 579.4 545.8 398.6 442 730.1 585.3 339.3
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 693.8 954.4 868.9
-797.6 844.5 935.6 886.3 677.6 769.8 716.9 0 0 880 742.7 647.8 600.1 519.2 476.1 519.8
-588.6 544.1 422.8 668.8 677.6 694.6 572.8 519.8 668 592.7 662 526.8 632.9 686.9 713.8
-756 339.3]
->>
-endobj
-31 0 obj
-<<
-/Type/Encoding
-/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress
-160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis]
->>
-endobj
-34 0 obj
-<<
-/Encoding 31 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F8
-/FontDescriptor 33 0 R
-/BaseFont/UZMPRB+CMR5
-/FirstChar 33
-/LastChar 196
-/Widths[402.8 680.6 1097.2 680.6 1097.2 1027.8 402.8 541.7 541.7 680.6 1027.8 402.8
-472.2 402.8 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 680.6 402.8
-402.8 1027.8 1027.8 1027.8 645.8 1027.8 980.6 934.7 958.3 1004.2 900 865.3 1033.4
-980.6 494.5 691.7 1015.3 830.6 1188.9 980.6 1027.8 900 1027.8 969.5 750 958.3 980.6
-980.6 1327.8 980.6 980.6 819.5 402.8 680.6 402.8 680.6 402.8 402.8 680.6 750 611.1
-750 611.1 437.5 680.6 750 402.8 437.5 715.3 402.8 1097.2 750 680.6 750 715.3 541.7
-548.6 541.7 750 715.3 958.3 715.3 715.3 611.1 680.6 1361.1 680.6 680.6 680.6 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 830.6 1097.2 1027.8
-911.1 888.9 980.6 958.3 1027.8 958.3 1027.8 0 0 958.3 680.6 680.6 402.8 402.8 645.8
-402.8 437.5 680.6 680.6 680.6 680.6 680.6 980.6 611.1 680.6 958.3 1027.8 680.6 1177.8
-1316.7 1027.8 402.8 680.6]
->>
-endobj
-37 0 obj
-<<
-/Encoding 21 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F9
-/FontDescriptor 36 0 R
-/BaseFont/JBJZGS+CMSY7
-/FirstChar 33
-/LastChar 196
-/Widths[1138.9 585.3 585.3 1138.9 1138.9 1138.9 892.9 1138.9 1138.9 708.3 708.3 1138.9
-1138.9 1138.9 892.9 329.4 1138.9 769.8 769.8 1015.9 1015.9 0 0 646.8 646.8 769.8
-585.3 831.4 831.4 892.9 892.9 708.3 917.6 753.4 620.2 889.5 616.1 818.4 688.5 978.6
-646.5 782.1 871.7 791.7 1342.7 935.6 905.8 809.2 935.9 981 702.2 647.8 717.8 719.9
-1135.1 818.9 764.4 823.1 769.8 769.8 769.8 769.8 769.8 708.3 708.3 523.8 523.8 523.8
-523.8 585.3 585.3 462.3 462.3 339.3 585.3 585.3 708.3 585.3 339.3 938.5 859.1 954.4
-493.6 769.8 769.8 892.9 892.9 523.8 523.8 523.8 708.3 892.9 892.9 892.9 892.9 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 892.9 339.3 892.9 585.3
-892.9 585.3 892.9 892.9 892.9 892.9 0 0 892.9 892.9 892.9 1138.9 585.3 585.3 892.9
-892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 892.9 1138.9 1138.9 892.9
-892.9 1138.9 892.9]
->>
-endobj
-38 0 obj
-<<
-/Type/Encoding
-/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde/dieresis/visiblespace
-160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/arrowup/arrowdown/quotesingle/exclamdown/questiondown/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/visiblespace/dieresis]
->>
-endobj
-41 0 obj
-<<
-/Encoding 38 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F10
-/FontDescriptor 40 0 R
-/BaseFont/PMDWMQ+CMTT10
-/FirstChar 33
-/LastChar 196
-/Widths[525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
-525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
-525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
-525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
-525 525 525 525 525 525 525 525 525 525 525 525 525 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 525 525 525 525 525 525 525 525 525 525 0 0 525
-525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525 525
-525 525]
->>
-endobj
-43 0 obj
-<<
-/Filter[/FlateDecode]
-/Length 1370
->>
-stream
-xڥW͓6'A$3=M&3mmk 5:ۿ u&3݃> fq<{=8g
-KRDfwzlW" ˦*J
-֚:l|27>t8Tc &eew%%HOdqVD1Gͻ"Y1 Y)Ҁxãe p!=ْ4D;[ R:,=zf]l}]r#^!Fӳ+@,pr85
-ƩJ
-5e[#\Szk齨mG^ALj-s㈯!Ti3Ե'R?8{tj>^wh+<8fΥ6B]`n$~g,?Vdy"9 9Ӌ mjgƾS~:Տ/J:&ɝM06+\h$B+9cMLluQ~JiBz3V,Vr&Sp/"0}dpJL12gz"'7.:a -$(9.nKFd$MgDw)5$yBSY bǜi=9$gA5N3PАgLT?,c$܇&<4_#x?\X"eJm2II`U]ө,py6n0`?5hEh،fwr=aOyZnm7تu}(<<it!ꪷ#`xKfx8ܜ@{4'CW[:y90^_}Y)5<.$^\_IV?-!dj$[h19<EثiTKa#;,!IAKm`iHOځRpw=ϔ|Co1; ii;rd\KC$;jfoT5D,>ʮy|kcA)fi{|e0+jZmE0+eo"D0|s|ϫTAp'P csp/a<փxḫ?T'X4NKun0-B0p~"͠wWVW^m 9,$u
-oToeUz5xC]w>V͌
-0Z: {.ղY$_D;r
-endstream
-endobj
-45 0 obj
-<<
-/F1 10 0 R
-/F2 13 0 R
-/F3 17 0 R
-/F4 20 0 R
-/F5 24 0 R
-/F6 27 0 R
-/F7 30 0 R
-/F8 34 0 R
-/F9 37 0 R
-/F10 41 0 R
->>
-endobj
-6 0 obj
-<<
-/ProcSet[/PDF/Text/ImageC]
-/Font 45 0 R
->>
-endobj
-48 0 obj
-<<
-/Type/Encoding
-/Differences[0/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/exclam/quotedblright/numbersign/sterling/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/exclamdown/equal/questiondown/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/quotedblleft/bracketright/circumflex/dotaccent/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/endash/emdash/hungarumlaut/tilde/dieresis/suppress
-160/space/Gamma/Delta/Theta/Lambda/Xi/Pi/Sigma/Upsilon/Phi/Psi 173/Omega/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/acute/caron/breve/macron/ring/cedilla/germandbls/ae/oe/oslash/AE/OE/Oslash/suppress/dieresis]
->>
-endobj
-51 0 obj
-<<
-/Encoding 48 0 R
-/Type/Font
-/Subtype/Type1
-/Name/F11
-/FontDescriptor 50 0 R
-/BaseFont/BJZUOD+CMTI10
-/FirstChar 33
-/LastChar 196
-/Widths[306.7 514.4 817.8 769.1 817.8 766.7 306.7 408.9 408.9 511.1 766.7 306.7 357.8
-306.7 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 511.1 306.7 306.7
-306.7 766.7 511.1 511.1 766.7 743.3 703.9 715.6 755 678.3 652.8 773.6 743.3 385.6
-525 768.9 627.2 896.7 743.3 766.7 678.3 766.7 729.4 562.2 715.6 743.3 743.3 998.9
-743.3 743.3 613.3 306.7 514.4 306.7 511.1 306.7 306.7 511.1 460 460 511.1 460 306.7
-460 511.1 306.7 306.7 460 255.6 817.8 562.2 511.1 511.1 460 421.7 408.9 332.2 536.7
-460 664.4 463.9 485.6 408.9 511.1 1022.2 511.1 511.1 511.1 0 0 0 0 0 0 0 0 0 0 0
-0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 627.2 817.8 766.7 692.2 664.4 743.3 715.6
-766.7 715.6 766.7 0 0 715.6 613.3 562.2 587.8 881.7 894.4 306.7 332.2 511.1 511.1
-511.1 511.1 511.1 831.3 460 536.7 715.6 715.6 511.1 882.8 985 766.7 255.6 511.1]
->>
-endobj
-52 0 obj
-<<
-/Filter[/FlateDecode]
-/Length 2398
->>
-stream
-xڅYKWرF"d&
-٢倉PeS#&&1
-cH_M)dj!ΏI%%C/X'YneC0 eELG_ۄmf/L
-#0
-~})dY+_Empש̂@ͥN>
-qXג!VUrm\MŒCc-~"|
-a7uM7{Db1OA
-AAiNj`Z-;8Oğ釰+8d焱eD\ZZD23vB_ J@4:)Wq+:Ly8.IH"ԕZ)`%}t$C}WJJƀ= 98Cub5@>6s"UQfkΗ
-Y~0̅4SK!ouh>VIBLM8JuSh\w1Y5UAj_DLbI lu}8gnZGFBLG[+˕ݧ#lFsՇe֫|RK0IָzZj5B*s*|*r+uGlw}]W{" <Qo 7WS|rTq9@~e,qXlb;_1+N"q촯tݔ<67qvs5.);lp5!W#_@2C%0 Wd'fH6YXfDwdW~|t̿O2VBhFu72H.gBARXnULo.M73E2huxW0*JAV-[vN/Yt3`9a0 " #&.-ھ u?!^Mz-q=!ł.##8}j}QZI"L\!~~ג*LQ"M3H\
-endstream
-endobj
-53 0 obj
-<<
-/F2 13 0 R
-/F10 41 0 R
-/F11 51 0 R
-/F4 20 0 R
->>
-endobj
-47 0 obj
-<<
-/ProcSet[/PDF/Text/ImageC]
-/Font 53 0 R
->>
-endobj
-56 0 obj
-<<
-/Filter[/FlateDecode]
-/Length 428
->>
-stream
-xڕMs09&cY L/p3=hM[F*o ~Puʁ ɻ/ 9 mx"wi0H@A"-`Hz?
-66-Dj'eXVr8uy3*lyV6v}W>nwYd &
- ?\gya#4Xx@άr+ %TKz7d#$ǜLo)w9u_*+`J)i#:eR ӈom`E>϶Yש^*Wz:wHTI f?7L4
-endstream
-endobj
-57 0 obj
-<<
-/F10 41 0 R
-/F2 13 0 R
->>
-endobj
-55 0 obj
-<<
-/ProcSet[/PDF/Text/ImageC]
-/Font 57 0 R
->>
-endobj
-9 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-34 -251 988 750]
-/FontName/MALWXI+CMR12
-/ItalicAngle 0
-/StemV 65
-/FontFile 8 0 R
-/Flags 4
->>
-endobj
-8 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 714
-/Length2 5296
-/Length3 533
-/Length 5848
->>
-stream
-xg8 F"QH%zoc )D.h=z&QC5쬵w>xsy゙M[_eUB! S
-FP`4ʹA" !1
-<$r+ F5h(w  0(K
-EBԔ02V}' !^W-_<fBBB¿׿,q"!zh0joCˣ<}EDOĄR@ 1!gAU_
-B
-*_,0 (i0\KLĘJݛѸ @Y Bʕl5[l8Bǽ7!$]YvzMW]:?z;u8_?g yUlSٝZv05|n7ü{z^lxKI?큌QsYb'%)+?E;Mo(M}.!ץDWJU#9PR3Z%@0N]53k/fsįylM$EQ ŸHސcBzU{fNtHm`(9פp֡^] ]MىrmzKY?3`3$[ݲO`# l_䪙e˪OWdtf5lZ"+Tn5_e/??/TExz.0zs[b#èLG?09v~ eq\$&ī4M&E2'}׵ }M٭T՟ßc7U9Zgr~Ds
-<lu
-=fݯj3<'M3a4rt)QQ-}O)2ӪRKY?RmZͦ"ENx7?k\O*6݀.͟œ]b*nR"xߏZg"|v< 8=<7')Nn~j~>e LM^BZ
-Y=BPE']>Pwj>kр:'I/ Q}Nn÷ÄR oG=k !`i9¥#7#K!#J+Q.]Hoꛮlx!St>C-z/+ͧ>a.\_A ;Ȧ( 9AimG#[_HJ}ڪ^;8^<)x-<V}8&\| rqśv-H|-֌U- Q7iqUΦW](&dlhZ.L>v!
-M!3 65Obi,5Ճ9956sزƽ&b8 ٠3$5Hu
- S"*N' =pWLkk2ہ֘~o;1_Ιf0
-jFcJ&nJB
--϶e3=M*Zw I-y}x "Tl neٵM H)[%Q?&N. >5|MfQ^%Źʃ*<G_~)D`Xl};!=堬Zܨ[Eekk6Ę;]2
-3zxde$6E0Jj*եhtzC1WCD
- y-*⺔D<]<NgllXj }?a@|77b*!RW2mR .댊ux~χ3Do齃FU9=_m5ejvna͓*z<[,Ϛ
-}T[:>ԪueG~+{"\xMě<tnS:R|#r^=B5;eaҊ~*!X]
-8J~~ԞHdqx GLV >{Ogҗ4THJdr}'4?m
-/͏jA۽f4r0ήl޵v`_'4()ZuǪN/6bgT[*gYz;a7?!rMĻuAb?>Zd9JKG!IuƵbP_Xb* B uyQ
-TG@TKx$Y",Jφ
-o͑l'('a&+mmwW ͍m> ;Z}Uݱ`Oih>?'EvKaAGGʛ[\N.os[¾GW5oݝ rLE|{ʆSίYr| J5/f۟9NPlKhd?}}L>C c<RdUvUHDDk_MMe[f&Cp'̉$m{=Ѵˡ|{o\sǼ% bYQI& 5PIhQ "cI.^fjse)(_-j|UMjn&NYJ3P3U12^ c&rYAo1%,w^.
-h͉GR於D3&rӑZv`#0d$jQ )Y|MRv G:σNAuqS{L3E} f<] g`y)\ցrK9 f5WߓI R142̣ !H_y<px$wŕ \[ܸ1X)`)X)Z`eeʓ_\"c{N`j~b"ۨtCGlnioהiA$pzM  (%rI 'g&'Yra9R%LdI w >Q$ Hn44ʦ/"xhP;=T/#Aqe-2˧>;S])d|f[WĶedԭ0=0{X+2?ivR>@%E_o "heڤn˟{oī5%PFv@| _*_0fi|K9hJiI~ ~Z{2Ei|Z`{!<g"|oӺU{2 T֒~r
-&7gKY^[]k+դ?Ǭd簦z@k: ISѵf%_g{!l{9:A61Tѭ:瘛d^eJc->?9'8XGS;'֝|`7\#kQq;}-Sg܇,z ɛ1#t^vd:/Sgg؊ɸbi#|
-7rY7|Bdy7S
-( l\#w35L4jP}ZדWH}|O
-endstream
-endobj
-12 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-251 -250 1009 969]
-/FontName/WFEUNY+CMR10
-/ItalicAngle 0
-/StemV 69
-/FontFile 11 0 R
-/Flags 4
->>
-endobj
-11 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 720
-/Length2 11506
-/Length3 533
-/Length 12059
->>
-stream
-xctoM';m۶m[m۶c۶m;9<r֣WF9uկf
- =72#!=#04 NŌP?/7+7344҅R_*B![3'?&&F6*&
-0q!46
- Tq135r2JXË?T8I122rp;kdfώ+6333h%9KutFtJrʀҰ?j6|1Gm{uO#dlU?~Ҝt铱 >R] Aoa_XY?a gcy_5}4\B>(ZHWJkM҄ZDm7&62‚=d_8@``\!ļ}] ۟<> :߶[;
-҆4
-2OqB؃0ƺd119~WVkH
-YcɅ7Ϙmu }GLJ6ጕ|z-Y[?rUYKT)&"--hiz׀]c=U60bAZX#H D LHLJq[^j!ebZ4iC*iVT:K?C, H&LTq,ChvVr(^}oE}^.iAHʺ*~hdAگ"| +k[F`s:be&5pM ͐D{TɦUs]GaeֶB 5hU}#iX_ `1ΑеkR5o#jFFu(;au3D>o;-`TyRDKqCg`_+аpia^![TZ&޲I.i/#n
-SD'фйāy}%Dܧ_Q4?65BL|>/kL5Ҕ&olU#8tx5hRi̅LOe͸94^zsw:FR/-V=GNj^ڰ_9*՛%=cg"13<M"B]. ͒daXX4ohO&UX&,0<-{
-`@Q|ۭ+hfV9+$rl<SCQAԬR?ÁUkTe8d [Aњ캕*CYriL) 0|9o2jS*Ey>"Z=D"*Ͼ2Q! V2cMvX}o8bfD[1mFFD}O.Wm){_lM$2STМF
-<aY'# E
-ݵpQ~IPQ5"Gu
- JgI8j3[TRؐJ|jIfv:{}@g}︪ #ja:^av Ȟ|HSȮA!rȮ;1tN V2'C-U0"'ҏYnuE6qe#>EiW,~Hc]Izބ7bDc\̋bHgehUaj6hWD ȉyp+RL*(nU=@rWڌgSQZ~؅QVp>2(nG2%hc fELR/nPᎵex^`I$:۩܊n$[ոDPBt@
-xVg&㖈vfCP59l3&?< PZ0oY:f_o{R\._qS$m8opp(\ⲻc)dEs%9McImU4
-u2iP6-VWmL?9lU$~{x2>GCpIhacų&Y%c=b4gn^X4.X]c;k;39Ѣcvi11N;[bFjY* GXBfNN-SlpR#Lо $u"j>+.4`lٮv۳Q@$Ǯ9KNZ~
-j2X:
-4R?"@BuZzY_nP^tܴjɦVT
-LfT"r|&ib5i8'nqE-50ŗW\̌GHd3 m ~ީ5)V0T6ȨR4O/H8H{c[VV#+P ~)_NTB&z } prAb7@ :%B.umq.d1t4TIxG=9W1\*z(\k}36~7JIbTF <3ڋ3
-okVÐ$޹ɰyl( il
-q
-bid¾^-4+)u&CnN$_ĕ%fZWJdJC[AD
-sYzs7đ4aM0K\~ݨlĨ+~cr+/X^76y6p;Ҕ97@>-3MpbЊ 6Hv'zȭIVq-y%Op`0 4sOЋ JS<mNwhD@0
-ɵDO 9«yku0`
-Wf^8? Oz51uh`{*i{4]g?P`q骀*8Pta.WEPקk_[GYhCe3]wz=ƈx0IBրVCO@
- =tgLu6v OL#dp@jI'QMcdJQO CL6!)qGC5JWar:"`Gߧ5')"pm^
-&j˲#~8u2ȧb[
-`x&n莤Ӈ[- p Ύ|&W~" dOADaԇ "XW,wb|):
-.h(Wr ,2ˎ6&X 05HRZC2V~L7|qRg1*k<3 lOAzTns$siݎ$q
-H*)?s;EȰX,I-uIhgmx G E,2cχ&DyJ]نヲWz EW* B*
-myQ*.4aY8@ãDR9%jMi"=bB߷j<u&jfJ?6mj<u< MHPX}ChBLJGnŪsjgޡ(YpTScw,1x[ >1,t4Ȭ{?r3A>/a錓
-۪b1fmjjBWGw^* (&:>LoP;CTޭHr^4'5';FSsk(ՇamC_MkyB$hL8iƿl%naA/AU9ae7(U|pEX1urowm1='{yk)6;Yz2o5kQDrScӥWz e.0MzO2WAXWR8n,+?R`c
-wA5xn0BGx* @_/eLJE\WP JNT(lID使v#wwOk.Mp{ H>$2m,X슰as`,]-QY#
-rx1a^M~ج&!<
-02Gv 箶hrubKC?Φo]B>Lf0C6VC6P>p-cO̤? [KlP-&,{?PeƻKxr|h33yhl~S\06Iݴíei<y-)Td6PM :5
-?eez7YB@&۹"^X^"uݑb:֋xa8 mzE(%9GZwfQO #mZ~2?fNrv`:p}'6f=ыeOP(4_&W@UټԩHtGi#|J~BRG4G*[xͫ {őDGƘe
-R DZA(JO}ҷA.o&Ro1eǚ*:[^~ C.w-2Š?_̄Ԙ&u{)W]J%GmY5 cwIMxouʺiԿԞN|'
-)#P`: v&)J+*x9[ FY:YN24KJ@$LmQ;aM $+a]ETXhE[$:qmcdHn^+pKx;Ok4F_q\pJN2kZǽ WXʢ*NeGcB!-Νe9 O( ;L*/N8Hb wH^vi%(ƛ~M%leu4/eFy:fau(Wف&zΚ> *R}ӝIItFTbGO539[}#70b2ÄORWp Dk_jJ8-'D "_UX}9IͿ3P$&͌S3ɪuGg! [i0mdm6O2Wq}LDŅvQm!4&m܁0Vt_?oˡB싨r.Jwn%Bu.@Ymsd(Jp%#ZZCF#Tx"}R_z6YgI(j1D4tkV(p0>\Q
-^P(9@
-gPIҩN+ f,ʤ{agaS ABi@Z0dΫ!2eZ2WL68+`*"(7GΔu䆚|T JT@r&tdVClGƭYޞ4+\}9-e1 Dn -aˆs1DAaJjc+LNLöJ z1<1:#i#xTJJǙPe! zT.a6
-[PxW'5*֪S`^3t %c]|Dž297n<(A!ox }T _g]
-~4P*;wFSTⱬvf"Vn,.%3-6H'IN,RV4&~LAsGHq@Ejqᘒ-[ȵ"=
-;֓<ll9X=v"&|&^ȅٮa@}=gz*dmW'EZ^/?kҕ1"XM9FYJv{䊻YvjP:ZT@,T{^\;{_w 鱙Bt/`}ڿ:2֍ Rv9^] !C{JOc %;z[kġ@׏t DĤ4F#^n,K)+<,"s_^[Ko2ڙa^dsy"?g|
-B*2z#Kз'iCxk?UP*~[$b+ȡ' NlN~=>)Z!nDe:1}b},~x̋6|o]iH@ރ+
-=.ȇ⎽=2R[즠ġq`
-Ry!@HuހFgO@ ȦOV^\޼W{#޼v8}`rD>hMr=/g{wM,wj֑篰t[D6v j9xQ+9RZ,)op/0
-wh0qmUSc-]= Z*^;(:dzEL$X*FMBYf o&En0~;I)\k܌"ܜ"2UX % f H`)vv:7PңG%B!%DA͕X2cUUIKK+E7c?awؙT`NuOQr)GjX LcQѫ 3kX3W?X11'QL*K~#&$څHuL_<M5TZ ifet
-N-ϓ⨦B|
-7ؽ|forZDEtA挫RK!F *AvO#*qGVZГ>Iē5-{cA̗fR~%i\5ְ~<HeluAo~ZD<$!Y"pJΪ: Bjdy=?`nB#>ԁ2cgu(}깖ՙWX7MnlH;(J겯22l Ci-b /)ğg+iM%L"ϒл
- _D.wi h`=גP;}Ϩ>wT
-we:`|P4<_LJ8s( K.e z, ѐw{3
-њ?m{MN\̖n+k0k()>1;x/ ]
-X5n8{)N*ӜэȣdH^qQ!dY`,g|U96Vm; 1H}4q,ܴjui AULm,JbCK>f{RϙΆ- f?|Oؘ99YCC=ﶩ
-endstream
-endobj
-16 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-32 -250 1048 750]
-/FontName/KCMZHQ+CMMI10
-/ItalicAngle -14.04
-/StemV 72
-/FontFile 15 0 R
-/Flags 68
->>
-endobj
-15 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 727
-/Length2 1844
-/Length3 533
-/Length 2389
->>
-stream
-x{<DZD$al ff m.3q˺dӺt D,I=eS[l*ΤݳӞw^y}?{?WsuCXQ$Ў`#P(SǡhDBpHdӘ ["4P&&ƀH6H-hva
-H`  `/2G D\ Rm@Ia2
--p6R52kuТoJcDPY֟LTπ4_Y dhrzL֏Ujka?OT +> ;&UL[_:C)PL,rKjlY77=Vqaci)i."j|> GE
-̄dl)w(iiT ţgt4<[~Xc&N.|Ôͳ0&q&|?4 6-y:$7
-^/r-ޚ|V8k,vx]H\36|nF?v'XGpBxIuSX[Iץ7 YKCnnȜy E =ョw4'>'禟YN" l;C#1ּܥ ORO-n)aڞ+
-<ۥc{z 8}w陳jޮ_7WqCwnY wth{&/u5[oN> :|E<y\X_Xi^.$44 cJ]v/
-\'f@Wmo[II)&\8 tJG4IZZV/ =#}W!22?Es]'yB9IqBtl,g37ւD:xXD l2}7jx㑞]O}o4 ؆qE:dx4S0CimMd;4
-~<eQN׌m\u[(Z>~c듗ߦ!^?a%Bt9
-ݓt6ډߢ"U&rY\1_z^WBhakw0Xl뎞
-䦰+»N8Bͪk@ًMJs{'>\uLJSQݯŢ9iw
-SW ~X?5F lwH!Q5m=Pz.o>ŧӿXW[Ӱ5 6.Nnerg?'`AJU{A5 VyLE~շ*~0Ҳ퀻%̩EOy@&_P
-endstream
-endobj
-19 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-27 -250 1122 750]
-/FontName/ZNSNNO+CMR7
-/ItalicAngle 0
-/StemV 79
-/FontFile 18 0 R
-/Flags 4
->>
-endobj
-18 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 712
-/Length2 1837
-/Length3 533
-/Length 2376
->>
-stream
-x{<TǕrrثaJd.̈́w&%f5Lj
-I*)Jd.hԤ1nΘؑ\SS|sg=~}LplgAb 0‰ Ry 6L
-
-[j= zs:9uUJ%=w%*3'>R'o85iouζ=l>uZ-ٯh*>pJt3r'g}.UY'<zmw1 W=/RdW爰0[K()]+l <*ye2cɱ:%.2wtzc֍M'4l1pŹgjCZjF~Өkˆv! K76@7~ p==Cu
-endstream
-endobj
-23 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-29 -960 1116 775]
-/FontName/QGRDUG+CMSY10
-/ItalicAngle -14.035
-/StemV 85
-/FontFile 22 0 R
-/Flags 68
->>
-endobj
-22 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 724
-/Length2 826
-/Length3 533
-/Length 1351
->>
-stream
-xSU uLOJu+53Rp 44P03RUu.JM,sI,IR04Tp,MW04U002225RUp/,L(Qp2WpM-LNSM,HZRRZZTeh\ǥrg^Z9D8
-@WT*qmKdgaqn99~ !S U[PZZZ4<8Ԕ\tYϒĜdǼT]C=cSDf[fEjJ@fIrBZbNq*X<5/);D?=%]ـ̼ʂTr0SQfB!P!Xh%d+$$0]_QkdkiLjf
-榵
-C2 KS=]L , L.-*J+'aL`(V&s͞##5ˁJNaz&CIMXǞ;w\[Žg40њ3;nY($ǝg0eXWҞ1Jԗ]aKuz]XU- ݣ%6 t6,`N|+Kgdq;)yAWpq3z]K&j؟u~x?˰ *wO٭\vwv%|3:YY}|v߿Xd?/ya^:-w^fys[Ӟ|g;}
-[ף~m7 {?hr=<ɩ qKݮ<:w}Լ8wÛK3?'lqfz#]>bX8eEM^?Q[Mcnێk5'+}q%HzǧJwZ fK_y(nb:d۪>;7eF롟~VܖȄ7~{^|yeՈ'_Ťئ|Vbά. {cֹ?zcG }Zh9u[^\]gc]UA33x{߾vkI:y7Mnk:/&[68]=:OBJ:X!-r\ih.7L٩4O\t8ŷkXmRgG-5 (n߼LBnw?0Y )=r*:a_O?ta[fc96n1os''+:4|.b7sME4ߒ jm7ՀB5j0 9'5$?7(
-endstream
-endobj
-26 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-24 -2960 1454 772]
-/FontName/PAMJDP+CMEX10
-/ItalicAngle 0
-/StemV 47
-/FontFile 25 0 R
-/Flags 4
->>
-endobj
-25 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 809
-/Length2 1313
-/Length3 534
-/Length 1905
->>
-stream
-xR{8Tnt9{\vnc.lktDi̬aif-C.'C.H-ܵ7ν\*ٔ]1cs;Y}{wOg5%Ȁ7x-r!rA2@07'yLWH dc34ZEl? ꭲH5 dC4* P K"B2# |#
-]L[tk\reEIP^yAbKrk|۫C>t-}v)?cY|%2\FL-}d)JWy-;ҼZLǎ:aw6*ϸ.g@8wSʼs! IԪZ5&~xQf6SN
-WWf_^?Q>$-@ƪ Wc@:6Yo_}{xdx_ITeZ3+Re=Ţ ?rajc)L>C4[OJ:ECb;K鈡t乥[=I-d5a Zn?X^O̍]\)mʚ4hBjJ(|#Iht*
-o'
- 5UL<HZ2) .j4<3K4_>1A*Sh?*
-endstream
-endobj
-29 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[0 -250 1171 750]
-/FontName/QVRZWB+CMMI7
-/ItalicAngle -14.04
-/StemV 81
-/FontFile 28 0 R
-/Flags 68
->>
-endobj
-28 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 722
-/Length2 1452
-/Length3 533
-/Length 1987
->>
-stream
-x{8[yǫT[2:T\%PƸ_H9 BI^ԴZ:tP>2eA6,۝g;>>{~>=?֎
-YL
-s8
-_Zu67p_vPtpٺD;"10Ph@DtID65o}=zBo~$ jolFl$q eUeRXTxq &bS)ޞXs x`͇Dqa`ZL-MT
-͆ u" 3~=+p)ܲ9e/o)frO^Ӊԟq:wBeϋWct[tNnPҺԱwuJ&NayM)36܁))zMCĕ^tʵKyNmfi+^ݽj^ۘM7"VؔO;R2t%;kpIfRTjwTj?9,Rrj i\ _^Ւ[b6RHnjd&dܠ<R]d=56LJOqZ.mu 2Qj9Kcv ׉"\yqV}qk]dz
-`Ǹq}Hp.Pxiz6ၾ~fM:UJ54 ].)Sr#1ܩCȶI+}Jf}c`~ iJfZ֥r[۪n,haNyUt|t?G$?+qKu+:wU]/b1`^T_qgOђEe&WcG㉆x/V ĶHZ,\s}#ؕ3-p7
-;(m
-9eV4JmŻlOyMI|Tԍv'\D*{X {TBm@<i ٱ.ޜag( (5o=K9V좤,ݐ %GFMi;?;5I#Uhh:P98UكnŜ\jInar+iRֵd+׍v .V+̧*7JksX # ]@$igjx7/'НR]ڎƗҠeAb]5n]TE9I#7ۻuTG[7F^h]M F"%Ax+ES0WaȩgHRG$-}f\!_li^n5S8<_W0u_-}[q2~pXi"j7#
-U"է{<'~0=5J{Fk/Ƽ
-1x|A{$ōK(OJ)'m(ja>8}98Շ_&5D?Dsm&srN
-<KP.Rx3bCց URQ6{sی ڬ)aV;/W*\^oxvRDo+OUUY?GD
-endstream
-endobj
-33 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-341 -250 1304 965]
-/FontName/UZMPRB+CMR5
-/ItalicAngle 0
-/StemV 89
-/FontFile 32 0 R
-/Flags 4
->>
-endobj
-32 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 717
-/Length2 1238
-/Length3 533
-/Length 1768
->>
-stream
-xkTgKh6(,TPKn " I$D. +pQZ"͠rE",Y_췞̇yy%m ,ބ"[: x0:FcI$oE";91Mpz~LgH$XB
-D7y
-
-a,Z/R~M]4/H2ISO6e{ BP(Я2XX>[;{:``
-m}CgE\O|N"ܰ"rjr#8#~}/[F!WBY)1iᜎȑ_ SB*[)iҗ^'RzᗢL~j漯6+֪=#6pzh=P:paMgsXL<y b+W
-~6 PfW^T$Y<o~5
-={bFQ:4M|yt€'Yyv-=?Ǫ3', 8dC^Uѧ#eq#7/ސyWf pac'ư
-~֮[ohl7gy2"W0X+%}ݵBo`zuk]'),?{۸/1}8HiYkak8px+Y.Wwk,*𤦼·qP*;ktɘHLBE^lm`It8L7]Or1Byz+'6a A%^d(|t^Z1 !sv v\XScƶ]_2
-endstream
-endobj
-36 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-15 -951 1252 782]
-/FontName/JBJZGS+CMSY7
-/ItalicAngle -14.035
-/StemV 93
-/FontFile 35 0 R
-/Flags 68
->>
-endobj
-35 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 721
-/Length2 599
-/Length3 533
-/Length 1109
->>
-stream
-xSU uLOJu+53Rp 4W03RUu.JM,sI,IR04Tp,MW04U002225RUp/,L(Qp2WpM-LNSM,HZRRZZTeh\ǥrg^Z9D8
-@WT*qmKdgaqn99~ A!S U[PZZZ4<6Ԕ\tYϒĜdǼT]C=cSDf[fEjJ@fIrBZbNq*X<5/);D+=Xɀ̼ʂTj0RQfB!P!Xh%d+$$0_Q LC
-FF
-F
-C2 KS=]L , ɥEEy%
-=m^un)[TZbeQ9E%E\\
-endstream
-endobj
-40 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-4 -235 731 800]
-/FontName/PMDWMQ+CMTT10
-/ItalicAngle 0
-/StemV 69
-/FontFile 39 0 R
-/Flags 4
->>
-endobj
-39 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 719
-/Length2 9085
-/Length3 533
-/Length 9643
->>
-stream
-xUT\Ѷqww
-w. ^R@Aa N]Kp  nACNsK~{=5cm&w\@W+ēO `b=kOOT  10
-
- 4%//l@W/
-W7'
-pa.^UvBA
-C5_N%'K/ 2}RQ
-x ʙ{sʰB*d20C)",bohWzL5w4Ϗk}=1Os~R)6 %
-*dోX@ s̈(lf`1(FmRDSЦ52`kX
-p8Mf4̜|0"*/`LU)Ŋ`VoL8NSU=
-&1rĜdVg.`M塺:]/=I' ^XnK%Z5?S\i ?4nnI}H* r'“
-^3q;Ҡ4]'X<
-10{) u(7[b]}oΙG!̪qE[(2gBk_@dod!PMgkō]R&wD wjr~彎/aXϺΙ3LjD=bеi㋃'|i 7&"K+qrû`M98MzM%Oʉ6 i;5ƌ5CBz(]5,;}j1$H_'?
-jh+At-c <]EQ%&wj󖆋.[4$L`!iVAoAGBjkq;<$41DQD-m=-_
-$󰠨c[W=}MI c0OE{?`HQ[%wyD8GaX?ךdY5IdXO ajZ]S>[PF8睦_o<s=~ $ks< ^Ymmyg~SI?̳;9Sf&; btƍNa]kn9\aw$wǜ8t4vֽ>x/Bp(m4Н1I|r1b"da\&=^HGoH5z w'Q}%8l"jF݉-mJ|nD xe O;yXVTdl^D 1蠣-\fojsܸS_*̅}~@RI5:'a ^۱*~%q
-gG4_? cL&ODy0s. 4ķ!.㰺+ d5sI |ѱ߮qS` tek
-:ߜ,p+}w(v"ΉY*Ԏ:vؼY(7/U/.uVǗUIfXlWCw>!ܩUeO~gãQDqڄv˂TʜZU4h$S?COsH2,>~3FWTbIg (.C˙fj$-15e7MTu^GzhtU.;t6EG o9Ig>V+?@%(W"놛^ `c'7ZOi[DOAeRᕿ պ d_i%G4r߄X|ԛ~lGL5*A< χ8[(iTo.g `)s7S]@#OUR8r{uѹwd5>Ϲ*fsc]H*Mo3_%Kz0u(4@=zq1q{7u#el*S6{Ai_%'86ʙ8 =i}Q^8ȣn?R]4 HXAJ7i
-_]|adƓ؁1{Jc$'i1p8V6}{cΫ/ Hh
-&g5tKǯ]3z"0@Lzjm΢_q}Iӿ^x}^"b~,F)Bl
-aYS-$qDW5oC_,כ_cƋw$q"]l!%?Oc4P:R.N'Grn/MDkp%x!yfR7yUvNRka3Jzd zu)^.t>AbyP=*<!\O'"9-;s8Z%Xx ϖO?
-5vp׍!"'@:ܕ>f8W=m&Z£!7~/&m8f!%@wh.{:tvģ8
-uGZ0fN447֯_i exP sDdW8 bqc3@FB#ݯUX:I17|+rn.xViW=lު#.(¯])H
- Ra7[*D#L;En{Ș5n[54HG %_I\2rE3_s"&q#.f+h /2jK_BAY
-k[
-&OwRU#zPt
-z/yGGyDkC
-=#i-Z
-PC o nē.@~Sy\˝)g 1;ZR s>x 4K> v@Ke#Ynl~~ .QA(7Z6l "i 8]ftYubӜ ]'.9sB*b1’%ul$[J⢾
-* ൬YFv
-wJH'ՀQmE` sx]j&!ؒϤ> ^wƹo&;_c4Jfz}*NV1.Z[hOn,A?r >.i|?g4tgU?WU?]ɰ<O o^vsʇD'uϰS5&zhĶѥ~LF!M{5'QZ8KDd du}LUZn*fdk/.-j !#~w&|TݒVSlhsG`&Z
-cmʻ ;q&?"ir'a*)r1 K~5D5cxW7?b~]6$ )2 >_u)=+g."(jI=S0}?-R}{~B{?1nS=cNo~D~S5>yʮ||Ψd;a盹L҄I/l̔I:dkJa؇;`,0< 7ɑg`9+g61[}f4Bxs-69SByc^"-`޳8Fh>qwVqA?b赨å"2vV$cfe*|w&x~y>2=s.&OOtue4n2ICOޚ4J@2Q>4R!OPĸw-Vs-Iq6" .PbU.=x{Fs$Ee+OrJiF5„8"{[Pm^@ FCo4|AdVJ>ގMۜb1ENq>rȵ(9N Y"4δdrvUP\=j}X+jG ~TW2۟˦$^QJ4,i._BhdfJ^lq}#Bx߻V%^kR,Hً[d`䖄Sҷbkn2*(9I&369; }9j^´af{ω4kѮRBk9k!t@@?|*Z/c2-}e<T!~Yȗ۟']b@r~xfFa6>tAq: ^:;>MzW*)>#3''I^+xrAIZ6Ua\jE"@Cv<>y*e^.v_ѵ2u4CqpB~,ʐP)vjww,:Z0"aK }.TG6*24FKDt*@U@).^=SM8`#>/~h$6׼JTS0zG :'NLm<N֘<㤬8Ai]MGOϛKѬa
-WGͿw+'K:eħ"-sҚ
-3om@U"^wo>Ȝi
-|uTO@VI[ᝑVn!}Nc%.?~9k.34 Qڤ!TO0m0,+ԣO܆ uY+0&/״Ոdpϛ } 7"/!a= gq뗉ӽL}BC99VbN~ O5Z lyΫhMε] 9T7ErѫX>}Vfa32`< {-wX۟级ȃ4-X2 C̯¹kt(J6$@}ӽ}M92DnN6K-2bcM?.QjIUk0Wc{\<@tM>mUګc4)pNi1IIظD`J{P]\vRsJ2QgVݣno.1n>w(YޞXGz戼u
-!kݖ0 e0W r|i;F+`ޖ\x[#JEQ<yYa闣+F 5L2) ̚XAQGW 1l2wKR%ɹ5b\$o8}LD
-كV#H 4lW-1~~T \SiKRc?b3cفыs>axo|ť=Mq12$t=SJy?=Y1<nH)>E_Y0 k5 
-endstream
-endobj
-50 0 obj
-<<
-/Type/FontDescriptor
-/CapHeight 850
-/Ascent 850
-/Descent -200
-/FontBBox[-163 -250 1146 969]
-/FontName/BJZUOD+CMTI10
-/ItalicAngle -14.04
-/StemV 68
-/FontFile 49 0 R
-/Flags 68
->>
-endobj
-49 0 obj
-<<
-/Filter[/FlateDecode]
-/Length1 728
-/Length2 2335
-/Length3 533
-/Length 2880
->>
-stream
-xi8UDžNbDCYl{/,mB !22e.C*E(mCHٙS:vwk]g}_L\ZGruHD4TFH
-HH8Lj 3q>D7<H#2r?t[q&bw$~&;Bٓ] DXx_5z/%2Ō3M% `Nq2ߩHHY@%wܐr
-r:-QB)}W>d2H|?{g
- jnj$9/9#T..޻KeO
-QN*{lIe^6c 6Z{Үъ҉L6F:u /J&fzr5z(kTd4Dn ;jrymĜ /8WﻐTW8+7;y:w!z;&7EjҸ9.ZL>{dt.[fe%ܘ׏ 'ywY7ykΔLyj&T;vW,\֗orءKq2CŸ0L$4;Ռ`U`6~+fs5]vD"wZt-|N٤m^T@#OL]lp)<z$E*p=$˝G haSB@A!W ncIny+|EO8xz\ZN_2_L9 R k)^a[쏣{ذEhZQ=h{ ERw%manaRv+:JVf=A
-'Mм,VB]UcTi1)͈!vI 8tq ur ;3jSz
- t!}HVЛ×tL5P+_w '_5xjPeh-аZWڔAAV>jG*yR'#[/ Sgno<yu#n3tnhHͰ @ GHZGyoʇp&>8.]^<Nۿ?67}˜'Oy)rǽ{KݘƆD.Vz ]̀nSlSy4sn%߭G7VqEVf"+4UU^$wC&|#r[L~&OiRBK:_e fPnA 4
-UL=s.(E\s2cPG7/ۼIoE bR!q_/J;AUL&[kD=UNmzRC/D4Oޔi";ԗ@fQ\3a^5YSm!VZ66z1oh[mZϵ)bz@G<5/bTcd᎐hbSlb{zE sA&+4s"xʍk-F\WS<i_ćګCw+@^>L\[u}Δ]w9: Pj޲lGi4⫣[Ϟ|v!uc)7~ŋy;!ඕ*/a=zf02+Tj OjNu8.R[%ԟ:ݢ]}Vao\mT9sOk(N6,䙁_-t6̃4ƠAQa;Cm%uPg$*82ާvV5&@ZWP@{9ЩPг7]^mhIÙ~ ʡh{QW")95Ss6ާ̚v++;9AԚMXv4Zvk`.S*Kꝺ"mY>0/M3f~xחCOxx;Ei7 &2elEʓYڏ1`
-74\+;X<׮bZkWb<_y?b
-endstream
-endobj
-1 0 obj
-<<
-/Creator( TeX output 2001.09.01:0924)
-/Producer(dvipdfm 0.13.2c, Copyright \251 1998, by Mark A. Wicks)
-/CreationDate(D:20071202130931+00'00')
->>
-endobj
-5 0 obj
-<<
-/Type/Page
-/Resources 6 0 R
-/Contents[42 0 R 4 0 R 43 0 R 44 0 R]
-/Parent 3 0 R
->>
-endobj
-46 0 obj
-<<
-/Type/Page
-/Resources 47 0 R
-/Contents[42 0 R 4 0 R 52 0 R 44 0 R]
-/Parent 3 0 R
->>
-endobj
-54 0 obj
-<<
-/Type/Page
-/Resources 55 0 R
-/Contents[42 0 R 4 0 R 56 0 R 44 0 R]
-/Parent 3 0 R
->>
-endobj
-3 0 obj
-<<
-/Type/Pages
-/Count 3
-/Kids[5 0 R 46 0 R 54 0 R]
-/MediaBox[0 0 595 842]
->>
-endobj
-42 0 obj
-<<
-/Length 1
->>
-stream
-
-endstream
-endobj
-44 0 obj
-<<
-/Length 1
->>
-stream
-
-endstream
-endobj
-4 0 obj
-<<
-/Length 33
->>
-stream
-1.00028 0 0 1.00028 72 769.82 cm
-endstream
-endobj
-58 0 obj
-<<
->>
-endobj
-59 0 obj
-null
-endobj
-60 0 obj
-<<
->>
-endobj
-2 0 obj
-<<
-/Type/Catalog
-/Pages 3 0 R
-/Outlines 58 0 R
-/Threads 59 0 R
-/Names 60 0 R
->>
-endobj
-xref
-0 61
-0000000000 65535 f
-0000068247 00000 n
-0000069057 00000 n
-0000068718 00000 n
-0000068910 00000 n
-0000068411 00000 n
-0000016430 00000 n
-0000000009 00000 n
-0000021774 00000 n
-0000021590 00000 n
-0000000913 00000 n
-0000027923 00000 n
-0000027735 00000 n
-0000001829 00000 n
-0000002746 00000 n
-0000040292 00000 n
-0000040098 00000 n
-0000003700 00000 n
-0000042981 00000 n
-0000042795 00000 n
-0000004646 00000 n
-0000005610 00000 n
-0000045666 00000 n
-0000045471 00000 n
-0000007226 00000 n
-0000047319 00000 n
-0000047130 00000 n
-0000008177 00000 n
-0000049529 00000 n
-0000049338 00000 n
-0000009153 00000 n
-0000010147 00000 n
-0000051817 00000 n
-0000051630 00000 n
-0000011115 00000 n
-0000053893 00000 n
-0000053699 00000 n
-0000012122 00000 n
-0000013131 00000 n
-0000055301 00000 n
-0000055115 00000 n
-0000014108 00000 n
-0000068810 00000 n
-0000014853 00000 n
-0000068860 00000 n
-0000016297 00000 n
-0000068512 00000 n
-0000020920 00000 n
-0000016491 00000 n
-0000065253 00000 n
-0000065058 00000 n
-0000017398 00000 n
-0000018380 00000 n
-0000020852 00000 n
-0000068615 00000 n
-0000021528 00000 n
-0000020982 00000 n
-0000021483 00000 n
-0000068992 00000 n
-0000069014 00000 n
-0000069035 00000 n
-trailer
-<<
-/Size 61
-/Root 2 0 R
-/Info 1 0 R
->>
-startxref
-69152
-%%EOF
diff --git a/Master/texmf-dist/doc/latex/mh/eqlayouts.pdf b/Master/texmf-dist/doc/latex/mh/eqlayouts.pdf
index 3104a4b6fc0..da279b9f9a2 100644
--- a/Master/texmf-dist/doc/latex/mh/eqlayouts.pdf
+++ b/Master/texmf-dist/doc/latex/mh/eqlayouts.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mh/flexisym.pdf b/Master/texmf-dist/doc/latex/mh/flexisym.pdf
index bfd83b1eb99..f9ef80072fd 100644
--- a/Master/texmf-dist/doc/latex/mh/flexisym.pdf
+++ b/Master/texmf-dist/doc/latex/mh/flexisym.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/mh/mathpazo.sym b/Master/texmf-dist/doc/latex/mh/mathpazo.sym
index ceaad938a6a..b8606facefb 100644
--- a/Master/texmf-dist/doc/latex/mh/mathpazo.sym
+++ b/Master/texmf-dist/doc/latex/mh/mathpazo.sym
@@ -28,7 +28,7 @@
%% flexisym.sty, flexisym.pdf, flexisym.ins, flexisym.drv,
%% cmbase.sym, mathpazo.sym, mathptmx.sym, msabm.sym.
%%
-\ProvidesSymbols{mathpazo}[2007/12/09 v0.1]
+\ProvidesSymbols{mathpazo}[2007/12/19 v0.2]
\@xp\xdef\csname mg@OT1\endcsname{\hexnumber@\symoperators}
\@xp\xdef\csname mg@OML\endcsname{\hexnumber@\symletters}
\@xp\xdef\csname mg@OMS\endcsname{\hexnumber@\symsymbols}
@@ -332,7 +332,8 @@
\DeclareFlexCompoundSymbol{\neq}{Rel}{\not{=}}
\DeclareFlexCompoundSymbol{\mapsto}{Rel}{\mapstoOrd\rightarrow}
\DeclareFlexCompoundSymbol{\cong}{Rel}{\mathpalette\@vereq\sim}
-\newcommand*\joinord{\mkern-3.45mu }
+\providecommand*\joinord{}
+\renewcommand*\joinord{\mkern-3.45mu }
\DeclareFlexCompoundSymbol{\notin}{Rel}{\mathpalette\c@ncel\in}
\DeclareFlexCompoundSymbol{\rightleftharpoons}{Rel}{\mathpalette\rlh@{}}
\DeclareFlexCompoundSymbol{\doteq}{Rel}{\buildrel\textstyle.\over=}
diff --git a/Master/texmf-dist/doc/latex/mh/mathptmx.sym b/Master/texmf-dist/doc/latex/mh/mathptmx.sym
index c612cfc516f..2308bc3b770 100644
--- a/Master/texmf-dist/doc/latex/mh/mathptmx.sym
+++ b/Master/texmf-dist/doc/latex/mh/mathptmx.sym
@@ -28,7 +28,7 @@
%% flexisym.sty, flexisym.pdf, flexisym.ins, flexisym.drv,
%% cmbase.sym, mathpazo.sym, mathptmx.sym, msabm.sym.
%%
-\ProvidesSymbols{mathptmx}[2007/12/09 v0.1]
+\ProvidesSymbols{mathptmx}[2007/12/19 v0.2]
\@xp\xdef\csname mg@OT1\endcsname{\hexnumber@\symoperators}
\@xp\xdef\csname mg@OML\endcsname{\hexnumber@\symletters}
\@xp\xdef\csname mg@OMS\endcsname{\hexnumber@\symsymbols}
@@ -332,7 +332,8 @@
\DeclareFlexCompoundSymbol{\neq}{Rel}{\not{=}}
\DeclareFlexCompoundSymbol{\mapsto}{Rel}{\mapstoOrd\rightarrow}
\DeclareFlexCompoundSymbol{\cong}{Rel}{\mathpalette\@vereq\sim}
-\newcommand*\joinord{\mkern-3mu }
+\providecommand*\joinord{}
+\renewcommand*\joinord{\mkern-3mu }
\DeclareFlexCompoundSymbol{\notin}{Rel}{\mathpalette\c@ncel\in}
\DeclareFlexCompoundSymbol{\rightleftharpoons}{Rel}{\mathpalette\rlh@{}}
\DeclareFlexCompoundSymbol{\doteq}{Rel}{\buildrel\textstyle.\over=}
diff --git a/Master/texmf-dist/doc/latex/mh/mathstyle.pdf b/Master/texmf-dist/doc/latex/mh/mathstyle.pdf
index ae2163e3ea1..92071d6cd6e 100644
--- a/Master/texmf-dist/doc/latex/mh/mathstyle.pdf
+++ b/Master/texmf-dist/doc/latex/mh/mathstyle.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/mh/breqn.dtx b/Master/texmf-dist/source/latex/mh/breqn.dtx
index 81d0fc39d7a..0f01201b370 100644
--- a/Master/texmf-dist/source/latex/mh/breqn.dtx
+++ b/Master/texmf-dist/source/latex/mh/breqn.dtx
@@ -67,7 +67,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: breqn 2007/12/10 v0.96 Breqn (MH)}
+\Msg{* Package: breqn 2007/12/22 v0.97a Breqn (MH)}
\Msg{************************************************************************}
\keepsilent
@@ -128,10 +128,12 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{breqn.drv}%
- [2007/12/10 v0.96 breqn (MH)]
+ [2007/12/22 v0.97a breqn (MH)]
\documentclass{ltxdoc}
-
-\usepackage{color,verbatim,xspace,varioref,listings}
+\CodelineIndex
+\EnableCrossrefs
+\setcounter{IndexColumns}{2}
+\usepackage{color,verbatim,xspace,varioref,listings,amsmath,trace}
\definecolor{hilite}{rgb}{0.2,0.4,0.7}
\def\theCodelineNo{\textcolor{hilite}{\sffamily\tiny\arabic{CodelineNo}}}
@@ -228,7 +230,7 @@ and the derived files
% \fi
%
% \title{The \pkg{breqn} package}
-% \date{2007/12/10 v0.96}
+% \date{2007/12/22 v0.97a}
% \author{Morten H\o gholm \\\texttt{mh.ctan@gmail.com}}
%
% \maketitle
@@ -417,7 +419,7 @@ and the derived files
% \LaTeX\ interface for defining math symbols (\cs{DeclareMathSymbol}),
% things should work OK most of the time. Any more complex math symbol
% setup is quite likely to quarrel with the \pkg{flexisym} package.
-% See Section~\ref{flexisym} for further information.
+% See Section~\vref{flexisym} for further information.
%
% \subsection{Subscripts and superscripts}
%
@@ -502,13 +504,16 @@ and the derived files
% \setkeys{breqn}{breakdepth={1}}
% \end{verbatim}
%
-% See the discussion of environment options, Section~\ref{envopts}, for
+% See the discussion of environment options, Section~\vref{envopts}, for
% more information.
%
-% One package option that may be of interest to \TeX nicians is the
-% \opt{debug} option; this activates some debugging statements embedded in
-% the code of the alpha release which trace measuring activities related
-% to line breaking.
+% Debugging information is no longer available as a package
+% option. Instead, the tracing information has been added in a fashion
+% so that it can be enabled as a docstrip option:
+% \begin{verbatim}
+% \generate{\file{breqn.sty}{\from{breqn.dtx}{package,trace}}}
+% \end{verbatim}
+%
%
% \section{Environments and commands}
% \subsection{Environments}
@@ -1000,7 +1005,7 @@ and the derived files
%
% Declare package name and date.
% \begin{macrocode}
-\ProvidesPackage{breqn}[2007/12/10 v0.96]
+\ProvidesPackage{breqn}[2007/12/22 v0.97a]
% \end{macrocode}
%
%
@@ -1009,17 +1014,14 @@ and the derived files
% Most options are set with the \cs{options} command (which
% calls \cs{setkeys}) because the standard package option
% mechanism doesn't provide support for key-value syntax.
-% Cf \fn{breqndoc.tex}.
%
-% It seems easier to turn off debugging than turn it on so the
-% implementation of the \opt{debug} option is sort of backward.
+% First we need to get the catcodes sorted out.
% \begin{macrocode}
\edef\breqnpopcats{%
\catcode\number`\"=\number\catcode`\"
\relax}
\AtEndOfPackage{\breqnpopcats}%
\catcode`\^=7 \catcode`\_=8 \catcode`\"=12 \relax
-\DeclareOption{debug}{\errorcontextlines=2000\relax}
\DeclareOption{mathstyleoff}{%
\PassOptionsToPackage{mathstyleoff}{flexisym}%
}
@@ -1044,7 +1046,7 @@ and the derived files
% I don't think so.
% \begin{macrocode}
\@ifpackageloaded{flexisym}{}{%
- \RequirePackage[cmbase]{flexisym}[2007/12/10]
+ \RequirePackage{flexisym}[2007/12/19]
\edef\breqnpopcats{\breqnpopcats
\catcode\number`\^=\number\catcode`\^
\catcode\number`\_=\number\catcode`\_
@@ -1402,7 +1404,7 @@ and the derived files
% 1999.
% The extra application of \cs{number} is needed for maximal
% robustness in case the repeat count N is given in some weird \tex form
-% such as \verb""E9" or \verb"\count9".
+% such as \verb|"E9| or \verb|\count9|.
% \begin{macrocode}
% usage: \message{H\replicate{5}{i h}ow de doo dee!}
\begingroup \catcode`\&=11
@@ -1569,25 +1571,15 @@ and the derived files
%
% \section{Debugging}
% Debugging help.
-%
-% \begin{macro}{\debug}
% \begin{macrocode}
-\let\debug=\begingroup
+%<*trace>
+\errorcontextlines=2000\relax
% \end{macrocode}
-% \end{macro}
%
-% \begin{macro}{\gubed}
-% \begin{macrocode}
-\let\gubed=\endgroup
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\debugmsg}
+% \begin{macro}{\breqn@debugmsg}
% Print a debugging message.
% \begin{macrocode}
-\def\debugmsg{\message{||= \iffalse}\fi
- \@xp\@gobble\string
-}
+\long\def\breqn@debugmsg#1{\GenericInfo{||}{||=\space#1}}
% \end{macrocode}
% \end{macro}
%
@@ -1630,23 +1622,17 @@ and the derived files
% \begin{macrocode}
\def\debug@para{%
\debugwr{\hsize\the\hsize, \parfillskip\the\parfillskip}%
- \debugmsg{\leftskip\the\leftskip, \rightskip\the\rightskip}%
- \debugmsg{\linepenalty\the\linepenalty, \adjdemerits\the\adjdemerits}%
- \debugmsg{\pretolerance\the\pretolerance, \tolerance\the\tolerance,
+ \breqn@debugmsg{\leftskip\the\leftskip, \rightskip\the\rightskip}%
+ \breqn@debugmsg{\linepenalty\the\linepenalty, \adjdemerits\the\adjdemerits}%
+ \breqn@debugmsg{\pretolerance\the\pretolerance, \tolerance\the\tolerance,
\parindent\the\parindent}%
}
% \end{macrocode}
% \end{macro}
%
%
-% Turn off debugging unless it was asked for.
% \begin{macrocode}
-\@ifpackagewith{breqn}{debug}{}{%
- \let\debug\relax \let\gubed\relax
- \let\debugmsg\@gobble \let\debug@lines\relax \let\debug@para\relax
- \let\debugwr\@gobble
- \let\debug@box\@gobble \let\debug@push\@gobbletwo
-}
+%</trace>
% \end{macrocode}
%
%
@@ -2348,6 +2334,20 @@ and the derived files
\define@key{breqn}{style}{\eqstyle\@xp{\the\eqstyle #1}}
% \end{macrocode}
% \begin{literalcode}
+% \begin{dmath}[shortskiplimit={1em}]
+% \end{literalcode}
+% If the line immediately preceeding a display has length $l$, the
+% first line of the display is indented $i$, and a shortskip limit $s$
+% is set, then the spacing above the display is equal to
+% \cs{abovedisplayshortskip} if $l+s < i $ and \cs{abovedisplayskip}
+% otherwise. The default shortskip limit is 2\,em which is what \TeX\
+% hardcodes but this parameter overrides that.
+% \begin{macrocode}
+\define@key{breqn}{shortskiplimit}{\def\eq@shortskiplimit{#1}}
+\def\eq@shortskiplimit{2em}
+% \end{macrocode}
+%
+% \begin{literalcode}
% \begin{dmath}[frame]
% \end{literalcode}
% The \opt{frame} option merely puts a framebox around the body
@@ -2449,7 +2449,7 @@ and the derived files
\darray@mkpream#1\@percentchar
}
% \end{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% FORMAT STATUS%
% \begin{verbatim}
% \def\eq@frame{T}%
@@ -2474,12 +2474,12 @@ and the derived files
% IRB
% \def\eqindent{I}\def\eqnumside{R}\def\eqnumplace{B}\mathindent10\p@
% \end{verbatim}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% The main environments.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%BRM: The following incorporates several changes:
-%% 1) modifications supplied by MJD to fix the eaten \cs{paragraph} problem.
-%% 2) Added \cs{display@setup} here, rather than globally.
+%
+%BRM: The following incorporates several changes:
+% 1) modifications supplied by MJD to fix the eaten \cs{paragraph} problem.
+% 2) Added \cs{display@setup} here, rather than globally.
%
% \begin{macro}{\dmath}
% \begin{macro}{\enddmath}
@@ -2491,7 +2491,7 @@ and the derived files
\newenvironment{dmath}{%
\let\eq@hasNumber\@True \@optarg\@dmath{}}{}
\def\@dmath[#1]{%
- \debugmsg{=== DMATH ==================================================}%
+%<trace> \breqn@debugmsg{=== DMATH ==================================================}%
\everydisplay\expandafter{\the\everydisplay \display@setup}%
\if@noskipsec \leavevmode \fi
\if@inlabel \leavevmode \global\@inlabelfalse \fi
@@ -2655,7 +2655,7 @@ and the derived files
% either an \cs{itshape} (recommended) or a \cs{textit}
% value.
% \begin{macrocode}
- \debugmsg{Number \eq@number}%
+%<trace> \breqn@debugmsg{Number \eq@number}%
\set@label{equation}\eq@number
\global\sbox\EQ@numbox{%
\next@label \global\let\next@label\@empty
@@ -2680,25 +2680,66 @@ and the derived files
% having worked out the best parshape.
% BRM: This portion is extensively refactored to get common operations
% together (so corrections get consistently applied).
+%
+% MH: I've destroyed Bruce's nice refactoring a bit to get the
+% abovedisplayskips correct for both groups of equations and single
+% \env{dmath} environments. I will have to redo that later.
% \begin{macrocode}
+\newcount\eq@final@linecount
+\let\eq@GRP@first@dmath\@True
\def\eq@finish{%
\begingroup
- \debugmsg{Formatting equation}%
- \debug@showmeasurements
+%<trace> \breqn@debugmsg{Formatting equation}%
+%<trace> \debug@showmeasurements
\if F\eq@frame\else
\freeze@glue\eqlinespacing \freeze@glue\eqlineskip
\fi
% \eq@topspace{\vskip\parskip}% Set top spacing
\csname eq@\eqindent @setsides\endcsname % Compute \leftskip,\rightskip
\adjust@parshape\eq@parshape% Final adjustment of parshape for left|right skips
- \eq@topspace{\vskip\parskip}% Set top spacing
- \debug@showformat
- % Now, invoke the appropriate typesetter according to number placement
+% \end{macrocode}
+% If we are in an a group of equations we don't want to calculate the
+% top space for the first one as that will be delayed until later when
+% the space for the group is calculated. However, we do need to store
+% the leftskip used here as that will be used later on for calculating
+% the top space.
+% \begin{macrocode}
+ \if\eq@group
+ \if\eq@GRP@first@dmath
+ \global\let\eq@GRP@first@dmath\@False
+ \xdef\dmath@first@leftskip{\leftskip=\the\leftskip\relax}%
+%<trace> \breqn@debugmsg{Stored\space\dmath@first@leftskip}
+ \else
+ \eq@topspace{\vskip\parskip}% Set top spacing
+ \fi
+ \else
+ \eq@topspace{\vskip\parskip}% Set top spacing
+ \fi
+%<trace> \debug@showformat
+% \end{macrocode}
+% We now know the final line count of the display. If it is a
+% single-line display, we want to know as that greatly simplifies the
+% equation tag placement (until such a time where this algorithm has
+% been straightened out).
+% \begin{macrocode}
+ \afterassignment\remove@to@nnil
+ \eq@final@linecount=\expandafter\@gobble\eq@parshape\@nnil
+% \end{macrocode}
+% Now, invoke the appropriate typesetter according to number placement
+% \begin{macrocode}
\if\eq@hasNumber
\if\eq@shiftnumber
\csname eq@typeset@\eqnumside Shifted\endcsname
\else
- \csname eq@typeset@\eqnumside\eqnumplace\endcsname
+% \end{macrocode}
+% If there is only one line and the tag doesn't have to be shifted, we
+% call a special procedure to put the tag correctly.
+% \begin{macrocode}
+ \ifnum\eq@final@linecount=\@ne
+ \csname eq@typeset@\eqnumside @single\endcsname
+ \else
+ \csname eq@typeset@\eqnumside\eqnumplace\endcsname
+ \fi
\fi
\else
\eq@typeset@Unnumbered
@@ -2706,11 +2747,42 @@ and the derived files
\endgroup
\eq@botspace
}
-% \end{macrocode}
-%
+% \end{macrocode}
% \end{macro}
%
%
+% These are temporary until the tag position algorithm gets
+% rewritten. At least the tag is positioned correctly for single-line
+% displays. The horizontal frame position is not correct but the
+% problem lies elsewhere.
+% \begin{macrocode}
+\def\eq@typeset@L@single{%
+ \nobreak
+ \eq@params\eq@parshape
+ \nointerlineskip\noindent
+ \add@grp@label
+ \rlap{\kern-\leftskip\box\EQ@numbox}%
+ \if F\eq@frame
+ \else
+ \rlap{\raise\eq@firstht\hbox to\z@{\eq@addframe\hss}}%
+ \fi
+ \eq@dump@box\unhbox\EQ@box \@@par
+}
+\def\eq@typeset@R@single{%
+ \nobreak
+ \eq@params\eq@parshape
+ \nointerlineskip\noindent
+ \add@grp@label
+ \if F\eq@frame
+ \else
+ \rlap{\raise\eq@firstht\hbox to\z@{\eq@addframe\hss}}%
+ \fi
+ \rlap{\kern-\leftskip\kern\linewidth\kern-\wd\EQ@numbox\copy\EQ@numbox}%
+ \eq@dump@box\unhbox\EQ@box
+ \@@par
+}
+% \end{macrocode}
+%
%
%
% \section{Special processing for end-of-equation}
@@ -2809,7 +2881,8 @@ and the derived files
%
%
% \begin{macro}{\check@punct}
-%
+% \changes{v0.96a}{2007/12/17}{Insert \cs{finish@end} if no special
+% case is found.}
% For this one we need to recognize and grab for inclusion any of the
% following tokens: \verb",;.!?", both catcode 12 (standard \latex
% value) and catcode 13 (as might hold when the Babel package is
@@ -2847,6 +2920,7 @@ and the derived files
\else\ifx\@let@token ;\@nx\check@qed
\else\ifx\@let@token ?\@nx\check@qed
\else\ifx\@let@token !\@nx\check@qed
+ \else\@nx\finish@end
\fi\fi\fi\fi\fi
}
\xdef\check@punct@b{%
@@ -2968,8 +3042,15 @@ and the derived files
\def\eq@topspace#1{%
\begingroup
\global\let\EQ@shortskips\@False
- \if\@And{\eq@group}{\@Not\GRP@top}%
- \parskip\intereqskip \penalty\intereqpenalty
+% \end{macrocode}
+% If we are in \env{dgroup} or \env{dgroup*} and not before the top
+% one, we just insert \cs{intereqskip}. Otherwise we must check for
+% shortskip.
+% \begin{macrocode}
+ \if\@And{\eq@group}{\@Not\eq@GRP@first@dmath}%
+%<trace>\breqn@debugmsg{Between lines}%
+ \parskip\intereqskip \penalty\intereqpenalty
+%<trace>\breqn@debugmsg{parskip=\the\parskip}%
\else
\eq@check@shortskip
\if\EQ@shortskips
@@ -2987,29 +3068,59 @@ and the derived files
\else
\addtolength\parskip{\eq@framesep+\eq@framewd}%
\fi
-\debugmsg{Topspace: \theb@@le\EQ@shortskips, \parskip=\the\parskip, \predisplaysize=\the\predisplaysize}%
+%<*trace>
+ \breqn@debugmsg{Topspace: \theb@@le\EQ@shortskips, \parskip=\the\parskip,
+ \predisplaysize=\the\predisplaysize}%
+%</trace>
#1%
\endgroup
}
-\def\eq@check@shortskip{%
+% \end{macrocode}
+% \begin{macro}{\eq@check@shortskip}
+% \changes{v0.96a}{2007/12/17}{Insert \cs{finish@end} if no special
+% case is found.}
+% \changes{v0.97a}{2007/12/22}{Use design parameter and fix
+% shortskips properly.}
+% \begin{macrocode}
+\def\eq@check@shortskip {%
\global\let\EQ@shortskips\@False
\setlength\dim@a{\abovedisplayskip+\ht\EQ@numbox}%
- \addtolength\leftskip{-2em}% standard TeX value
+% \end{macrocode}
+% Here we work around the hardwired standard TeX value and use the
+% designer parameter instead.
+% \begin{macrocode}
\ifdim\leftskip<\predisplaysize
- \else\if R\eqnumside \global\let\EQ@shortskips\@True
- \else\if\eq@shiftnumber
- \else\if T\eqnumplace
- \ifdim\dim@a<\eq@firstht
- \global\let\EQ@shortskips\@True
- \fi
\else
- \setlength\dim@b{\eq@vspan/2}%
- \ifdim\dim@a<\dim@b
- \global\let\EQ@shortskips\@True
+% \end{macrocode}
+% If the display was preceeded by a blank line, \cs{predisplaysize} is
+% $-\cs{maxdimen}$ and so we should insert a fairly large skip to
+% separate paragraphs, i.e., no short skip. Perhaps this should be a
+% third parameter \cs{abovedisplayparskip}.
+% \begin{macrocode}
+ \ifdim -\maxdimen=\predisplaysize
+ \else
+ \if R\eqnumside
+ \global\let\EQ@shortskips\@True
+ \else
+ \if\eq@shiftnumber
+ \else
+ \if T\eqnumplace
+ \ifdim\dim@a<\eq@firstht
+ \global\let\EQ@shortskips\@True
+ \fi
+ \else
+ \setlength\dim@b{\eq@vspan/2}%
+ \ifdim\dim@a<\dim@b
+ \global\let\EQ@shortskips\@True
+ \fi
+ \fi
+ \fi
+ \fi
\fi
- \fi\fi\fi\fi
+ \fi
}
% \end{macrocode}
+% \end{macro}
%
% At the end of an equation, need to put in a pagebreak penalty
% and some vertical space. Also set some flags to remove parindent
@@ -3263,9 +3374,9 @@ and the derived files
% added after it by \tex . Should we remove it? I guess
% so.
%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Capturing the equation
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% \subsection{Capturing the equation}
+%
% BRM: There's a problem here (or with \cs{ss@scan}). If the LHS has
% \cs{left} \cs{right} pairs, \ss@scan gets involved. It seems to produce
% a separate box marked w/\cs{penalty} 3. But it appears that \cs{eq@repack}
@@ -3314,17 +3425,25 @@ and the derived files
% Apparently missing a \thickmuskip = 5mu = 5/18em=0.27777777777.. ?
+ 0.2777777777777em}% FUDGE??!?!?!
\ifdim\dim@a>\eq@wdL
- \debugmsg{Correcting LHS from \the\eq@wdL\space to \the\dim@a = \the\wd\EQ@box - \the\eq@wdR}%
+%<*trace>
+ \breqn@debugmsg{Correcting LHS from \the\eq@wdL\space to
+ \the\dim@a = \the\wd\EQ@box - \the\eq@wdR}%
+%</trace>
\eq@wdL\dim@a
\xdef\EQ@setwdL{\eq@wdL\the\eq@wdL\relax}%
\fi
\fi
- \debugmsg{Capture: total length=\the\wd\EQ@box
- ^^J||===== has LHS=\theb@@le\EQ@hasLHS, \eq@wdL=\the\eq@wdL, \eq@wdR=\the\eq@wdR,
- ^^J||===== \eq@wdCond=\the\eq@wdCond}%
+%<*trace>
+ \breqn@debugmsg{Capture: total length=\the\wd\EQ@box \MessageBreak
+ ==== has LHS=\theb@@le\EQ@hasLHS, \eq@wdL=\the\eq@wdL, \eq@wdR=\the\eq@wdR,
+ \MessageBreak
+ ==== \eq@wdCond=\the\eq@wdCond}%
+%</trace>
\egroup % end vbox started earlier
+%<*trace>
%\debugwr{EQ@box}\debug@box\EQ@box
%\debugwr{EQ@copy}\debug@box\EQ@copy
+%</trace>
}
% \end{macrocode}
% Now we have two copies of the equation, one in \cs{EQ@box},
@@ -3643,7 +3762,7 @@ and the derived files
% need to know how many lines the equation will require.
% And of course the number of lines needed depends on the parshape!
% So as our very first trial we run a simple first-approximation
-% parshape (Figure~\ref{f:parshape-1}) whose
+% parshape (Figure~\vref{f:parshape-1}) whose
% main purpose is to get an estimate on the number of lines that will be
% needed; it chooses a uniform indent for all lines after the first one
% and does not take any account of the equation number.
@@ -3738,31 +3857,35 @@ and the derived files
% \end{macrocode}
% \end{macro}
% \begin{macrocode}
+%<*trace>
\def\debug@showmeasurements{%
- \debugmsg{=> \number\eq@lines\space lines}%
- \debug
- \def\@elt##1^^J##2{^^J||===== \space\space##1/##2}%
+ \breqn@debugmsg{=> \number\eq@lines\space lines}%
+ \begingroup
+ \def\@elt##1X##2{\MessageBreak==== \space\space##1/##2}%
\let\@endelt\@empty
- \debugmsg{=> trial info:\eq@measurements}%
- \debugmsg{=> bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness}%
+ \breqn@debugmsg{=> trial info:\eq@measurements}%
+ \breqn@debugmsg{=> bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness}%
\let\@elt\relax \let\@endelt\relax
- \gubed
+ \endgroup
}
\def\debug@showmeasurements{%
\begingroup
- \def\@elt##1^^J##2{^^J||===== ##1/##2}%
+ \def\@elt##1X##2{\MessageBreak==== ##1/##2}%
\let\@endelt\@empty
- \debugmsg{===> Measurements: \number\eq@lines\space lines
+ \breqn@debugmsg{===> Measurements: \number\eq@lines\space lines
\eq@measurements
- ^^J||===== bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness
- ^^J||===== \leftskip=\the\leftskip, \rightskip=\the\rightskip}%
+ \MessageBreak
+ ==== bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness
+ \MessageBreak
+ ==== \leftskip=\the\leftskip, \rightskip=\the\rightskip}%
\endgroup
}
+%</trace>
% \end{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Layout Trials Driver
% Basically, trying different sequences of parshapes.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
%
% \begin{macro}{\EQ@trial}
% Init.
@@ -3846,16 +3969,18 @@ and the derived files
\if T\eq@frame \eq@frame@adjust\dim@c \fi
\ifdim\dim@c>\eq@linewidth
\eq@linewidth\dim@c
- \debugmsg{Choose Shape for width(#1)=\the\eq@linewidth}%
+%<trace> \breqn@debugmsg{Choose Shape for width(#1)=\the\eq@linewidth}%
\let\eq@trial@b\eq@trial@d
\csname eq@try@layout@\eq@layout\endcsname
- \else
- \debugmsg{Next width (#1) is shorter; skip it}%
+%<trace> \else
+%<trace> \breqn@debugmsg{Next width (#1) is shorter; skip it}%
\fi
\edef\eq@linewidths{\iffalse}\fi
}
\def\eq@frame@adjust#1{%
- \addtolength#1{-2\eq@framewd-2\eq@framesep}%
+ %\addtolength#1{-2\eq@framewd-2\eq@framesep}%
+ \dim@a\eq@framewd \advance\dim@a\eq@framesep
+ \advance#1-2\dim@a
}
% \end{macrocode}
% \end{macro}
@@ -3873,7 +3998,7 @@ and the derived files
% Success.
% \begin{macrocode}
\def\eq@trial@done{%
- \debugmsg{End trial: Success!}%
+%<trace> \breqn@debugmsg{End trial: Success!}%
\let\eq@failout\relax
}
% \end{macrocode}
@@ -3895,7 +4020,7 @@ and the derived files
% \begin{macrocode}
\def\eq@nextlayout#1{%
\endgroup
- \debugmsg{Nope ... that ain't gonna work.}%
+%<trace> \breqn@debugmsg{Nope ... that ain't gonna work.}%
\begingroup #1%
}
% \end{macrocode}
@@ -3906,7 +4031,7 @@ and the derived files
% .
% \begin{macrocode}
\def\eq@failout{%
-\debugmsg{End trial: failout}%
+%<trace>\breqn@debugmsg{End trial: failout}%
\global\let\EQ@trial\EQ@last@trial
}
% \end{macrocode}
@@ -3917,10 +4042,12 @@ and the derived files
% Save the parameters of the current trial.
% \begin{macrocode}
\def\eq@trial@save#1{%
-% \debug \def\@elt##1^^J##2{^^J||===== \space\space##1/##2}\let\@endelt\@empty\debugmsg{=> trial info:\eq@measurements}%
-% \debugmsg{=> bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness^^J}%
+%<*trace>
+% \begingroup \def\@elt##1X##2{\MessageBreak==== \space\space##1/##2}\let\@endelt\@empty\breqn@debugmsg{=> trial info:\eq@measurements}%
+% \breqn@debugmsg{=> bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness\MessageBreak}%
% \let\@elt\relax \let\@endelt\relax
-% \gubed
+% \endgroup
+%</trace>
\xdef#1{%
\eq@linewidth\the\eq@linewidth
% save info about the fit
@@ -3960,7 +4087,7 @@ and the derived files
% Run the equation contents through the current parshape.
% \begin{macrocode}
\def\eq@trial@c#1#2{%
- \debugmsg{Trying layout "#1" with^^J||===== parshape\space\@xp\@gobble\@parshape}%
+%<trace> \breqn@debugmsg{Trying layout "#1" with\MessageBreak==== parshape\space\@xp\@gobble\@parshape}%
\begingroup
\eq@trial@init
\def\eq@layout{#1}%
@@ -4003,9 +4130,9 @@ and the derived files
%
% \begin{macrocode}
\def\eq@check@density{%
- \debugmsg{Checking density for layout L}%
+%<trace> \breqn@debugmsg{Checking density for layout L}%
\if\@Or{\@Not\EQ@hasLHS}{\eq@shortLHS}%
- \debugmsg{Density check: No LHS, or is short; OK}%
+%<trace> \breqn@debugmsg{Density check: No LHS, or is short; OK}%
\eq@trial@succeed
\else\if\eq@dense@enough
\eq@trial@succeed
@@ -4041,7 +4168,7 @@ and the derived files
\eq@ml@record@indents
\eq@measure@lines
\eq@recalc
- \debug@showmeasurements
+%<trace> \debug@showmeasurements
}
% \end{macrocode}
%
@@ -4102,12 +4229,12 @@ and the derived files
% \begin{macro}{\eq@recalc@b}
%
% \begin{macrocode}
-\def\eq@recalc@b#1^^J#2,#3x#4+#5@#6\@endelt{%
+\def\eq@recalc@b#1X#2,#3x#4+#5@#6\@endelt{%
\setlength\dim@a{#2+#3}%
\ifdim\dim@a>\eq@wdT \eq@wdT\dim@a \fi
\ifdim\dim@a<\eq@wdMin \eq@wdMin\dim@a \fi
\eq@dp#5\relax
- \addtolength\eq@vspan{#1+#4+#5}%
+ \addtolength\eq@vspan{#1+#4+\eq@dp}%
% \end{macrocode}
% Record the max badness of all the lines in \cs{eq@badness}.
% \begin{macrocode}
@@ -4123,14 +4250,13 @@ and the derived files
% Any other value means we have a user-specified override on the
% layout.
%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Layout Definitions.
% Based on initial equation measurements, we can choose a sequence of
% candidate parshapes that the equation might fit into.
% We accept the first shape that `works', else fall to next one.
% [The sequence is hardcoded in the \cs{eq@try@layout@}<shape>
% Would it be useful be more flexible? (eg. try layouts LDA, in order...)]
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \begin{macrocode}
\def\eq@layout{?}
% \end{macrocode}
@@ -4157,15 +4283,18 @@ and the derived files
\else\if\grp@hasNumber\addtolength\dim@b{-\wd\GRP@numbox-\eqnumsep}%
\fi\fi\fi\fi
\ifdim\dim@a<\dim@b% Do we even have a chance of fitting to one line?
- \debugmsg{Choose Shape: (\the\wd\EQ@copy) may fit in \the\dim@b}%
-%BRM%
- % assuming it might fit, don't push too hard
+%<trace> \breqn@debugmsg{Choose Shape: (\the\wd\EQ@copy) may fit in \the\dim@b}%
+% \end{macrocode}
+% BRM: assuming it might fit, don't push too hard
+% \begin{macrocode}
\setlength\dim@b{\columnwidth-\dim@a+\eq@wdCond}%
\rightskip\z@\@plus\dim@b\@minus\hfuzz
-%
\eq@trial@b{i}{\eq@try@layout@multi}%
\else
- \debugmsg{Choose Shape: Too long (\the\wd\EQ@copy) for one line (free width=\the\dim@b)}%
+%<*trace>
+ \breqn@debugmsg{Choose Shape: Too long (\the\wd\EQ@copy) for one line
+ (free width=\the\dim@b)}%
+%</trace>
\eq@try@layout@multi
\fi
}
@@ -4177,7 +4306,7 @@ and the derived files
\def\eq@try@layout@multi{%
\if\EQ@hasLHS
\ifdim\eq@wdL>\eq@linewidth
- \debugmsg{Choose Shape: LHS \the\eq@wdL > linewidth}%
+%<trace> \breqn@debugmsg{Choose Shape: LHS \the\eq@wdL > linewidth}%
% \end{macrocode}
% Find the total width of the RHS.
% If it is relatively short, a step layout is the thing to try.
@@ -4188,14 +4317,16 @@ and the derived files
\fi
% BRM: Originally .7: Extreme for L since rhs has to wrap within the remaining 30+%!
\else\ifdim\eq@wdL>.50\eq@linewidth
- \debugmsg{Choose Shape: LHS (\the\eq@wdL) > .50 linewidth (linewidth=\the\eq@linewidth)}%
+%<*trace>
+ \breqn@debugmsg{Choose Shape: LHS (\the\eq@wdL) > .50 linewidth (linewidth=\the\eq@linewidth)}%
+%</trace>
\eq@try@layout@D
\else
- \debugmsg{Choose Shape: LHS (\the\eq@wdL) not extraordinarily wide}%
+%<trace> \breqn@debugmsg{Choose Shape: LHS (\the\eq@wdL) not extraordinarily wide}%
\eq@try@layout@L
\fi\fi
\else
- \debugmsg{Choose Shape: No LHS here}%
+%<trace> \breqn@debugmsg{Choose Shape: No LHS here}%
% \end{macrocode}
% Try one-line layout first, then step layout.
% \begin{macrocode}
@@ -4366,13 +4497,13 @@ and the derived files
% \begin{macrocode}
\def\eq@retry@with@number{%
\if\eq@shiftnumber
- \debugmsg{Place number: Shifted number requested}%
+%<trace> \breqn@debugmsg{Place number: Shifted number requested}%
\else
% \end{macrocode}
% Condition and right numbers? We're just going to have to shift.
% \begin{macrocode}
\ifdim\eq@wdCond>\z@\if R\eqnumside
- \debugmsg{Place number: Condition w/Right number => Shift number}%
+%<trace> \breqn@debugmsg{Place number: Condition w/Right number => Shift number}%
\let\eq@shiftnumber\@True
\fi\fi
% \end{macrocode}
@@ -4399,12 +4530,14 @@ and the derived files
% left \& right skips will be done later, and parshape adjusted if
% needed.
% \begin{macrocode}
- \debugmsg{Place number: eqn and number fit together}%
+%<trace> \breqn@debugmsg{Place number: eqn and number fit together}%
% \else\ifnum\eq@lines=\int@a % Shift, if single line, unless inside a dgroup.
% \end{macrocode}
% NOTE: this is too strong for dgroup!
% \begin{macrocode}
-% \debugmsg{Place number: single line too long with number => Shift number \the\int@a}%
+%<*trace>
+% \breqn@debugmsg{Place number: single line too long with number => Shift number \the\int@a}%
+%</trace>
% \let\eq@shiftnumber\@True
\else
% \end{macrocode}
@@ -4415,8 +4548,10 @@ and the derived files
\setlength\leftskip{\eq@wdNum}%
\setlength\rightskip{\z@\@plus\dim@a}%
\adjust@parshape\@parshape
- \debugmsg{Place number: Try with \leftskip=\the\leftskip, \rightskip=\the\rightskip,
- ^^J||===== parshape\space\@xp\@gobble\@parshape}%
+%<*trace>
+ \breqn@debugmsg{Place number: Try with \leftskip=\the\leftskip, \rightskip=\the\rightskip,
+ \MessageBreak==== parshape\space\@xp\@gobble\@parshape}%
+%</trace>
\nointerlineskip
\edef\eq@prev@lines{\the\eq@lines}%
\edef\eq@prev@badness{\the\eq@badness}% BRM
@@ -4424,16 +4559,19 @@ and the derived files
\int@a\eq@prev@badness\relax\advance\int@a 50\relax%?
\int@b\eq@prev@lines \if\eq@group\advance\int@b\@ne\fi% Allow 1 extra line in group
\ifnum\eq@lines>\int@b % \eq@prev@lines
- \debugmsg{Adjustment causes more breaks => Shift number}%
+%<trace> \breqn@debugmsg{Adjustment causes more breaks => Shift number}%
\let\eq@shiftnumber\@True
\else\if\eq@badline
- \debugmsg{Adjustment causes bad lines (\the\eq@badness) => Shift}%
+%<trace> \breqn@debugmsg{Adjustment causes bad lines (\the\eq@badness) => Shift}%
\let\eq@shiftnumber\@True
\else\ifnum\eq@badness>\int@a % BRM: New case
- \debugmsg{Adjustment is badder than previous (\the\eq@badness >> \eq@prev@badness) => Shift}%
+%<*trace>
+ \breqn@debugmsg{Adjustment is badder than previous
+ (\the\eq@badness >> \eq@prev@badness) => Shift}%
+%</trace>
\let\eq@shiftnumber\@True
\else
- \debugmsg{Adjustment succeeded}%
+%<trace> \breqn@debugmsg{Adjustment succeeded}%
\fi\fi%\fi
\fi\fi\fi
% \end{macrocode}
@@ -4568,7 +4706,9 @@ and the derived files
% \begin{macrocode}
\def\eq@ml@a{%
\setbox\tw@\hbox{\unhbox\z@ \unskip}% find natural width
- \debug\ifnum\eq@badness<\inf@bad\else\debugmsg{!?! Overfull: \the\wd\tw@ >\the\dim@b}\fi\gubed
+%<*trace>
+ \ifnum\eq@badness<\inf@bad\else\breqn@debugmsg{!?! Overfull: \the\wd\tw@ >\the\dim@b}\fi
+%</trace>
% \end{macrocode}
% Is actual width less than natural width?
% \begin{macrocode}
@@ -4592,7 +4732,7 @@ and the derived files
}%
\fi
\edef\eq@measurements{\@elt
- \the\skip@a\space^^J% extra space to facilitate extracting only the
+ \the\skip@a\space X% extra space to facilitate extracting only the
% dimen part later
\csname eq@i%
\ifnum\eq@curline<\parshape \number\eq@curline
@@ -4627,11 +4767,11 @@ and the derived files
% \begin{macrocode}
\def\eq@dense@enough{%
\ifnum\eq@lines<\thr@@
- \debugmsg{Density check: less than 3 lines; OK}%
+%<trace> \breqn@debugmsg{Density check: less than 3 lines; OK}%
\@True
\else
\ifdim\eq@wdL >.7\eq@wdT
- \debugmsg{Density check: LHS too long; NOT OK}%
+%<trace> \breqn@debugmsg{Density check: LHS too long; NOT OK}%
\@False
\else \@xp\@xp\@xp\eq@dense@enough@a
\fi
@@ -4697,7 +4837,7 @@ and the derived files
\else
\dim@b\z@ \let\@elt\eq@delt \eq@measurements
\dim@c\eq@density@factor\eq@wdT \multiply\dim@c\eq@lines
- \debugmsg{Density check: black \the\dim@b/\eq@density@factor total \the\dim@c}%
+%<trace> \breqn@debugmsg{Density check: black \the\dim@b/\eq@density@factor total \the\dim@c}%
\ifdim\dim@b>\dim@c \true@false@true \else \false@false@false \fi
\fi
}
@@ -4708,7 +4848,7 @@ and the derived files
% \begin{macro}{\eq@delt}
% Args are space-above, indent, width, height, depth, badness.
% \begin{macrocode}
-\def\eq@delt#1^^J#2,#3x#4+#5@#6\@endelt{\addtolength\dim@b{#3}}%
+\def\eq@delt#1X#2,#3x#4+#5@#6\@endelt{\addtolength\dim@b{#3}}%
% \end{macrocode}
% \end{macro}
%
@@ -4736,7 +4876,7 @@ and the derived files
\dim@c\eq@lines\p@ \multiply\dim@c\f@ur
\int@b\eq@lines \multiply\int@b 9 \advance\int@b -10%
\divide\dim@c\int@b
- \debugmsg{Density check: l/t \the\dim@b\space< \the\dim@c\space 4n/(9n-10)?}%
+%<trace> \breqn@debugmsg{Density check: l/t \the\dim@b\space< \the\dim@c\space 4n/(9n-10)?}%
\ifdim\dim@b<\dim@c \true@true@true \else \false@true@false \fi
}
% \end{macrocode}
@@ -4766,7 +4906,7 @@ and the derived files
% of a page; instead it will be moved whole to the top of the next
% page. If you really really need a page break that splits the
% first or last line from the rest of the equation, you can always fall
-% back to\cs{pagebreak}, I suppose9.
+% back to\cs{pagebreak}, I suppose.
%
% \begin{macrocode}
\clubpenalty\@M \widowpenalty\@M \interlinepenalty\eqinterlinepenalty
@@ -4805,6 +4945,68 @@ and the derived files
% I, IRM, IRB, ILM, ILT. In other words, CLM stands for Centered equation
% body with Left-hand Middle-placed equation number, and IRB stands for
% Indented equation with Right-hand Bottom-placed equation number.
+%
+% Here are some general thoughts on how to place an equation
+% tag. Currently it does not work as desired: the L option positions
+% the tag app. 10 lines below the math expression, the RM doesn't
+% position the tag on the baseline for single-line math
+% expressions. Therefore I am going to first write what I think is
+% supposed to happen and then implement it.
+%
+% Below is a small list where especially the two three specifications
+% should be quite obvious, I just don't want to forget anything and it
+% is important to the implementation.
+% \begin{description}
+% \item[Definition 1] If a display consists of exactly one line, the
+% tag should always be placed on the same baseline as the math
+% expression.
+% \end{description}
+% The remaining comments refer to multi-line displays.
+% \begin{description}
+% \item[Definition 2] If a tag is to be positioned at the top (T), it
+% should be placed such that the baseline of the tag aligns with the
+% baseline of the top line of the display.
+%
+% \item[Definition 3] If a tag is to be positioned at the bottom (B),
+% it should be placed such that the baseline of the tag aligns with
+% the baseline of the bottom line of the display.
+%
+% \item[Definition 4] If a tag is to be positioned vertically centered
+% (M), it should be placed such that the baseline of the tag is
+% positioned exactly halfway between the baseline of the top line of
+% the display and the baseline of the bottom line of the display.
+% \end{description}
+%
+% Definitions 1--3 are almost axiomatic in their
+% simplicity. Definition~4 is different because I saw at least two
+% possibilities for which area to span:
+% \begin{itemize}
+% \item Calculate distance from top of top line to the bottom of the
+% bottom line, position the vertical center of the tag exactly
+% halfway between those two extremes.
+%
+% \item Calculate the distance from the baseline of the top line to
+% the baseline of the bottom line, position the baseline of the tag
+% exactly halfway between these two extremes.
+% \end{itemize}
+% Additional combinations of these methods are possible but make
+% little sense in my opinion. I have two reasons for choosing the
+% latter of these possibilities: Firstly, two expressions looking
+% completely identical with the exception of a superscript in the
+% first line or a subscript in the last line will have the tag
+% positioned identically. Secondly, then M means halfway between T and
+% B positions which makes good sense and then also automatically
+% fulfills Definition~1.
+%
+% From an implementation perspective, these definitions should also
+% make it possible to fix a deficiency in the current implementation,
+% namely that the tag does not influence the height of a display, even
+% if the display is a single line. This means that two single-line
+% expressions in a \env{dgroup} can be closer together than
+% \cs{intereqskip} if the math expressions are (vertically) smaller
+% than the tag.
+%
+%
%
%
% \section{Centered Right-Number Equations}
@@ -4834,25 +5036,27 @@ and the derived files
% \end{macro}
%
%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Various typesetting bits, invoked from \cs{eq@finish}
% BRM: This has been extensively refactored from the original breqn,
% initially to get left\textbar right skips and parshape used consistently,
% ultimately to get most things handled the same way, in the same order.
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
% Given that left and right skips have been set,
% typeset the frame, number and equation with the
% given number side and placement
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+%
% \begin{macrocode}
\def\eq@typeset@Unnumbered{%
\eq@typeset@frame
\eq@typeset@equation
}
\def\eq@typeset@LM{%
- \addtolength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}%
+ \setlength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}%
\eq@typeset@leftnumber
\eq@typeset@frame
\eq@typeset@equation
@@ -4884,7 +5088,7 @@ and the derived files
% Typeset equation and right middle number
% \begin{macrocode}
\def\eq@typeset@RM{%
- \setlength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}
+ \setlength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}%
\eq@typeset@rightnumber
\eq@typeset@frame
\eq@typeset@equation
@@ -4915,25 +5119,28 @@ and the derived files
\hbox to\hsize{\hfil\copy\EQ@numbox}\@@par%
}
% \end{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Debugging aid to show all relevant formatting info for a given eqn.
% \begin{macrocode}
+%<*trace>
\def\debug@showformat{%
- \debugmsg{Formatting Layout:\eq@layout\space Center/indent: \eqindent\space Number placement \eqnumside\eqnumplace:
- ^^J||===== \eq@linewidth=\the\eq@linewidth, \@totalleftmargin=\the\@totalleftmargin,
- ^^J||===== Centered Lines=\theb@@le\eq@centerlines, Shift Number=\theb@@le\eq@shiftnumber,
- ^^J||===== \eq@wdT=\the\eq@wdT, \eq@wdMin=\the\eq@wdMin,
- ^^J||===== LHS=\theb@@le\EQ@hasLHS: \eq@wdL=\the\eq@wdL,
- ^^J||===== \eq@firstht=\the\eq@firstht, \eq@vspan=\the\eq@vspan
- ^^J||===== \eq@wdNum=\the\eq@wdNum
- ^^J||===== \eq@wdCond=\the\eq@wdCond, \conditionsep=\the\conditionsep,
- ^^J||===== \leftskip=\the\leftskip, \rightskip=\the\rightskip,
- ^^J||===== \abovedisplayskip=\the\abovedisplayskip,
- ^^J||===== \belowdisplayskip=\the\belowdisplayskip
- ^^J||===== parshape=\eq@parshape}%
-}
+ \breqn@debugmsg{Formatting Layout:\eq@layout\space Center/indent: \eqindent\space
+ Number placement \eqnumside\eqnumplace:
+ \MessageBreak==== \eq@linewidth=\the\eq@linewidth, \@totalleftmargin=\the\@totalleftmargin,
+ \MessageBreak==== Centered Lines=\theb@@le\eq@centerlines, Shift Number=\theb@@le\eq@shiftnumber,
+ \MessageBreak==== \eq@wdT=\the\eq@wdT, \eq@wdMin=\the\eq@wdMin,
+ \MessageBreak==== LHS=\theb@@le\EQ@hasLHS: \eq@wdL=\the\eq@wdL,
+ \MessageBreak==== \eq@firstht=\the\eq@firstht, \eq@vspan=\the\eq@vspan
+ \MessageBreak==== \eq@wdNum=\the\eq@wdNum
+ \MessageBreak==== \eq@wdCond=\the\eq@wdCond, \conditionsep=\the\conditionsep,
+ \MessageBreak==== \leftskip=\the\leftskip, \rightskip=\the\rightskip,
+ \MessageBreak==== \abovedisplayskip=\the\abovedisplayskip,
+ \MessageBreak==== \belowdisplayskip=\the\belowdisplayskip
+ \MessageBreak==== parshape=\eq@parshape}%
+}
+%</trace>
% \end{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Set left \& right skips for centered equations,
% making allowances for numbers (if any, right, left) and constraint.
% ===
@@ -4989,13 +5196,16 @@ and the derived files
\fi\fi
% Now, \dim@d,\dim@e is the left & right glue to center each line for centerlines
\setlength\dim@e{\eq@wdT-\eq@wdMin}\dim@d=\z@
+% \end{macrocode}
% NOTE: Need some work here centering when there's a condition
+% \begin{macrocode}
% \advance\dim@e-\eq@wdT\multiply\dim@e-1\relax
% \if\eq@wdMin<\dim@e\dim@e\eq@wdMin\fi
% \multiply\dim@e-1\relax\advance\dim@e\eq@wdT
\dim@d\z@
\if\eq@centerlines
- \divide\dim@e2\relax\dim@d\dim@e
+ \divide\dim@e2\relax
+ \dim@d=\dim@e
\fi
\setlength\leftskip{\dim@a\@plus\dim@d}%
\addtolength\dim@e{\dim@c}%
@@ -5006,10 +5216,14 @@ and the derived files
\if F\eq@frame\else
\dim@b\dim@c
\fi
- \if\eq@hasNumber\if\eq@shiftnumber\else\if R\eqnumside
- \dim@c\eq@wdNum
- \ifdim\dim@c>\dim@b\dim@b\dim@c\fi
- \fi\fi\fi
+ \if\@And{\eq@hasNumber}{\@Not{\eq@shiftnumber}}%
+ \if R\eqnumside
+ \dim@c\eq@wdNum
+ \ifdim\dim@c>\dim@b
+ \dim@b\dim@c
+ \fi
+ \fi
+ \fi
% If either of those cases requires hard rightskip, move that part from glue.
\ifdim\dim@b>\z@
\addtolength\dim@e{-\dim@c}%
@@ -5017,41 +5231,55 @@ and the derived files
\fi
% And peculiar further special case: in indented environs, width isn't where it would seem
\ifdim\eq@wdCond>\z@
- \addtolength\rightskip{-\@totalleftmargin}%
+ \addtolength\rightskip{-\@totalleftmargin}%
\fi
\parfillskip\z@skip
}
% \end{macrocode}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
% Set the left and right side spacing for indented equations
% Some things handled by eq@C@setsides that probably apply here????
-% * centerlines
-% * \cs{@totalleftmargin}: SHOULD we move farther right?
+% \begin{itemize}
+% \item centerlines
+% \item \cs{@totalleftmargin}: SHOULD we move farther right?
+% \end{itemize}
+% Leftskip is normally just the requested indentation
% \begin{macrocode}
\def\eq@I@setsides{%
- % Leftskip is normally just the requested indentation
\leftskip\mathindent
- % But move left, if shifted number presumably because of clashed w/ number?
+% \end{macrocode}
+% But move left, if shifted number presumably because of clashed w/ number?
+% \begin{macrocode}
\if\eq@shiftnumber
\setlength\dim@a{\eq@linewidth-\eq@wdT-\mathindent}%
\ifdim\dim@a<\z@
\leftskip=\z@ % Or something minimal?
- \fi\fi
- % Push gently from right.
+ \fi
+ \fi
+% \end{macrocode}
+% Push gently from right.
+% \begin{macrocode}
\dim@a=\z@
\setlength\dim@b{\eq@linewidth-\leftskip-\eq@wdMin}%
- % Special case: if framing be much more rigid(?)
- \if F\eq@frame\else
+% \end{macrocode}
+% Special case: if framing be much more rigid(?)
+% \begin{macrocode}
+ \if F\eq@frame
+ \else
\setlength\dim@a{\eq@linewidth-\leftskip-\eq@wdT}
\addtolength\dim@b{-\dim@a}%
\fi
% Or force the space for right number, if needed
- \if\eq@hasNumber\if\eq@shiftnumber\else\if R\eqnumside
- \dim@c=\eq@wdNum
- \if\dim@c>\dim@a
- \addtolength\dim@b{-\dim@c}%
- \dim@a=\dim@c
- \fi\fi\fi\fi
+% \begin{macrocode}
+ \if\@And{\eq@hasNumber}{\@Not{\eq@shiftnumber}}%
+ \if R\eqnumside
+ \dim@c=\eq@wdNum
+ \if\dim@c>\dim@a
+ \addtolength\dim@b{-\dim@c}%
+ \dim@a=\dim@c
+ \fi
+ \fi
+ \fi
\setlength\rightskip{\dim@a\@plus\dim@b \@minus\hfuzz }%\hfuzz\z@
\parfillskip\z@skip
}
@@ -5097,6 +5325,8 @@ and the derived files
}
% \end{macrocode}
% \end{macro}
+% The frame is not typeset at the correct horizontal position. Will
+% fix later.
% \begin{macrocode}
\def\eq@addframe{%
\hbox to\z@{%
@@ -5847,7 +6077,6 @@ and the derived files
\let\grp@hasNumber\@False
\let\grp@eqs@numbered\@False
\let\grp@aligned\@True
-\global\let\GRP@top\@True
% \end{macrocode}
%
% \end{macro}
@@ -5871,8 +6100,8 @@ and the derived files
\end@dgroup
}
\def\@dgroup[#1]{%
- \debugmsg{=== DGROUP ==================================================}%
- \let\eq@group\@True \global\let\GRP@top\@True
+%<trace> \breqn@debugmsg{=== DGROUP ==================================================}%
+ \let\eq@group\@True \global\let\eq@GRP@first@dmath\@True
\global\GRP@queue\@emptytoks \global\setbox\GRP@box\box\voidb@x
\global\let\GRP@label\@empty
\global\grp@wdL\z@\global\grp@wdR\z@\global\grp@wdT\z@
@@ -5936,7 +6165,7 @@ and the derived files
% \begin{macrocode}
\setcounter{equation}{0}%
\def\theequation{\theparentequation\alph{equation}}%
- \debugmsg{Group Number \theequation}%
+%<trace> \breqn@debugmsg{Group Number \theequation}%
}
% \end{macrocode}
% At the end of a group, need to reset the equation counter.
@@ -5948,9 +6177,11 @@ and the derived files
\newbox\GRP@wholebox
% \end{macrocode}
% Save data for this equation in the group
-% * push the trial data onto end of \cs{GRP@queue}
-% * push an hbox onto the front of \cs{GRP@box}
-% containing: \cs{EQ@box}, \cs{EQ@copy}, \cs{penalty} 1 and \cs{EQ@numbox}
+% \begin{itemize}
+% \item push the trial data onto end of \cs{GRP@queue}.
+% \item push an hbox onto the front of \cs{GRP@box} containing:
+% \cs{EQ@box}, \cs{EQ@copy}, \cs{penalty} 1 and \cs{EQ@numbox}.
+% \end{itemize}
% \begin{macro}{\grp@push}
%
% For putting the equation on a queue.
@@ -5963,8 +6194,7 @@ and the derived files
\hbox{\box\EQ@box\box\EQ@copy\penalty\@ne\copy\EQ@numbox}%
\unvbox\GRP@box
}%
- \global\let\GRP@top\@False
- \EQ@trial
+ \EQ@trial
\if\eq@isIntertext\else
\ifdim\eq@wdL>\grp@wdL \global\grp@wdL\eq@wdL \fi
\ifdim\eq@wdT>\grp@wdT \global\grp@wdT\eq@wdT \fi
@@ -5995,34 +6225,44 @@ and the derived files
% \begin{macrocode}
\def\grp@finish{%
% \debug@box\GRP@box
-% \debugmsg{\GRP@queue: \the\GRP@queue}%
+% \breqn@debugmsg{\GRP@queue: \the\GRP@queue}%
% \end{macrocode}
% == Now that we know the collective measurements, make final decision
% about alignment \& shifting. Check if alignment is still possible
% \begin{macrocode}
\setlength\dim@a{\grp@wdL+\grp@wdR-4em}% Allowance for shrink?
- \if\grp@aligned\ifdim\dim@a>\grp@linewidth
- \global\let\grp@aligned\@False
- \fi\fi
+ \if\grp@aligned
+ \ifdim\dim@a>\grp@linewidth
+ \global\let\grp@aligned\@False
+ \fi
+ \fi
% \end{macrocode}
% If we're adding an unshifted group number that equations didn't know
% about, re-check shifting
% \begin{macrocode}
\addtolength\dim@a{\grp@wdNum }% Effective length
- \if\grp@shiftnumber\else\if\grp@hasNumber\if\grp@eqs@numbered\else\ifdim\dim@a>\grp@linewidth
- \global\let\grp@shiftnumber\@True
- \fi\fi\fi\fi
+ \if\grp@shiftnumber
+ \else
+ \if\@And{\grp@hasNumber}{\@Not\grp@eqs@numbered}
+ \ifdim\dim@a>\grp@linewidth
+ \global\let\grp@shiftnumber\@True
+ \fi
+ \fi
+ \fi
% \end{macrocode}
% If we can still align, total width is sum of maximum LHS \& RHS
% \begin{macrocode}
\if\grp@aligned
- \global\grp@wdT\grp@wdL\global\advance\grp@wdT\grp@wdR
+ \global\grp@wdT\grp@wdL
+ \global\advance\grp@wdT\grp@wdR
\fi
- \debugmsg{======= DGROUP Formatting
- ^^J||===== \grp@wdL=\the\grp@wdL, \grp@wdR=\the\grp@wdR
- ^^J||===== Shift Number=\theb@@le\grp@shiftnumber, Eqns. numbered=\theb@@le\grp@eqs@numbered
- ^^J||===== Aligned=\theb@@le\grp@aligned
- ^^J||===== \grp@wdNum=\the\grp@wdNum}%
+%<*trace>
+ \breqn@debugmsg{======= DGROUP Formatting
+ \MessageBreak==== \grp@wdL=\the\grp@wdL, \grp@wdR=\the\grp@wdR
+ \MessageBreak==== Shift Number=\theb@@le\grp@shiftnumber, Eqns. numbered=\theb@@le\grp@eqs@numbered
+ \MessageBreak==== Aligned=\theb@@le\grp@aligned
+ \MessageBreak==== \grp@wdNum=\the\grp@wdNum}%
+%</trace>
% \end{macrocode}
% BRM: Originally this stuff was dumped directly, without capturing it
% in a \cs{vbox}
@@ -6036,9 +6276,17 @@ and the derived files
% NOTE: For now, just code up LM number
% NOTE: Come back and handle other cases.
% NOTE: Vertical spacing is off, perhaps because of inter eqn. glue
+%
+% A bit of a hack to get the top spacing correct. Fix this logic
+% properly some day. Also, we do the calculation in a group for
+% maximum safety.
% \begin{macrocode}
- \eq@topspace{\vskip\parskip}%
- \if\grp@hasNumber\if\grp@eqs@numbered\else
+ \global\let\eq@GRP@first@dmath\@True
+ \begingroup
+ \dmath@first@leftskip
+ \eq@topspace{\vskip\parskip}%
+ \endgroup
+ \if\@And{\grp@hasNumber}{\@Not{\grp@eqs@numbered}}%
% \eq@topspace{\vskip\parskip}%
\if\grp@shiftnumber
\copy\GRP@numbox \penalty\@M
@@ -6049,13 +6297,17 @@ and the derived files
\setlength\skip@c{\dim@a-\ht\GRP@numbox}%
\vglue\skip@c% NON discardable
\copy\GRP@numbox \penalty\@M
-\debugmsg{GROUP NUMBER: preskip:\the\skip@c, postkern:\the\dim@a, height:\the\ht\GRP@wholebox,
- ^^J||===== box height:\the\ht\GRP@numbox, box depth:\the\dp\GRP@numbox}%
+%<*trace>
+\breqn@debugmsg{GROUP NUMBER: preskip:\the\skip@c, postkern:\the\dim@a, height:\the\ht\GRP@wholebox,
+ \MessageBreak==== box height:\the\ht\GRP@numbox, box depth:\the\dp\GRP@numbox}%
+%</trace>
\kern-\dim@a
\kern-\abovedisplayskip % To cancel the topspace above the first eqn.
\fi
- \fi\fi
+ \fi
+%<*trace>
%\debug@box\GRP@wholebox
+%</trace>
\unvbox\GRP@wholebox
\let\@elt\relax
% \end{macrocode}
@@ -6205,12 +6457,14 @@ and the derived files
\@ifundefined{Mathstrut@}{\let\Mathstrut@\strut}{}
\def\darray@cr{\Mathstrut@\cr}
\def\col@box{%
-%\debugmsg{Col \number\cur@row,\number\cur@col: \the\wd\z@\space x \the\ht\z@+\the\dp\z@}%
+%<*trace>
+%\breqn@debugmsg{Col \number\cur@row,\number\cur@col: \the\wd\z@\space x \the\ht\z@+\the\dp\z@}%
+%</trace>
\unhbox\z@
}
\newenvironment{darray}{\@optarg\@darray{}}{}
\def\@darray[#1]{%
- \debugmsg{=== DARRAY ==================================================}%
+%<trace> \breqn@debugmsg{=== DARRAY ==================================================}%
\if\eq@group\else\eq@prelim\fi
% \end{macrocode}
% Init the halign preamble to empty, then unless the \quoted{cols} key is
@@ -6646,3 +6900,7 @@ and the derived files
% \item try to use vadjust for keepglue
%
% \end{enumerate}
+%
+% \PrintIndex
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex/mh/empheq.ins b/Master/texmf-dist/source/latex/mh/empheq.ins
deleted file mode 100644
index c0d42567628..00000000000
--- a/Master/texmf-dist/source/latex/mh/empheq.ins
+++ /dev/null
@@ -1,56 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% File `empheq.ins'.
-%% Copyright 2002--2004 Morten H\o gholm.
-%% moho01ab@student.cbs.dk
-%%
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2003/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Morten H\o gholm.
-%%
-%% This work consists of the files empheq.dtx and empheq.ins and the
-%% derived files empheq.sty and ntheorem.fix.
-%%
-%% --------------- start of docstrip commands ------------------
-%%
-\input docstrip
-
-\keepsilent
-
-\preamble
-
-It may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-The Current Maintainer of this work is Morten H\string\o gholm.
-
-This work consists of the files empheq.dtx and empheq.ins and the
-derived files empheq.sty and ntheorem.fix
-
-\endpreamble
-
-%%%%%%%%%%%%%%%
-\generate{%
- \file{empheq.sty}{\from{empheq.dtx}{empheq}}%
- \file{ntheorem.fix}{\from{empheq.dtx}{ntheorem}}%
-}
-
-\endbatchfile
diff --git a/Master/texmf-dist/source/latex/mh/empheq07.ins b/Master/texmf-dist/source/latex/mh/empheq07.ins
deleted file mode 100644
index c001b4a482c..00000000000
--- a/Master/texmf-dist/source/latex/mh/empheq07.ins
+++ /dev/null
@@ -1,54 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% File `empheq07.ins'.
-%% Copyright 2002--2004 Morten H\o gholm.
-%% moho01ab@student.cbs.dk
-%%
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2003/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Morten H\o gholm.
-%%
-%% This work consists of the files empheq07.dtx and empheq07.ins and
-%% the derived file empheq07.sty.
-%% --------------- start of docstrip commands ------------------
-%%
-\input docstrip
-
-\keepsilent
-
-\preamble
-
-It may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-The Current Maintainer of this work is Morten H\string\o gholm.
-
-This work consists of the files empheq07.dtx and empheq07.ins and
-the derived file empheq07.sty.
-
-\endpreamble
-
-%%%%%%%%%%%%%%%
-\generate{%
- \file{empheq07.sty}{\from{empheq07.dtx}{package}}%
-}
-
-\endbatchfile
diff --git a/Master/texmf-dist/source/latex/mh/flexisym.dtx b/Master/texmf-dist/source/latex/mh/flexisym.dtx
index 3ce279e4e82..6aecf24551c 100644
--- a/Master/texmf-dist/source/latex/mh/flexisym.dtx
+++ b/Master/texmf-dist/source/latex/mh/flexisym.dtx
@@ -72,7 +72,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: flexisym 2007/12/10 v0.95 Flexisym (MH)}
+\Msg{* Package: flexisym 2007/12/19 v0.96 Flexisym (MH)}
\Msg{************************************************************************}
\keepsilent
@@ -138,8 +138,11 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{flexisym.drv}%
- [2007/12/10 v0.95 flexisym (MH)]
+ [2007/12/19 v0.96 flexisym (MH)]
\documentclass{ltxdoc}
+\CodelineIndex
+\EnableCrossrefs
+\setcounter{IndexColumns}{2}
\providecommand*\pkg[1]{\textsf{#1}}
\providecommand*\cls[1]{\textsf{#1}}
\providecommand*\opt[1]{\texttt{#1}}
@@ -159,7 +162,7 @@ and the derived files
% \fi
%
% \title{The \textsf{flexisym} package}
-% \date{2007/12/10 v0.95}
+% \date{2007/12/19 v0.96}
% \author{Morten H\o gholm \\\texttt{mh.ctan@gmail.com}}
%
% \maketitle
@@ -175,7 +178,7 @@ and the derived files
%
% \begin{macrocode}
%<*package>
-\ProvidesPackage{flexisym}[2007/12/10 v0.95]
+\ProvidesPackage{flexisym}[2007/12/19 v0.96]
\let\@xp\expandafter \let\@nx\noexpand
\edef\do{%
\@nx\AtEndOfPackage{%
@@ -463,15 +466,17 @@ and the derived files
\fi
\fi
\mathcode `\-45 \mathcode `\/47\mathcode `\:"603A\relax
-}
+}%
}
% \end{macrocode}
%
% And we then continue with the options.
% \begin{macrocode}
+\DeclareOption{mathstyleoff}{\PassOptionsToPackage{mathactivechars}{mathstyle}}
\DeclareOption{cmbase}{\usesymbols{cmbase}}
\DeclareOption{mathpazo}{\usesymbols{mathpazo}}
\DeclareOption{mathptmx}{\usesymbols{mathptmx}}
+\ExecuteOptions{cmbase}
\ProcessOptions\relax
\renewcommand{\lnot}{\neg}
\renewcommand{\land}{\wedge}
@@ -483,9 +488,7 @@ and the derived files
\renewcommand{\gets}{\leftarrow}
\renewcommand{\to}{\rightarrow}
\renewcommand{\|}{\Vert}
-\@ifpackagewith{flexisym}{mathstyleoff}{}{%
- \RequirePackage[activechars]{mathstyle}\relax
-}
+\RequirePackage{mathstyle}
%</package>\endinput
% \end{macrocode}
%
@@ -514,9 +517,9 @@ and the derived files
% Default mathgroup setup.
% \begin{macrocode}
%<*cmbase|mathpazo|mathptmx>
-%<cmbase>\ProvidesSymbols{cmbase}[2001/09/07 v0.91]
-%<mathpazo>\ProvidesSymbols{mathpazo}[2007/12/09 v0.1]
-%<mathptmx>\ProvidesSymbols{mathptmx}[2007/12/09 v0.1]
+%<cmbase>\ProvidesSymbols{cmbase}[2007/12/19 v0.92]
+%<mathpazo>\ProvidesSymbols{mathpazo}[2007/12/19 v0.2]
+%<mathptmx>\ProvidesSymbols{mathptmx}[2007/12/19 v0.2]
\@xp\xdef\csname mg@OT1\endcsname{\hexnumber@\symoperators}
\@xp\xdef\csname mg@OML\endcsname{\hexnumber@\symletters}
\@xp\xdef\csname mg@OMS\endcsname{\hexnumber@\symsymbols}
@@ -951,8 +954,9 @@ and the derived files
% it (which was perhaps true in an older version of
% \fn{plain.tex}?).
% \begin{macrocode}
-%<cmbase|mathptmx>\newcommand*\joinord{\mkern-3mu }
-%<mathpazo>\newcommand*\joinord{\mkern-3.45mu }
+\providecommand*\joinord{}
+%<cmbase|mathptmx>\renewcommand*\joinord{\mkern-3mu }
+%<mathpazo>\renewcommand*\joinord{\mkern-3.45mu }
\DeclareFlexCompoundSymbol{\notin}{Rel}{\mathpalette\c@ncel\in}
\DeclareFlexCompoundSymbol{\rightleftharpoons}{Rel}{\mathpalette\rlh@{}}
\DeclareFlexCompoundSymbol{\doteq}{Rel}{\buildrel\textstyle.\over=}
@@ -1276,4 +1280,8 @@ and the derived files
%%\DeclareFlexSymbol{\hbar} {Ord}{MSB}{7E}
\DeclareFlexSymbol{\backepsilon} {Rel}{MSB}{7F}
%</msabm>
-% \end{macrocode} \ No newline at end of file
+% \end{macrocode}
+%
+% \PrintIndex
+%
+% \Finale
diff --git a/Master/texmf-dist/source/latex/mh/mathstyle.dtx b/Master/texmf-dist/source/latex/mh/mathstyle.dtx
index ca8fede5aed..9c65737aa88 100644
--- a/Master/texmf-dist/source/latex/mh/mathstyle.dtx
+++ b/Master/texmf-dist/source/latex/mh/mathstyle.dtx
@@ -67,7 +67,7 @@
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
-\Msg{* Package: mathstyle 2007/12/10 v0.83 Mathstyle (MH)}
+\Msg{* Package: mathstyle 2007/12/19 v0.84 Mathstyle (MH)}
\Msg{************************************************************************}
\keepsilent
@@ -128,8 +128,11 @@ and the derived files
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{mathstyle.drv}%
- [2007/12/10 v0.83 mathstyle (MH)]
+ [2007/12/19 v0.84 mathstyle (MH)]
\documentclass{ltxdoc}
+\CodelineIndex
+\EnableCrossrefs
+\setcounter{IndexColumns}{2}
\providecommand*\pkg[1]{\textsf{#1}}
\begin{document}
\DocInput{mathstyle.dtx}
@@ -138,7 +141,7 @@ and the derived files
% \fi
%
% \title{The \textsf{mathstyle} package}
-% \date{2007/12/10 v0.83}
+% \date{2007/12/19 v0.84}
% \author{Morten H\o gholm \\\texttt{mh.ctan@gmail.com}}
%
%
@@ -203,7 +206,7 @@ and the derived files
%
% \begin{macrocode}
%<*package>
-\ProvidesPackage{mathstyle}[2007/12/10 v0.83]
+\ProvidesPackage{mathstyle}[2007/12/19 v0.84]
% \end{macrocode}
% \begin{macro}{\@saveprimitive}
% A straight copy from \pkg{breqn}, see implementation details
@@ -381,6 +384,7 @@ and the derived files
% \end{macrocode}
% Finally, we declare the package options.
% \begin{macrocode}
+\DeclareOption{mathactivechars}{\catcode`\^=7\relax \catcode`\_=8\relax }
\DeclareOption{activechars}{\catcode`\^=13\relax \catcode`\_=13\relax }
\ProcessOptions\relax
\ifnum\catcode`\^=13\relax
@@ -393,4 +397,7 @@ and the derived files
\fi
%</package>
% \end{macrocode}
+%
+% \PrintIndex
+%
% \Finale
diff --git a/Master/texmf-dist/source/latex/mh/mathtools.ins b/Master/texmf-dist/source/latex/mh/mathtools.ins
deleted file mode 100644
index 5b541376b07..00000000000
--- a/Master/texmf-dist/source/latex/mh/mathtools.ins
+++ /dev/null
@@ -1,54 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% File `mathtools.ins'.
-%% Copyright 2004 Morten H\o gholm.
-%% moho01ab@student.cbs.dk
-%%
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2003/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Morten H\o gholm.
-%%
-%% This work consists of the files mathtools.dtx and mathtools.ins
-%% and the derived file mathtools.sty.
-%% --------------- start of docstrip commands ------------------
-%%
-\input docstrip
-
-\keepsilent
-
-\preamble
-
-It may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-The Current Maintainer of this work is Morten H\string\o gholm.
-
-This work consists of the files mathtools.dtx and mathtools.ins
-and the derived file mathtools.sty.
-
-\endpreamble
-
-%%%%%%%%%%%%%%%
-\generate{%
- \file{mathtools.sty}{\from{mathtools.dtx}{package}}%
-}
-
-\endbatchfile
diff --git a/Master/texmf-dist/source/latex/mh/mhsetup.ins b/Master/texmf-dist/source/latex/mh/mhsetup.ins
deleted file mode 100644
index 25c5e2d7395..00000000000
--- a/Master/texmf-dist/source/latex/mh/mhsetup.ins
+++ /dev/null
@@ -1,54 +0,0 @@
-%%
-%% This file will generate fast loadable files and documentation
-%% driver files from the doc files in this package when run through
-%% LaTeX or TeX.
-%%
-%% File `mhsetup.ins'.
-%% Copyright 2004 Morten H\o gholm.
-%% moho01ab@student.cbs.dk
-%%
-%% It may be distributed and/or modified under the
-%% conditions of the LaTeX Project Public License, either version 1.3
-%% of this license or (at your option) any later version.
-%% The latest version of this license is in
-%% http://www.latex-project.org/lppl.txt
-%% and version 1.3 or later is part of all distributions of LaTeX
-%% version 2003/12/01 or later.
-%%
-%% This work has the LPPL maintenance status "maintained".
-%%
-%% The Current Maintainer of this work is Morten H\o gholm.
-%%
-%% This work consists of the files mhsetup.dtx and mhsetup.ins and
-%% the derived file mhsetup.sty.
-%% --------------- start of docstrip commands ------------------
-%%
-\input docstrip
-
-\keepsilent
-
-\preamble
-
-It may be distributed and/or modified under the
-conditions of the LaTeX Project Public License, either version 1.3
-of this license or (at your option) any later version.
-The latest version of this license is in
- http://www.latex-project.org/lppl.txt
-and version 1.3 or later is part of all distributions of LaTeX
-version 2003/12/01 or later.
-
-This work has the LPPL maintenance status "maintained".
-
-The Current Maintainer of this work is Morten H\string\o gholm.
-
-This work consists of the files mhsetup.dtx and mhsetup.ins and
-the derived file mhsetup.sty.
-
-\endpreamble
-
-%%%%%%%%%%%%%%%
-\generate{%
- \file{mhsetup.sty}{\from{mhsetup.dtx}{package}}%
-}
-
-\endbatchfile
diff --git a/Master/texmf-dist/tex/latex/mh/breqn.sty b/Master/texmf-dist/tex/latex/mh/breqn.sty
index e69a67473b5..fd4893e5734 100644
--- a/Master/texmf-dist/tex/latex/mh/breqn.sty
+++ b/Master/texmf-dist/tex/latex/mh/breqn.sty
@@ -28,19 +28,18 @@
%% breqn.sty, breqn.pdf, breqn.ins, breqn.drv.
%%
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{breqn}[2007/12/10 v0.96]
+\ProvidesPackage{breqn}[2007/12/22 v0.97a]
\edef\breqnpopcats{%
\catcode\number`\"=\number\catcode`\"
\relax}
\AtEndOfPackage{\breqnpopcats}%
\catcode`\^=7 \catcode`\_=8 \catcode`\"=12 \relax
-\DeclareOption{debug}{\errorcontextlines=2000\relax}
\DeclareOption{mathstyleoff}{%
\PassOptionsToPackage{mathstyleoff}{flexisym}%
}
\ProcessOptions\relax
\@ifpackageloaded{flexisym}{}{%
- \RequirePackage[cmbase]{flexisym}[2007/12/10]
+ \RequirePackage{flexisym}[2007/12/19]
\edef\breqnpopcats{\breqnpopcats
\catcode\number`\^=\number\catcode`\^
\catcode\number`\_=\number\catcode`\_
@@ -168,35 +167,6 @@
\@saveprimitive\vadjust\@@vadjust
\@saveprimitive\insert\@@insert
\@saveprimitive\mark\@@mark
-\let\debug=\begingroup
-\let\gubed=\endgroup
-\def\debugmsg{\message{||= \iffalse}\fi
- \@xp\@gobble\string
-}
-\def\debugwr#1{\immediate\write\sixt@@n{||= #1}}
-\def\debug@box#1{%
- \batchmode{\showboxbreadth\maxdimen\showboxdepth99\showbox#1}%
- \errorstopmode
-}
-\def\eqinfo{%
- \debug@box\EQ@copy
- \wlog{!! EQ@copy: \the\wd\EQ@copy\space x
- \the\ht\EQ@copy+\the\dp\EQ@copy
- }%
-}
-\def\debug@para{%
- \debugwr{\hsize\the\hsize, \parfillskip\the\parfillskip}%
- \debugmsg{\leftskip\the\leftskip, \rightskip\the\rightskip}%
- \debugmsg{\linepenalty\the\linepenalty, \adjdemerits\the\adjdemerits}%
- \debugmsg{\pretolerance\the\pretolerance, \tolerance\the\tolerance,
- \parindent\the\parindent}%
-}
-\@ifpackagewith{breqn}{debug}{}{%
- \let\debug\relax \let\gubed\relax
- \let\debugmsg\@gobble \let\debug@lines\relax \let\debug@para\relax
- \let\debugwr\@gobble
- \let\debug@box\@gobble \let\debug@push\@gobbletwo
-}
\@ifundefined{listwidth}{\newdimen\listwidth}{}
\listwidth=\z@
\def\eqfontsize{} % Inherit from context [NOT USED?]
@@ -409,6 +379,8 @@
\setlength\eq@given@sidespace{#1}%
}
\define@key{breqn}{style}{\eqstyle\@xp{\the\eqstyle #1}}
+\define@key{breqn}{shortskiplimit}{\def\eq@shortskiplimit{#1}}
+\def\eq@shortskiplimit{2em}
\define@key{breqn}{frame}[\fboxrule]{\def\eq@frame{T}%
\dim@a#1\relax\edef\eq@framewd{\the\dim@a}%
\freeze@glue\eqlinespacing \freeze@glue\eqlineskip
@@ -437,16 +409,9 @@
\define@key{breqn}{cols}{\global\let\@preamble\@empty
\darray@mkpream#1\@percentchar
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%BRM: The following incorporates several changes:
-%% 1) modifications supplied by MJD to fix the eaten \cs{paragraph} problem.
-%% 2) Added \cs{display@setup} here, rather than globally.
\newenvironment{dmath}{%
\let\eq@hasNumber\@True \@optarg\@dmath{}}{}
\def\@dmath[#1]{%
- \debugmsg{=== DMATH ==================================================}%
\everydisplay\expandafter{\the\everydisplay \display@setup}%
\if@noskipsec \leavevmode \fi
\if@inlabel \leavevmode \global\@inlabelfalse \fi
@@ -507,7 +472,6 @@
% This sets up numbox, etc, even if unnumbered?????
\ifx\eq@number\@empty
\else
- \debugmsg{Number \eq@number}%
\set@label{equation}\eq@number
\global\sbox\EQ@numbox{%
\next@label \global\let\next@label\@empty
@@ -517,23 +481,36 @@
\fi
\fi
}
+\newcount\eq@final@linecount
+\let\eq@GRP@first@dmath\@True
\def\eq@finish{%
\begingroup
- \debugmsg{Formatting equation}%
- \debug@showmeasurements
\if F\eq@frame\else
\freeze@glue\eqlinespacing \freeze@glue\eqlineskip
\fi
\csname eq@\eqindent @setsides\endcsname % Compute \leftskip,\rightskip
\adjust@parshape\eq@parshape% Final adjustment of parshape for left|right skips
- \eq@topspace{\vskip\parskip}% Set top spacing
- \debug@showformat
- % Now, invoke the appropriate typesetter according to number placement
+ \if\eq@group
+ \if\eq@GRP@first@dmath
+ \global\let\eq@GRP@first@dmath\@False
+ \xdef\dmath@first@leftskip{\leftskip=\the\leftskip\relax}%
+ \else
+ \eq@topspace{\vskip\parskip}% Set top spacing
+ \fi
+ \else
+ \eq@topspace{\vskip\parskip}% Set top spacing
+ \fi
+ \afterassignment\remove@to@nnil
+ \eq@final@linecount=\expandafter\@gobble\eq@parshape\@nnil
\if\eq@hasNumber
\if\eq@shiftnumber
\csname eq@typeset@\eqnumside Shifted\endcsname
\else
- \csname eq@typeset@\eqnumside\eqnumplace\endcsname
+ \ifnum\eq@final@linecount=\@ne
+ \csname eq@typeset@\eqnumside @single\endcsname
+ \else
+ \csname eq@typeset@\eqnumside\eqnumplace\endcsname
+ \fi
\fi
\else
\eq@typeset@Unnumbered
@@ -541,6 +518,31 @@
\endgroup
\eq@botspace
}
+\def\eq@typeset@L@single{%
+ \nobreak
+ \eq@params\eq@parshape
+ \nointerlineskip\noindent
+ \add@grp@label
+ \rlap{\kern-\leftskip\box\EQ@numbox}%
+ \if F\eq@frame
+ \else
+ \rlap{\raise\eq@firstht\hbox to\z@{\eq@addframe\hss}}%
+ \fi
+ \eq@dump@box\unhbox\EQ@box \@@par
+}
+\def\eq@typeset@R@single{%
+ \nobreak
+ \eq@params\eq@parshape
+ \nointerlineskip\noindent
+ \add@grp@label
+ \if F\eq@frame
+ \else
+ \rlap{\raise\eq@firstht\hbox to\z@{\eq@addframe\hss}}%
+ \fi
+ \rlap{\kern-\leftskip\kern\linewidth\kern-\wd\EQ@numbox\copy\EQ@numbox}%
+ \eq@dump@box\unhbox\EQ@box
+ \@@par
+}
\def\peek@branch#1#2{%
\let\peek@b#1\let\peek@space#2\futurelet\@let@token\peek@a
}
@@ -576,6 +578,7 @@
\else\ifx\@let@token ;\@nx\check@qed
\else\ifx\@let@token ?\@nx\check@qed
\else\ifx\@let@token !\@nx\check@qed
+ \else\@nx\finish@end
\fi\fi\fi\fi\fi
}
\xdef\check@punct@b{%
@@ -613,8 +616,8 @@
\def\eq@topspace#1{%
\begingroup
\global\let\EQ@shortskips\@False
- \if\@And{\eq@group}{\@Not\GRP@top}%
- \parskip\intereqskip \penalty\intereqpenalty
+ \if\@And{\eq@group}{\@Not\eq@GRP@first@dmath}%
+ \parskip\intereqskip \penalty\intereqpenalty
\else
\eq@check@shortskip
\if\EQ@shortskips
@@ -629,27 +632,35 @@
\else
\addtolength\parskip{\eq@framesep+\eq@framewd}%
\fi
-\debugmsg{Topspace: \theb@@le\EQ@shortskips, \parskip=\the\parskip, \predisplaysize=\the\predisplaysize}%
#1%
\endgroup
}
-\def\eq@check@shortskip{%
+\def\eq@check@shortskip {%
\global\let\EQ@shortskips\@False
\setlength\dim@a{\abovedisplayskip+\ht\EQ@numbox}%
- \addtolength\leftskip{-2em}% standard TeX value
\ifdim\leftskip<\predisplaysize
- \else\if R\eqnumside \global\let\EQ@shortskips\@True
- \else\if\eq@shiftnumber
- \else\if T\eqnumplace
- \ifdim\dim@a<\eq@firstht
- \global\let\EQ@shortskips\@True
- \fi
\else
- \setlength\dim@b{\eq@vspan/2}%
- \ifdim\dim@a<\dim@b
- \global\let\EQ@shortskips\@True
+ \ifdim -\maxdimen=\predisplaysize
+ \else
+ \if R\eqnumside
+ \global\let\EQ@shortskips\@True
+ \else
+ \if\eq@shiftnumber
+ \else
+ \if T\eqnumplace
+ \ifdim\dim@a<\eq@firstht
+ \global\let\EQ@shortskips\@True
+ \fi
+ \else
+ \setlength\dim@b{\eq@vspan/2}%
+ \ifdim\dim@a<\dim@b
+ \global\let\EQ@shortskips\@True
+ \fi
+ \fi
+ \fi
+ \fi
\fi
- \fi\fi\fi\fi
+ \fi
}
\def\eq@botspace{%
\penalty\postdisplaypenalty
@@ -681,8 +692,6 @@
\global\let\EQ@prebin@space\relax
\binoppenalty\@M \relpenalty\@M
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newdimen\eq@wdR\eq@wdR\z@%BRM
\def\eq@capture{%
\ifnum\lastpenalty>-\@M \penalty-\@Mi \fi
@@ -706,14 +715,10 @@
% Apparently missing a \thickmuskip = 5mu = 5/18em=0.27777777777.. ?
+ 0.2777777777777em}% FUDGE??!?!?!
\ifdim\dim@a>\eq@wdL
- \debugmsg{Correcting LHS from \the\eq@wdL\space to \the\dim@a = \the\wd\EQ@box - \the\eq@wdR}%
\eq@wdL\dim@a
\xdef\EQ@setwdL{\eq@wdL\the\eq@wdL\relax}%
\fi
\fi
- \debugmsg{Capture: total length=\the\wd\EQ@box
- ^^J||===== has LHS=\theb@@le\EQ@hasLHS, \eq@wdL=\the\eq@wdL, \eq@wdR=\the\eq@wdR,
- ^^J||===== \eq@wdCond=\the\eq@wdCond}%
\egroup % end vbox started earlier
}
\def\eq@addpunct{%
@@ -842,28 +847,6 @@
\endgroup
\EQ@trial
}
-\def\debug@showmeasurements{%
- \debugmsg{=> \number\eq@lines\space lines}%
- \debug
- \def\@elt##1^^J##2{^^J||===== \space\space##1/##2}%
- \let\@endelt\@empty
- \debugmsg{=> trial info:\eq@measurements}%
- \debugmsg{=> bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness}%
- \let\@elt\relax \let\@endelt\relax
- \gubed
-}
-\def\debug@showmeasurements{%
- \begingroup
- \def\@elt##1^^J##2{^^J||===== ##1/##2}%
- \let\@endelt\@empty
- \debugmsg{===> Measurements: \number\eq@lines\space lines
- \eq@measurements
- ^^J||===== bounding box: \the\eq@wdT x\the\eq@vspan, badness=\the\eq@badness
- ^^J||===== \leftskip=\the\leftskip, \rightskip=\the\rightskip}%
- \endgroup
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\let\EQ@trial\@empty
\newtoks\EQ@continue
\let\EQ@widths\@empty
@@ -882,33 +865,29 @@
\if T\eq@frame \eq@frame@adjust\dim@c \fi
\ifdim\dim@c>\eq@linewidth
\eq@linewidth\dim@c
- \debugmsg{Choose Shape for width(#1)=\the\eq@linewidth}%
\let\eq@trial@b\eq@trial@d
\csname eq@try@layout@\eq@layout\endcsname
- \else
- \debugmsg{Next width (#1) is shorter; skip it}%
\fi
\edef\eq@linewidths{\iffalse}\fi
}
\def\eq@frame@adjust#1{%
- \addtolength#1{-2\eq@framewd-2\eq@framesep}%
+ %\addtolength#1{-2\eq@framewd-2\eq@framesep}%
+ \dim@a\eq@framewd \advance\dim@a\eq@framesep
+ \advance#1-2\dim@a
}
\def\eq@trial@succeed{%
\aftergroup\@gobbletwo % cancel the \EQ@fallback code; see \eq@trial@c (?)
\global\EQ@continue{\eq@trial@done}%
}
\def\eq@trial@done{%
- \debugmsg{End trial: Success!}%
\let\eq@failout\relax
}
\def\eq@trial@init{\global\let\EQ@fallback\eq@nextlayout}
\def\eq@nextlayout#1{%
\endgroup
- \debugmsg{Nope ... that ain't gonna work.}%
\begingroup #1%
}
\def\eq@failout{%
-\debugmsg{End trial: failout}%
\global\let\EQ@trial\EQ@last@trial
}
\def\eq@trial@save#1{%
@@ -934,7 +913,6 @@
}
\def\eq@trial@b{\eq@trial@c}
\def\eq@trial@c#1#2{%
- \debugmsg{Trying layout "#1" with^^J||===== parshape\space\@xp\@gobble\@parshape}%
\begingroup
\eq@trial@init
\def\eq@layout{#1}%
@@ -959,9 +937,7 @@
}
\def\eq@trial@d#1#2{\eq@trial@c{#1}{}}
\def\eq@check@density{%
- \debugmsg{Checking density for layout L}%
\if\@Or{\@Not\EQ@hasLHS}{\eq@shortLHS}%
- \debugmsg{Density check: No LHS, or is short; OK}%
\eq@trial@succeed
\else\if\eq@dense@enough
\eq@trial@succeed
@@ -981,7 +957,6 @@
\eq@ml@record@indents
\eq@measure@lines
\eq@recalc
- \debug@showmeasurements
}
\let\adjust@rel@penalty\@empty
\def\eq@fix@lastline{%
@@ -1000,16 +975,14 @@
\let\@elt\eq@recalc@b
\@elt#1x#2+#3\@endelt
}
-\def\eq@recalc@b#1^^J#2,#3x#4+#5@#6\@endelt{%
+\def\eq@recalc@b#1X#2,#3x#4+#5@#6\@endelt{%
\setlength\dim@a{#2+#3}%
\ifdim\dim@a>\eq@wdT \eq@wdT\dim@a \fi
\ifdim\dim@a<\eq@wdMin \eq@wdMin\dim@a \fi
\eq@dp#5\relax
- \addtolength\eq@vspan{#1+#4+#5}%
+ \addtolength\eq@vspan{#1+#4+\eq@dp}%
\ifnum#6>\eq@badness \eq@badness#6\relax\fi
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\eq@layout{?}
\@namedef{eq@try@layout@?}{%
\let\eq@trial@b\eq@trial@c
@@ -1022,34 +995,27 @@
\else\if\grp@hasNumber\addtolength\dim@b{-\wd\GRP@numbox-\eqnumsep}%
\fi\fi\fi\fi
\ifdim\dim@a<\dim@b% Do we even have a chance of fitting to one line?
- \debugmsg{Choose Shape: (\the\wd\EQ@copy) may fit in \the\dim@b}%
- % assuming it might fit, don't push too hard
\setlength\dim@b{\columnwidth-\dim@a+\eq@wdCond}%
\rightskip\z@\@plus\dim@b\@minus\hfuzz
\eq@trial@b{i}{\eq@try@layout@multi}%
\else
- \debugmsg{Choose Shape: Too long (\the\wd\EQ@copy) for one line (free width=\the\dim@b)}%
\eq@try@layout@multi
\fi
}
\def\eq@try@layout@multi{%
\if\EQ@hasLHS
\ifdim\eq@wdL>\eq@linewidth
- \debugmsg{Choose Shape: LHS \the\eq@wdL > linewidth}%
\setlength\dim@a{\wd\EQ@copy-\eq@wdL}%
\ifdim\dim@a<.25\eq@linewidth \eq@try@layout@S
\else \eq@try@layout@l
\fi
% BRM: Originally .7: Extreme for L since rhs has to wrap within the remaining 30+%!
\else\ifdim\eq@wdL>.50\eq@linewidth
- \debugmsg{Choose Shape: LHS (\the\eq@wdL) > .50 linewidth (linewidth=\the\eq@linewidth)}%
\eq@try@layout@D
\else
- \debugmsg{Choose Shape: LHS (\the\eq@wdL) not extraordinarily wide}%
\eq@try@layout@L
\fi\fi
\else
- \debugmsg{Choose Shape: No LHS here}%
\eq@try@layout@S % (already checked case i)
\fi
}
@@ -1107,10 +1073,8 @@
\let\eq@shiftnumber\@False
\def\eq@retry@with@number{%
\if\eq@shiftnumber
- \debugmsg{Place number: Shifted number requested}%
\else
\ifdim\eq@wdCond>\z@\if R\eqnumside
- \debugmsg{Place number: Condition w/Right number => Shift number}%
\let\eq@shiftnumber\@True
\fi\fi
\dim@b\eq@wdNum
@@ -1123,13 +1087,10 @@
\int@a\@ne\if\eq@group\int@a\maxint\fi
\if\eq@shiftnumber % Already know we need to shift
\else\ifdim\eq@wdT<\dim@a % Fits!
- \debugmsg{Place number: eqn and number fit together}%
\else
\setlength\leftskip{\eq@wdNum}%
\setlength\rightskip{\z@\@plus\dim@a}%
\adjust@parshape\@parshape
- \debugmsg{Place number: Try with \leftskip=\the\leftskip, \rightskip=\the\rightskip,
- ^^J||===== parshape\space\@xp\@gobble\@parshape}%
\nointerlineskip
\edef\eq@prev@lines{\the\eq@lines}%
\edef\eq@prev@badness{\the\eq@badness}% BRM
@@ -1137,16 +1098,12 @@
\int@a\eq@prev@badness\relax\advance\int@a 50\relax%?
\int@b\eq@prev@lines \if\eq@group\advance\int@b\@ne\fi% Allow 1 extra line in group
\ifnum\eq@lines>\int@b % \eq@prev@lines
- \debugmsg{Adjustment causes more breaks => Shift number}%
\let\eq@shiftnumber\@True
\else\if\eq@badline
- \debugmsg{Adjustment causes bad lines (\the\eq@badness) => Shift}%
\let\eq@shiftnumber\@True
\else\ifnum\eq@badness>\int@a % BRM: New case
- \debugmsg{Adjustment is badder than previous (\the\eq@badness >> \eq@prev@badness) => Shift}%
\let\eq@shiftnumber\@True
\else
- \debugmsg{Adjustment succeeded}%
\fi\fi%\fi
\fi\fi\fi
\if\eq@shiftnumber
@@ -1206,7 +1163,6 @@
}
\def\eq@ml@a{%
\setbox\tw@\hbox{\unhbox\z@ \unskip}% find natural width
- \debug\ifnum\eq@badness<\inf@bad\else\debugmsg{!?! Overfull: \the\wd\tw@ >\the\dim@b}\fi\gubed
\ifdim\dim@b<\wd\tw@ \setlength\dim@a{\dim@b}% shrunken line
\else \setlength\dim@a{\wd\tw@}% OK to use natural width
\fi
@@ -1223,7 +1179,7 @@
}%
\fi
\edef\eq@measurements{\@elt
- \the\skip@a\space^^J% extra space to facilitate extracting only the
+ \the\skip@a\space X% extra space to facilitate extracting only the
% dimen part later
\csname eq@i%
\ifnum\eq@curline<\parshape \number\eq@curline
@@ -1241,11 +1197,9 @@
}
\def\eq@dense@enough{%
\ifnum\eq@lines<\thr@@
- \debugmsg{Density check: less than 3 lines; OK}%
\@True
\else
\ifdim\eq@wdL >.7\eq@wdT
- \debugmsg{Density check: LHS too long; NOT OK}%
\@False
\else \@xp\@xp\@xp\eq@dense@enough@a
\fi
@@ -1262,18 +1216,16 @@
\else
\dim@b\z@ \let\@elt\eq@delt \eq@measurements
\dim@c\eq@density@factor\eq@wdT \multiply\dim@c\eq@lines
- \debugmsg{Density check: black \the\dim@b/\eq@density@factor total \the\dim@c}%
\ifdim\dim@b>\dim@c \true@false@true \else \false@false@false \fi
\fi
}
-\def\eq@delt#1^^J#2,#3x#4+#5@#6\@endelt{\addtolength\dim@b{#3}}%
+\def\eq@delt#1X#2,#3x#4+#5@#6\@endelt{\addtolength\dim@b{#3}}%
\def\eq@dense@enough@b{%
\int@b\eq@wdT \divide\int@b\p@
\dim@b\eq@wdL \divide\dim@b\int@b
\dim@c\eq@lines\p@ \multiply\dim@c\f@ur
\int@b\eq@lines \multiply\int@b 9 \advance\int@b -10%
\divide\dim@c\int@b
- \debugmsg{Density check: l/t \the\dim@b\space< \the\dim@c\space 4n/(9n-10)?}%
\ifdim\dim@b<\dim@c \true@true@true \else \false@true@false \fi
}
\let\eq@parshape\@empty
@@ -1291,16 +1243,12 @@
\if L\eq@layout \box\tw@ \else\unhbox\tw@\fi
\adjust@rel@penalty \unhbox\f@ur
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\eq@typeset@Unnumbered{%
\eq@typeset@frame
\eq@typeset@equation
}
\def\eq@typeset@LM{%
- \addtolength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}%
+ \setlength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}%
\eq@typeset@leftnumber
\eq@typeset@frame
\eq@typeset@equation
@@ -1323,7 +1271,7 @@
\eq@typeset@equation
}
\def\eq@typeset@RM{%
- \setlength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}
+ \setlength\dim@a{(\eq@vspan+\ht\EQ@numbox-\dp\EQ@numbox)/2}%
\eq@typeset@rightnumber
\eq@typeset@frame
\eq@typeset@equation
@@ -1347,22 +1295,6 @@
\parskip\dim@a
\hbox to\hsize{\hfil\copy\EQ@numbox}\@@par%
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\def\debug@showformat{%
- \debugmsg{Formatting Layout:\eq@layout\space Center/indent: \eqindent\space Number placement \eqnumside\eqnumplace:
- ^^J||===== \eq@linewidth=\the\eq@linewidth, \@totalleftmargin=\the\@totalleftmargin,
- ^^J||===== Centered Lines=\theb@@le\eq@centerlines, Shift Number=\theb@@le\eq@shiftnumber,
- ^^J||===== \eq@wdT=\the\eq@wdT, \eq@wdMin=\the\eq@wdMin,
- ^^J||===== LHS=\theb@@le\EQ@hasLHS: \eq@wdL=\the\eq@wdL,
- ^^J||===== \eq@firstht=\the\eq@firstht, \eq@vspan=\the\eq@vspan
- ^^J||===== \eq@wdNum=\the\eq@wdNum
- ^^J||===== \eq@wdCond=\the\eq@wdCond, \conditionsep=\the\conditionsep,
- ^^J||===== \leftskip=\the\leftskip, \rightskip=\the\rightskip,
- ^^J||===== \abovedisplayskip=\the\abovedisplayskip,
- ^^J||===== \belowdisplayskip=\the\belowdisplayskip
- ^^J||===== parshape=\eq@parshape}%
-}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\eq@C@setsides{%
% \dim@c = space for number, if any, and not shifted.
\dim@c\z@
@@ -1410,7 +1342,8 @@
\setlength\dim@e{\eq@wdT-\eq@wdMin}\dim@d=\z@
\dim@d\z@
\if\eq@centerlines
- \divide\dim@e2\relax\dim@d\dim@e
+ \divide\dim@e2\relax
+ \dim@d=\dim@e
\fi
\setlength\leftskip{\dim@a\@plus\dim@d}%
\addtolength\dim@e{\dim@c}%
@@ -1421,10 +1354,14 @@
\if F\eq@frame\else
\dim@b\dim@c
\fi
- \if\eq@hasNumber\if\eq@shiftnumber\else\if R\eqnumside
- \dim@c\eq@wdNum
- \ifdim\dim@c>\dim@b\dim@b\dim@c\fi
- \fi\fi\fi
+ \if\@And{\eq@hasNumber}{\@Not{\eq@shiftnumber}}%
+ \if R\eqnumside
+ \dim@c\eq@wdNum
+ \ifdim\dim@c>\dim@b
+ \dim@b\dim@c
+ \fi
+ \fi
+ \fi
% If either of those cases requires hard rightskip, move that part from glue.
\ifdim\dim@b>\z@
\addtolength\dim@e{-\dim@c}%
@@ -1432,35 +1369,35 @@
\fi
% And peculiar further special case: in indented environs, width isn't where it would seem
\ifdim\eq@wdCond>\z@
- \addtolength\rightskip{-\@totalleftmargin}%
+ \addtolength\rightskip{-\@totalleftmargin}%
\fi
\parfillskip\z@skip
}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\eq@I@setsides{%
- % Leftskip is normally just the requested indentation
\leftskip\mathindent
- % But move left, if shifted number presumably because of clashed w/ number?
\if\eq@shiftnumber
\setlength\dim@a{\eq@linewidth-\eq@wdT-\mathindent}%
\ifdim\dim@a<\z@
\leftskip=\z@ % Or something minimal?
- \fi\fi
- % Push gently from right.
+ \fi
+ \fi
\dim@a=\z@
\setlength\dim@b{\eq@linewidth-\leftskip-\eq@wdMin}%
- % Special case: if framing be much more rigid(?)
- \if F\eq@frame\else
+ \if F\eq@frame
+ \else
\setlength\dim@a{\eq@linewidth-\leftskip-\eq@wdT}
\addtolength\dim@b{-\dim@a}%
\fi
% Or force the space for right number, if needed
- \if\eq@hasNumber\if\eq@shiftnumber\else\if R\eqnumside
- \dim@c=\eq@wdNum
- \if\dim@c>\dim@a
- \addtolength\dim@b{-\dim@c}%
- \dim@a=\dim@c
- \fi\fi\fi\fi
+ \if\@And{\eq@hasNumber}{\@Not{\eq@shiftnumber}}%
+ \if R\eqnumside
+ \dim@c=\eq@wdNum
+ \if\dim@c>\dim@a
+ \addtolength\dim@b{-\dim@c}%
+ \dim@a=\dim@c
+ \fi
+ \fi
+ \fi
\setlength\rightskip{\dim@a\@plus\dim@b \@minus\hfuzz }%\hfuzz\z@
\parfillskip\z@skip
}
@@ -1756,7 +1693,6 @@
\let\grp@hasNumber\@False
\let\grp@eqs@numbered\@False
\let\grp@aligned\@True
-\global\let\GRP@top\@True
\newenvironment{dgroup}{%
\let\grp@hasNumber\@True\@optarg\@dgroup{}%
}{%
@@ -1769,8 +1705,7 @@
\end@dgroup
}
\def\@dgroup[#1]{%
- \debugmsg{=== DGROUP ==================================================}%
- \let\eq@group\@True \global\let\GRP@top\@True
+ \let\eq@group\@True \global\let\eq@GRP@first@dmath\@True
\global\GRP@queue\@emptytoks \global\setbox\GRP@box\box\voidb@x
\global\let\GRP@label\@empty
\global\grp@wdL\z@\global\grp@wdR\z@\global\grp@wdT\z@
@@ -1807,7 +1742,6 @@
\setcounter{parentequation}{\value{equation}}%
\setcounter{equation}{0}%
\def\theequation{\theparentequation\alph{equation}}%
- \debugmsg{Group Number \theequation}%
}
\def\grp@resetnumber{%
\setcounter{equation}{\value{parentequation}}%
@@ -1822,8 +1756,7 @@
\hbox{\box\EQ@box\box\EQ@copy\penalty\@ne\copy\EQ@numbox}%
\unvbox\GRP@box
}%
- \global\let\GRP@top\@False
- \EQ@trial
+ \EQ@trial
\if\eq@isIntertext\else
\ifdim\eq@wdL>\grp@wdL \global\grp@wdL\eq@wdL \fi
\ifdim\eq@wdT>\grp@wdT \global\grp@wdT\eq@wdT \fi
@@ -1841,27 +1774,34 @@
}
\def\grp@finish{%
\setlength\dim@a{\grp@wdL+\grp@wdR-4em}% Allowance for shrink?
- \if\grp@aligned\ifdim\dim@a>\grp@linewidth
- \global\let\grp@aligned\@False
- \fi\fi
+ \if\grp@aligned
+ \ifdim\dim@a>\grp@linewidth
+ \global\let\grp@aligned\@False
+ \fi
+ \fi
\addtolength\dim@a{\grp@wdNum }% Effective length
- \if\grp@shiftnumber\else\if\grp@hasNumber\if\grp@eqs@numbered\else\ifdim\dim@a>\grp@linewidth
- \global\let\grp@shiftnumber\@True
- \fi\fi\fi\fi
+ \if\grp@shiftnumber
+ \else
+ \if\@And{\grp@hasNumber}{\@Not\grp@eqs@numbered}
+ \ifdim\dim@a>\grp@linewidth
+ \global\let\grp@shiftnumber\@True
+ \fi
+ \fi
+ \fi
\if\grp@aligned
- \global\grp@wdT\grp@wdL\global\advance\grp@wdT\grp@wdR
+ \global\grp@wdT\grp@wdL
+ \global\advance\grp@wdT\grp@wdR
\fi
- \debugmsg{======= DGROUP Formatting
- ^^J||===== \grp@wdL=\the\grp@wdL, \grp@wdR=\the\grp@wdR
- ^^J||===== Shift Number=\theb@@le\grp@shiftnumber, Eqns. numbered=\theb@@le\grp@eqs@numbered
- ^^J||===== Aligned=\theb@@le\grp@aligned
- ^^J||===== \grp@wdNum=\the\grp@wdNum}%
\setbox\GRP@wholebox\vbox{%
\let\@elt\eqgrp@elt
\the\GRP@queue
}%
- \eq@topspace{\vskip\parskip}%
- \if\grp@hasNumber\if\grp@eqs@numbered\else
+ \global\let\eq@GRP@first@dmath\@True
+ \begingroup
+ \dmath@first@leftskip
+ \eq@topspace{\vskip\parskip}%
+ \endgroup
+ \if\@And{\grp@hasNumber}{\@Not{\grp@eqs@numbered}}%
\if\grp@shiftnumber
\copy\GRP@numbox \penalty\@M
\kern\eqlineskip
@@ -1871,12 +1811,10 @@
\setlength\skip@c{\dim@a-\ht\GRP@numbox}%
\vglue\skip@c% NON discardable
\copy\GRP@numbox \penalty\@M
-\debugmsg{GROUP NUMBER: preskip:\the\skip@c, postkern:\the\dim@a, height:\the\ht\GRP@wholebox,
- ^^J||===== box height:\the\ht\GRP@numbox, box depth:\the\dp\GRP@numbox}%
\kern-\dim@a
\kern-\abovedisplayskip % To cancel the topspace above the first eqn.
\fi
- \fi\fi
+ \fi
\unvbox\GRP@wholebox
\let\@elt\relax
\eq@botspace % not needed unless bottom number?
@@ -1946,7 +1884,6 @@
}
\newenvironment{darray}{\@optarg\@darray{}}{}
\def\@darray[#1]{%
- \debugmsg{=== DARRAY ==================================================}%
\if\eq@group\else\eq@prelim\fi
\global\let\@preamble\@empty
\setkeys{breqn}{#1}%
diff --git a/Master/texmf-dist/tex/latex/mh/flexisym.sty b/Master/texmf-dist/tex/latex/mh/flexisym.sty
index 6d41ac66367..2634d311bfd 100644
--- a/Master/texmf-dist/tex/latex/mh/flexisym.sty
+++ b/Master/texmf-dist/tex/latex/mh/flexisym.sty
@@ -28,7 +28,7 @@
%% flexisym.sty, flexisym.pdf, flexisym.ins, flexisym.drv,
%% cmbase.sym, mathpazo.sym, mathptmx.sym, msabm.sym.
%%
-\ProvidesPackage{flexisym}[2007/12/10 v0.95]
+\ProvidesPackage{flexisym}[2007/12/19 v0.96]
\let\@xp\expandafter \let\@nx\noexpand
\edef\do{%
\@nx\AtEndOfPackage{%
@@ -269,11 +269,13 @@
\fi
\fi
\mathcode `\-45 \mathcode `\/47\mathcode `\:"603A\relax
+}%
}
-}
+\DeclareOption{mathstyleoff}{\PassOptionsToPackage{mathactivechars}{mathstyle}}
\DeclareOption{cmbase}{\usesymbols{cmbase}}
\DeclareOption{mathpazo}{\usesymbols{mathpazo}}
\DeclareOption{mathptmx}{\usesymbols{mathptmx}}
+\ExecuteOptions{cmbase}
\ProcessOptions\relax
\renewcommand{\lnot}{\neg}
\renewcommand{\land}{\wedge}
@@ -285,9 +287,7 @@
\renewcommand{\gets}{\leftarrow}
\renewcommand{\to}{\rightarrow}
\renewcommand{\|}{\Vert}
-\@ifpackagewith{flexisym}{mathstyleoff}{}{%
- \RequirePackage[activechars]{mathstyle}\relax
-}
+\RequirePackage{mathstyle}
\endinput
%%
%% End of file `flexisym.sty'.
diff --git a/Master/texmf-dist/tex/latex/mh/mathstyle.sty b/Master/texmf-dist/tex/latex/mh/mathstyle.sty
index f95e9ad2a22..5dc1db7caff 100644
--- a/Master/texmf-dist/tex/latex/mh/mathstyle.sty
+++ b/Master/texmf-dist/tex/latex/mh/mathstyle.sty
@@ -27,7 +27,7 @@
%% and the derived files
%% mathstyle.sty, mathstyle.pdf, mathstyle.ins, mathstyle.drv.
%%
-\ProvidesPackage{mathstyle}[2007/12/10 v0.83]
+\ProvidesPackage{mathstyle}[2007/12/19 v0.84]
\providecommand\@saveprimitive[2]{%
\begingroup
\edef\@tempa{\string#1}\edef\@tempb{\meaning#1}%
@@ -146,6 +146,7 @@
\or
\@@scriptscripstyle
\fi}
+\DeclareOption{mathactivechars}{\catcode`\^=7\relax \catcode`\_=8\relax }
\DeclareOption{activechars}{\catcode`\^=13\relax \catcode`\_=13\relax }
\ProcessOptions\relax
\ifnum\catcode`\^=13\relax
diff --git a/Master/tlpkg/bin/ctan2tds b/Master/tlpkg/bin/ctan2tds
index 3bda805457a..dde403d75bb 100755
--- a/Master/tlpkg/bin/ctan2tds
+++ b/Master/tlpkg/bin/ctan2tds
@@ -1183,10 +1183,19 @@ $standardocp='\.ocp';
);
$standardxmt='\.xmt';
-# which suffixes to remove after building
-$cleanpatt='\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot|\.bbl|\.blg|\.idx|\.ind|\.ilg|\.glo|\.gls|\.loa';
+# which suffixes to remove after building. Checked after runins and at
+# the end, in the doc directory.
+$standardclean = '\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot'
+ . '|\.bbl|\.blg|\.idx|\.ind|\.ilg|\.glo|\.gls|\.loa';
+%specialclean = (
+ 'mathexam' => 'sample.tex~',
+ 'mh' => "$standardclean|.*\.(drv|ins)", # derived from dtx's
+);
+
+# if this hash entry is specified, README.TEXLIVE is created mentioning
+# that the files were removed. These are checked after runins.
%moreclean = (
- 'AkkTeX' => 'still to do',
+ 'AkkTeX' => 'still to do, sorry',
'bbcard' => 'bbcard.tpm',
'chessboard' => 'chessboard.pdf',
'chessfss' => 'chessfonts_gallery.pdf|chessfss.pdf',
@@ -1202,8 +1211,6 @@ $cleanpatt='\.head|\.tmp|\.dvi|\.log|\.out|\.aux|\.toc|\.lof|\.lot|\.bbl|\.blg|\
'gfsneohellenic'=>'N*Specimen.pdf', # nonfree
'guitbeamer' => 'guitbeamer-de.pdf',
'jknapltx' => 'ubbold.fd', # clashes bbold's Ubbold.fd; sauter bbold fails
- 'mathexam' => 'sample.tex~',
- 'mh' => '*.drv *.ins', # derived from dtx's
'piechartmp' => 'piechartmp.pdf',
'stubs' => 'stubs.pdf',
'susy' => 'susy.pdf', # no source
@@ -1420,14 +1427,10 @@ sub donormal {
chdir("$DEST/doc/$whichdocformat/$package");
&buildfilelist;
# run the .ins files (if any) supplied
- $inspatt = $specialins{$package };
- if ($inspatt eq "") {
- $inspatt=$standardins;
- }
-
+ $inspatt = $specialins{$package} || $standardins;
$Foundry = $specialfoundry{$package} || $standardfoundry;
-
&runins($inspatt);
+
# rebuild the list of files in the directory
&buildfilelist;
@@ -1455,14 +1458,13 @@ sub donormal {
# empty directories that we never used.
&SYSTEM ("rmdir $DEST/*/$whichformat/$package 2>/dev/null");
- killfiles ($cleanpatt);
- killfiles ($moreclean{$package}, "more") if $moreclean{$package};
-
+ &killfiles ($specialclean{$package} || $standardclean);
my $postaction = $specialpostaction{$package};
eval ($postaction) if $postaction;
}
-sub runins {
+sub runins
+{
my ($thispatt) = @_;
print "\t RUNINS $thispatt\n";
for (grep (/$thispatt/, @filenames)) {
@@ -1470,6 +1472,7 @@ sub runins {
&runjob ("yes | sed 5q | $insrunner $_");
}
+ &killfiles ($specialclean{$package} || $standardclean);
&killfiles ($moreclean{$package}, "more") if $moreclean{$package};
}
@@ -1661,9 +1664,11 @@ sub killfiles
{
my ($killpatt,$more) = @_;
+ local *DOT;
+ opendir (DOT, ".") || die "opendir(.) failed: $! in " . `pwd`;
my @delfiles = ();
- for (grep (/$killpatt/, @filenames)) {
- print "\t Remove $_\n";
+ for (grep (/$killpatt/, readdir (DOT))) {
+ print "\t Removing $_\n";
if (unlink ($_)) {
push (@delfiles, $_);
} else {
@@ -2412,7 +2417,7 @@ sub MAKEfeynmf {
&dotex;
&domakeindex;
&dosource;
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEchangebar {
@@ -2441,7 +2446,7 @@ sub MAKEot2cyr {
&SYSTEM("$MV hl*.tfm ls*.tfm $DEST/fonts/tfm/bh/luccyr");
&SYSTEM("mkdir -p $DEST/fonts/vf/bh/luccyr");
&SYSTEM("$MV hl*.vf $DEST/fonts/vf/bh/luccyr");
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEsiam {
&setup;
@@ -2461,7 +2466,7 @@ sub MAKEsiam {
&SYSTEM("$MV plain/* $DEST/tex/plain/siam");
&SYSTEM("$MV amstex/*doc* $DEST/doc/amstex/siam");
&SYSTEM("$MV amstex/* $DEST/tex/amstex/siam");
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEmisc {
@@ -2470,7 +2475,7 @@ sub MAKEmisc {
&buildfilelist;
&dotex;
&domakeindex;
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEtamethebeast {
@@ -2487,7 +2492,7 @@ sub MAKEtexdraw {
&domakeindex;
&SYSTEM("mkdir -p $DEST/doc/generic/texdraw");
&SYSTEM("$MV manual/* $DEST/doc/generic/texdraw");
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEexpressg {
@@ -2520,7 +2525,7 @@ chdir("$DEST/doc/$whichdocformat/$package");
&SYSTEM("rmdir $DEST/tex/$whichformat/$package 2> /dev/null");
&SYSTEM("rmdir $DEST/doc/$whichdocformat/$package 2> /dev/null");
&SYSTEM("rmdir $DEST/source/$whichformat/$package 2> /dev/null");
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEtipa {
@@ -2701,9 +2706,9 @@ sub MAKEwilson {
&domakeindex;
&dosource;
&dotype1;
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
- killfiles($cleanpatt);
+ killfiles($standardclean);
}
sub MAKEt2 {
@@ -3048,7 +3053,7 @@ sub MAKEpst {
&dosource;
&dotex;
&dotype1;
- killfiles($cleanpatt);
+ killfiles($standardclean);
&SYSTEM("mkdir -p $DEST/tex/latex/$package");
&SYSTEM("mv $DEST/tex/generic/$package/*sty $DEST/tex/latex/$package");
&SYSTEM("mv $DEST/doc/generic/$package/*sty $DEST/tex/latex/$package");
@@ -3084,7 +3089,7 @@ sub MAKEpstgeo {
&dosource;
&dotex;
&dotype1;
- killfiles($cleanpatt);
+ killfiles($standardclean);
&SYSTEM("mkdir -p $DEST/tex/latex/$package");
&SYSTEM("mv $DEST/tex/generic/$package/*sty $DEST/tex/latex/$package");
&SYSTEM("mv $DEST/doc/generic/$package/*sty $DEST/tex/latex/$package");
@@ -3162,7 +3167,7 @@ sub MAKEpict2e {
&SYSTEM("rmdir $DEST/tex/$whichformat/$package 2> /dev/null");
&SYSTEM("rmdir $DEST/source/$whichformat/$package 2> /dev/null");
&SYSTEM("rmdir $DEST/doc/$whichdocformat/$package 2> /dev/null");
- killfiles($cleanpatt);
+ killfiles($standardclean);
}