÷ƒ’À;è TeX output 1997.03.30:1238‹ÿÿÿÿ s\È ý®£8 8G þ*’‚¢PóDÓítG®G®cmr17¹The–7tó߆µTG® cmtt12ºamsmath“¹pacŒqk‘ÿäageŽŸ)‘:•ãóX«Q cmr12»F‘ÿVrank‘ê¨Mittelbac¬rhŽŽŽŽ’®•ÇRainer‘ê¨Sc¬rh‘ú opfŽŽŽŽ’JVMic•¬rhael‘ê¨Do“wnesŽŽŽŽŽŸ’§)µDa¬rvid–ê¨M.“JonesŽŽŽŽŽŸE_’ŽØZV‘ÿVersion–ê¨1.2d,“1997/03/20ŽŸ%H¡‘#óò"V cmbx10Ä1Ž‘4?úIn®9troQÇductionŽŸÞð‘#óKñ`y cmr10²The–L¥óßêŸ'EŽ‘ãxX“pac˜k‘ÿqÇage.Ž¤ ‘#The–¨Åwš¸ãork“w˜as“done“in“1988{1989“b˜y“F‘ÿ*ªrank“Mittelbac˜h“and“Rainer“Sc˜h‘úÿÿopf.‘8BSomeŽ¡‘#later–­´mainš¸ãtenance“w˜ork“has“bGeen“done“b˜y“Mic˜hael“Do˜wnes.‘zäIn“1994“Da˜vid“M.Ž¡‘#Jones–[$added“the“suppGort“for“the“Åfleqn“²option“and“did“extensivš¸ãe“impro˜v˜emen˜tsŽ¡‘#to–athe“Åalign[at]“²family“of“en•¸ãvironmen“ts–aand“to“the“equation“n•¸ãum“bGer‘ahandlingŽ¡‘#in–åygeneral.‘L~V‘ÿ*ªersions“1.0“and“1.1“of“the“pac¸ãk‘ÿqÇage“carried“the“name“Åamstex“²insteadŽ¡‘#of–ãÅamsmath²,‘.Gto“indicate“its“origins;‘Yªthe“name“wš¸ãas“c˜hanged“in“1994“to“mak˜e“itŽ¡‘#user-orienš¸ãted–UUrather“than“history-orien˜ted.Ž© (‘2Aš¸ãt–;the“presen˜t“time“(OctobGer“1996)“user-lev˜el“doGcumen˜tation“of“the“com-Ž¡‘#mands–UUpro¸ãvided“here“is“found“in“the“ó !",š cmsy10¸A‘þU>Ÿ'MŽ‘ ‹S²-LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“users'“guide,“Åamsldoc.tex².Ž¦‘2Standard–UU le“iden¸ãti cation.Ž©'ñ‘-ª®óߤN cmtt9Æ\NeedsTeXFormat{LaTeX2e}%–¹–LaTeX“2.09“can't“be“used“(nor“non-LaTeX)Ž¤ ‘-ª®[1994/12/01]%–¹–LaTeX“date“must“December“1994“or“laterŽ¡‘-ª®\ProvidesPackage{amsmath}[1997/03/20–¹–v1.2d“AMS“math“features]ŽŸ{Ø‘#Ä2Ž‘4?úDeclare–ÕTsome“optionsŽŸÞð‘#²Handling–UUof“limits“on“in¸ãtegrals,“sums,“opGeratornames.Ž¦‘-ª®Æ\DeclareOption{intlimits}{\let\ilimits@\displaylimits}Ž¡‘-ª®\DeclareOption{nointlimits}{\let\ilimits@\nolimits}Ž¡‘-ª®\DeclareOption{sumlimits}{\let\slimits@\displaylimits}Ž¡‘-ª®\DeclareOption{nosumlimits}{\let\slimits@\nolimits}Ž¡‘-ª®\DeclareOption{namelimits}{\PassOptionsToPackage{namelimits}{amsopn}}Ž¡‘-ª®\DeclareOption{nonamelimits}{%Ž¡‘7Ú\PassOptionsToPackage{nonamelimits}{amsopn}}ŽŸ'ñ‘2²The– õfolloš¸ãwing“t˜w˜o“switc˜hes“migh˜t“ha˜v˜e“bGeen“de ned“already“b˜y“the“doGcu-ŽŸ ‘#menš¸ãtclass,–UUbut“it“doGesn't“h˜urt“to“re-execute“the“Å\newif²'s.Ž¦‘-ª®Æ\newif\ifctagsplit@Ž¡‘-ª®\newif\iftagsleft@ŽŸ'ñ‘#²Righš¸ãt–UUor“left“placemen˜t“of“equation“n˜um˜bGers.Ž¦‘-ª®Æ\DeclareOption{leqno}{\tagsleft@true}Ž¡‘-ª®\DeclareOption{reqno}{\tagsleft@false}Ž¡‘-ª®\DeclareOption{centertags}{\ctagsplit@true}ŽŽŸK’Ͳ1ŽŽŒ‹* s\È ý®£8‘Y²2’àüóp®0J cmsl10ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘cª®Æ\DeclareOption{tbtags}{\ctagsplit@false}Ž©ÝÞ‘h²The–JïÅcmex10“²option“is“an“escapšGe“hatc¸ãh“for“p˜eople“who“don't“happ˜en“to“ha•¸ãv“eŽ¤ ‘Ysizes–ã7{9“of“the“Åcmex“²fonš¸ãts“a˜v‘ÿqÇailable“to“them“y˜et.‘wr(Strictly“spGeaking“they“areŽ¡‘Yconsidered–ü}part“of“a“minimš¸ãum“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“distribution“no˜w,–&Gi.e.,“all‘ü}LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX‘ü2Ÿÿó  b> cmmi10µ"ŽŽ‘-L¤²usersŽ¡‘Yshould›UUha•¸ãv“e˜them,˜without˜needing˜to˜get˜the˜AMSF‘ÿ*ªon“ts˜distrib.)ŽŸ ÝÞ‘cª®Æ\DeclareOption{cmex10}{%Ž¤ ‘mÚ\ifnum\cmex@opt=\@ne‘¹–\def\cmex@opt{0}%Ž¡‘mÚ\else‘¹–\def\cmex@opt{10}\fiŽ¡‘cª®}Ž¦‘Y²T‘ÿ*ªo–A.help“things“wš¸ãork“out“bGetter“with“v‘ÿqÇarious“pac˜k‘ÿqÇage“loading“orders“of“ÅamsmathŽ¤ ‘Y²and–·oÅamsfonts²,‘Ïõwš¸ãe“establish“a“v‘ÿqÇariable“to“comm˜unicate“the“status“of“the“cmexŽ¡‘Yfonš¸ãt–<;de nition.‘iiIf“the“Åamsfonts“²pac˜k‘ÿqÇage“w˜as“loaded“ rst“this“v‘ÿqÇariable“migh˜t“bGeŽ¡‘Yalready–UUde ned,“in“whicš¸ãh“case“w˜e“w˜an˜t“to“preserv˜e“its“v‘ÿqÇalue.ŽŸ ÝÞ‘cª®Æ\@ifundefined{cmex@opt}{\def\cmex@opt{7}}{}Ž¦‘h²DMJ:–UUFlushleft“equations.Ž¡‘hDMJ:–`The“left“margin“of“math“en•¸ãviromen“ts–`is“conš¸ãtrolled“b˜y“Å\@mathmargin².Ž¡‘YThis–—Scan“bšGe“set“to“Å\@centering“²to“implemen¸ãt“the“default“b˜eha¸ãviour,–§Òi.e.,“cen-Ž¡‘Ytered–UUequations,“and“to“something“else“to“implemenš¸ãt“the“ ushleft“st˜yle.Ž¡‘hDMJ:– ‹In“theory‘ÿ*ª,‘+all“that's“needed“to“activ‘ÿqÇate“the“ ushleft“moGde“in“the“AMSŽ¡‘YdoGcumenš¸ãt–UUclasses“is“something“lik˜e“this:ŽŸww‘]¹–Æ\DeclareOption{fleqn}{%Ž¤ ‘g,Â\AtBeginDocument{\@mathmargin30pt}%Ž¡‘]¹–}Ž¡Ÿww‘Y²DMJ:–Ç(In“fact,‘ãunless“the“doGcumenš¸ãt“class“w˜an˜ts“to“spGecify“the“Å\@mathmargin²,ŽŸ ‘Yit–UUdoGesn't“need“to“do“an¸ãything“with“the“Åfleqn“²option.)ŽŸ ÝÞ‘cª®Æ\newif\if@fleqnŽ¡‘cª®%Ž¡‘cª®\newskip\@mathmarginŽ¡‘cª®\@mathmargin\@centeringŽ¡‘cª®%Ž¡‘cª®\DeclareOption{fleqn}{%Ž¡‘v‘\@fleqntrueŽ¡‘v‘\@mathmargin–¹–=“-1spŽ¡‘v‘\AtBeginDocument{%Ž¡’‰w^\ifdim\@mathmargin=‘¹–-1spŽ¡’œ]¶\@mathmargin\leftmarginiŽ¡’‰w^\fiŽ¡‘v‘}%Ž¡‘cª®}Ž¦‘h²DMJ:–ýkThis“ensures“that“Å\@mathmargin“²is“giv¸ãen“some“sort“of“sensible“defaultŽ¤ ‘Yif–æˆthe“class“došGesn't“sp˜ecify“one,‘ü±while“still“alloš¸ãwing“a“user“to“o˜v˜erride“the“defaultŽ¡‘Yv‘ÿqÇalue–Aein“their“doGcumenš¸ãt“pream˜ble.‘k"(Inciden˜tally‘ÿ*ª,‘EbI'm“initializing“Å\@mathmarginŽ¡‘Y²to–|Å\leftmargini“²for“compatibilitš¸ãy“with“Åfleqn.clo²,‘§„but“I'm“not“at“all“con˜vincedŽ¡‘Ythat's–UUthe“righ¸ãt“thing“to“do.)ŽŽŽŒ‹  s\È ý®£8‘#Ç2.‘ÇDECLARE–UUSOME“OPTIONS’À£{²3ŽŽ 8G ýä‘2DMJ:–ÐòThe“next“question“is“what“happGens“when“amsmath“is“used“with“one“ofŽ¤ ‘#the–h"standard“classes.‘ª-Unfortunately‘ÿ*ª,‘lÕLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“implemen¸ãts“Åfleqn“²somewhat“clum-Ž¡‘#sily;‘¦ïinstead–6fof“paramaterizing“the“de nitions“of“the“math“structures“(as“I'v¸ãeŽ¡‘#attempted–D:to“do“here),‘G¦Åfleqn.clo“²declares“a“dimen“Å\mathindent“²that“is“m•¸ãuc“hŽ¡‘#lik•¸ãe›¹@m“y˜Å\@mathmargin˜²and˜then˜rede nes˜Å\[²,–Ò;Å\]²,“Å\equation²,“and˜Å\eqnarray².Ž¡‘#This–°2means“that“things“could“get“rather“messy“in“2.09“compatibilit¸ãy“moGde,‘Ñ9sinceŽ¡‘#Åfleqn.clo–P²mighš¸ãt“bGe“loaded“after“Åamsmath.sty²,‘Q!whic˜h“could“cause“a“real“mess.Ž¡‘#(This–ßwš¸ãon't“bGe“a“problem“in“2e“nativ˜e“moGde,‘÷since“Åamsmath².st˜y“w˜ould“alw˜a˜ys“bGeŽ¡‘#loaded– ºafter“Åfleqn.clo²,‘6Òso“the“only“question“is“whether“Åamsmath.sty“²shouldŽ¡‘#try–çžto“makš¸ãe“sure“that“Åeqnarray“²gets“inden˜ted“b˜y“the“same“amoun˜t“as“all“theŽ¡‘#Åamsmath–@™²structures“b¸ãy‘ÿ*ª,›{ifor“example,˜sa¸ãying“Å\let\mathindent\@mathmargin².)Ž¡‘#I‘]really–]Rdon't“knoš¸ãw“what“to“do“in“compatibilit˜y“mo•Gde,‘ŸQthough.‘‰¿Ma˜yb“e‘]RbindŽ¡‘#Å\mathindent–Ÿl²to“Å\@mathmargin“²if“it's“de ned“and“do“something“lik¸ãe“this“if“it'sŽ¡‘#not:ŽŸ–—‘'¹–Æ\@ifundefined{mathindent}{%Ž¤ ‘1,Â\AtBeginDocument{%Ž¡‘:Ÿî\@ifundefined{mathindent}{}%Ž¡‘D{warning–¹–about“loading“fleqn.clo“after“amsmath.sty}}%Ž¡‘'¹–}{%Ž¡‘1,Â\let\mathindent\@mathmarginŽ¡‘'¹–}Ž¡Ÿ–—‘#²This–UUw¸ãould“at“least“detect“when“Åfleqn.clo“²is“loaded“after“Åamsmath.sty².ŽŸKK‘-ª®Æ\ExecuteOptions{nointlimits,sumlimits,namelimits,centertags}ŽŸKK‘#²The–™àÅ\relax“²after“Å\ProcessOptions“²is“to“ensure“the“correct“line“n•¸ãum“bGer‘™àonŽ¤ ‘#screen–‡hif“an“error“ošGccurs“during“option“pro˜cessing;‘ qotherwise“the“lo˜ok‘ÿqÇahead“forŽ¡‘#a–UUÅ*“²option“wš¸ãould“result“in“T‘þU>Ÿ'EŽ‘ãxX“sho˜wing“the“follo˜wing“line“instead.Ž© ¥¦‘-ª®Æ\ProcessOptions\relaxŽŸ¥¦‘2²ProšGcessing–þto“handle“the“Åcmex10“²option“is“a“little“tric¸ãky“b˜ecause“of“di eren¸ãtŽ¡‘#pGossible–­¤loading“orders“for“Åamsmath“²and“Åamsfonts².‘zµThe“pac¸ãk‘ÿqÇage“Åamsmath“²setsŽ¡‘#the–ø¤Å\cmex@opt“² ag“to“7“or“10,‘ .and“the“pac¸ãk‘ÿqÇage“Åamsfonts“²sets“the“ ag“to“1“or“0.Ž¦‘-ª®Æ\ifnum\cmex@opt=7‘¹–\relaxŽ¤ ‘7Ú\DeclareFontShape{OMX}{cmex}{m}{n}{%Ž¡‘@‘<-8>cmex7<8>cmex8<9>cmex9%Ž¡‘@‘<10><10.95><12><14.4><17.28><20.74><24.88>cmex10%Ž¡‘7Ú}{}%Ž¡‘7Ú\expandafter\let\csname‘¹–OMX/cmex/m/n/10\endcsname\relaxŽ¡‘-ª®\elseŽ¡‘7Ú\ifnum\cmex@opt=\z@–¹–%“need“to“override“cmex7“fontdef“from“amsfontsŽŸ¥¦‘#²F‘ÿ*ªorce–UUreloading“of“the“OMX/cmex“fon¸ãt“de nition“ le.Ž¦‘@‘Æ\begingroupŽ¡‘@‘\fontencoding{OMX}\fontfamily{cmex}%Ž¡‘@‘\expandafter\let\csname‘¹–OMX+cmex\endcsname\relaxŽ¡‘@‘\try@load@fontshapeŽ¡‘@‘\endgroupŽŽŽŒ‹Ò s\È ý®£8‘Y²4’àüÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²The–ÃÅcmex10“²fon¸ãt“gets“spGecial“preload“handling“in“the“building“of“the“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxXŽ© ‘Yformat–UU le,“need“an“extra“bit“here“to“w¸ãork“around“that.ŽŸ™Y‘v‘Æ\expandafter\let\csname‘¹–OMX/cmex/m/n/10\endcsname\relaxŽ¤ ‘v‘\def\cmex@opt{10}%Ž¡‘mÚ\fiŽ¡‘cª®\fiŽŸJ‘YÄ3Ž‘j?úCall–ÕTsome“other“pac®9k‘ÿ\ragesŽŸ|‘Y²The–i}Åamstext“²pacš¸ãk‘ÿqÇage“pro˜vides“the“Å\text“²command.‘®@The“Åamsbsy“²pac˜k‘ÿqÇage“pro-Ž¦‘Yvides–8ãÅ\boldsymbol“²and“Å\pmb².‘÷The“Åamsopn“²pacš¸ãk‘ÿqÇage“pro˜vides“Å\DeclareMathOperator².Ž©™Y‘cª®Æ\RequirePackage{amstext}[1995/01/25]Ž¡‘cª®\RequirePackage{amsbsy}[1995/01/20]Ž¡‘cª®\RequirePackage{amsopn}[1995/01/20]ŽŸJ‘YÄ4Ž‘j?úMiscellaneousŽŸ|‘ÙÌÆ\@amsmath@errŽŽŽ‘Y²De ning–UUthis“error“function“sa•¸ãv“es–UUmain“mem.Ž¦‘cª®Æ\def\@amsmath@err{\PackageError{amsmath}}ŽŸБ<`\AmSŽŽŽ‘Y²The–* Å\AmS‘)Õ²pre x“can“bGe“used“to“construct“the“com¸ãbination“Å\AmS-\LaTeX².“W‘ÿ*ªeŽ¤ ‘Ycall–­ùcmsy“directly“in“lieu“of“trying“to“access“it“through“the“math“fon¸ãts“setup“(e.g.Ž¡‘YÅ\the\textfont2²)–õœbšGecause“math“fon¸ãts“can't“b˜e“relied“on“to“b˜e“prop˜erly“set“up“ifŽ¡‘Ywš¸ãe–pîare“not“inside“a“math“form˜ula.‘Ä“This“means“that“if“this“command“is“used“inŽ¡‘Ya–KRdoGcumenš¸ãt“where“CM‘KPfon˜ts“are“not“w˜an˜ted,‘MSthen“a“fon˜t“substitution“will“needŽ¡‘Yto–UUbGe“declared,“e.g.:ŽŸБ]¹–Æ\DeclareFontShape{OMS}{cmsy}{m}{n}{–¹–<->“sub“*“xxx/m/n“}{}Ž¤ ŸÑ‘Y²where–UUÅxxx“²is“some“alternate“fon¸ãt“family‘ÿ*ª.Ž¦‘cª®Æ\def\AmS{{\protect\AmSfontŽ¡‘mÚA\kern-.1667em\lower.5ex\hbox{M}\kern-.125emS}}ŽŸ™Y‘Y²T‘ÿ*ªaking–Î9the“ rst“letter“of“Å\f@series“²will“proGduce“Åb“²or“Åm“²for“the“most“com-Ž¤ ‘Ymon–Êïv‘ÿqÇalues“(Åb,bx,m²).‘Ò•It“maš¸ãy“proGduce“nonsense“for“more“un˜usual“v‘ÿqÇalues“ofŽ¡‘YÅ\f@series²,‘¬so–Q›for“safetš¸ãy's“sak˜e“w˜e“ha˜v˜e“an“additional“Å\if“²test.‘f˜W‘ÿ*ªe“w˜an˜t“toŽ¡‘Ya•¸ãv“oid– ßsetting“the“series“to“Åbx“²bGecause“in“a“standard“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“installation“the“com-Ž¡‘Ybination–ØHÅcmsy/bx/n“²doGes“not“ha•¸ãv“e–ØHa“fonš¸ãt“de nition,‘ùand“the“user“w˜ould“get“aŽ¡‘Yfonš¸ãt–UUsubstitution“w˜arning“on“screen.Ž¦‘cª®Æ\def\AmSfont{%ŽŸ ‘mÚ\usefont{OMS}{cmsy}{\if\@xp\@car\f@series\@nil–¹–bb\else“m\fi}{n}}ŽŸБh²W‘ÿ*ªe–Y8rede ne“Å\pr@m@s“²to“mak¸ãe“the“pGossibilities“Åx^2'“²and“Åx'^2“²equally“disal-Ž¡‘Ylo•¸ãw“ed–ùäinstead“of“alloš¸ãwing“one“and“not“the“other.‘_uCf“Spiv‘ÿqÇak's“commen˜tary“onŽ¡‘Yplain–*T‘þU>Ÿ'EŽ‘ãxX's“suppšGort“for“the“latter“p˜ossibilit¸ãy“in“App˜endix“D‘)öof“óý': cmti10ÉThe–l Joy“of“T‘þKß'EŽ‘Í-XŽ¡‘Y²(2nd–UUedition,“1990).Ž¦‘cª®Æ\def\pr@m@s{%ŽŸ ‘mÚ\ifx\@let@token'\DN@##1{\prim@s}\else\let\next@\egroup\fi\next@}ŽŽŽŒ‹!Ž s\È ý®£8‘#Ç4.‘ÇMISCELLANEOUS’ìñ¸²5ŽŽ 8G ýä‘#And–w nally‘ÿ*ª,‘??a“slighš¸ãt“amendmen˜t“to“Å\prim@s“²is“needed“if“a“June“94“release“ofŽ¤ ‘#LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX–UUis“in“use.Ž©6m‘-ª®Æ\def\prim@s{\prime\futurelet\@let@token\pr@m@s}ŽŸ6m‘#²W‘ÿ*ªe–ßÿrede ne“Å\prime“²to“add“a“leading“nš¸ãull“k˜ern“so“that“something“lik˜eŽ¡‘#Å^{\mathcal{A}\prime}–YM²will“not“erroneously“cause“the“sk•¸ãew“c“har›YMk“ern˜for˜theŽ¡‘#letter–"¸A“²to“bGe“inserted.‘I/(In“the“original“T‘þU>Ÿ'EŽ‘ãxX“fonš¸ãt“la˜y˜out“for“Åcmsy10“²the“primeŽ¡‘#c•¸ãharacter›òÕserv“es˜as˜the˜Å\skewchar˜²of˜the˜fon“t.)‘PòThe˜extra˜braces˜allo“w˜Å^\primeŽ¡‘#²to–Wjwš¸ãork.‘x(Rule“of“th˜um˜b:‘uñthe“user“should“bGe“allo˜w˜ed“to“t˜ypGe“a“`simple“sym˜bGol'Ž¡‘#supGerscript–UUwithout“the“braces“if“they“wish.)Ž¦‘-ª®Æ\let\@prime=\primeŽŸ ‘-ª®\renewcommand{\prime}{{\kern\z@\@prime}}ŽŸ6m‘2²Fill–=in“some“gaps“in“the“set“of“spacing“commands,‘‰·and“makš¸ãe“them“all“w˜orkŽ¡‘#equally–¯wš¸ãell“in“or“out“of“math.‘~ÊMa˜ybšGe“also“(or“instead?)‘~Êusers“should“b˜e“toldŽ¡‘#hoš¸ãw–UUto“use“Å\mkern“²or“Å\mskip“²for“an˜y“un˜usual“spacing“in“math.ŽŸ ‘2W‘ÿ*ªe›0•w•¸ãan“t˜all˜these˜commands˜to˜bGe˜robust˜but˜declaring˜them˜all˜withŽ¡‘#Å\DeclareRobustCommand–ˆ²uses“up“an“con¸ãtrol“sequence“name“pGer“command;Ž¡‘#to›eúa•¸ãv“oid˜this,‘ª$w“e˜de ne˜a˜common˜command˜Å\tmspace˜²(text-or-math˜space)Ž¡‘#whic¸ãh–êcarries“the“robustness“burden“for“all“of“them.‘ 0 The“standard“Å\relaxŽ¡‘#²bšGefore–the“Å\ifmmode“²is“not“necessary“b˜ecause“of“the“Å\protect“²added“b¸ãyŽ¡‘#Å\DeclareRobustCommand².Ž¦‘-ª®Æ\DeclareRobustCommand{\tmspace}[3]{%Ž¤ ‘7Ú\ifmmode\mskip#1#2\else\kern#1#3\fi\relax}Ž¡‘-ª®\renewcommand{\,}{\tmspace+\thinmuskip{.1667em}}Ž¡‘-ª®\let\thinspace\,Ž¡‘-ª®\renewcommand{\!}{\tmspace-\thinmuskip{.1667em}}Ž¡‘-ª®\let\negthinspace\!Ž¡‘-ª®\renewcommand{\:}{\tmspace+\medmuskip{.2222em}}Ž¡‘-ª®\let\medspace\:Ž¡‘-ª®\newcommand{\negmedspace}{\tmspace-\medmuskip{.2222em}}Ž¡‘-ª®\renewcommand{\;}{\tmspace+\thickmuskip{.2777em}}Ž¡‘-ª®\let\thickspace\;Ž¡‘-ª®\newcommand{\negthickspace}{\tmspace-\thickmuskip{.2777em}}ŽŸÁƒ‘ø3P\mspaceŽŽŽ‘#²And–)while“wš¸ãe're“at“it,‘1àwh˜y“don't“w˜e“pro˜vide“an“equiv‘ÿqÇalen˜t“of“Å\hspace“²for“mathŽ¤ ‘#mošGde–Ycuse.‘}ðThis“allo¸ãws“use“of“Åmu“²units“in“(for“example)“constructing“comp˜oundŽ¡‘#math‘UUsym¸ãbGols.Ž¦‘-ª®Æ\newcommand{\mspace}[1]{\mskip#1\relax}ŽŸ4i‘2²Remo•¸ãv“e–Ëòthe“`v‘ÿqÇariable'“cošGde“7“at“the“b˜eginning“of“cap“Greek“mathc¸ãhard-Ž¡‘#efs.‘®öThese–¿letters“should“only“bšGe“made“b˜old“via“Å\boldsymbol²,‘Ù~for“consistencyŽ¡‘#with›‡lo•¸ãw“ercase˜Greek.‘If˜cap˜Gamma˜doGes˜not˜ha“v“e˜the˜expGected˜de nitionŽ¡‘#(Å\mathchar"7000²),‘ö…skip–ÖIthis“section.‘ô¢That“probably“means“a“preceding“pac¸ãk-Ž¡‘#age–ÅZhas“cš¸ãhanged“to“a“di eren˜t“set“of“math“fon˜ts“(e.g.,‘á[Euler)“and“the“GammaŽ¡‘#de nition–UUhas“c¸ãhanged.Ž¦‘-ª®Æ\begingroup\catcode`\"=12ŽŽŽŒ‹-  s\È ý®£8‘Y²6’àüÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²In–muthis“test“wš¸ãe“assume“that“Å\Gamma“²and“the“other“cap“Greek“letters“are“alw˜a˜ysŽ¤ ‘Ymathcš¸ãhardefs,‘ßKand–ÁÈget“the“math“sym˜bšGol“co˜de“through“Å\meaning².‘@˜If“the“ rst“hexŽ¡‘Ydigit–”is“a“7“Éand‘²the“sym¸ãbšGol“co˜de“is“not“less“then“four“digits,‘"Uthen“wš¸ãe“c˜hange“theŽ¡‘Y7–UUto“a“0.Ž©qÇ‘cª®Æ\def\@tempa#1{\expandafter\@tempb\meaning#1\relax\relax\relax\relax"0000\@nil#1}Ž¤ ‘cª®\def\@tempb#1"#2#3#4#5#6\@nil#7{%Ž¡‘mÚ\ifnum"#2=7‘¹–\count@"1#3#4#5\relaxŽ¡‘v‘\ifnum\count@<"1000–¹–\else“\global\mathchardef#7="0#3#4#5\relax“\fiŽ¡‘mÚ\fi}Ž¡‘cª®\@tempa\Gamma–¹–\@tempa\Delta“\@tempa\Theta“\@tempa\Lambda“\@tempa\XiŽ¡‘cª®\@tempa\Pi–¹–\@tempa\Sigma“\@tempa\Upsilon“\@tempa\Phi“\@tempa\PsiŽ¡‘cª®\@tempa\OmegaŽŸqÇ‘Y²The–¼v‘ÿqÇarianš¸ãt“italic“cap“Greek“letters“are“not“de ned“b˜y“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX.‘¥ÑIf“no“precedingŽŸ ‘Ypacš¸ãk‘ÿqÇage–UUde ned“these,“w˜e“will“de ne“them“no˜w.Ž¦‘cª®Æ\@ifundefined{varGamma}{%Ž¡‘mÚ\DeclareMathSymbol{\varGamma}{\mathord}{letters}{"00}Ž¡‘mÚ\DeclareMathSymbol{\varDelta}{\mathord}{letters}{"01}Ž¡‘mÚ\DeclareMathSymbol{\varTheta}{\mathord}{letters}{"02}Ž¡‘mÚ\DeclareMathSymbol{\varLambda}{\mathord}{letters}{"03}Ž¡‘mÚ\DeclareMathSymbol{\varXi}{\mathord}{letters}{"04}Ž¡‘mÚ\DeclareMathSymbol{\varPi}{\mathord}{letters}{"05}Ž¡‘mÚ\DeclareMathSymbol{\varSigma}{\mathord}{letters}{"06}Ž¡‘mÚ\DeclareMathSymbol{\varUpsilon}{\mathord}{letters}{"07}Ž¡‘mÚ\DeclareMathSymbol{\varPhi}{\mathord}{letters}{"08}Ž¡‘mÚ\DeclareMathSymbol{\varPsi}{\mathord}{letters}{"09}Ž¡‘mÚ\DeclareMathSymbol{\varOmega}{\mathord}{letters}{"0A}Ž¡‘cª®}{}Ž¡‘cª®\endgroupŽŸqÇ‘h²The–ˆzreason“for“rede ning“Å\@@sqrt“²(used“b¸ãy“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's“de nition“of“Å\sqrt²)“toŽ¤ ‘Yread–ä;an“argumen¸ãt“is“discussed“in“Spiv‘ÿqÇak's“Åamstex.doc².‘LAs“an“example,‘úÚif“Å\xD‘ä²isŽ¡‘Yde ned–bas“Å\not‘?ýD›b²then“Å\sqrt\xD˜²prošGduces“this:‘‹FŸøs3¸pŽ‘ à6ŽŽŽ‘ àµD˜²,‘eEwith“the“slash“separatedŽ¡‘Yfrom–çÑthe“µDšG².‘MF(The“same“thing“happ˜ens“with“Å^\xD²,“bš¸ãy“the“w˜a˜y‘ÿ*ª,‘ý¸but“that“is“not“soŽ¡‘Yeasy–ýRto“ x.)‘TqThis“re nemenš¸ãt“doGesn't“gain“m˜uc˜h“if“the“user“is“careful“and“alw˜a˜ysŽ¡‘Yputs–UUbraces“around“the“argumen¸ãt“of“Å\sqrt²,“but“it“costs“little.Ž¦‘cª®Æ\begingroup‘¹–\catcode`\"=12Ž¤ ‘cª®\gdef\@@sqrt#1{\radical"270370‘¹–{#1}}Ž¡‘cª®\endgroupŽŸqÇ‘hÅ\overline@–‹´²replaced“bš¸ãy“Å\@@overline²,‘´to“bGe“consisten˜t“with“the“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“nameŽŸ ‘YÅ\@@underline².‘qÇÅ\overline–UU²is“rede ned“for“the“same“reason“as“with“Å\@@sqrt².Ž¦‘cª®Æ\@saveprimitive\overline\@@overlineŽ¡‘cª®\def\overline#1{\@@overline{#1}}ŽŸqÇ‘h²The–,pÅ\boxed“²command“is“spšGeci cally“in¸ãtended“to“put“a“b˜o¸ãx“around“an“equa-Ž¤ ‘Ytion–%or“piece“of“an“equation.›Z·(Not“incl.˜the“equation“n•¸ãum“bGer.)˜This–%isn't“trivialŽ¡‘Yfor–UUend-users“to“do“it“propGerly“with“Å\fbox“²so“wš¸ãe“pro˜vide“a“command“for“them.Ž¦‘cª®Æ\def\boxed#1{\fbox{\m@th$\displaystyle#1$}}ŽŽŽŒ‹9. s\È ý®£8‘#Ç4.‘ÇMISCELLANEOUS’ìñ¸²7ŽŽ 8G ýä‘-ª®Æ\def\implies{\DOTSB\;\Longrightarrow\;}Ž¤ ‘-ª®\def\impliedby{\DOTSB\;\Longleftarrow\;}ŽŸlO‘-ª®\begingroup–¹–\catcode`\"=12“%“in“case“activated“by“a“preceding“packageŽ¡‘-ª®\gdef\And{\DOTSB\;\mathchar"3026‘¹–\;}ŽŸŠ‘2²Add–âleft/righš¸ãt“spGeci c“v˜ersions“of“Å\vert²,‘ù&Å\Vert².‘K^Don't“assume“the“delimiterŽ© ‘#coGdes–UUare“the“CM“defaults.ŽŸlO‘-ª®Æ\@tempcnta=\@xp\@gobble\vert–¹–\advance\@tempcnta“"4000000Ž¡‘-ª®\xdef\lvert{\delimiter\number\@tempcnta\space‘¹–}Ž¡‘-ª®\advance\@tempcnta‘¹–"1000000Ž¡‘-ª®\xdef\rvert{\delimiter\number\@tempcnta\space‘¹–}Ž¡‘-ª®\@tempcnta=\@xp\@gobble\Vert–¹–\advance\@tempcnta“"4000000Ž¡‘-ª®\xdef\lVert{\delimiter\number\@tempcnta\space‘¹–}Ž¡‘-ª®\advance\@tempcnta‘¹–"1000000Ž¡‘-ª®\xdef\rVert{\delimiter\number\@tempcnta\space‘¹–}Ž¡‘-ª®\endgroup–¹–%“restore“"ŽŸlO‘2²Bury–ÿthe“generalized“fraction“primitiv¸ães“Å\over²,–WÅ\atop²,“etc.,“bGecause–ÿof“theirŽ¦‘#bizarre–UUsynš¸ãtax,“whic˜h“is“decidedly“out“of“place“in“a“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“doGcumen˜t.ŽŸlO‘-ª®Æ\@saveprimitive\over\@@overŽ¡‘-ª®\@saveprimitive\atop\@@atopŽ¡‘-ª®\@saveprimitive\above\@@aboveŽ¡‘-ª®\@saveprimitive\overwithdelims\@@overwithdelimsŽ¡‘-ª®\@saveprimitive\atopwithdelims\@@atopwithdelimsŽ¡‘-ª®\@saveprimitive\abovewithdelims\@@abovewithdelimsŽŸlO‘2²If–',someone“insists“on“using“Å\over²,‘[¢givš¸ãe“a“w˜arning“the“ rst“time“and“thenŽ¦‘#resurrect–UUthe“old“de nition.‘qÇLaissez-faire“pGolicy‘ÿ*ª.ŽŸlO‘-ª®Æ\DeclareRobustCommand{\primfrac}[1]{%Ž¡‘7Ú\PackageWarning{amsmath}{%Ž¡‘-ª®Foreign–¹–command“\@backslashchar#1;“%Ž¡‘-ª®\protect\frac\space–¹–or“\protect\genfrac\space“should“be“used“instead%Ž¡‘7Ú}Ž¡‘7Ú\global\@xp\let\csname#1\@xp\endcsname\csname‘¹–@@#1\endcsnameŽ¡‘7Ú\csname#1\endcsnameŽ¡‘-ª®}Ž¡‘-ª®\renewcommand{\over}{\primfrac{over}}Ž¡‘-ª®\renewcommand{\atop}{\primfrac{atop}}Ž¡‘-ª®\renewcommand{\above}{\primfrac{above}}Ž¡‘-ª®\renewcommand{\overwithdelims}{\primfrac{overwithdelims}}Ž¡‘-ª®\renewcommand{\atopwithdelims}{\primfrac{atopwithdelims}}Ž¡‘-ª®\renewcommand{\abovewithdelims}{\primfrac{abovewithdelims}}ŽŸlO‘2Å\frac–ê²calls“Å\over“²directly“instead“of“via“Å\genfrac²,‘ÿ{for“bšGetter“sp˜eed“b˜ecauseŽ¦‘#it–­is“so“common.‘ÎÅ\tfrac“²and“Å\dfrac“²are“abbreviations“for“some“commonlyŽ¦‘#needed–)æmathstš¸ãyle“o˜v˜errides.‘cMT‘ÿ*ªo“conserv˜e“csnames“w˜e“a˜v˜oid“making“Å\dfrac“²andŽ¦‘#Å\tfrac–UU²robust“(Å\genfrac“²is“itself“robust).ŽŸlO‘-ª®Æ\DeclareRobustCommand{\frac}[2]{{\begingroup#1\endgroup\@@over#2}}Ž¡‘-ª®\newcommand{\dfrac}{\genfrac{}{}{}0}Ž¡‘-ª®\newcommand{\tfrac}{\genfrac{}{}{}1}ŽŽŽŒ‹E´ s\È ý®£8‘Y²8’àüÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²The–¾Å\binom“²command“for“binomial“notation“wš¸ãorks“lik˜e“Å\frac“²and“has“similarŽ¤ ‘Yv‘ÿqÇarianš¸ãts.‘5)Note–Ÿythat“w˜e“do“not“use“Å\z@“²in“Å\dbinom“²and“Å\tbinom“²bGecause“they“areŽ¡‘Ynot–r"top-levš¸ãel“robust“lik˜e“Å\binom²,‘Ÿ“and“so“the“Å\z@“²with“the“pGoten˜tially“problematicŽ¡‘YÅ@–ƒF²cš¸ãharacter“w˜ould“bGecome“visible“when“writing“one“of“those“commands“to“a“Å.tocŽ¡‘Y² le.Ž©\r‘cª®Æ\DeclareRobustCommand{\binom}{\genfrac()\z@{}}Ž¤ ‘cª®\newcommand{\dbinom}{\genfrac(){0pt}0}Ž¡‘cª®\newcommand{\tbinom}{\genfrac(){0pt}1}ŽŸÒ‘)yº\genfracŽŽŽ‘Y²This–¶ñcommand“proš¸ãvides“access“to“T‘þU>Ÿ'EŽ‘ãxX's“generalized“fraction“primitiv˜es.‘–œArgs:Ž¤ ‘YÅ#1–î9²left“delim,›qÅ#2“²righ¸ãt“delim,˜Å#3“²line“thic¸ãkness,˜Å#4“²mathstš¸ãyle“o˜v˜erride,‘qÅ#5“²n˜u-Ž¡‘Ymerator,›L÷Å#6–Jà²denominator.‘nKBut“w¸ãe“only“read“the“ rst“four“args“at“ rst,˜in“orderŽ¡‘Yto–Ägivš¸ãe“us“a“momen˜t“to“select“the“propGer“generalized“fraction“primitiv˜e.‘§An˜yŽ¡‘Yof–@íthose“four“args“could“bGe“emptš¸ãy‘ÿ*ª,‘{Óand“when“empt˜y“the“ob˜vious“defaults“areŽ¡‘Yselected–ó‰(no“delimiters,›default“line“thic¸ãkness“(normally“.4pt),˜and“no“mathst¸ãyleŽ¡‘Yo•¸ãv“erride).Ž¦‘cª®Æ\DeclareRobustCommand{\genfrac}[4]{%Ž¤ ‘mÚ\def\@tempa{#1#2}%Ž¡‘mÚ\edef\@tempb{\@nx\@genfrac\@mathstyle{#4}%Ž¡‘v‘\csname–¹–@@\ifx“@#3@over\else“above\fiŽ¡‘v‘\ifx\@tempa\@empty–¹–\else“withdelims\fi\endcsname}Ž¡‘mÚ\@tempb{#1#2#3}}ŽŸ\r‘YÅ\@genfrac–°Z²takš¸ães“the“preceding“argumen˜ts“and“reads“the“n˜umerator“and“de-Ž¤ ‘Ynominator.‘çåNote–'_that“there's“no“con•¸ãv“enien“t›'_w“a“y˜to˜mak“e˜the˜n“umerator˜andŽ¡‘Ydenominator›UUÉc‘ÿ}'ontents‘'v²displa•¸ãyst“yle,˜through˜this˜in“terface.ŽŸ *‘hArgs:‘°×Å#1–tݲmathstš¸ãyle,‘|¿Å#2“²fraction“primitiv˜e,‘|¿Å#3“²delimiters“and“rule“thic˜kness,Ž¡‘YÅ#4–UU²n¸ãumerator,“Å#5“²denominator.Ž¦‘cª®Æ\def\@genfrac#1#2#3#4#5{{#1{\begingroup#4\endgroup#2#3\relax#5}}}ŽŸ¨‘h²Empt•¸ãy›Æmathst“yle˜arg:‘*(no˜c“hange;‘õÖ0˜=˜displa“yst“yle,‘â½1˜=˜textst“yle,‘â½2˜=˜script-Ž¡‘Ystš¸ãyle,–UU3“=“scriptscriptst˜yle.Ž¦‘cª®Æ\def\@mathstyle#1{%Ž¤ ‘mÚ\ifx\@empty#1\@empty\relaxŽ¡‘mÚ\else\ifcase#1\displaystyle–¹–%“case“0Ž¡‘v‘\or\textstyle\or\scriptstyle\else\scriptscriptstyle\fi\fi}ŽŸ\r‘hÅ\colon–år²is“for“a“colon“in“math“that“resem¸ãbles“a“text“colon:‘’small“space“onŽ¤ ‘Ythe–dêleft,‘¨Îlarger“space“on“the“righš¸ãt.‘ …The“Å:‘ð²c˜haracter“b˜y“itself“is“treated“as“aŽ¡‘YÅ\mathrel–UU²i.e.‘qÇlarge,“equal“spacing“on“bGoth“sides.Ž¦‘cª®Æ\def\colon{\nobreak\mskip2mu\mathpunct{}\nonscriptŽŸ ‘mÚ\mkern-\thinmuskip{:}\mskip6muplus1mu\relax}ŽŸ\r‘h²Default–UUv‘ÿqÇalue“for“sum“limits“is“Å\displaylimits²,“see“option“`nosumlimits'.ŽŸ *‘hW‘ÿ*ªe–Ò!rede ne“all“the“cum•¸ãulativ“e–Ò!opšGerator“sym¸ãb˜ols“to“add“a“Å\DOTSB‘Ñ¿²tok¸ãenŽ¡‘Yin–]ˆtheir“expansion“so“that“Å\dots“²can“c¸ãhošGose“the“prop˜er“alternativš¸ãe“if“suc˜h“aŽ¡‘Ysym•¸ãbGol›¤follo“ws.‘]ÜBut˜ rst˜w“e˜test˜to˜mak“e˜sure˜Å\coprod˜²and˜the˜others˜areŽ¡‘Ysimple–UUmathcš¸ãhars;“if“not,“w˜e'd“bGetter“not“c˜hange“them.ŽŽŽŒ‹ P s\È ý®£8‘#Ç4.‘ÇMISCELLANEOUS’ìñ¸²9ŽŽ 8G ýä‘-ª®Æ\begingroup‘¹–\catcode`\"=12Ž¤ ‘-ª®\edef\@tempa{\string\mathchar"}Ž¡‘-ª®\def\@tempb#1"#2\@nil{#1"}Ž¡‘-ª®\edef\@tempc{\expandafter\@tempb\meaning\coprod‘¹–"\@nil}Ž¡‘-ª®\ifx\@tempa\@tempcŽ¡‘7Ú\global\let\coprod@\coprodŽ¡‘7Ú\gdef\coprod{\DOTSB\coprod@\slimits@}Ž¡‘7Ú\global\let\bigvee@\bigveeŽ¡‘7Ú\gdef\bigvee{\DOTSB\bigvee@\slimits@}Ž¡‘7Ú\global\let\bigwedge@\bigwedgeŽ¡‘7Ú\gdef\bigwedge{\DOTSB\bigwedge@\slimits@}Ž¡‘7Ú\global\let\biguplus@\biguplusŽ¡‘7Ú\gdef\biguplus{\DOTSB\biguplus@\slimits@}Ž¡‘7Ú\global\let\bigcap@\bigcapŽ¡‘7Ú\gdef\bigcap{\DOTSB\bigcap@\slimits@}Ž¡‘7Ú\global\let\bigcup@\bigcupŽ¡‘7Ú\gdef\bigcup{\DOTSB\bigcup@\slimits@}Ž¡‘7Ú\global\let\prod@\prodŽ¡‘7Ú\gdef\prod{\DOTSB\prod@\slimits@}Ž¡‘7Ú\global\let\sum@\sumŽ¡‘7Ú\gdef\sum{\DOTSB\sum@\slimits@}Ž¡‘7Ú\global\let\bigotimes@\bigotimesŽ¡‘7Ú\gdef\bigotimes{\DOTSB\bigotimes@\slimits@}Ž¡‘7Ú\global\let\bigoplus@\bigoplusŽ¡‘7Ú\gdef\bigoplus{\DOTSB\bigoplus@\slimits@}Ž¡‘7Ú\global\let\bigodot@\bigodotŽ¡‘7Ú\gdef\bigodot{\DOTSB\bigodot@\slimits@}Ž¡‘7Ú\global\let\bigsqcup@\bigsqcupŽ¡‘7Ú\gdef\bigsqcup{\DOTSB\bigsqcup@\slimits@}Ž¡‘-ª®\fiŽ¡‘-ª®\endgroupŽŸ‘‘à“b\nobreakdashŽŽŽ‘#²The–y{command“Å\nobreakdash“²is“designed“only“for“use“bGefore“a“h¸ãyphen“or“dashŽ¤ ‘#(Å-²,–˜âÅ--²,“or–‹_Å---²).‘åSetting“the“hš¸ãyphen“in“a“bGo˜x“and“then“un˜bGo˜xing“it“means“thatŽ¡‘#the–1Änormal“pšGenalt¸ãy“will“not“b˜e“added“after“it|and“if“the“p˜enalt¸ãy“is“not“there“aŽ¡‘#break–îCwill“not“bšGe“tak¸ãen“(unless“an“explicit“p˜enaltš¸ãy“or“glue“follo˜ws,‘àth˜us“the“ nalŽ¡‘#Å\nobreak²).Ž©~‘-ª®Æ\newcommand{\nobreakdash}{\leavevmodeŽ¤ ‘7Ú\toks@\@emptytoks‘¹–\def\@tempa##1{\toks@\@xp{\the\toks@-}\FN@\next@}%Ž¡‘7Ú\DN@{\ifx\@let@token-\@xp\@tempaŽ¡‘N½È\else\setboxz@h{\the\toks@\nobreak}\unhbox\z@\fi}%Ž¡‘7Ú\FN@\next@Ž¡‘-ª®}ŽŸåA‘2²This–±ÃroGot“stu “needs“synš¸ãtax“w˜ork“and“implemen˜tation“w˜ork.‘‡Surely“some-ŽŸ ‘#thing–UUmore“compact“can“bGe“done??‘qÇ[mjd,“1994/09/05]Ž¦‘-ª®Æ\def\leftroot{\@amsmath@err{\Invalid@@\leftroot}\@eha}Ž¡‘-ª®\def\uproot{\@amsmath@err{\Invalid@@\uproot}\@eha}Ž¡‘-ª®\newcount\uproot@ŽŽŽŒ‹ ]L s\È ý®£8‘Y²10’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘cª®Æ\newcount\leftroot@Ž¤ ‘cª®\def\root{\relaxnext@Ž¡‘mÚ\DN@{\ifx\@let@token\uproot\let\next@\nextii@\elseŽ¡‘q×p\ifx\@let@token\leftroot\let\next@\nextiii@\elseŽ¡‘q×p\let\next@\plainroot@\fi\fi\next@}%Ž¡‘mÚ\def\nextii@\uproot##1{\uproot@##1\relax\FN@\nextiv@}%Ž¡‘mÚ\def\nextiv@{\ifx\@let@token\@sptoken\DN@.‘¹–{\FN@\nextv@}\elseŽ¡‘q×p\DN@.{\FN@\nextv@}\fi\next@.}%Ž¡‘mÚ\def\nextv@{\ifx\@let@token\leftroot\let\next@\nextvi@\elseŽ¡‘q×p\let\next@\plainroot@\fi\next@}%Ž¡‘mÚ\def\nextvi@\leftroot##1{\leftroot@##1\relax\plainroot@}%Ž¡‘q×p\def\nextiii@\leftroot##1{\leftroot@##1\relax\FN@\nextvii@}%Ž¡‘mÚ\def\nextvii@{\ifx\@let@token\@sptokenŽ¡‘q×p\DN@.‘¹–{\FN@\nextviii@}\elseŽ¡‘q×p\DN@.{\FN@\nextviii@}\fi\next@.}%Ž¡‘mÚ\def\nextviii@{\ifx\@let@token\uproot\let\next@\nextix@\elseŽ¡‘q×p\let\next@\plainroot@\fi\next@}%Ž¡‘mÚ\def\nextix@\uproot##1{\uproot@##1\relax\plainroot@}%Ž¡‘mÚ\bgroup\uproot@\z@\leftroot@\z@\FN@\next@}Ž¡‘cª®\def\plainroot@#1\of#2{\setbox\rootbox\hbox{%Ž¡‘hdD$\m@th\scriptscriptstyle{#1}$}%Ž¡‘hdD\mathchoice{\r@@t\displaystyle{#2}}{\r@@t\textstyle{#2}}Ž¡‘hdD{\r@@t\scriptstyle{#2}}{\r@@t\scriptscriptstyle{#2}}\egroup}Ž¡‘cª®\def\r@@t#1#2{\setboxz@h{$\m@th#1\@@sqrt{#2}$}%Ž¡‘hdD\dimen@\ht\z@\advance\dimen@-\dp\z@Ž¡‘hdD\setbox\@ne\hbox{$\m@th#1\mskip\uproot@‘¹–mu$}%Ž¡‘hdD\advance\dimen@‘¹–by1.667\wd\@neŽ¡‘hdD\mkern-\leftroot@‘¹–mu\mkern5mu\raise.6\dimen@\copy\rootboxŽ¡‘hdD\mkern-10mu\mkern\leftroot@‘¹–mu\boxz@}ŽŸúT‘YÄ5Ž‘j?úEllipsis‘ÕTdotsŽŸ~‘Y²W‘ÿ*ªe– ˜can't“use“Å\newif“²for“Å\ifgtest@“²bGecause“wš¸ãe“w˜an˜t“to“include“Å\global“²in“theŽŸ ‘Yde nitions–UUof“Å\gtest@true“²and“Å\gtest@false².ŽŸ‡‘cª®Æ\let\ifgtest@\iffalse’¿”%–¹–initial“valueŽ¡‘cª®\def\gtest@true{\global\let\ifgtest@\iftrue}Ž¡‘cª®\def\gtest@false{\global\let\ifgtest@\iffalse}Ž¡‘cª®\let\DOTSI\relaxŽ¡‘cª®\let\DOTSB\relaxŽ¡‘cª®\let\DOTSX\relaxŽ¡‘cª®{\uccode`7=`\\–¹–\uccode`8=`m“\uccode`9=`a“\uccode`0=`t“\uccode`!=`hŽ¡‘hdD\uppercase{%Ž¡‘mÚ\gdef\math@#1#2#3#4#5#6\math@{\gtest@false\ifx–¹–7#1\ifx“8#2%Ž¡‘mÚ\ifx–¹–9#3\ifx“0#4\ifx“!#5\xdef\meaning@{#6}\gtest@trueŽ¡‘mÚ\fi\fi\fi\fi\fi}}}Ž¡‘cª®{\uccode`7=`c–¹–\uccode`8=`h“\uccode`9=`\"Ž¡‘hdD\uppercase{\gdef\mathch@#1#2#3#4#5#6\mathch@{\gtest@falseŽ¡‘mÚ\ifx–¹–7#1\ifx“8#2\ifx“9#5\gtest@true\xdef\meaning@{9#6}\fi\fi\fi}}}Ž¡‘cª®\newcount\classnum@Ž¡‘cª®\def\getmathch@#1.#2\getmathch@{\classnum@#1‘¹–\divide\classnum@4096ŽŽŽŒ‹ fE s\È ý®£8‘#Ç5.‘ÇELLIPSIS‘UUDOTS’óxÖ²11ŽŽ 8G ýä‘2dDÆ\ifcase\number\classnum@\or\or\gdef\thedots@{\dotsb@}\orŽ¤ ‘2dD\gdef\thedots@{\dotsb@}\fi}Ž¡‘-ª®{\uccode`4=`b–¹–\uccode`5=`i“\uccode`6=`nŽ¡‘2dD\uppercase{\gdef\mathbin@#1#2#3{\relaxnext@Ž¡‘7Ú\def\nextii@##1\mathbin@{\ifx\@sptoken\@let@token\gtest@true\fi}%Ž¡‘7Ú\gtest@false\DN@##1\mathbin@{}%Ž¡‘2dD\ifx–¹–4#1\ifx“5#2\ifx“6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}Ž¡‘-ª®{\uccode`4=`r–¹–\uccode`5=`e“\uccode`6=`lŽ¡‘2dD\uppercase{\gdef\mathrel@#1#2#3{\relaxnext@Ž¡‘7Ú\def\nextii@##1\mathrel@{\ifx\@sptoken\@let@token\gtest@true\fi}%Ž¡‘2dD\gtest@false\DN@##1\mathrel@{}%Ž¡‘2dD\ifx–¹–4#1\ifx“5#2\ifx“6#3\DN@{\FN@\nextii@}\fi\fi\fi\next@}}}Ž¡‘-ª®{\uccode`5=`m–¹–\uccode`6=`a“\uccode`7=`cŽ¡‘2dD\uppercase{\gdef\macro@#1#2#3#4\macro@{\gtest@falseŽ¡‘7Ú\ifx–¹–5#1\ifx“6#2\ifx“7#3\gtest@trueŽ¡‘7Ú\xdef\meaning@{\macro@@#4\macro@@}\fi\fi\fi}}}Ž¡‘-ª®\def\macro@@#1->#2\macro@@{#2}Ž¡‘-ª®\newcount\DOTSCASE@Ž¡‘-ª®{\uccode`6=`\\–¹–\uccode`7=`D“\uccode`8=`O“\uccode`9=`T“\uccode`0=`SŽ¡‘2dD\uppercase{\gdef\DOTS@#1#2#3#4#5{\gtest@false\DN@##1\DOTS@{}%Ž¡‘7Ú\ifx–¹–6#1\ifx“7#2\ifx“8#3\ifx“9#4\ifx“0#5\let\next@\DOTS@@Ž¡‘7Ú\fi\fi\fi\fi\fiŽ¡‘7Ú\next@}}}Ž¡‘-ª®{\uccode`3=`B–¹–\uccode`4=`I“\uccode`5=`XŽ¡‘2dD\uppercase{\gdef\DOTS@@#1{\relaxnext@Ž¡‘7Ú\def\nextii@##1\DOTS@{\ifx\@sptoken\@let@token\gtest@true\fi}%Ž¡‘7Ú\DN@{\FN@\nextii@}%Ž¡‘7Ú\ifx‘¹–3#1\global\DOTSCASE@\z@\elseŽ¡‘7Ú\ifx‘¹–4#1\global\DOTSCASE@\@ne\elseŽ¡‘7Ú\ifx‘¹–5#1\global\DOTSCASE@\tw@\else\DN@##1\DOTS@{}%Ž¡‘7Ú\fi\fi\fi\next@}}}Ž¡‘-ª®{\uccode`5=`\\–¹–\uccode`6=`n“\uccode`7=`o“\uccode`8=`tŽ¡‘2dD\uppercase{\gdef\not@#1#2#3#4{\relaxnext@Ž¡‘7Ú\def\nextii@##1\not@{\ifx\@sptoken\@let@token\gtest@true\fi}%Ž¡‘2dD\gtest@false\DN@##1\not@{}%Ž¡‘2dD\ifx–¹–5#1\ifx“6#2\ifx“7#3\ifx“8#4\DN@{\FN@\nextii@}\fi\fi\fiŽ¡‘2dD\fi\next@}}}Ž¡‘-ª®\def\keybin@{\gtest@trueŽ¡‘2dD\ifx\@let@token+\else\ifx\@let@token=\elseŽ¡‘2dD\ifx\@let@token<\else\ifx\@let@token>\elseŽ¡‘2dD\ifx\@let@token-\else\ifx\@let@token*\else\ifx\@let@token:\elseŽ¡‘;×p\gtest@false\fi\fi\fi\fi\fi\fi\fi}ŽŸ‘#²P•¸ãatc“h–snto“ensure“Å\@ldots“²is“de ned.‘Ì(Name“c¸ãhanged“to“Å\mathellipsis“²in“DecŽŸ ‘#94–UUrelease“of“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX.)ŽŸ‘-ª®Æ\@ifundefined{@ldots}{\def\@ldots{\mathellipsis}}{}Ž¡‘-ª®\DeclareRobustCommand{\dots}{\relaxŽ¡‘7Ú\csname\ifmmode–¹–m\else“t\fi“dots@\endcsname}Ž¡‘-ª®\def\tdots@{\leavevmode\unskip\relaxnext@Ž¡‘2dD\DN@{$\m@th\@ldots\,ŽŽŽŒ‹ pO s\È ý®£8‘Y²12’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘q×pÆ\ifx\@let@token,\,$\else\ifx\@let@token.\,$\elseŽ¤ ‘q×p\ifx\@let@token;\,$\else\ifx\@let@token:\,$\elseŽ¡‘q×p\ifx\@let@token?\,$\else\ifx\@let@token!\,$\elseŽ¡‘{Jœ$‘¹–\fi\fi\fi\fi\fi\fi}%Ž¡‘mÚ\‘¹–\FN@\next@}Ž¡‘cª®\def\mdots@{\FN@\mdots@@}Ž¡‘cª®\def\mdots@@{\gdef\thedots@{\dotso@}%Ž¡‘hdD\ifx\@let@token\boldsymbol‘¹–\gdef\thedots@\boldsymbol{\boldsymboldots@}%Ž¡‘hdD\else\ifx,\@let@token‘¹–\gdef\thedots@{\dotsc}%Ž¡‘hdD\else\ifx\not\@let@token‘¹–\gdef\thedots@{\dotsb@}%Ž¡‘hdD\else\keybin@Ž¡‘hdD\ifgtest@\gdef\thedots@{\dotsb@}%Ž¡‘hdD\else\xdef\meaning@{\meaning\@let@token..........}%Ž¡‘q×p\xdef\meaning@@{\meaning@}%Ž¡‘mÚ\@xp\math@\meaning@\math@Ž¡‘mÚ\ifgtest@Ž¡‘q×p\@xp\mathch@\meaning@\mathch@Ž¡‘q×p\ifgtest@\@xp\getmathch@\meaning@\getmathch@\fiŽ¡‘mÚ\else\@xp\macro@\meaning@@\macro@Ž¡‘mÚ\ifgtest@Ž¡‘q×p\@xp\not@\meaning@\not@\ifgtest@\gdef\thedots@{\dotsb@}%Ž¡‘mÚ\else\@xp\DOTS@\meaning@\DOTS@Ž¡‘mÚ\ifgtest@Ž¡‘q×p\ifcase\number\DOTSCASE@\gdef\thedots@{\dotsb@}%Ž¡‘v‘\or\gdef\thedots@{\dotsi}\else\fiŽ¡‘mÚ\else\@xp\math@\meaning@\math@Ž¡‘mÚ\ifgtest@\@xp\mathbin@\meaning@\mathbin@Ž¡‘mÚ\ifgtest@\gdef\thedots@{\dotsb@}%Ž¡‘mÚ\else\@xp\mathrel@\meaning@\mathrel@Ž¡‘mÚ\ifgtest@\gdef\thedots@{\dotsb@}%Ž¡‘mÚ\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fiŽ¡‘hdD\thedots@}Ž©‘h²The–8ãÅ=“²cš¸ãharacter“is“necessary“in“the“t˜w˜o“Å\let“²assignmen˜ts“in“Å\boldsymboldots@²,ŽŸ ‘YbšGecause–UUthe“sym¸ãb˜ol“w¸ãe“are“making“b˜old“migh¸ãt“b˜e“an“Å=“²sign.ŽŸ‘cª®Æ\def\boldsymboldots@#1{\bold@true\let\@let@token=#1\let\delayed@=#1\mdots@@Ž¡‘hdD\boldsymbol#1\bold@false}Ž¦‘h²The–UUde nition“of“Å\@cdots“²is“merely“the“Åplain.tex“²de nition“of“Å\cdots².ŽŸ‘cª®Æ\def\@cdots{\mathinner{\cdotp\cdotp\cdotp}}Ž¡‘cª®\def\dotsi{\!\@cdots}Ž¡‘cª®\let\dotsb@\@cdotsŽ¦‘h²If–R¿anš¸ãy“new“righ˜t“delimiters“are“de ned,‘SCthey“w˜ould“need“to“bGe“added“to“theŽŸ ‘Yde nition–UUof“Å\rightdelim@“²in“order“for“Å\dots“²to“w¸ãork“propGerly“in“all“cases.ŽŸ‘cª®Æ\def\rightdelim@{\gtest@trueŽ¡‘hdD\ifx\@let@token)\elseŽ¡‘hdD\ifx\@let@token]\elseŽ¡‘hdD\ifx\@let@token\rbrack\elseŽ¡‘hdD\ifx\@let@token\}\elseŽ¡‘hdD\ifx\@let@token\rbrace\elseŽŽŽŒ‹ zg s\È ý®£8‘#Ç5.‘ÇELLIPSIS‘UUDOTS’óxÖ²13ŽŽ 8G ýä‘2dDÆ\ifx\@let@token\rangle\elseŽ¤ ‘2dD\ifx\@let@token\rceil\elseŽ¡‘2dD\ifx\@let@token\rfloor\elseŽ¡‘2dD\ifx\@let@token\rgroup\elseŽ¡‘2dD\ifx\@let@token\rmoustache\elseŽ¡‘2dD\ifx\@let@token\right\elseŽ¡‘2dD\ifx\@let@token\bigr\elseŽ¡‘2dD\ifx\@let@token\biggr\elseŽ¡‘2dD\ifx\@let@token\Bigr\elseŽ¡‘2dD\ifx\@let@token\Biggr\else\gtest@falseŽ¡‘2dD\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}Ž¡‘-ª®\def\extra@{%Ž¡‘2dD\rightdelim@\ifgtest@Ž¡‘2dD\else\ifx\@let@token$\gtest@trueŽ¡‘2dD\else\xdef\meaning@{\meaning\@let@token..........}%Ž¡‘2dD\@xp\macro@\meaning@\macro@\ifgtest@Ž¡‘2dD\@xp\DOTS@\meaning@\DOTS@Ž¡‘2dD\ifgtest@Ž¡‘2dD\ifnum\DOTSCASE@=\tw@\gtest@true\else\gtest@falseŽ¡‘2dD\fi\fi\fi\fi\fi}Ž¡‘-ª®\newif\ifbold@Ž¡‘-ª®\def\dotso@{\relaxnext@Ž¡‘2dD\ifbold@Ž¡‘7Ú\let\@let@token\delayed@Ž¡‘7Ú\def\nextii@{\extra@\@ldots\ifgtest@\,\fi}%Ž¡‘2dD\elseŽ¡‘7Ú\def\nextii@{\DN@{\extra@\@ldots\ifgtest@\,\fi}\FN@\next@}%Ž¡‘2dD\fiŽ¡‘2dD\nextii@}Ž©‘#²Whš¸ãy–UUnot“sa˜v˜e“some“tok˜ens?›qÇ(space“vs.˜time).ŽŸ‘-ª®Æ\def\extrap@#1{%Ž¡‘2dD\DN@{#1\,}%Ž¡‘2dD\ifx\@let@token,\elseŽ¡‘2dD\ifx\@let@token;\elseŽ¡‘2dD\ifx\@let@token.\else\extra@Ž¡‘2dD\ifgtest@\elseŽ¡‘2dD\let\next@#1\fi\fi\fi\fi\next@}Ž¦‘2²When–ñthe“Åamsmath“²pacš¸ãk‘ÿqÇage“is“loaded“Å\dots“²is“alw˜a˜ys“the“preferred“commandŽ¤ ‘#instead–%mof“Å\ldots“²in“text“mošGde,‘Ysbut“Å\ldots“²is“allo•¸ãw“ed–%min“text“mo˜de“in“ordi-Ž¡‘#nary–ª+LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“so“wš¸ãe'd“bGetter“allo˜w“it“toGo“in“order“to“a˜v˜oid“incon˜v˜eniencing“usersŽ¡‘#e.g.,‘IŠwhen›F—con•¸ãv“erting˜an˜existing˜doGcumen“t˜to˜use˜Åamsmath².‘lÝThis˜de nition˜forŽ¡‘#Å\ldots–‡Ó²is“rather“inecien¸ãt“but“since“Å\ldots“²is“the“not-recommended“usage,Ž¡‘#probably–UUnot“w•¸ãorth“while–UUto“seek“impro•¸ãv“emen“ts.ŽŸ‘-ª®Æ\DeclareRobustCommand{\ldots}{\relaxŽ¤ ‘7Ú\ifmmode‘¹–\DN@{\extrap@\@ldots}%Ž¡‘7Ú\else‘¹–\let\next@\tdots@\fiŽ¡‘7Ú\FN@\next@}Ž¡‘-ª®\DeclareRobustCommand{\cdots}{\DN@{\extrap@\@cdots}\FN@\next@}ŽŽŽŒ‹ƒx s\È ý®£8‘Y²14’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘cª®Æ\let\dotso\ldotsŽ¤ ‘cª®\let\dotsb\cdotsŽ¡‘cª®\let\dotsm\dotsbŽ¡‘cª®\DeclareRobustCommand{\dotsc}{%Ž¡‘mÚ\DN@{\ifx\@let@token;\@ldots\,%Ž¡’„½È\else‘¹–\ifx\@let@token.\@ldots\,%Ž¡’„½È\else–¹–\extra@\@ldots“\ifgtest@\,\fiŽ¡’„½È\fi\fi}%Ž¡‘mÚ\FN@\next@}Ž¡‘cª®\def\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}Ž¡‘cª®\def\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}Ž¡‘cª®\def\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}Ž¡‘cª®\def\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}Ž¡‘cª®\def\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}Ž¡‘cª®\def\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}Ž¡‘cª®\def\mapsto{\DOTSB\mapstochar\rightarrow}Ž¡‘cª®\def\longmapsto{\DOTSB\mapstochar\longrightarrow}Ž¡‘cª®\def\hookrightarrow{\DOTSB\lhook\joinrel\rightarrow}Ž¡‘cª®\def\hookleftarrow{\DOTSB\leftarrow\joinrel\rhook}Ž¡‘cª®\def\iff{\DOTSB\;\Longleftrightarrow\;}ŽŸîï‘Y²The–âSÅ\doteq“²command“formerly“used“Å\buildrel²;‘(Òwš¸ãe“a˜v˜oid“that“bGecause“it“re-Ž¤ ‘Yquires–UU`Å\over²'“as“part“of“its“syn¸ãtax.ŽŸ îï‘cª®Æ\def\doteq{\DOTSB\mathrel{\mathop{\kern\z@‘¹–=}\limits^{\textstyle.}}}ŽŸ38‘YÄ6Ž‘j?úIn®9tegral‘ÕTsignsŽŸÌÈ‘Y²The› straigh•¸ãtforw“ard˜Å\ifinner˜²test˜to˜see˜if˜the˜curren“t˜math˜con“text˜is˜non-Ž¡‘Ydispla¸ãy‘ÿ*ª,–Nçfails›ýif,“for˜instance,“w•¸ãe˜are˜t“ypGesetting˜a˜m“ultiline˜displa“y˜within˜anŽ¡‘YÅ\halign²,–UUwith“the“pieces“going“inš¸ãto“constructions“lik˜eŽŸ»¼‘kæXÆ$\displaystyle...$Ž© Ÿ»¼‘Y²So–Ïwš¸ãe“need“a“bGetter“test“to“ nd“out“if“w˜e“are“`in“a“displa˜y'.‘]šW‘ÿ*ªe“therefore“createŽ¡‘YÅ\if@display².ŽŸÝÞ‘cª®Æ\newif\if@displayŽ¦‘cª®\everydisplay\@xp{\the\everydisplay‘¹–\@displaytrue}ŽŸÝÞ‘h²Default–RÍv‘ÿqÇalue“for“in¸ãtegral“limits“is“Å\nolimits²,‘Ò+see“the“de nition“of“theŽ¡‘Y`noin¸ãtlimits'‘UUoption.ŽŸ îï‘cª®Æ\def\int{\DOTSI\intop\ilimits@}Ž¦‘cª®\def\oint{\DOTSI\ointop\ilimits@}Ž¦‘cª®\def\intkern@{\mkern-6mu\mathchoice{\mkern-3mu}{}{}{}}Ž¦‘cª®\def\intdots@{\mathchoice{\@cdots}%Ž¦‘hdD{{\cdotp}\mkern1.5mu{\cdotp}\mkern1.5mu{\cdotp}}%Ž¦‘hdD{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}%Ž¦‘hdD{{\cdotp}\mkern1mu{\cdotp}\mkern1mu{\cdotp}}}Ž¦‘cª®%Ž¦‘cª®\def\iint{\DOTSI\protect\ints@\tw@}Ž¦‘cª®\def\iiint{\DOTSI\protect\ints@\thr@@}ŽŽŽŒ‹‹Þ s\È ý®£8‘#Ç7.‘ÇSIZE–UUDEPENDENT“DEFINITIONS’žœ[²15ŽŽ 8G ýä‘-ª®Æ\def\iiiint{\DOTSI\protect\ints@{4}}Ž¤ ‘-ª®\def\idotsint{\DOTSI\protect\ints@\z@}Ž¡‘-ª®%Ž¡‘-ª®%‘æX#1–¹–=“multiplicityŽ¡‘-ª®\def\ints@#1{%Ž¡‘7Ú\mkern-7mu\mathchoice{\mkern-2mu}{}{}{}%Ž¡‘7Ú\mathop{\mkern7mu\mathchoice{\mkern2mu}{}{}{}%Ž¡‘@‘\intop\ifnum#1=\z@\intdots@Ž¡‘@‘\else\intkern@\fiŽ¡‘@‘\ifnum#1>\tw@\intop\intkern@\fiŽ¡‘@‘\ifnum#1>\thr@@\intop\intkern@\fiŽ¡‘@‘\intopŽ¡‘7Ú}\ilimits@Ž¡‘-ª®}ŽŸ1‘#Ä7Ž‘4?úSize–ÕTdepQÇenden®9t“de nitionsŽŸãÆ‘#²W‘ÿ*ªe–Lánoš¸ãw“de ne“all“stu “whic˜h“has“to“c˜hange“whenev˜er“a“new“math“size“is“to“bGeŽ¤ ‘#activ‘ÿqÇated.‘ƒÄLŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX–°©pro¸ãvides“a“hošGok“called“Å\every@math@size“²to“supp˜ort“suc¸ãh“aŽ¡‘#need.‘JSAll–Þùassignmenš¸ãts“in“the“Å\every@math@size“²hoGok“that“need“to“tak˜e“outsideŽ¡‘#e ect–UUshould“bGe“global.ŽŸÞ—‘#Ä7.1Ž‘=1¾Struts–ÕTfor“mathŽŸ}b‘#²The–Ä#macros“in“this“section“should“all“bšGe“reimplemen¸ãted“b˜ecause“bš¸ãy“no˜w“thereŽ¡‘#exist–„ºtoGo“manš¸ãy“concepts“whic˜h“handle“the“same“material“in“a“sligh˜tly“di eren˜tŽ¡‘#manner.‘OŸ'EŽ‘ãxX“commands“Å\big²,–GÃÅ\bigl²,“etc.,“toŽ¤ ‘YproGduce–­+di erenš¸ãt“results“in“di eren˜t“sizes.‘9¹Actually“w˜e“only“ha˜v˜e“to“de ne“Å\big²,Ž¡‘YÅ\Big²,–tÇetc.,“since–<£they“are“used“to“construct“the“directional“v¸ãersions“Å\bigl²,‘tÇÅ\bigr²,Ž¡‘Yand–UUthe“rest.ŽŸñ<‘<`Æ\bigŽŽ¡‘<`\BigŽŽŽŽ¡¡‘7¦|\biggŽŽŽŽ¡¡¡‘7¦|\BiggŽŽŽŽŽ‘Y²T‘ÿ*ªo›œósa•¸ãv“e˜tok“en˜space˜w“e˜put˜ev“erything˜in“to˜the˜common˜macro˜Å\bBigg@².‘H TheŽ¡‘Ymacros–Úare“no¸ãw“simply“a“call“to“Å\bBigg@“²with“a“factor“to“determine“the“correctŽ¡‘Yheighš¸ãt–ßGof“the“delimiter“as“an“argumen˜t.‘ This“cošGde“should“b˜etter“go“in¸ãto“aŽ¡‘Yfuture–œtv¸ãersion“of“Åltplain.tex²;‘Àthe“macro“Å\n@space“²is“then“supGer uous“(sinceŽ¡‘Yit–|ois“only“used“once)“and“should“bGe“remo•¸ãv“ed–|oto“a•¸ãv“oid›|ow“asting˜hash˜table˜spaceŽ¡‘Yunnecessarily‘ÿ*ª.Ž¦‘cª®Æ\def\big{\bBigg@\@ne}Ž¤ ‘cª®\def\Big{\bBigg@{1.5}}Ž¡‘cª®\def\bigg{\bBigg@\tw@}Ž¡‘cª®\def\Bigg{\bBigg@{2.5}}ŽŸ'c‘.3P\bBigg@ŽŽŽ‘Y²No•¸ãw›w“e˜tac“kle˜the˜macro˜whic“h˜has˜to˜do˜the˜real˜w“ork.‘xIt˜actually˜has˜t“w“oŽŸ ‘Yargumenš¸ãts,–UUthe“factor“and“the“w˜an˜ted“delimiter.Ž¦‘cª®Æ\def\bBigg@#1#2{%ŽŽŽŒ‹Ÿ7 s\È ý®£8‘#Ç8.‘ÇMA‘ÿ*ªTH‘UUA¸ãCCENTS’ìÎ.²17ŽŽ 8G ýä‘#W‘ÿ*ªe–ïfstart“with“an“extra“set“of“braces“bGecause“wš¸ãe“w˜an˜t“constructions“lik˜eŽ© ‘#Å\def\bigl{\mathopen\big}–ú°²to“wš¸ãork“without“the“o˜v˜erhead“of“extra“argumen˜ts.ŽŸ*é‘7ÚÆ{\@mathmeasure\z@{\nulldelimiterspace\z@}%Ž¤ ‘EJœ{\left#2\vcenter‘¹–to#1\big@size{}\right.}%Ž¡‘;×p\box\z@}}ŽŸN‘îÀ$\big@sizeŽŽŽ‘#Å\big@size– ê²needs“to“bGe“set“to“1.2“times“the“heighš¸ãt“of“a“math“paren.‘XùThis“heigh˜tŽ¦‘#is–UUalready“recorded“in“Å\Mathstrutbox@².ŽŸ*é‘-ª®Æ\addto@hook\every@math@size{%Ž¡‘7Ú\global\big@size‘¹–1.2\ht\Mathstrutbox@Ž¡‘7Ú\global\advance\big@size–¹–1.2\dp\Mathstrutbox@“}Ž¡‘-ª®\newdimen\big@sizeŽŸN‘#Ä8Ž‘4?úMath‘ÕTaccen®9tsŽŸàI‘#²W‘ÿ*ªe›¬Ow•¸ãan“t˜to˜c“hange˜the˜leading˜digit˜of˜math˜accen“ts˜to˜bGe˜Å\accentclass@˜²soŽ¦‘#that–UUit“can“v‘ÿqÇary“according“to“certain“in¸ãternal“purpGoses.ŽŸ*é‘-ª®Æ\def\accentclass@{7}Ž¡‘-ª®\def\noaccents@{\def\accentclass@{0}}Ž¤*é‘2²There–2are“a“few“¸hÉmathŽ‘"valphab‘ÿ}'et‘òظiŽ‘IÙ¥²s“in“the“standard“fonš¸ãts“where“w˜e“ha˜v˜e“toŽ¦‘#cš¸ãhange–âthe“extra“macros“bGecause“the“standard“de nitions“don't“accoun˜t“forŽ¦‘#these–UUaccen¸ãt“problems.‘qÇThe“ rst“is“for“the“Å\mathit“²command.Ž©*é‘-ª®Æ\DeclareFontEncoding{OML}{}{\noaccents@}Ž¡‘#²The–UUnext“one“corrects“the“Å\cal“²alphabGet.Ž¦‘-ª®Æ\DeclareFontEncoding{OMS}{}{\noaccents@}Ž¡‘2²Noš¸ãw–UUlet's“c˜hange“the“accen˜t“commands.Ž¦‘-ª®Æ\begingroup‘¹–\catcode`\"=12Ž¤ ‘-ª®\def\@tempa#1#2\@nil{\def\@tempc{#1}}\def\@tempb{\mathaccent}Ž¡‘-ª®\expandafter\@tempa\hat‘¹–\relax\relax\@nilŽ¤*é‘#²If–GoÅ\@tempb“²and“Å\@tempc“²compare“equal,‘ƒöthen“Å\hat“²appGears“to“ha•¸ãv“e‘Go`normal'ŽŸ ‘#de nition;–UUOK“to“c¸ãhange.Ž¦‘-ª®Æ\ifx\@tempb\@tempcŽ¡‘#²T‘ÿ*ªo–}ibšGe“defensiv¸ãe“ab˜out“it,‘¨™w¸ãe“need“to“guard“against“the“p˜ossibilitš¸ãy“that“the“accen˜tŽ¤ ‘#c•¸ãharacter›Vjn“um“bGer˜is˜giv“en˜in˜decimal˜(or˜ev“en˜oGctal??)‘uinstead˜of˜hexadecimal.Ž¡‘#Going–UUthrough“Å\mathchardef“²appšGears“to“b˜e“the“easiest“solution.Ž¦‘7ÚÆ\def\@tempa#1\@nil{#1}%Ž¤ ‘7Ú\def\@tempb#1{\afterassignment\@tempa\mathchardef\@tempc=}%Ž¡‘7Ú\def\@tempe#1"{}Ž¡‘7Ú\def\do#1"#2{}ŽŸ*é‘#²While–5wš¸ãe're“at“it“w˜e“migh˜t“as“w˜ell“do“the“double-accen˜t“v˜ersions“Å\Hat²,‘;ŽÅ\Tilde²,ŽŸ ‘#.–ªª.“.“,‘UUtoGo.Ž¦‘7ÚÆ\def\@tempd#1#2{\expandafter\@tempb#1\@nilŽ¡‘@‘\ifnum\@tempc<"1000Ž¡‘J2\edef\@tempc{"\@nx\accentclass@Ž¡‘Sw^\ifnum\@tempc<"100‘¹–0\fiŽŽŽŒ‹©£ s\È ý®£8‘Y²18’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’‰w^Æ\@xp\@tempe\meaning\@tempc\space}%Ž¤ ‘v‘\elseŽ¡’€2\edef\@tempc{"\@nx\@nx\@nx\accentclass@Ž¡’‰w^\@xp\do\meaning\@tempc\space}%Ž¡‘v‘\fiŽ¡‘v‘\xdef#1{\mathaccent\@tempc}%Ž¡‘v‘\toks@{%Ž¡’€2\relax\ifmmode‘¹–\else\DN@##1##2{\nonmatherr@{#2}}\@xp\next@\fiŽ¡’€2\mathaccent@}%Ž¡‘v‘\xdef#2{\the\toks@{\@tempc}}%Ž¡‘mÚ}Ž¡‘mÚ\@tempd\hat\Hat–¹–\@tempd\check\Check“\@tempd\tilde\TildeŽ¡‘mÚ\@tempd\acute\Acute–¹–\@tempd\grave\Grave“\@tempd\dot\DotŽ¡‘mÚ\@tempd\ddot\Ddot–¹–\@tempd\breve\Breve“\@tempd\bar\BarŽ¡‘cª®\fiŽ¡‘cª®\endgroupŽ¡‘cª®\newcount\skewcharcount@Ž¡‘cª®\newcount\familycount@Ž¡‘cª®\def\theskewchar@{\familycount@\@neŽ¡‘hdD\global\skewcharcount@\the\skewchar\textfont\@neŽ¡‘hdD\ifnum\mathgroup>\m@ne\ifnum\mathgroup<16Ž¡‘mÚ\global\familycount@\the\mathgroup\relaxŽ¡‘mÚ\global\skewcharcount@\the\skewchar\textfont\the\mathgroup\relax\fi\fiŽ¡‘hdD\ifnum\skewcharcount@>\m@neŽ¡‘mÚ\ifnum\skewcharcount@<128Ž¡‘mÚ\multiply\familycount@256Ž¡‘mÚ\global\advance\skewcharcount@\familycount@Ž¡‘mÚ\global\advance\skewcharcount@28672Ž¡‘mÚ\mathchar\skewcharcount@\elseŽ¡‘mÚ\global\skewcharcount@\m@ne\fi\elseŽ¡‘hdD\global\skewcharcount@\m@ne\fi}Ž¡‘cª®\newcount\pointcount@Ž¡‘cª®\def\getpoints@#1.#2\getpoints@{\pointcount@#1‘¹–}Ž¡‘cª®\newdimen\accentdimen@Ž¡‘cª®\newcount\accentmu@Ž¡‘cª®\def\dimentomu@{\multiply\accentdimen@‘¹–100Ž¡‘hdD\@xp\getpoints@\the\accentdimen@\getpoints@Ž¡‘hdD\multiply\pointcount@18Ž¡‘hdD\divide\pointcount@\@mŽ¡‘hdD\global\accentmu@\pointcount@}Ž¡‘cª®%Ž¡‘cª®\def\mathaccent@#1#2{\ifnum\mathgroup=\m@ne\xdef\thefam@{1}\elseŽ¡‘hdD\xdef\thefam@{\the\mathgroup}\fiŽ¡‘hdD\accentdimen@\z@Ž¡‘hdD\setboxz@h{\unbracefonts@$\m@th\mathgroup\thefam@\relax#2$}%Ž¡‘hdD\ifdim\accentdimen@=\z@\DN@{\mathaccent#1{#2}}%Ž¡‘mÚ\setbox\@ne\hbox{\unbracefonts@Ž¡‘v‘$\m@th\mathgroup\thefam@\relax#2\theskewchar@$}Ž¡‘mÚ\setbox\tw@\hbox{$\m@th\ifnum\skewcharcount@=\m@ne\elseŽ¡‘q×p\mathchar\skewcharcount@\fi$}%ŽŽŽŒ‹³Ï s\È ý®£8‘#Ç9.‘ÇMODS,–UUCONTINUED“FRA¸ãCTIONS,“ETC.‘~ñ®²19ŽŽ 8G ýä‘7ÚÆ\global\accentdimen@\wd\@ne\global\advance\accentdimen@-\wdz@Ž¤ ‘7Ú\global\advance\accentdimen@-\wd\tw@Ž¡‘7Ú\global\multiply\accentdimen@\tw@Ž¡‘7Ú\dimentomu@\global\advance\accentmu@\@neŽ¡‘2dD\else\DN@{{\mathaccent#1{#2\mkern\accentmu@‘¹–mu}%Ž¡‘@‘\mkern-\accentmu@‘¹–mu}{}}\fiŽ¡‘2dD\next@}Ž¤É%‘× 6\unbracefonts@ŽŽŽ‘#²The–#ßÅ\unbracefonts@“²macro“is“used“to“get“rid“of“the“braces“of“a“¸hÉmathŽ‘ä(alphab‘ÿ}'etŽŽ© ‘#identi er‘¸iŽ‘O1Z².ŽŸ í·‘-ª®Æ\def\unbracefonts@{\let\math@bgroup\@empty\let\math@egroup\@empty}Ž¡‘2²This–Ó"error“message“abšGout“math“mo˜de“is“used“sevš¸ãeral“times“so“w˜e“mak˜e“anŽ¦‘#abbreviation–UUfor“it.Ž¤ í·‘-ª®Æ\def\nonmatherr@#1{\@amsmath@err{\protectŽŸ ‘7Ú#1–¹–allowed“only“in“math“mode}\@ehd}ŽŸí·‘2²The–;êcommands“Å\Hat²,–uÅ\Tilde²,“.–ªª.“.“,‘uare–;ênot“made“robust“bGecause“they“areŽ¦‘#clearly–ÿvcomplex“commands,›)þnot“used“that“often,˜and“wš¸ãe“don˜t“w˜an˜t“to“use“upŽ¦‘#the–UUextra“string“p•Go“ol/csnames–UUthat“robustness“w¸ãould“require.Ž¡‘-ª®Æ\begingroup‘¹–\catcode`\"=12Ž¤ ‘-ª®\def\@tempa#1#2{\gdef#1{\RIfM@\DN@{\mathaccent@{"\accentclass@#2‘¹–}}%Ž¡‘7Ú\else\DN@{\nonmatherr@{#1}}\fi\next@}}Ž¡‘-ª®\@tempa\Hat{05E}\@tempa\Check{014}\@tempa\Tilde{07E}\@tempa\Acute{013}Ž¡‘-ª®\@tempa\Grave{012}\@tempa\Dot{05F}\@tempa\Ddot{07F}\@tempa\Breve{015}Ž¡‘-ª®\@tempa\Bar{016}Ž¡‘-ª®\gdef\Vec{\RIfM@\DN@{\mathaccent@{"017E‘¹–}}\elseŽ¡‘2dD\DN@{\nonmatherr@\Vec}\fi\next@}Ž¡‘-ª®\endgroupŽŸí·‘2²T‘ÿ*ªriple–UUand“quadruple“dot“accen¸ãts.ŽŸ í·‘-ª®Æ\def\dddot#1{{\mathop{#1}\limits^{\vbox‘¹–to-1.4\ex@{\kern-\tw@\ex@Ž¡‘2dD\hbox{\normalfont‘¹–...}\vss}}}}Ž¡‘-ª®\def\ddddot#1{{\mathop{#1}\limits^{\vbox‘¹–to-1.4\ex@{\kern-\tw@\ex@Ž¡‘2dD\hbox{\normalfont....}\vss}}}}ŽŸ38‘#Ä9Ž‘4?úMoQÇds,›ÕTcon•®9tin“ued˜fractions,˜etc.ŽŸÌÈ‘#²The–ÖÛcommands“Å\bmod²,–w<Å\pmod²,“Å\pod²,“Å\mod–ÖÛ²aren't“curren¸ãtly“robust.‘ öY[mjd,Ž¦‘#1994/09/05]ŽŸ í·‘-ª®Æ\def\bmod{\mskip-\medmuskip\mkern5mu\mathbinŽ¡‘7Ú{\operator@font‘¹–mod}\penalty900Ž¡‘7Ú\mkern5mu\mskip-\medmuskip}Ž¡‘-ª®\def\pod#1{\allowbreak\if@display\mkern18mu\else\mkern8mu\fi(#1)}Ž¡‘-ª®\def\pmod#1{\pod{{\operator@font‘¹–mod}\mkern6mu#1}}Ž¡‘-ª®\def\mod#1{\allowbreak\if@display\mkern18muŽ¡‘7Ú\else\mkern12mu\fi{\operator@font‘¹–mod}\,\,#1}ŽŸí·‘2²Con•¸ãtin“ued–˯fractions.‘CåThe“optional“arg“l“or“r“conš¸ãtrols“horizon˜tal“placemen˜t“ofŽ¦‘#the–›Án¸ãumerators.‘E The“Å\kern-\nulldelimiterspace“²is“needed“in“the“de nitionŽ¦‘#if–Hqwš¸ãe“w˜an˜t“the“righ˜t-hand“sides“of“the“fraction“rules“to“line“up.‘KThe“Å\strutŽŽŽŒ‹¼ s\È ý®£8‘Y²20’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²kš¸ãeeps–2Pthe“n˜umerator“of“a“subsidiary“cfrac“from“coming“toGo“close“to“the“fractionŽ© ‘Yrule›UUabGo•¸ãv“e˜it.ŽŸ r‘‘cª®Æ\newcommand{\cfrac}[3][c]{{\displaystyle\frac{%Ž¤ ‘mÚ\strut\ifx–¹–r#1\hfill\fi#2\ifx“l#1\hfill\fi}{#3}}%Ž¡‘mÚ\kern-\nulldelimiterspace}ŽŸr‘‘hÅ\overset–º²and“Å\underset“²put“sym¸ãbšGols“ab˜o•¸ãv“e,‘žSresp˜ectiv“ely‘ºb˜elo“w,‘žSa‘ºsym“b˜olŽ¦‘Ythat–£Åis“not“a“Å\mathop“²and“therefore“doGes“not“naturally“accept“limits.‘6—Å\binrel@@Ž¦‘Y²uses–Ó2information“collected“bš¸ãy“Å\binrel@“²to“mak˜e“the“resulting“construction“bGeŽ¦‘Yof–UUtš¸ãypGe“mathrel“or“math˜bin“if“the“base“sym˜bGol“is“either“of“those“t˜ypGes.ŽŸ r‘‘cª®Æ\def\overset#1#2{\binrel@{#2}%Ž¡‘mÚ\binrel@@{\mathop{\kern\z@#2}\limits^{#1}}}ŽŸå#‘cª®\def\underset#1#2{\binrel@{#2}%Ž¡‘mÚ\binrel@@{\mathop{\kern\z@#2}\limits_{#1}}}ŽŸå#‘hÅ\sideset–Î:²alloš¸ãws“placing“`adscript'“sym˜bGols“at“the“four“corners“of“a“Å\mathop²,Ž¦‘YÉin–Îœaddition“to‘y…²limits.‘ùLeft-side–×íadscripts“go“in¸ãto“arg“Å#1²,‘¸’in“the“formŽ¦‘YÅ_{...}^{...}²,–UUand“righš¸ãt-side“adscripts“go“in˜to“arg“Å#2².Ž¦‘hAs–âîcurrenš¸ãtly“written“[mjd,‘ùÐ1995/01/21]“this“is“prett˜y“haphazard.‘K¥In“order“toŽ¦‘Yreally–Ƚmakš¸ãe“it“w˜ork“propGerly“in“full“generalit˜y“w˜e'd“ha˜v˜e“to“read“and“measureŽ¦‘Ythe–Ítop“and“bGottom“limits“and“use“mathcš¸ãhoice“to“alw˜a˜ys“get“the“righ˜t“mathst˜yleŽ¦‘Yfor–UUeac¸ãh“piece,“etc.,“etc.ŽŸ r‘‘cª®Æ\def\sideset#1#2#3{%Ž¡‘mÚ\@mathmeasure\z@\displaystyle{#3}%ŽŸr‘‘Y²Use–¦a“global“bGoš¸ãx“assignmen˜t“here“since“the“depth“o˜v˜erride“is“implicitly“global.Ž¦‘YThen›ã‹mo•¸ãv“e˜the˜constructed˜bGo“x˜to˜a˜lo•Gcal˜b“o•¸ãx˜register˜(2)˜to˜ensure˜it˜w“on't˜getŽ¦‘Ydestro•¸ãy“ed– Oduring“the“next“t•¸ãw“o– Omathmeasure“statemenš¸ãts.‘R´This“precaution“ma˜yŽ¦‘YbGe–UUmore“extreme“than“necessary“in“practice.ŽŸ r‘‘mÚÆ\global\setbox\@ne\vbox‘¹–to\ht\z@{}\dp\@ne\dp\z@Ž¡‘mÚ\setbox\tw@\box\@neŽ¡‘mÚ\@mathmeasure4\displaystyle{\copy\tw@#1}%Ž¡‘mÚ\@mathmeasure6\displaystyle{#3\nolimits#2}%Ž¡‘mÚ\dimen@-\wd6–¹–\advance\dimen@\wd4“\advance\dimen@\wd\z@Ž¡‘mÚ\hbox‘¹–to\dimen@{}\mathop{\kern-\dimen@\box4\box6}%Ž¡‘cª®}ŽŸW´‘2ìæ\smashŽŽŽ‘Y²W‘ÿ*ªe–ÿþadd“to“the“Å\smash“²command“an“optional“argumen¸ãt“denoting“the“part“of“theŽ¦‘Yform¸ãula–UUto“bGe“smashed.Ž¤ r‘‘cª®Æ\renewcommand{\smash}[2][tb]{%ŽŸr‘‘Y²Here–RÊwš¸ãe“sa˜v˜e“the“v‘ÿqÇalue“of“the“optional“argumen˜t“in“Å\smash@“²for“later“use“inŽ¦‘YÅ\finsm@sh².Ž¡‘mÚÆ\def\smash@{#1}%Ž¤ ‘mÚ\ifmmode\@xp\mathpalette\@xp\mathsm@sh\elseŽ¡’‰w^\@xp\makesm@sh\fi{#2}}ŽŸr‘‘Y²When–Xwš¸ãe“come“to“this“part“of“the“coGde“Å\mathsm@sh“²or“Å\makesm@sh“²ha˜v˜e“storedŽ¦‘Ytheir–¢—argumenš¸ãt“in“bGo˜x“zero.‘63DepGending“on“the“letters“stored“in“Å\smash@“²w˜e“resetŽ¦‘Yeither–UUthe“heigh¸ãt,“depth“or“bšGoth“of“b˜o¸ãx“zero.ŽŽŽŒ‹Æàs\È ý®£8‘#Ç10.‘ÇEXTENSIBLE‘UUARR•¸ãO“WS’ȱµ²21ŽŽ 8G ýä‘-ª®Æ\def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}%Ž¤ ‘7Ú\def\mb@tb{\mb@t\mb@b}%Ž¡‘7Ú{\csname‘¹–mb@\smash@\endcsname}%Ž¡‘7Ú\leavevmode\boxz@}ŽŸ±³‘#Ä10Ž‘9ÿøExtensible‘ÕTarro®9wsŽŸ95‘#²The–dminš¸ãus“sign“used“in“constructing“these“arro˜w“ lls“is“smashed“so“that“su-Ž¤ ‘#p•Gerscripts›IIab“o•¸ãv“e˜the˜arro“ws˜w“on't˜b•Ge˜to“o˜high.‘ M¤This˜primarily˜a ects˜theŽ¡‘#Å\xleftarrow–UU²and“Å\xrightarrow“²arro¸ãws.ŽŸ lm‘2Only– žthe“heighš¸ãt“of“the“min˜us“sign“bGo˜x“is“set“to“0“bGecause“the“depth“is“not“an˜yŽ¡‘#greater–Ùthan“the“depth“of“the“arroš¸ãwheads“it“will“bGe“used“with.‘HZBut“placemen˜t“ofŽ¡‘#mathop–UU`limits'“subscript“is“toGo“far“a•¸ãw“a“y|that–UUneeds“w¸ãork“[mjd,“1995/01/24].Ž©-ª®Æ\def\rightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@Ž¤ ‘7Ú$#1\copy\z@\mkern-6mu\cleadersŽ¡‘7Ú\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfillŽ¡‘7Ú\mkern-6mu\mathord\rightarrow$}Ž¡‘-ª®\def\leftarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@Ž¡‘7Ú$#1\mathord\leftarrow\mkern-6mu\cleadersŽ¡‘7Ú\hbox{$#1\mkern-2mu\copy\z@\mkern-2mu$}\hfillŽ¡‘7Ú\mkern-6mu\box\z@$}Ž¡‘-ª®\def\leftrightarrowfill@#1{\m@th\setboxz@h{$#1\relbar$}\ht\z@\z@Ž¡‘7Ú$#1\mathord\leftarrow\mkern-6mu\cleadersŽ¡‘7Ú\hbox{$#1\mkern-2mu\box\z@\mkern-2mu$}\hfillŽ¡‘7Ú\mkern-6mu\mathord\rightarrow$}Ž¡‘-ª®%Ž¡‘-ª®\def\overarrow@#1#2#3{\vbox{\ialign{##\crcr#1#2\crcrŽ¡‘2dD\noalign{\kern-\ex@\nointerlineskip}$\m@th\hfil#2#3\hfil$\crcr}}}Ž¡‘-ª®\def\overrightarrow{\mathpalette{\overarrow@\rightarrowfill@}}Ž¡‘-ª®\def\overleftarrow{\mathpalette{\overarrow@\leftarrowfill@}}Ž¡‘-ª®\def\overleftrightarrow{\mathpalette{\overarrow@\leftrightarrowfill@}}Ž¡‘-ª®%Ž¡‘-ª®\def\underarrow@#1#2#3{%Ž¡‘2dD\vtop{\ialign{##\crcr$\m@th\hfil#2#3\hfil$\crcrŽ¡‘2dD\noalign{\nointerlineskip\kern-.5\ex@}#1#2\crcr}}}Ž¡‘-ª®\def\underrightarrow{\mathpalette{\underarrow@\rightarrowfill@}}Ž¡‘-ª®\def\underleftarrow{\mathpalette{\underarrow@\leftarrowfill@}}Ž¡‘-ª®\def\underleftrightarrow{\mathpalette{\underarrow@\leftrightarrowfill@}}ŽŸ2²Some–UUextensible“arroš¸ãws“to“serv˜e“as“mathrels“and“taking“sub/supGerscripts.Ž¦‘-ª®Æ\newcommand{\xrightarrow}[2][]{%Ž¡‘7Ú\mathrel{\mathop{%ŽŸ#²Measure–UUthe“supGerscript“and“subscript.Ž¦‘@‘Æ\setbox\z@\vbox{\m@thŽ¡‘J2\hbox{$\scriptstyle\;{#1}\;\;$}%Ž¡‘J2\hbox{$\m@th\scriptstyle\;{#2}\;\;$}%Ž¡‘@‘}%Ž¡‘@‘\hbox‘¹–to\ifdim\wd\z@>\minaw@\wd\z@\else\minaw@\fi{%Ž¡‘J2\rightarrowfill@\displaystyle}}%ŽŽŽŒ‹Òž s\È ý®£8‘Y²22’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²W‘ÿ*ªe–õ don't“w•¸ãan“t–õ to“place“an“empt¸ãy“subscript“since“that“will“prošGduce“to˜o“m•¸ãuc“hŽŸ ‘Yblank–UUspace“bGeloš¸ãw“the“arro˜w.Ž©"í‘mÚÆ\limits^{#2}\@ifnotempty{#1}{_{#1}}}%Ž¤ ‘cª®}Ž¡‘cª®%Ž¡‘cª®\newcommand{\xleftarrow}[2][]{%Ž¡‘mÚ\mathrel{\mathop{%ŽŸ"í‘Y²Measure–UUthe“supGerscript“and“subscript.Ž¦‘v‘Æ\setbox\z@\vbox{\m@thŽ¡’€2\hbox{$\scriptstyle\;\;{#1}\;$}%Ž¡’€2\hbox{$\m@th\scriptstyle\;\;{#2}\;\;$}%Ž¡‘v‘}%Ž¡‘v‘\hbox‘¹–to\ifdim\wd\z@>\minaw@\wd\z@\else\minaw@\fi{%Ž¡’€2\leftarrowfill@\displaystyle}}%Ž¡‘mÚ\limits^{#2}\@ifnotempty{#1}{_{#1}}}%Ž¡‘cª®}ŽŸ"í‘h²W‘ÿ*ªe–Òœuse“an“Å\@ifundefined“²test“here“for“Å\minaw@“²so“it“will“not“bšGe“reallo˜catedŽ¤ ‘Yif–UUÅamscd“²precedes“Åamsmath“²in“pac¸ãk‘ÿqÇage“loading.Ž¦‘cª®Æ\@ifundefined{minaw@}{\newdimen\minaw@\minaw@11pt}{}ŽŸD,‘YÄ11Ž‘oÿøArra•®9y-related‘ÕTen“vironmen“tsŽŸQ‘Y11.1Ž‘xñ¼RemarksŽ©ê¡‘Y²Because–Ž5these“en•¸ãvironmen“ts–Ž5can“bGe“nested“within“the“equation“structures“thatŽ¡‘Yalloš¸ãw–ÕŸÅ\tag²,‘5±there“is“some“cross-in uence“in“the“in˜ternal“w˜orkings“of“the“Å\\Ž¡‘Y²command.ŽŸ&S‘YÄ11.2Ž‘xñ¼The–ÕTÅsubstack“Äen•®9vironmen“tŽ¦‘Y²The–:.Åsubstack“²en•¸ãvironmen“t–:.can“bšGe“used“to“set“subscripts“and“sup˜erscripts“thatŽ¡‘Yconsist–UUof“sev¸ãeral“lines.‘qÇUsage:ŽŸô‘]¹–ÆX_{\begin{substack}a=1\\b=2\end{substack}}Ž© ŸŒ·‘h²These›Tsen•¸ãvironmen“ts˜supGersede˜the˜en“vironmen“ts˜ÅSb˜²and˜ÅSp².‘q|Ordinarily‘ÿ*ª,‘T theŽ¡‘Yuse–çof“ÅSb“²or“ÅSp“²in“a“ le“wš¸ãould“generate“an“error,‘ýbut“if“it“oGccurs“in“an“align-t˜ypGeŽ¡‘Yen•¸ãvironmen“t–`where“error“repšGort“is“turned“o “temp˜orarily‘ÿ*ª,‘Gãthe“Å\\“²could“resultŽ¡‘Yin–<ña“m•¸ãuc“h–<ñmore“confusing“problem.‘(šAvš¸ãoid“that“b˜y“repGorting“the“lesser“errorŽ¡‘Yexplicitly‘ÿ*ª,–UUup“fron¸ãt.ŽŸ"í‘cª®Æ\newcommand{\Sb}{\PackageError{amsmath}%Ž¦‘mÚ{Environment–¹–`Sb'“is“obsolete;“use“`substack'“instead}%Ž¦‘mÚ{The–¹–\protect\\protect\“used“to“separate“lines“in“a“`Sb'“environment“canŽ¦‘q×pcause–¹–problems“if“`Sb'“is“embedded“in“some“aligning“environments.}}Ž¦‘cª®\newcommand{\Sp}{\PackageError{amsmath}%Ž¦‘mÚ{Environment–¹–`Sp'“is“obsolete;“use“`substack'“instead}%Ž¦‘mÚ{The–¹–\protect\\protect\“used“to“separate“lines“in“a“`Sp'“environment“canŽ¦‘q×pcause–¹–problems“if“`Sp'“is“embedded“in“some“aligning“environments.}}ŽŽŽŒ‹ÜÞ s\È ý®£8‘#Ç11.‘ÇARRA–ÿ*ªY-RELA“TED‘UUENVIR¸ãONMENTS’Šœ\²23ŽŽ 8G ýä‘óyºÆsubarrayŽŽŽ‘#²The–£Åsubarray“²en•¸ãvironmen“t›£mak“es˜a˜small-size˜arra“y˜suitable˜for˜use˜in˜a˜sub-Ž¤ ‘#script–[íor“supGerscript.‘…ŽAš¸ãt“the“momen˜t“the“suppGorted“argumen˜ts“are“not“the“fullŽ¡‘#pGossibilities–9of“Åarray“²but“only“Åc“²or“Ål“²for“cen¸ãtered“or“left-aligned.‘h[And“only“oneŽ¡‘#column.Ž© êë‘-ª®Æ\newenvironment{subarray}[1]{%ŽŸêë‘#²Note:‘õ•The–—Ÿ'MŽ‘ ‹S²-T‘þU>Ÿ'EŽ‘ãxX)Ž¡‘#used–öZÅ\vbox“²instead“of“Å\vcenter².‘TÕBut“when“a“m¸ãultiline“subscript“is“placed“inŽ¡‘#Å\limits–ý²pGosition“Å\vcenter“²is“no“w¸ãorse“than“Å\vbox²,‘3fand“when“it“is“placed“inŽ¡‘#the–.ÒÅ\nolimits“²pGosition“(e.g.,›6†for“an“in¸ãtegral),˜Å\vcenter“²pro¸ãvides“clearly“bGetterŽ¡‘#pGositioning–UUthan“Å\vbox².Ž¦‘7ÚÆ\vcenter\bgroupŽŸêë‘#²Use–ŽÅ\Let@“²to“set“the“propGer“meaning“of“the“Å\\“²and“Å\\*“²commands.‘ˆrAnd“re-Ž¡‘#store–Jôthe“meaning“of“Å\math@cr@@@“²to“Å\cr“²(see“abGo•¸ãv“e)–Jôin“case“Åsubarray“²is“usedŽ¡‘#inside–§kone“of“the“more“complicated“alignmen¸ãt“macros“where“the“meaning“ofŽ¡‘#Å\math@cr@@@–X@²is“di eren¸ãt.‘z‡Similarly‘ÿ*ª,‘˜úcall“Å\default@tag“²to“ensure“that“a“lineŽ¡‘#break–UUhere“došGesn't“get“an“equation“n•¸ãum“b˜er!Ž¦‘7ÚÆ\Let@–¹–\restore@math@cr“\default@tagŽŸêë‘#²Set–¸dthe“line“spacing“to“bšGe“the“same“as“Å\atop“²(when“Å\atop“²o˜ccurs“in“Å\textstyleŽ¡‘#²or–UUsmaller),“cf“ÉThe‘“çT‘þKß'EŽ‘Í-Xb–ÿ}'o“ok²,–UUAppGendix“G.Ž¦‘7ÚÆ\baselineskip\fontdimen10‘¹–\scriptfont\tw@Ž¤ ‘7Ú\advance\baselineskip\fontdimen12‘¹–\scriptfont\tw@Ž¡‘7Ú\lineskip\thr@@\fontdimen8‘¹–\scriptfont\thr@@Ž¡‘7Ú\lineskiplimit\lineskipŽŸêë‘#²Start–¸Xthe“Å\vbox“\halign“²structure“that“encloses“the“con•¸ãten“ts.‘šÐNotice–¸Xthat“w¸ãeŽŸ ‘#nevš¸ãer–UUget“Å\scriptscriptstyle².‘qÇThat“w˜ould“require“a“Å\mathchoice“²(ugh).Ž¦‘7ÚÆ\ialign\bgroup\ifx‘¹–c#1\hfil\fiŽ¡‘@‘$\m@th\scriptstyle##$\hfil\crcrŽ¡‘-ª®}{%Ž¡‘7Ú\crcr\egroup\egroupŽ¡‘-ª®}Ž¤ÀÁ‘îÀ$\substackŽŽŽ‘#²The–­ Å\substack“²command“is“just“an“abbreviation“for“the“most“common“use“ofŽŸ ‘#Åsubarray².Ž¦‘-ª®Æ\newcommand{\substack}[1]{\subarray{c}#1\endsubarray}Ž¡‘#Ä11.3Ž‘Bñ¼MatricesŽŸfd‘åLøÆsmallmatrixŽŽŽ‘#Åsmallmatrix–£.²is“again“an“alignmenš¸ãt,‘¶¤this“time“in“a“cen˜tered“bGo˜x.‘[RThe“opGeningŽ¤ ‘#incanš¸ãtations–!úare“basically“the“same“as“those“in“Å\multilimits@²,‘,@follo˜w˜ed“b˜y“theŽ¡‘#alignmen¸ãt–¦»itself.‘eùA‘¦¦remark:‘“the“baselineskip“(Å9\ex@²)“used“in“¸A‘þU>Ÿ'MŽ‘ ‹S²-T‘þU>Ÿ'EŽ‘ãxX“is“toGoŽ¡‘#large–ôfor“use“in“text“with“the“usual“baselineskip“of“12“or“13“pGoin•¸ãts;‘-w“e›ôc“hange˜itŽ¡‘#here–ª to“Å6\ex@“²and“also“adjust“the“Å\lineskip“²and“Å\lineskiplimit“²sligh¸ãtly“toŽ¡‘#compGensate.‘qÇ(MJD)Ž¦‘-ª®Æ\newenvironment{smallmatrix}{\null\,\vcenter\bgroupŽ¤ ‘7Ú\Let@\restore@math@cr\default@tagŽ¡‘7Ú\baselineskip6\ex@–¹–\lineskip1.5\ex@“\lineskiplimit\lineskipŽŽŽŒ‹æ¹ s\È ý®£8‘Y²24’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘mÚÆ\ialign\bgroup\hfil$\m@th\scriptstyle##$\hfil&&\thickspace\hfilŽ¤ ‘mÚ$\m@th\scriptstyle##$\hfil\crcrŽ¡‘cª®}{%Ž¡‘mÚ\crcr\egroup\egroup\,%Ž¡‘cª®}Ž©ff‘2ìæmatrixŽŽŸ ‘­ \c@MaxMatrixColsŽŽŽŽŽ‘Y²The–évÅmatrix“²is“Åarray“²that“proš¸ãvides“up“to“ten“cen˜tered“columns,‘~so“that“usersŽ¤ ‘Ydon't›°xha•¸ãv“e˜to˜giv“e˜the˜col-spGec˜argumen“t˜explicitly|unless˜they˜w“an“t˜some˜ofŽ¡‘Ythe–ì columns“noncenš¸ãtered,‘that“is.‘N¯The“maxim˜um“n˜um˜bGer“of“columns“is“actuallyŽ¡‘Ynot–Z³ xed“at“ten“but“givš¸ãen“b˜y“the“coun˜ter“ÅMatrixCols²,‘œ and“can“therefore“bGeŽ¡‘Yincreased–UUbš¸ãy“c˜hanging“that“coun˜ter.Ž¡‘hThe–Øcextra“space“of“Å\arraycolsep“²that“Åarray“²adds“on“eacš¸ãh“side“is“a“w˜aste“soŽ¡‘Yw•¸ãe›Aremo“v“e˜it˜here˜(pGerhaps˜w“e˜should˜instead˜remo“v“e˜it˜from˜Åarray˜²in˜general,Ž¡‘Ybut–UUthat's“a“harder“task).Ž¡‘hTODO:–8ãThink“abGout“re-implemen¸ãting“Å\matrix“²to“get“rid“of“the“Å\c@MatrixColsŽ¡‘Y²limit–UUand“ha•¸ãv“e–UUhard-wired“preamš¸ãble“that“doGesn't“ha˜v˜e“to“bGe“rebuilt“eac˜h“time.Ž¡‘hW‘ÿ*ªe–ú–m¸ãust“use“Å\renewenvironment“²for“Åmatrix“²and“Åpmatrix“²bGecause“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxXŽ¡‘YdoGesn't–bkill“the“de nitions“found“in“Åplain.tex²,‘&ùev¸ãen“though“it“probably“shouldŽ¡‘YbGecause–UUof“their“decidedly“non-LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“syn¸ãtax.ŽŸ ÌÍ‘cª®Æ\newcount\c@MaxMatrixCols‘¹–\c@MaxMatrixCols=10Ž¤ ‘cª®\renewenvironment{matrix}{%Ž¡‘mÚ\hskip–¹–-\arraycolsep\array{*\c@MaxMatrixCols“c}%Ž¡‘cª®}{%Ž¡‘mÚ\endarray–¹–\hskip“-\arraycolsepŽ¡‘cª®}ŽŸff‘cª®\renewenvironment{pmatrix}{\left(\matrix}{\endmatrix\right)}Ž¡‘cª®\newenvironment{bmatrix}{\left[\matrix}{\endmatrix\right]}Ž¡‘cª®\newenvironment{Bmatrix}{\left\lbrace\matrix}{\endmatrix\right\rbrace}Ž¡‘cª®\newenvironment{vmatrix}{\left\lvert\matrix}{\endmatrix\right\rvert}Ž¡‘cª®\newenvironment{Vmatrix}{\left\lVert\matrix}{\endmatrix\right\rVert}Ž¤™š‘cª®\let\hdots\@ldotsŽ¡‘cª®\newcommand{\hdotsfor}[1]{%Ž¤ ‘mÚ\ifx[#1\@xp\shdots@for\else\hdots@for\@ne{#1}\fi}Ž¡‘cª®\newmuskip\dotsspace@Ž¡‘cª®\def\shdots@for#1]{\hdots@for{#1}}Ž¡‘cª®\def\hdots@for#1#2{\multicolumn{#2}c%Ž¡‘mÚ{\m@th\dotsspace@1.5mu\mkern-#1\dotsspace@Ž¡‘q×p\xleaders\hbox{$\m@th\mkern#1\dotsspace@.\mkern#1\dotsspace@$}%Ž¡’—¤ \hfillŽ¡‘q×p\mkern-#1\dotsspace@}%Ž¡‘q×p}Ž¦‘7¦|casesŽŽŽ‘Y²The–Àeasiest“w•¸ãa“y–Àto“proGduce“the“Åcases“²en•¸ãvironmen“t–Àis“to“base“it“on“the“ÅarrayŽ¤ ‘Y²en•¸ãvironmen“t.‘ YW‘ÿ*ªe›dÛm“ust˜use˜Å\renewenvironment˜²to˜o“v“erride˜the˜de nition˜ofŽ¡‘YÅ\cases–UU²that“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“(unš¸ãwisely)“lea˜v˜es“in“place“from“Åplain.tex².ŽŸ ÌÍ‘cª®Æ\renewenvironment{cases}{%ŽŸ ‘mÚ\left\{\def\arraystretch{1.2}%ŽŽŽŒ‹ó s\È ý®£8‘#Ç12.‘ÇEQUA‘ÿ*ªTION‘UUSUB-NUMBERING’¨g²25ŽŽ 8G ýä‘7ÚÆ\array{@{}l@{\quad}l@{}}%Ž¤ ‘-ª®}{%Ž¡‘7Ú\endarray\right.%Ž¡‘-ª®}ŽŸLÏ‘#Ä12Ž‘9ÿøEquation‘ÕTsub-n•®9um“bQÇeringŽŸÌÈ‘-ª®Æ\newcounter{parentequation}%–¹–Counter“for“``parent“equation''.ŽŸ35‘-ª®\newenvironment{subequations}{%ŽŸ35‘#²Before–˜sending“doš¸ãwn“the“`equation'“coun˜ter“to“the“subGordinate“lev˜el,‘½ñadd“1“usingŽ© ‘#standard‘UUÅ\refstepcounter².Ž¡‘7ÚÆ\refstepcounter{equation}%ŽŸš‘#²De ne–…ÞÅ\theparentequation“²equiv‘ÿqÇalenš¸ãt“to“curren˜t“Å\theequation².‘, Å\edef“²is“nec-Ž¦‘#essary–b™to“expand“the“currenš¸ãt“v‘ÿqÇalue“of“the“equation“coun˜ter.‘™’This“migh˜t“in“rareŽ¦‘#cases–ƒ›cause“something“to“bloš¸ãw“up,‘­in“whic˜h“case“the“user“needs“to“add“Å\protect².Ž¡‘7ÚÆ\begingroup–¹–%“conservative“approachŽ¡‘7Ú\let\protect\@nxŽ¡‘7Ú\edef\@tempa{\def\@nx\theparentequation{\theequation}}%Ž¡‘7Ú\@xp\endgroup\@tempaŽ¡‘7Ú\setcounter{parentequation}{\value{equation}}%ŽŸš‘#²And–Çset“the“equation“counš¸ãter“to“0,‘ãŠso“that“the“normal“incremen˜ting“proGcessesŽ¦‘#in–UUthe“v‘ÿqÇarious“equation“en•¸ãvironmen“ts–UUwill“proGduce“the“desired“results.Ž¡‘7ÚÆ\setcounter{equation}{0}%Ž¡‘7Ú\def\theequation{\theparentequation\alph{equation}}%Ž¡‘7Ú\ignorespacesŽ¡‘-ª®}{%Ž¡‘7Ú\setcounter{equation}{\value{parentequation}}%Ž©š‘#²Prev•¸ãen“t–UUan“extra“space“from“creeping“in“after“Å\end{subequations}²:Ž¡‘7ÚÆ\global\@ignoretrueŽ¡‘-ª®}Ž¦‘#Ä13Ž‘9ÿøEquation‘ÕTn•®9um“bQÇeringŽŸÌÈ‘#²In–˜Xthe“mš¸ãultiline“equation“en˜vironmen˜ts“pro˜vided“here,‘¾%the“task“of“equation“n˜um-Ž¤ ‘#bGering–V)is“link¸ãed“to“the“task“of“line“breaking“in“the“sense“that“it“is“the“Å\\“²commandŽ¡‘#that–ÛVmarks“where“an“equation“n•¸ãum“bšGer–ÛVfor“the“curren¸ãt“line“will“b˜e“pro˜cessed“andŽ¡‘#added–UUto“the“page.Ž¡‘2Proš¸ãvide–Ó/a“con˜v˜enien˜t“w˜a˜y“to“spšGecify“that“equations“should“b˜e“n•¸ãum“b˜eredŽ¡‘#within‘UUsections.ŽŸ š‘-ª®Æ\def\numberwithin#1#2{\@ifundefined{c@#1}{\@nocounterr{#1}}{%Ž¤ ‘7Ú\@ifundefined{c@#2}{\@nocnterr{#2}}{%Ž¡‘7Ú\@addtoreset{#1}{#2}%Ž¡‘7Ú\toks@\@xp\@xp\@xp{\csname‘¹–the#1\endcsname}%Ž¡‘7Ú\@xp\xdef\csname‘¹–the#1\endcsnameŽ¡‘@‘{\@xp\@nx\csname‘¹–the#2\endcsnameŽ¡‘EJœ.\the\toks@}}}}Ž¦‘2²T‘ÿ*ªo–¨ìmakš¸ãe“references“to“equation“n˜um˜bGers“easier,‘ýÑw˜e“pro˜vide“Å\eqref².‘lŒW‘ÿ*ªeŽ¤ ‘#almost–jØdon't“need“Å\textup²,‘°9except“that“Å\tagform@“²doGesn't“supply“the“italicŽ¡‘#correction.ŽŽŽŒ‹þq s\È ý®£8‘Y²26’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘cª®Æ\def\eqref#1{\textup{\tagform@{\ref{#1}}}}ŽŸÚ²‘YÄ13.1Ž‘xñ¼Preliminary‘ÕTmacrosŽŸ|‘Y²The–ã²folloš¸ãwing“macros“implemen˜t“the“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“syn˜tax“for“the“Å\\“²command,‘úmi.e.‘KætheŽ¤ ‘YpGossibilitš¸ãy–„Œto“add“an“asterisk“to“inhibit“a“page“break,‘Zor“an“optional“argumen˜tŽ¡‘Yto–÷[denote“additional“v¸ãertical“space.‘WØThey“are“moGdelled“more“or“less“after“theŽ¡‘YcorrespGonding–UUmacros“for“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's“Åeqnarray“²and“Åarray“²en•¸ãvironmen“ts.ŽŸ ²‘h[W‘ÿ*ªe–Dcan“pGerhaps“use“the“eqnarraš¸ãy“mec˜hanism“if“w˜e“c˜hange“it“so“that“it“alsoŽ¡‘Yuses‘UUÅ\openup².]ŽŸlz‘LøÆ\dspbrk@lvlŽŽŽ‘Y²W‘ÿ*ªe–ÁbGegin“bš¸ãy“de ning“the“Å\dspbrk@lvl“²coun˜ter.‘VAThis“coun˜ter“records“the“desir-Ž¡‘Yabilitš¸ãy–÷of“a“break“after“the“curren˜t“ro˜w,‘·qas“a“n˜um˜bšGer“b˜et•¸ãw“een–÷0“and“4.‘/ýIts“defaultŽ¡‘Yv‘ÿqÇalue–gªis“¸²1“meaning“that“no“explicit“Å\displaybreak“²command“wš¸ãas“giv˜en,‘l?andŽ¡‘Ythe–UUdefault“Å\interdisplaylinepenalty“²is“to“bGe“used.Ž¤/»‘cª®Æ\newcount\dspbrk@lvlŽŸ ‘cª®\dspbrk@lvl=-1Ž©VÈ‘ÝàZ\interdisplaylinepenaltyŽŽŽ‘Y²W‘ÿ*ªe–UUset“the“Å\interdisplaylinepenalty“²to“10000.Ž¡‘cª®Æ\interdisplaylinepenalty\@MŽ¦‘õ€H\allowdisplaybreaksŽŽŽ‘Y²The–UUÅ\allowdisplaybreaks“²declaration.Ž¡‘cª®Æ\def\allowdisplaybreaks{%ŽŸ ‘mÚ\new@ifnextchar[\allowdspbrks@{\allowdspbrks@[4]}}Ž¦‘ 6\allowdspbrks@ŽŽŽ‘Y²Here–UUwš¸ãe“simply“fetc˜h“a“suitable“v‘ÿqÇalue“for“Å\interdisplaylinepenalty².Ž¡‘cª®Æ\def\allowdspbrks@[#1]{%ŽŸ ‘mÚ\interdisplaylinepenalty\getdsp@pen{#1}}Ž¦‘Lø\getdsp@penŽŽŽ‘Y²MošGdelled–õiafter“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX's“Å\@getpen².‘QÎW‘ÿ*ªe“use“higher“n•¸ãum“b˜ers–õithan“w¸ãould“normallyŽ¤ ‘YbGe–Ðèproš¸ãvided“b˜y“Å\@lowpenalty²,–ïÌÅ\@medpenalty²,“and›ÐèÅ\@highpenalty²,“since˜dis-Ž¡‘Yplaš¸ãy–UUbreaks“are“almost“alw˜a˜ys“less“desirable.ŽŸ/»‘cª®Æ\def\getdsp@pen#1{%Ž¤ ‘mÚ\ifcase–¹–#1\relax“\@MŽ¡‘v‘\or‘¹–9999Ž¡‘v‘\or‘¹–6999Ž¡‘v‘\or‘¹–2999Ž¡‘v‘\or‘¹–\z@\fi}Ž¦‘ÙÌ\displaybreakŽŽŸ ‘ 6\displaybreak@ŽŽŽŽ¤ ¡‘)yº\dspbrk@ŽŽŽŽŽ‘Y²F‘ÿ*ªor–UUbreaks“in“a“certain“roš¸ãw“of“a“alignmen˜t.ŽŸ/»‘cª®Æ\def\displaybreak{\@amsmath@err{\Invalid@@\displaybreak}\@eha}Ž¡¡‘cª®\def\displaybreak@{%Ž¡‘mÚ\def\displaybreak{\new@ifnextchar[\dspbrk@{\dspbrk@[4]}}}Ž¡¡‘cª®\def\dspbrk@[#1]{\global\dspbrk@lvl‘¹–#1\relax}Ž¦‘)yº\math@crŽŽŽ‘Y²The–ŽÍmacro“Å\math@cr“²ends“a“roš¸ãw“inside“one“of“the“equation“en˜vironmen˜ts,‘*i.e.,ŽŸ ‘Ythis–~is“the“inš¸ãternal“name“of“the“Å\\“²commands“in“these“en˜vironmen˜ts.‘ìAs“usualŽŽŽŒ‹† s\È ý®£8‘#Ç13.‘ÇEQUA‘ÿ*ªTION‘UUNUMBERING’¿ßí²27ŽŽ 8G ýä‘#for–\pthis“kind“of“macro“inside“of“alignmenš¸ãts“w˜e“insert“a“spGecial“brace“in˜to“T‘þU>Ÿ'EŽ‘ãxX'sŽ¤ ‘#input‘UUstream.Ž©2‘-ª®Æ\def\math@cr{{\ifnum0=`}\fiŽŸ2‘#²The–¨ã rst“step“is“noš¸ãw“to“c˜hec˜k“whether“an“asterisk“follo˜ws.‘lqÅ\@eqpen“²is“used“toŽ¡‘#hold–¾‚the“pšGenalt¸ãy“v‘ÿqÇalue“to“b˜e“put“on“the“vš¸ãertical“list.‘?Then“w˜e“call“up“Å\math@cr@Ž¡‘#²whic¸ãh–UUpGerforms“the“next“step.‘qÇIf“an“asterisk“is“read“page“breaking“is“inhibited.Ž¦‘7ÚÆ\@ifstar{\global\@eqpen\@M\math@cr@}%ŽŸ2‘#²Otherwise–UUwš¸ãe“ha˜v˜e“to“c˜hec˜k“the“Å\dspbrk@lvl“²v‘ÿqÇalue.Ž¦‘\êŠÆ{\global\@eqpenŽ¤ ‘kL\ifnum\dspbrk@lvl–¹–<\z@“\interdisplaylinepenaltyŽ¡‘oÐâ\else–¹–-\@getpen\dspbrk@lvl“\fiŽ¡‘a¤ \math@cr@}}Ž¤,…‘îÀ$\math@cr@ŽŽŽ‘#²The–ÃpurpGose“of“Å\math@cr@“²is“to“c•¸ãhec“k–Ãwhether“an“optional“argumenš¸ãt“follo˜ws.‘V–IfŽŸ ‘#not–UUit“pro¸ãvides“Å\z@“²as“default“v‘ÿqÇalue.Ž¦‘-ª®Æ\def\math@cr@{\new@ifnextchar[\math@cr@@{\math@cr@@[\z@]}}Ž¡‘êŽ\math@cr@@ŽŽŽ‘#Å\math@cr@@–tk²closes“the“spšGecial“brace“op˜ened“in“Å\math@cr²,‘¡gand“calls“Å\math@cr@@@Ž¤ ‘#²whicš¸ãh–x^is“suppGosed“the“`real'“ro˜w“ending“command.‘ÚãThe“meaning“of“this“macroŽ¡‘#depGends–UUon“the“en•¸ãvironmen“t–UUin“whic¸ãh“it“is“used.Ž¦‘-ª®Æ\def\math@cr@@[#1]{\ifnum0=`{\fi}\math@cr@@@ŽŸ2‘#²Finally–UUwš¸ãe“put“the“additional“space“on˜to“the“v˜ertical“list.Ž¦‘7ÚÆ\noalign{\vskip#1\relax}}Ž¤,…‘¦|\Let@ŽŽŽ‘#Å\Let@–UU²is“called“bš¸ãy“all“en˜vironmen˜ts“where“Å\\“²ends“a“ro˜w“of“an“alignmen˜t.Ž¦‘-ª®Æ\def\Let@{\let\\\math@cr}Ž¡‘Í­ \restore@math@crŽŽŽ‘#²W‘ÿ*ªe–ÀÊmen¸ãtioned“already“that“the“exact“meaning“of“Å\math@cr@@@“²depGendsŽ¤ ‘#on–=tthe“currenš¸ãt“en˜vironmen˜t.‘ *$Since“it“is“often“a“simple“Å\cr“²w˜e“pro˜videŽ¡‘#Å\restore@math@cr–UU²to“reset“it.Ž¦‘-ª®Æ\def\restore@math@cr{\def\math@cr@@@{\cr}}ŽŸ2‘#²This–UUis“also“the“default“case.Ž¦‘-ª®Æ\restore@math@crŽŸ,…‘êŽ\intertextŽŽ¡‘åLø\intertext@ŽŽŽŽŽ‘#²The–SŽÅ\intertext“²command“is“used“for“inserting“text“bGet•¸ãw“een–SŽthe“ro¸ãws“of“anŽ¡‘#alignmen•¸ãt.‘O÷It›ôºmigh“t˜b•Getter˜b“e˜done˜as˜an˜en•¸ãvironmen“t,‘”but˜the˜Å\begingroupŽ¡‘#²from–UUÅ\begin“²w¸ãould“cause“the“Å\noalign“²to“fail.Ž¦‘-ª®Æ\def\intertext{\@amsmath@err{\Invalid@@\intertext}\@eha}ŽŸ2‘#Å\intertext@–Ѳis“called“bš¸ãy“all“en˜vironmen˜ts“that“allo˜w“the“use“of“the“Å\intertextŽ¡‘#²command.Ž¦‘-ª®Æ\def\intertext@{%ŽŸ ‘7Ú\def\intertext##1{%ŽŽŽŒ‹j s\È ý®£8‘Y²28’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²If–Ðcurren¸ãt“mošGde“is“not“vmo˜de,‘îÅthe“most“lik¸ãely“reason“is“that“the“writer“forgotŽ¤ ‘Ythe–ê«Å\\“²that“is“suppGosed“to“precede“Å\intertext².‘N9All“righ¸ãt,–then,“let's–ê«try“addingŽ¡‘Yit–seour“oš¸ãwnself.‘Ë÷But,‘zéto“bGe“sligh˜tly“careful:‘­çÅ\\“²doGes“a“futurelet,‘zéand“it's“sligh˜tlyŽ¡‘Ydangerous–HŸto“alloš¸ãw“a“letted“tok˜en“to“barge“around“loGose“in“our“in˜ternal“coGde“whenŽ¡‘Yit–xhhas“bGeen“letted“to“a“conditional“tokš¸ãen“lik˜e“Å\fi².‘ÛSo“let's“in˜terpGose“somethingŽ¡‘Yin–¦Xfronš¸ãt“of“the“Å\fi“²for“the“futurelet“to“tak˜e“instead.‘7s(And“careful“again:‘Hit“has“toŽ¡‘YbGe–`something“ev‘ÿqÇanescenš¸ãt,‘b¾not“(e.g.)‘‘÷Å\relax“²whic˜h“w˜ould“cause“the“next“halignŽ¡‘Ycell–UUto“ re“up“and“kš¸ãeep“Å\noalign“²from“w˜orking.)Ž© 33‘v‘Æ\ifvmode\else\\\@empty\fiŽ¤ ‘v‘\noalign{%Ž¡’€2\penalty\postdisplaypenalty\vskip\belowdisplayskipŽ¡’€2\vbox{\normalbaselinesŽŸ33‘Y²W‘ÿ*ªe–Jneed“to“do“something“extra“if“the“outside“en•¸ãvironmen“t–Jis“a“list“en•¸ãvironmen“t.‘¶IŽ¤ ‘Ydon't–M2see“o hand“an“eleganš¸ãt“w˜a˜y“to“test“\are“w˜e“inside“an˜y“list“en˜vironmen˜t"“thatŽ¡‘Yis–çbGoth“easy“and“reliable“(for“example,‘GKc•¸ãhec“king–çfor“zero“Å\@totalleftmarginŽ¡‘Y²w•¸ãouldn't›ÛÂcatc“h˜the˜case˜where˜Å\@totalleftmargin˜²is˜zero˜but˜Å\linewidth˜²isŽ¡‘Yless–]than“Å\columnwidth²),‘QÞso“it“seems“to“me“c•¸ãhec“king–]Å\linewidth“²is“the“bGestŽ¡‘Ypractical‘UUsolution.Ž¦’‰w^Æ\ifdim\linewidth=\columnwidthŽ¤ ’‰w^\else–¹–\parshape\@ne“\@totalleftmargin“\linewidthŽ¡’‰w^\fiŽ¡’‰w^\noindent##1\par}%Ž¡’€2\penalty\predisplaypenalty\vskip\abovedisplayskip%Ž¡‘v‘}%Ž¡‘cª®}}Ž©™š‘YÄ13.2Ž‘xñ¼Implemen®9ting–ÕTtags“and“labQÇelsŽŸfd‘Y²In–¢‰this“section“wš¸ãe“describGe“some“of“the“macros“needed“to“mak˜e“the“Å\tag“²com-Ž¤ ‘Ymand–7wš¸ãork“in“v‘ÿqÇarious“places.‘g°W‘ÿ*ªe“start“b˜y“de ning“a“help“text“to“bGe“used“whenŽ¡‘Ya–UUÅ\tag“²command“is“used“somewhere“it“should“not“appGear.Ž¦‘$À$Æ\tag@helpŽŽŽ‘Y²This–Y´is“the“default“error“help“text“pro¸ãvided“when“Å\tag“²generates“an“error“mes-Ž¡‘Ysage.‘W„Note–÷?that“Å\newhelp“²generates“a“con¸ãtrol“sequence“name“from“the“stringŽ¡‘Ygivš¸ãen–UUas“its“argumen˜t“so“that“a“leading“bac˜kslash“is“pro˜vided“automatically‘ÿ*ª.ŽŸ 33‘cª®Æ\newhelp\tag@helpŽ¤ ‘mÚ{tag–¹–cannot“be“used“at“this“point.\spaceŽ¡‘q×pIf–¹–you“don't“understand“why^^Jyou“should“consultŽ¡‘q×pthe–¹–documentation.^^JBut“don't“worry:“just“continue,“and“I'llŽ¡‘q×pforget–¹–what“happened.}Ž¦‘Lø\gobble@tagŽŽŽ‘Y²This–Pâmacro“is“to“bGe“used“when“Å\tag“²should“silenš¸ãtly“skip“its“argumen˜t.‘dnIt“isŽ¤ ‘Ymade–UUto“handle“the“Å*²-form“of“Å\tag“²as“w¸ãell.ŽŸ 33‘cª®Æ\def\gobble@tag{\@ifstar\@gobble\@gobble}Ž¦‘“b\invalid@tagŽŽŽ‘YÅ\invalid@tag–hå²is“a“macro“that“should“bšGe“used“whenev¸ãer“Å\tag“²app˜ears“in“anŽ¡‘Yillegal–ãplace.‘òIt“sets“up“Å\tag@help“²(as“de ned“abGo•¸ãv“e)–ãas“help“message,‘|prin¸ãtsŽ¡‘Yits–UUargumenš¸ãt“as“error“message,“and“skips“Å\tag²'s“argumen˜t.ŽŸ 33‘cª®Æ\def\invalid@tag#1{\@amsmath@err{#1}{\the\tag@help}\gobble@tag}ŽŽŽŒ‹­ s\È ý®£8‘#Ç13.‘ÇEQUA‘ÿ*ªTION‘UUNUMBERING’¿ßí²29ŽŽ 8G ýä‘óyºÆ\dft@tagŽŽŸ ‘à“b\default@tagŽŽŽŽŽ‘#Å\dft@tag–Je²proš¸ãvides“a“con˜v˜enien˜t“w˜a˜y“to“disallo˜w“the“use“of“Å\tag“²at“certain“pGoin˜ts.Ž¤ ‘#One–UUsimply“has“to“writeŽŸ£‘#Æ\let\tag\dft@tagŽŸ ŸÃz‘#²and–USthe“Å\tag“²command“will“proGduce“an“error“message,‘•Rwith“a“suitable“errorŽ¡‘#help–UUtext,“and“discard“its“argumen¸ãt.Ž¤Y‘-ª®Æ\def\dft@tag{\invalid@tag{\string\tag\space–¹–not“allowed“here}}Ž©Z‘#²Since–UUthis“is“used“sevš¸ãeral“times“w˜e“pro˜vide“an“abbreviation“for“it.Ž¡‘-ª®Æ\def\default@tag{\let\tag\dft@tag}Ž¦‘#²Since–8xthis“is“also“the“default,‘>>i.e.“the“Å\tag“²command“should“not“bGe“used“exceptŽ© ‘#in–UUspGecial“places,“w¸ãe“issue“a“Å\default@tag“²command.Ž¡‘-ª®Æ\default@tagŽŸ£‘2²Noš¸ãw–ÿ…that“w˜e“ha˜v˜e“tak˜en“care“of“the“case“that“Å\tag“²is“not“allo˜w˜ed“w˜e“willŽ¦‘#pro¸ãvide–6×some“macros“to“prošGcess“tags“appropriately‘ÿ*ª.‘gAs“the“user“do˜cumen¸ãtationŽ¦‘#states,‘†Àa–|ÞÅ\tag“²command“(without“the“asterisk“tš¸ãypGesets“its“argumen˜t“accordingŽ¦‘#to–¥the“doGcumenš¸ãt“st˜yles'“con˜v˜en˜tions,‘Ê9whereas“a“Å\tag*“²command“t˜ypGesets“itsŽ¦‘#argumenš¸ãt–UUexactly“as“giv˜en.‘qÇW‘ÿ*ªe“de ne“therefore“the“follo˜wing“in˜terface:ŽŸEË‘êŽÆ\maketag@@ŽŽ¦‘åLø\maketag@@@ŽŽŽŽ¦¦‘îÀ$\tagform@ŽŽŽŽŽ‘#Å\tag–e§²is“suppGosed“to“call“Å\maketag@@“²whicš¸ãh“c˜hec˜ks“whether“an“asterisk“follo˜ws.‘!ãIfŽ¦‘#this–TÍis“the“case“it“calls“up“Å\maketag@@@“²whicš¸ãh“sets“its“argumen˜t“`as“is'.‘EOtherwiseŽ¦‘#Å\tagform@–½ ²is“called“to“do“the“job.‘ª©(This“macro“is“to“bGe“de ned“appropriatelyŽ¦‘#bš¸ãy–UUthe“doGcumen˜t“st˜yle.)Ž¡‘-ª®Æ\def\maketag@@{\@ifstar\maketag@@@\tagform@}ŽŸZ‘#²W‘ÿ*ªe–ide ne“Å\maketag@@@“²to“use“the“normal“fonš¸ãt“of“the“doGcumen˜t“text“(since“thisŽ¦‘#is–Fthe“usual“practice“for“n•¸ãum“bšGering–Fof“do˜cumenš¸ãt“elemen˜ts)“and“to“put“a“bGo˜xŽ¦‘#around–Ydthe“tag.‘}ôF‘ÿ*ªurthermore“w¸ãe“use“Å\m@th“²for“exceptional“cases“where“the“tagŽ¦‘#in•¸ãv“olv“es–8àa“supGerscript“or“some“suc¸ãh“math.‘i(Probably“from“an“explicit“use“ofŽ¦‘#Å\tag*–UU²rather“than“from“the“automatic“n•¸ãum“bGering.)Ž¡‘-ª®Æ\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}ŽŸZ‘#²W‘ÿ*ªe–Yuse“the“folloš¸ãwing“default“de nition“for“Å\tagform@“²that“puts“only“paren˜thesesŽ¦‘#around–UUthe“tag.Ž¡‘-ª®Æ\def\tagform@#1{\maketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}ŽŸ£‘2²W‘ÿ*ªe–O‰need“to“insinš¸ãuate“Å\tagform@“²in˜to“Å\@eqnnum“²in“case“Åeqnarray“²is“usedŽ¦‘#(probably–Á-in“a“doGcumenš¸ãt“that“w˜as“originally“written“without“use“of“the“ÅamsmathŽ¦‘#²pac¸ãk‘ÿqÇage).Ž¡‘-ª®Æ\iftagsleft@Ž¤ ‘7Ú\def\@eqnnum{\hbox‘¹–to1sp{}\rlap{\normalfont\normalcolorŽ¡‘@‘\hskip‘¹–-\displaywidth\tagform@\theequation}}Ž¡‘-ª®\elseŽ¡‘7Ú\def\@eqnnum{{\normalfont\normalcolor‘¹–\tagform@\theequation}}Ž¡‘-ª®\fiŽŽŽŒ‹*– s\È ý®£8‘Y²30’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘.3PÆ\thetagŽŽŽ‘Y²Sometimes–vWone“needs“to“set“a“literal“tag“according“to“the“rules“of“the“doGcu-Ž¤ ‘Ymen•¸ãt›¹Æst“yle.‘ŸT‘ÿ*ªo˜ac“hiev“e˜this˜w“e˜pro“vide˜the˜Å\thetag˜²command.‘ŸIt˜t“ypGesets˜itsŽ¡‘Yargumen•¸ãt›UUb“y˜calling˜Å\tagform@˜²on˜it.Ž©ðØ‘cª®Æ\def\thetag{\leavevmode\tagform@}ŽŸµå‘.3P\df@tagŽŽ¡‘“b\make@df@tagŽŽŽŽ¡¡‘ 6\make@df@tag@@ŽŽŽŽ¡¡¡‘f \make@df@tag@@@ŽŽŽŽŽ‘Y²Sometimes–.íit“is“necessary“for“a“Å\tag“²command“to“store“a“tag“in“a“safe“placeŽ¡‘Yand–ßäto“proGcess“it“later,–‡e.g.,“for–ßäa“tag“in“a“roš¸ãw“of“an“alignmen˜t“where“the“tagŽ¡‘Ycan–kºonly“bšGe“t¸ãyp˜eset“when“the“Å\\“²at“the“end“of“the“roš¸ãw“w˜as“seen.‘´÷Suc˜h“a“tag“isŽ¡‘Ystored–¹æin“the“macro“Å\df@tag“²(for“`deferred“tag').‘Ÿ{F‘ÿ*ªor“this“purpGose“wš¸ãe“pro˜videŽ¡‘Ythe–TÅ\make@df@tag“²macro.‘ÄIt“is“built“v¸ãery“similar“to“the“Å\maketag@@“²macroŽ¡‘YabGo•¸ãv“e.Ž¦‘cª®Æ\def\make@df@tag{\@ifstar\make@df@tag@@\make@df@tag@@@}ŽŸðבYÅ\make@df@tag–UU²sets“Å\@currentlabel“²and“de nes“Å\df@tag“²appropriately‘ÿ*ª.ŽŸ my‘hT‘ÿ*ªo–…Tsimplify“the“task“of“trac¸ãking“Å\tag“²and“Å\label“²commands“inside“math“dis-Ž¡‘Ypla•¸ãy›W.en“vironmen“ts,‘W¥w“e˜defer˜Å\label˜²commands˜un“til˜the˜tag˜is˜t“ypGeset,‘W¥similarŽ¡‘Yto–^the“w•¸ãa“y–^that“Å\tag²s“themselvš¸ães“are“deferred.‘UÊThis“allo˜ws“arbitrary“placemen˜tŽ¡‘Yof–QÉÅ\label“²and“Å\tag“²commands“and“also“means“wš¸ãe“only“incremen˜t“the“Å\equationŽ¡‘Y²counš¸ãter–í­when“w˜e“really“need“to,‘hth˜us“a˜v˜oiding“the“Å\setb@ck“²nonsense“that“usedŽ¡‘Yto–UUbGe“required.ŽŸ^Q‘cª®Æ\def\make@df@tag@@#1{%Ž¤ ‘mÚ\gdef\df@tag{\maketag@@@{#1}\def\@currentlabel{#1}}}ŽŸ^Q‘Y²Autogenerated‘UUn•¸ãum“bGer:Ž¦‘cª®Æ\def\make@df@tag@@@#1{\gdef\df@tag{\tagform@{#1}%Ž¡‘mÚ\toks@\@xp{\p@equation{#1}}\edef\@currentlabel{\the\toks@}}}ŽŸµå‘ Ž\ltx@labelŽŽŸ ‘þót\label@in@displayŽŽŽŽ¤ ¡‘$À$\df@labelŽŽŽŽŽ‘Y²Next,‘ìw¸ãe–Ѭstore“the“default“de nition“of“Å\label“²in“Å\ltx@label“²and“then“de ne“aŽ¤ ‘Ynew–8ãvš¸ãersion“of“Å\label“²for“use“in“math“displa˜y“en˜vironmen˜ts.‘÷Å\label@in@displayŽ¡‘Y²merely–gëissues“a“w¸ãarning“message“if“there“is“already“a“pšGending“lab˜el“(whic¸ãh“willŽ¡‘YbšGe–UUdiscarded)“and“then“stores“the“lab˜el“in“Å\df@label².Ž¦‘cª®Æ\let\ltx@label\labelŽ¤ ‘cª®%Ž¡‘cª®\def\label@in@display{%Ž¡‘v‘\ifx\df@label\@empty\elseŽ¡’‰w^\@amsmath@err{Multiple‘¹–\string\label's:Ž¡’œ]¶label–¹–'\df@label'“will“be“lost}\@ehaŽ¡‘v‘\fiŽ¡‘v‘\gdef\df@labelŽ¡‘cª®}Ž¡¡‘cª®\let\df@label\@emptyŽŸµå‘þót\make@display@tagŽŽŽ‘Y²No•¸ãw›skw“e˜de ne˜a˜macro˜to˜proGcess˜Å\tag˜²and˜Å\label˜²commands˜in˜v‘ÿqÇarious˜displa“yŽ¤ ‘Yen•¸ãvironmen“ts.‘¡¬If–º¡the“Å@eqnsw“²switcš¸ãh“is“set,‘Óôthen“w˜e“should“supply“an“equationŽ¡‘Yn•¸ãum“bGer;‘„ùotherwise,›R]if–Âthe“Å@tag“²switc¸ãh“is“set,˜w¸ãe“should“use“the“tag“stored“inŽ¡‘YÅ\df@tag².‘qÇFinally‘ÿ*ª,–UUwš¸ãe“proGcess“an˜y“pGending“Å\label²s.ŽŽŽŒ‹6] s\È ý®£8‘#Ç13.‘ÇEQUA‘ÿ*ªTION‘UUNUMBERING’¿ßí²31ŽŽ 8G ýä‘2TODO:–`Arguably‘ÿ*ª,‘£ZÅ\make@display@tag“²should“issue“a“w¸ãarning“message“ifŽ¤ ‘#there–8is“a“Å\label“²but“neither“a“tag“nor“an“equation“n•¸ãum“bGer.‘ÏAlso,‘p­it‘8w“ouldŽ¡‘#probably–¸=bšGe“w•¸ãorth“while–¸=to“explore“whether“Å\iftag@“²could“b˜e“done“a•¸ãw“a“y‘¸=withŽ¡‘#and–UUreplaced“bš¸ãy“c˜hec˜ks“to“see“if“Å\df@tag“²is“empt˜y“or“not.Ž©™‘-ª®Æ\def\make@display@tag{%Ž¤ ‘@‘\if@eqnswŽ¡‘Sw^\refstepcounter{equation}%Ž¡‘Sw^\tagform@\theequationŽ¡‘@‘\elseŽ¡‘Sw^\iftag@Ž¡‘f]¶\df@tagŽ¡‘f]¶\global\let\df@tag\@emptyŽ¡‘Sw^\fiŽ¡‘@‘\fiŽ¡‘@‘\ifx\df@label\@empty\elseŽ¡‘Sw^\ltx@label{\df@label}%Ž¡‘Sw^\global\let\df@label\@emptyŽ¡‘@‘\fiŽ¡‘-ª®}ŽŸ‘2²No•¸ãw›§´w“e˜de ne˜the˜spGecial˜v“ersions˜of˜Å\tag˜²used˜within˜the˜Åalign˜²en“viron-Ž¤ ‘#men¸ãts.ŽŸ\ß‘ÛÙÌÆ\tag@in@alignŽŽŽ‘#²The–2»Å\tag“²command“maš¸ãy“only“appGear“once“in“a“ro˜w“of“an“alignmen˜t.‘f>ThereforeŽ¡‘#wš¸ãe–Ø rst“c˜hec˜k“the“switc˜h“Åtag@“²that“is“set“to“false“at“the“bGegin“of“ev˜ery“ro˜w.‘PIfŽ¡‘#this–­üswitcš¸ãh“is“true“a“Å\tag“²w˜as“already“giv˜en“in“this“ro˜w“and“w˜e“de ne“Å\next@Ž¡‘#²to–UUexpand“to“a“call“to“Å\invalid@tag².Ž¦‘-ª®Æ\def\tag@in@align{%Ž¤ ‘@‘\relaxŽ¡‘@‘\iftag@Ž¡‘Sw^\DN@{\invalid@tag{Multiple‘¹–\string\tag}}%Ž¡‘@‘\elseŽ¤™‘#²Otherwise–^Ðwš¸ãe“set“the“Åtag@“²switc˜h.‘Ž7But“there“is“more“to“bGe“done:‘„¼w˜e“m˜ust“alsoŽŸ ‘#prev•¸ãen“t–Fåthe“automatic“generation“of“a“tag.‘l÷Therefore“w¸ãe“also“reset“the“Å@eqnsw².Ž¦‘@‘Æ\global\tag@trueŽ¡‘#²Changed–î§to“Å\nonumber²,‘”ûsince“that“seems“to“bGe“all“that's“required.|dmj,ŽŸ ‘#1994/12/21Ž¦‘@‘Æ\nonumberŽ¡‘#²Within–ÃGa“roš¸ãw“of“an“Åalign“²en˜vironmen˜t“the“Å\tag“²command“m˜ust“not“t˜ypGeset“theŽ¤ ‘#tag–§_immediately“since“its“pšGosition“can“b˜e“determined“only“later.‘gåTherefore“w¸ãeŽ¡‘#use–I¥the“Å\make@df@tag“²macro“de ned“earlier.‘mâFinally“w¸ãe“call“Å\next@“²to“proGcessŽ¡‘#the–UUargumenš¸ãt“that“follo˜ws.Ž¦‘Sw^Æ\let\next@\make@df@tagŽ¤ ‘@‘\fiŽ¡‘@‘\next@Ž¡‘-ª®}ŽŽŽŒ‹ B— s\È ý®£8‘Y²32’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘$À$Æ\raisetagŽŽŽ‘Y²Usage:‘qÇÅ\raisetag‘UU¸hÉdimen‘Äc¸iŽŽ¤ GÌ‘h²This–€Dwill“shift“the“next“tag“bš¸ãy“¸hÉdimen‘Äc¸iŽ‘*è²in“the“v˜ertical“direction“in“Éonly‘bÁ²theŽ© ‘Ynext–UUÅ\equation²,“Å\gather²,“Å\align²,“or“Å\multline“²en•¸ãvironmen“t.Ž¡‘h(mjd:‘QComš¸ãbined–ÝÅ\raisetag@“²and“Å\raise@tag“²in“order“to“sa˜v˜e“a“dimenŽ¦‘Yregister–ÕÞbGecause“those“tend“to“get“used“up“bš¸ãy“add-on“pac˜k‘ÿqÇages“and“there's“noŽ¦‘Yw•¸ãa“y–UUaround“the“uppGer“limit“of“256.)ŽŸô‘cª®Æ\def\raisetag#1{\skip@#1\relaxŽ¤ ‘mÚ\xdef\raise@tag{\vskip\iftagsleft@\else-\fi\the\skip@\relax}%Ž¡‘cª®}ŽŸô‘YÅ\raise@tag– ²will“bšGe“reemptied“at“the“b˜eginning“of“eacš¸ãh“equation,‘³[whic˜h“migh˜tŽ¦‘YoGccur–UUat“a“Å\begin{xxx}“²or“Å\\².Ž¤ô‘cª®Æ\let\raise@tag\@emptyŽŸ1‘2ìæ\notagŽŽŽ‘Y²F‘ÿ*ªor–Éconsistency“wš¸ãe“pro˜vide“Å\notag²,‘åïequiv‘ÿqÇalen˜t“to“Å\nonumber².‘ÌÑThe“alternativ˜eŽ¦‘Yw•¸ãould›yMha“v“e˜bGeen˜to˜rename˜Å\tag˜²as˜Å\number˜²to˜go˜along˜with˜Å\nonumber²,‘‚KbutŽ¦‘Yof–UUcourse“Å\number“²is“a“T‘þU>Ÿ'EŽ‘ãxX“primitiv¸ãe“that“should“not“bGe“rede ned.Ž¡‘cª®Æ\def\notag{\nonumber}ŽŸ1‘YÄ14Ž‘oÿøMultiline–ÕTequation“en•®9vironmen“tsŽŸ”‘Y14.1Ž‘xñ¼RemarksŽ¤®0‘Y²In–~5late“1994“Daš¸ãvid“M.“Jones“did“a“thorough“o˜v˜erhaul“of“these“en˜vironmen˜tsŽ¦‘Yso–jthat“the“n•¸ãum“bGer›jplacemen“t˜and˜a˜few˜other˜aspGects˜are˜substan“tially˜im-Ž¦‘Ypro•¸ãv“ed›Øßo“v“er˜the˜original˜v“ersions˜that˜w“ere˜pGorted˜essen“tially˜unc“hanged˜fromŽ¦‘YÅamstex.tex–I[²in“1989.‘MÙMost“of“the“commen¸ãtary“in“this“section“is“DMJ's,‘†\andŽ¦‘Ycommenš¸ãts–of“an˜y“signi cance“that“I‘added“are“mark˜ed“b˜y“m˜y“initials“and“dateŽ¦‘Y[mjd,‘UU1995/01/11].ŽŸq‘YÄ14.2Ž‘xñ¼PreliminariesŽ¡‘$À$Æ\ifinany@ŽŽ¦‘Lø\ifinalign@ŽŽŽŽ¦¦‘“b\ifingather@ŽŽŽŽŽ‘Y²W‘ÿ*ªe–ÀŒde ne“three“switcš¸ãhes“that“are“set“to“true“in“certain“alignmen˜ts:‘H4Åinalign@Ž¦‘Y²and– ÁÅingather@“²inside“of“the“Åalign“²and“Ågather“²en•¸ãvironmen“ts,›ErespGectiv“ely‘ÿ*ª,˜andŽ¦‘YÅinany@–Õè²that“is“set“true“in“anš¸ãy“of“these“en˜vironmen˜ts.‘GNThese“switc˜hes“are“neededŽ¦‘Yto–íòcon¸ãtrol“certain“actions“that“depGend“on“the“surrounding“conditions,‘TmoreŽ¦‘YspGeci cally:‘qÇon–UUthe“setting“already“done“bš¸ãy“the“surrounding“en˜vironmen˜ts.ŽŸô‘cª®Æ\newif\ifinany@Ž¤ ‘cª®\newif\ifinalign@Ž¡‘cª®\newif\ifingather@Ž¤1‘.3P\iftag@ŽŽŽ‘Y²The–0switcš¸ãh“Åtag@“²is“set“to“false“at“the“bGeginning“of“ev˜ery“ro˜w“and“set“to“true“b˜yŽ¦‘Ya–pÅ\tag“²command.‘#This“alloš¸ãws“us“to“c˜hec˜k“whether“there“is“more“than“one“tagŽ¦‘Yon–UUa“ro¸ãw.ŽŸô‘cª®Æ\newif\iftag@Ž¡‘ Ž\ifst@rredŽŽŽ‘Y²The–«,switcš¸ãh“Åst@rred“²is“set“to“true“b˜y“all“starred“en˜vironmen˜ts“and“set“to“falseŽ¦‘Ybš¸ãy–UUthe“unstarred“v˜ersions.ŽŸô‘cª®Æ\newif\ifst@rredŽŽŽŒ‹!K! s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ33ŽŽ 8G ýä‘ÛÙÌÆ\ifmeasuring@ŽŽŽ‘#²All–Éwdisplaš¸ãy“en˜vironmen˜ts“get“t˜ypGeset“t˜wice|once“during“a“\measuring"“phaseŽ¤ ‘#and–Zthen“again“during“a“\prošGduction"“phase;‘{]Å\ifmeasuring@“²will“b˜e“used“toŽ¡‘#determine–UUwhicš¸ãh“case“w˜e're“in,“so“w˜e“can“tak˜e“appropriate“action.ŽŸ™š‘-ª®Æ\newif\ifmeasuring@Ž©ff‘à“b\ifshifttag@ŽŽŽ‘#Å\ifshifttag@–8ã²is“used“bš¸ãy“Ågather“²to“comm˜unicate“bGet˜w˜een“Å\calc@shift@gatherŽ¡‘#²and–‚˜Å\place@tag@gather“²whether“an“equation“tag“should“bGe“shifted“to“a“sepa-Ž¡‘#rate–UUline.‘qÇIt's“also“used“b¸ãy“Åmultline².Ž¤ ÌÍ‘-ª®Æ\newif\ifshifttag@Ž¦‘¦|\row@ŽŽŽŽ¡‘-ª®\newcount\row@Ž¦‘óyº\column@ŽŽŽ‘#²The–Uácounš¸ãter“Å\column@“²is“used“b˜y“the“alignmen˜t“macros“to“k˜eep“trac˜k“of“theŽŸ ‘#curren¸ãt‘UUcolumn.ŽŸ™š‘-ª®Æ\newcount\column@Ž¦‘à“b\column@plusŽŽŽ‘#Å\column@plus–UU²is“a“useful“abbreviation.Ž¡‘-ª®Æ\def\column@plus{%Ž¤ ‘@‘\global\advance\column@\@neŽ¡‘-ª®}Ž¦‘åLø\maxfields@ŽŽŽŽ¤ ÌÍ‘-ª®\newcount\maxfields@Ž¦‘îÀ$\add@ampsŽŽŽŽ¡‘-ª®\def\add@amps#1{%Ž¤ ‘@‘\begingroupŽ¡‘Sw^\count@#1Ž¡‘Sw^\DN@{}%Ž¡‘Sw^\loopŽ¡‘f]¶\ifnum\count@>\column@Ž¡‘yD\edef\next@{&\next@}%Ž¡‘yD\advance\count@\m@neŽ¡‘Sw^\repeatŽ¡‘@‘\@xp\endgroupŽ¡‘@‘\next@Ž¡‘-ª®}Ž¦‘îÀ$\andhelp@ŽŽŽ‘#²The–•Uhelp“text“stored“in“Å\andhelp@“²is“used“for“errors“generated“bš¸ãy“toGo“man˜y“Å&ŽŸ ‘#²cš¸ãharacters–UUin“a“ro˜w.ŽŸ ÌÍ‘-ª®Æ\newhelp\andhelp@Ž¡‘-ª®{An–¹–extra“&“here“is“so“disastrous“that“you“should“probably“exit^^JŽ¡‘-ª®and–¹–fix“things“up.}Ž¦‘êŽ\eqnshift@ŽŽŽ‘#Å\eqnshift@–G¡²is“used“bš¸ãy“Åalign“²and“Ågather“²as“the“inden˜tation“of“the“lines“of“theŽŸ ‘#en•¸ãvironmen“t–UUfrom“the“left“margin.ŽŸ ÌÍ‘-ª®Æ\newdimen\eqnshift@ŽŽŽŒ‹"VÍ s\È ý®£8‘Y²34’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘ ŽÆ\alignsep@ŽŽŽŽ¤ —‘cª®\newdimen\alignsep@Ž©µ‘ Ž\tagshift@ŽŽŽŽ¡‘cª®\newdimen\tagshift@Ž¦‘ Ž\mintagsepŽŽŽ‘YÅ\mintagsep–‰>²is“the“minimš¸ãum“allo˜w˜able“separation“bGet˜w˜een“an“equation“and“itsŽŸ ‘Ytag.‘qÇW‘ÿ*ªe–UUset“it“to“half“a“quad“in“Å\textfont²2,“whic¸ãh“is“T‘þU>Ÿ'EŽ‘ãxX's“built-in“v‘ÿqÇalue.Ž¡‘cª®Æ\def\mintagsep{.5\fontdimen6\textfont2}Ž¦‘“b\minalignsepŽŽŽŽ¡‘cª®\def\minalignsep{10pt}Ž¦‘ Ž\tagwidth@ŽŽŽŽ¡‘cª®\newdimen\tagwidth@Ž¦‘ Ž\totwidth@ŽŽŽŽ¡‘cª®\newdimen\totwidth@Ž¦‘)yº\lineht@ŽŽŽ‘Y²The–å dimen“register“Å\lineht@“²is“used“to“kš¸ãeep“trac˜k“of“the“heigh˜t“(or“depth,‘ûifŽŸ ‘Ytags–UUare“on“the“righš¸ãt)“of“a“ro˜w“in“an“alignmen˜t.Ž¡‘cª®Æ\newdimen\lineht@Ž¦‘ Ž\tag@widthŽŽŸ ‘f \savetaglength@ŽŽŽŽ¤ ¡‘ Ž\shift@tagŽŽŽŽ¤ ¡¡‘Lø\tag@shiftsŽŽŽŽŽŽ¡‘cª®\def\tag@width#1{%Ž¤ ‘v‘\ifcase\@xp#1\tag@lengths\fiŽ¡‘cª®}Ž¡¡‘cª®\def\savetaglength@{%Ž¡‘v‘\begingroupŽ¡’‰w^\let\or\relaxŽ¡’‰w^\xdef\tag@lengths{\tag@lengths\or‘¹–\the\wdz@}%Ž¡‘v‘\endgroupŽ¡‘cª®}Ž¡¡‘cª®\def\shift@tag#1{%Ž¡‘v‘\ifcase\@xp#1\tag@shifts\fi\relaxŽ¡‘cª®}Ž¡¡‘cª®\let\tag@shifts\@emptyŽ¦‘Lø\saveshift@ŽŽŽŽŸ —‘cª®\def\saveshift@#1{%Ž¡‘v‘\begingroupŽ¡’‰w^\let\or\relaxŽ¡’‰w^\xdef\tag@shifts{\or#1\tag@shifts}%Ž¡‘v‘\endgroupŽ¡‘cª®}ŽŽŽŒ‹#^2 s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ35ŽŽ 8G ýä‘óyºÆ\displ@yŽŽŸ ‘îÀ$\displ@y@ŽŽŽŽ¤ ¡‘× 6\@display@initŽŽŽŽŽ‘#Å\displ@y– m²is“from“Åplain.tex²,‘“3with“Å\interdisplaylinepenalty“²c¸ãhanged“toŽ¤ ‘#Å\@eqpen².‘Ç&Also–qÊwš¸ãe“transplan˜ted“most“of“its“in˜ternal“organs“to“Å\@display@initŽ¡‘#²to–FsuppšGort“Å\displ@y@“²and“other“p˜ossibilities.‘ EwDon't“try“to“mak¸ãe“sense“ofŽ¡‘#these–/-naming“con•¸ãv“en“tions!‘ ÿPThey–/-are“a“narro¸ãwly“calculated“mishmash“ofŽ¡‘#Kn•¸ãuth/Spiv‘ÿqÇak/LampGort/Mittelbac“h›­Opreceden“ts.‘y¶The˜reason˜for˜not˜cleaningŽ¡‘#them–‡up“and“forcing“all“names“to“a“consistenš¸ãt“sc˜heme“is“that“then“in“principleŽ¡‘#w•¸ãe'd›m´ha“v“e˜to˜do˜it˜ev“erywhere˜else˜toGo.‘ºåF‘ÿ*ªurthermore˜w“e˜programmers˜are˜aŽ¡‘#feral–9breed,‘>«sub‘Ž8ject“to“primordial“fears“abGout“incapaciting“unkno¸ãwn“uses“of“theŽ¡‘#old–Rinš¸ãternal“function“names“in“third-part˜y“extensions,‘¹ev˜en“when“the“pGossibilit˜yŽ¡‘#seems–UUrather“small.Ž© ’I‘-ª®Æ\def\displ@y{\@display@init{}}Ž¤ ‘-ª®\def\@display@init#1{%Ž¡‘@‘\global\dt@ptrueŽ¡‘@‘\openup\jot\m@thŽ¡‘@‘\everycr{%Ž¡‘Sw^\noalign{%Ž¡‘f]¶#1%Ž¡‘f]¶\ifdt@pŽ¡‘yD\global\dt@pfalseŽ¡‘yD\vskip-\lineskiplimitŽ¡‘yD\vskip\normallineskiplimitŽ¡‘f]¶\elseŽ¡‘yD\penalty\@eqpenŽ¡‘f]¶\fiŽ¡‘Sw^}%Ž¡‘@‘}%Ž¡‘-ª®}ŽŸ’I‘#Å\displ@y@–Íñ²is“nearly“the“same;‘Š?it“additionally“sets“the“Åtag@“²switc¸ãh“and“theŽ¤ ‘#Å\column@–¨N²and“Å\dspbrk@lvl“²counš¸ãters“to“their“default“v‘ÿqÇalues.‘j²The“argumen˜t“isŽ¡‘#normally–J›a“bit“of“coGde“to“emptš¸ãy“out“Å\raise@tag²,‘‡ìbut“in“Åmultline“²w˜e“don'tŽ¡‘#w•¸ãan“t–UUthat“to“happGen“in“Å\everycr².Ž¦‘-ª®Æ\def\displ@y@{\@display@init{%Ž¤ ‘7Ú\global\column@\z@‘¹–\global\dspbrk@lvl\m@neŽ¡‘7Ú\global\tag@false‘¹–\global\let\raise@tag\@emptyŽ¡‘-ª®}}ŽŸ¶Û‘ø3P\black@ŽŽŽ‘#²This– ”macro“is“made“to“prošGduce“an“o•¸ãv“erfull‘ ”b˜o“x– ”message“and“p˜ossibly“(dep˜endingŽ¤ ‘#on–öþthe“v‘ÿqÇalue“of“Å\overfullrule²)“a“rule“in“the“margin“if“the“total“width“of“anŽ¡‘#alignmen¸ãt–UUis“larger“than“the“v‘ÿqÇalue“of“Å\displaywidth².Ž¦‘-ª®Æ\def\black@#1{%Ž¤ ‘@‘\noalign{%Ž¡‘Sw^\ifdim#1>\displaywidthŽ¡‘f]¶\dimen@\prevdepthŽ¡‘f]¶\nointerlineskipŽ¡‘f]¶\vskip-\ht\strutbox@Ž¡‘f]¶\vskip-\dp\strutbox@Ž¡‘f]¶\vbox{\noindent\hbox‘¹–to#1{\strut@\hfill}}%Ž¡‘f]¶\prevdepth\dimen@ŽŽŽŒ‹$cá s\È ý®£8‘Y²36’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’‰w^Æ\fiŽ¤ ‘v‘}%Ž¡‘cª®}Ž©¸‘ 6\savecounters@ŽŽŸ ‘þót\restorecounters@ŽŽŽŽŽ‘Y²These–ýžare“used“during“the“measuring“phase“of“the“v‘ÿqÇarious“displaš¸ãy“math“en˜vi-Ž¤ ‘Yronmenš¸ãts–¥øto“sa˜v˜e“and“restore“the“v‘ÿqÇalues“of“all“LŸýó5‘üff±AŽŽ‘͉²T‘þU>Ÿ'EŽ‘ãxX“coun˜ters.‘c¯W‘ÿ*ªe“mak˜e“theseŽ¡‘YloGcal–UUto“a“group,“so“nested“en•¸ãvironmen“ts‘UUw“orks.ŽŸ .‘hChanged–é³Å\stepcounter“²to“Å\csname‘?ýc@...\endcsname“²to“a•¸ãv“oid›é³o“v“erhead˜ofŽ¡‘Yifunde ned–UUtest“[mjd,“1995/01/20].ŽŸe3‘cª®Æ\def\savecounters@{%Ž¤ ‘v‘\begingroupŽ¡’‰w^\def\@elt##1{%Ž¡’’êŠ\global\csname–¹–c@##1\endcsname\the\csname“c@##1\endcsname}%Ž¡’‰w^\xdef\@tempa{%Ž¡’œ]¶\cl@@ckptŽ¡’œ]¶\let\@nx\restorecounters@\@nx\@emptyŽ¡’‰w^}%Ž¡‘v‘\endgroupŽ¡‘v‘\let\restorecounters@\@tempaŽ¡‘cª®}Ž¡‘cª®%Ž¡‘cª®\let\restorecounters@\@emptyŽ¦‘­ \savealignstate@ŽŽŸ ‘õ€H\restorealignstate@ŽŽŽŽŽ‘Y²These–}tare“used“to“sa•¸ãv“e–}tthe“v›ÿqÇalues“of“v˜arious“parameters“that“are“shared“b¸ãy“ÅalignŽŸ ‘Y²and–UUÅgather“²when“the“former“is“used“inside“the“latter.ŽŸe3‘cª®Æ\def\savealignstate@{%Ž¡‘v‘\begingroupŽ¡’‰w^\let\or\relaxŽ¡’‰w^\xdef\@tempa{%Ž¡’œ]¶\global\totwidth@\the\totwidth@Ž¡’œ]¶\global\row@\the\row@Ž¡’œ]¶\gdef\@nx\tag@lengths{\tag@lengths}%Ž¡’œ]¶\let\@nx\restorealignstate@\@nx\@emptyŽ¡’‰w^}%Ž¡‘v‘\endgroupŽ¡‘v‘\let\restorealignstate@\@tempaŽ¡‘cª®}Ž¡¡‘cª®\let\restorealignstate@\@emptyŽ¦‘YÄ14.3Ž‘xñ¼Scanning–ÕTthe“en•®9vironmen“t's‘ÕTb•QÇo“dyŽŸ”d‘Y²Sevš¸ãeral–³ôof“the“math“alignmen˜t“macros“m˜ust“scan“their“b•Go“dy–³ôt˜wice:‘/once“toŽ¤ ‘Ydetermine–±Ähoš¸ãw“wide“the“columns“are“and“then“to“actually“t˜ypGeset“them.‘‡ThisŽ¡‘Ymeans–*§that“wš¸ãe“m˜ust“collect“all“text“in“this“b•Go“dy›*§b“efore˜calling˜the˜en•¸ãvironmen“tŽ¡‘Ymacros.ŽŸæ‘$À$Æ\@envbodyŽŽŽ‘Y²W‘ÿ*ªe–UUstart“bš¸ãy“de ning“a“tok˜en“register“to“con˜tain“the“b•Go“dy‘ÿ*ª.ŽŸe3‘cª®Æ\newtoks\@envbodyŽŽŽŒ‹%m’ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ37ŽŽ 8G ýä‘× 6Æ\addto@envbodyŽŽŽ‘#²Then–RFwš¸ãe“de ne“a“macro“to“add“something“(i.e.“its“argumen˜t)“to“the“tok˜en“registerŽ¤ ‘#Å\@envbody².Ž© Ç‘-ª®Æ\def\addto@envbody#1{\@envbody\@xp{\the\@envbody#1}}ŽŸUU‘ÛÙÌ\collect@bodyŽŽŽ‘#²The–wœmacro“Å\collect@body“²starts“the“scan“for“the“Å\end{...}“²command“of“theŽ¡‘#curren•¸ãt›§en“vironmen“t.‘gIt˜tak“es˜a˜macro˜name˜as˜argumen“t.‘gThis˜macro˜is˜sup-Ž¡‘#pšGosed–Éòto“tak¸ãe“the“whole“b˜o˜dy“of“the“en•¸ãvironmen“t–Éòas“its“argumen¸ãt.‘ÏF‘ÿ*ªor“exam-Ž¡‘#ple,‘·ÙÅ\begin{align}–y²w¸ãould“call“Å\collect@body\@align“²if“Å@align#1{...}“²is“theŽ¡‘#macro–UUthat“sets“the“alignmen¸ãt“with“b•Go“dy‘UUÅ#1².Ž¡‘2Å\collect@body–UU² rst“initializes“the“tok¸ãen“register“Å\@envbody².Ž¦‘-ª®Æ\def\collect@body#1{%ŽŸ ‘@‘\@envbody{}%ŽŸÇ‘#²Then–ANit“de nes“the“macro“Å\process@envbody“²whic¸ãh“is“called“when“the“Å\endŽ¡‘#²command–¤wš¸ãas“successfully“scanned.‘_áIt“will“insert“the“scanned“text“as“argumen˜tŽ¡‘#to–UUthe“macro“that“is“the“argumen¸ãt“to“Å\collect@body².Ž¦‘@‘Æ\def\process@envbody{%Ž¤ ‘Sw^\@xp#1\@xp{\the\@envbody}%Ž¡‘@‘}%ŽŸÇ‘#²Finally–áit“calls“Å\collect@@body“²to“pGerform“the“scan.‘ÖBut“w¸ãe“use“a“renamingŽŸ ‘#tric¸ãk–UUdescribšGed“b˜elo¸ãw.Ž¦‘@‘Æ\@xp\let\csname\@currenvir\endcsname\collect@@bodyŽ¡‘@‘\csname\@currenvir\endcsnameŽ¡‘-ª®}ŽŸUU‘× 6\collect@@bodyŽŽŽ‘#Å\collect@@body–êc²takš¸ães“t˜w˜o“argumen˜ts:‘Ÿ'EŽ‘ãxX's–Ô¼built-in“tag“placemen¸ãt“algorithm“that“can“cause“an“equation“to“bGe“shiftedŽ¡‘Yall–UUthe“w•¸ãa“y›UUo“v“er˜to˜the˜margin.|dmj,˜1994/12/21]Ž¦‘v‘Æ\null\,%Ž¤ ‘v‘\if–¹–#1t\vtop“\else“\if#1b“\vbox“\else“\vcenter“\fi“\fi“\bgroupŽ¡’‰w^\maxfields@#2\relaxŽ¡’‰w^\ifnum\maxfields@>\m@neŽ¡’œ]¶\multiply\maxfields@\tw@ŽŸ™š‘Y²Inš¸ãtroGduced–‘new“Å\math@cr@@@“²so“w˜e“can“pro˜vide“standard“error“message“for“toGoŽŸ ‘Yman¸ãy–UUÅ&²'s“in“Åalignedat².Ž¦’œ]¶Æ\let\math@cr@@@\math@cr@@@alignedatŽ¡’‰w^\elseŽ¡’œ]¶\restore@math@crŽ¡’‰w^\fiŽŽŽŒ‹'‚ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ39ŽŽ 8G ýä‘#Reset–UUthe“meaning“of“Å\\².Ž¤§#‘Sw^Æ\Let@Ž©§#‘#²Restore–x*the“default“de nition“of“Å\tag“²(error“message),‘€ßin“case“Åaligned“²is“usedŽŸ ‘#inside,–UUe.g.,“a“Ågather“²en•¸ãvironmen“t–UUthat“accepts“Å\tag².Ž¡‘Sw^Æ\default@tagŽ¦‘#²Increase–Ý,the“vš¸ãertical“space“bGet˜w˜een“ro˜ws“a“bit;‘!but“if“w˜e“are“already“inside“ofŽ¤ ‘#another–ù•mš¸ãultiline“equation“en˜vironmen˜t“this“w˜as“already“done“and“shouldn't“bGeŽ¡‘#repGeated.ŽŸ§#‘Sw^Æ\ifinany@\else\openup\jot\fiŽ¦‘#²Finally–ùqwš¸ãe“start“the“alignmen˜t“itself.‘S&Unfortunately‘ÿ*ª,‘ Òthere's“nothing“sensible“w˜eŽ¡‘#can–UUdo“abGout“inš¸ãteralign“glue:‘qÇthe“user“will“still“ha˜v˜e“to“spGecify“that“explicitly‘ÿ*ª.Ž©§#‘Sw^Æ\column@\z@Ž¤ ‘Sw^\ialign\bgroupŽ¡‘a¤ &\column@plusŽ¡‘f]¶\hfilŽ¡‘f]¶\strut@Ž¡‘f]¶$\m@th\displaystyle{##}$%Ž¡‘a¤ &\column@plusŽ¡‘f]¶$\m@th\displaystyle{{}##}$%Ž¡‘f]¶\hfilŽ¡‘f]¶\crcrŽ¡‘-ª®}ŽŸ/ã‘Ä9Þ\math@cr@@@alignedŽŽŽ‘#Å\math@cr@@@aligned›²a²c•¸ãhec“ks˜to˜mak“e˜sure˜the˜user˜hasn't˜put˜in˜toGo˜man“y˜Å&²sŽ¤ ‘#in–åAÅalignedat².‘LkSince“Åalignedat“²doGesn't“use“Å\displ@y@²,‘û¬w¸ãe“also“reset“Å\column@Ž¡‘#²here.‘f»Note–Q¦than“in“Åaligned²,›»Å\column@“²will“increase“without“bGound,˜since“itŽ¡‘#nev¸ãer–UUgets“reset,“but“this“is“harmless.Ž¦‘-ª®Æ\def\math@cr@@@alignedat{%Ž¤ ‘@‘\ifnum\column@>\maxfields@Ž¡‘Sw^\begingroupŽ¡‘\êŠ\measuring@falseŽ¡‘\êŠ\@amsmath@err{Extra–¹–&“on“this“line}%Ž¡‘f]¶{\the\andhelp@}%–¹–"An“extra“&“here“is“disastrous"Ž¡‘Sw^\endgroupŽ¡‘@‘\fiŽ¡‘@‘\column@\z@Ž¡‘@‘\crŽ¡‘-ª®}ŽŸ/ã‘ø3PalignedŽŽŽ‘#²The–¾’Åaligned“²en•¸ãvironmen“t›¾’tak“es˜an˜optional˜argumen“t˜that˜indicates˜its˜v“erticalŽŸ ‘#pšGosition–j¶in“relation“to“surrounding“material:‘üwÅt²,–™£Åc²,“or–j¶Åb“²for“top,–™£cen¸ãter,“or‘j¶b˜ottom.Ž¦‘-ª®Æ\newenvironment{aligned}[1][c]{%Ž¡‘@‘\start@aligned{#1}\m@neŽ¡‘-ª®}{%Ž¡‘@‘\crcr\egroup\egroupŽ¡‘-ª®}ŽŽŽŒ‹(‹ê s\È ý®£8‘Y²40’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘$À$ÆalignedatŽŽŽ‘Y²T‘ÿ*ªo–pget“a“top“or“bšGottom“p˜ositioned“Åalignedat“²structure,‘Ñyš¸ãou“w˜ould“write“some-Ž¤ ‘Ything‘UUlik¸ãeŽŸ£‘]¹–Æ\begin{alignedat}[t]{3}ŽŸz«‘h²W‘ÿ*ªe–¡Çcan“sa•¸ãv“e–¡Çthree“wš¸ãords“of“memory“b˜y“using“Å\newcommand“²here“and“usingŽ¡‘YÅ\let–UU²to“de ne“Å\endalignedat².|dmj,“1994/12/26Ž©Yõ‘cª®Æ\newcommand{\alignedat}[2][c]{%Ž¤ ’‰w^\start@aligned{#1}%Ž¡‘cª®}Ž¡‘cª®%Ž¡‘cª®\let\endalignedat\endalignedŽŸ£‘)yºgatheredŽŽŽ‘Y²The–=ÝÅgathered“²en•¸ãvironmen“t–=Ýis“for“sevš¸ãeral“lines“that“are“cen˜tered“indepGenden˜tly‘ÿ*ª.Ž¦‘cª®Æ\newcommand{\gathered}[1][c]{%Ž¡‘v‘\RIfM@\elseŽ¡’‰w^\nonmatherr@{\begin{gathered}}%Ž¡‘v‘\fiŽ¡‘v‘\null\,%Ž¡‘v‘\if–¹–#1t\vtop“\else“\if#1b\vbox“\else“\vcenter“\fi\fi“\bgroupŽ¡’‰w^\Let@Ž¡’‰w^\restore@math@crŽ¡’‰w^\ifinany@\else\openup\jot\fiŽ¡’‰w^\ialign\bgroupŽ¡’œ]¶\hfil\strut@$\m@th\displaystyle##$\hfilŽ¡’œ]¶\crcrŽ¡‘cª®}Ž¡‘cª®%Ž¡‘cª®\let\endgathered\endalignedŽŸ£‘YÄ14.5Ž‘xñ¼The–ÕTÅgather“Äen•®9vironmen“tŽŸH‘ÙÌÆ\start@gatherŽŽŽŽ¦‘cª®\def\start@gather#1{%Ž¡‘v‘\RIfM@Ž¡’‰w^\nomath@envŽ¡’‰w^\DN@{\@namedef{end\@currenvir}{}\@gobble}%Ž¡‘v‘\elseŽ¡’‰w^$$%Ž¡’‰w^#1%Ž¡’‰w^\ifst@rred\elseŽ¡’œ]¶\global\@eqnswtrueŽ¡’‰w^\fiŽ¡’‰w^\let\next@\gather@Ž¡‘v‘\fiŽ¡‘v‘\collect@body\next@Ž¡‘cª®}ŽŸ£‘2ìægatherŽŽŸ ‘.3Pgather*ŽŽŽŽŽŽ¦‘cª®\def\gather{\start@gather\st@rredfalse}ŽŽŽŒ‹)” s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ41ŽŽ 8G ýä¤ ‘-ª®Æ\@namedef{gather*}{\start@gather\st@rredtrue}Ž©E‘óyº\gather@ŽŽŽŽŸ—f‘-ª®\def\gather@#1{%Ž¡‘@‘\ingather@trueŽ¡‘@‘\inany@trueŽ¡‘@‘\let\tag\tag@in@alignŽ¡‘@‘\let\label\label@in@displayŽ¡‘@‘\displaybreak@Ž¡‘@‘\intertext@Ž¡‘@‘\displ@y@Ž¡‘@‘\Let@Ž¡‘@‘\let\math@cr@@@\math@cr@@@gatherŽ¡‘@‘\gmeasure@{#1}%Ž¡‘@‘\global\shifttag@falseŽ¡‘@‘\tabskip\z@skipŽ¡‘@‘\global\row@\@neŽ¡‘@‘\halign‘¹–to\displaywidth\bgroupŽ¡‘Sw^\strut@Ž¡‘Sw^\setboxz@h{$\m@th\displaystyle{##}$}%Ž¡‘Sw^\calc@shift@gatherŽ¡‘Sw^\set@gather@fieldŽ¡‘Sw^\tabskip\@centeringŽ¡‘N½È&\setboxz@h{\strut@{##}}%Ž¡‘Sw^\place@tag@gatherŽ¡‘Sw^\tabskip–¹–\iftagsleft@“\gdisplaywidth@“\else“\z@skip“\span\fiŽ¡‘Sw^\crcrŽ¡‘Sw^#1%Ž¡‘-ª®}Ž¦‘êŽ\endgatherŽŽŸ ‘åLø\endgather*ŽŽŽŽŽ‘#²Bug–´+ x:‘!2c¸ãhanged“Å\math@cr@@@“²to“Å\math@cr“²so“that“Å\@eqpen“²gets“reset“propGerlyŽŸ ‘#if–UUÅ\displaybreak“²is“used“on“the“pGen¸ãultimate“line“of“an“Åalign².ŽŸ—f‘-ª®Æ\def\endgather{%Ž¡‘Sw^\math@crŽ¡‘Sw^\black@\totwidth@Ž¡‘@‘\egroupŽ¡‘@‘$$%Ž¡‘@‘\global\@ignoretrueŽ¡‘-ª®}Ž¡¡‘-ª®\@xp\let\csname‘¹–endgather*\endcsname\endgatherŽ¦‘êŽ\gmeasure@ŽŽŽŽŸ—f‘-ª®\def\gmeasure@#1{%Ž¡‘@‘\begingroupŽ¡‘Sw^\measuring@trueŽ¡‘Sw^\totwidth@\z@Ž¡‘Sw^\global\let\tag@lengths\@emptyŽŽŽŒ‹*š( s\È ý®£8‘Y²42’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’‰w^Æ\savecounters@Ž¤ ’‰w^\setbox\@ne\vbox{%Ž¡’œ]¶\everycr{\noalign{\global\tag@falseŽ¡’¥Ðâ\global\let\raise@tag\@empty‘¹–\global\column@\z@}}%Ž¡’œ]¶\let\label\@gobbleŽ¡’œ]¶\halign{%Ž¡’¯D\setboxz@h{$\m@th\displaystyle{##}$}%Ž¡’¯D\ifdim\wdz@>\totwidth@Ž¡’Â*f\global\totwidth@\wdz@Ž¡’¯D\fiŽ¡’ªŠx&\setboxz@h{\strut@{##}}%Ž¡’¯D\savetaglength@Ž¡’¯D\crcrŽ¡’¯D#1%Ž¡’¯D\math@cr@@@Ž¡’œ]¶}%Ž¡’‰w^}%Ž¡’‰w^\restorecounters@Ž¡’‰w^\if@fleqnŽ¡’œ]¶\global\advance\totwidth@\@mathmarginŽ¡’‰w^\fiŽ¡’‰w^\iftagsleft@Ž¡’œ]¶\ifdim\totwidth@>\displaywidthŽ¡’¯D\global\let\gdisplaywidth@\totwidth@Ž¡’œ]¶\elseŽ¡’¯D\global\let\gdisplaywidth@\displaywidthŽ¡’œ]¶\fiŽ¡’‰w^\fiŽ¡‘v‘\endgroupŽ¡‘cª®}Ž©r‘þót\math@cr@@@gatherŽŽŽ‘Y²MoGdi ed–_tÅ\math@cr@@@gather“²so“that“it“alw•¸ãa“ys–_tputs“in“the“ nal“ eld,‘¡üwhic¸ãhŽ¤ ‘Yneeds– ñto“bšGe“done“under“the“new“metho˜d“for“determining“tag“placemen¸ãt.‘XûThis“isŽ¡‘Yprobably–UUmore“ecienš¸ãt“an˜yw˜a˜y‘ÿ*ª.ŽŸ(‘cª®Æ\def\math@cr@@@gather{%Ž¤ ‘v‘\ifst@rred\nonumber\fiŽ¡‘q×p&\relaxŽ¡‘v‘\make@display@tagŽ¡‘v‘\ifst@rred\else\global\@eqnswtrue\fiŽŸ(‘Y²W‘ÿ*ªe–<1adv‘ÿqÇance“Å\row@“²here,›A8rather“than“at“the“bGeginning“of“the“pream¸ãble,˜bGecauseŽ¤ ‘Yotherwise–ÕUthe“Åsplit“²en•¸ãvironmen“t–ÕUwill“cause“Å\row@“²to“bGe“adv‘ÿqÇanced“t¸ãwice“insteadŽ¡‘Yof‘UUonce.ŽŸË‘‘v‘Æ\global\advance\row@\@neŽ¤ ‘v‘\crŽ¡‘cª®}Ž¦‘ú9Þ\calc@shift@gatherŽŽŽ‘YÅ\calc@shift@gather–Í…²has“mš¸ãust“mak˜e“t˜w˜o“decisions:‘b((1)“whether“the“equationŽŸ ‘Ytag–S‹for“the“curren¸ãt“line“should“bGe“put“on“a“separate“line“and“(2)“what“the“distanceŽŽŽŒ‹+ŸÂ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ43ŽŽ 8G ýä‘#bšGet•¸ãw“een–NÃthe“equation“and“the“equation“tag“should“b˜e.‘^W‘ÿ*ªe“implemen¸ãt“T‘þU>Ÿ'EŽ‘ãxX'sŽ¤ ‘#built-in–ãbtag-placemenš¸ãt“as“w˜ell“as“pGossible,‘ú-with“one“impro˜v˜emen˜t:‘8Îthe“minim˜umŽ¡‘#separation›UUbGet•¸ãw“een˜tag˜and˜equation˜is˜no“w˜a˜user-settable˜parameter.ŽŸ †½‘2[1995/01/17]–íðAdded“a“c•¸ãhec“k–íðto“mak¸ãe“sure“that“the“width“of“the“tag“onŽ¡‘#the– %curren¸ãt“line“is“µ>‘Km²0“bGefore“testing“to“see“if“tagwidth“+“linewidth“+Ž¡‘#minš¸ãtagsep–’ϵ>“²displa˜ywidth.‘0ðSince“an“im˜bGedded“align“sho˜ws“up“as“line“with“widthŽ¡‘#Å\displaywidth²,‘yand–rQevš¸ãen“lines“without“a“tag“get“proGcessed“as“if“an“empt˜y“tagŽ¡‘#w•¸ãere›Ypresen“t,‘Zthe˜result˜w“as˜that˜the˜empt“y˜tag˜assigned˜to˜the˜line˜con“tainingŽ¡‘#the–UUalign“wš¸ãas“bGeing“shifted“do˜wn˜w˜ards,“creating“extra“space“after“the“align.Ž©(l‘-ª®Æ\def\calc@shift@gather{%Ž¤ ‘@‘\dimen@\mintagsep\relaxŽ¡‘@‘\tagwidth@\tag@width\row@\relaxŽŸ(l‘#²If–JÅwš¸ãe're“in“Åfleqn“²moGde,‘Lâthere“is“no“ exibilit˜y“abGout“placemen˜t“of“the“equation,ŽŸ ‘#so–UUall“wš¸ãe“can“do“is“see“if“there's“roGom“for“the“tag“in“the“giv˜en“margin.Ž¦‘@‘Æ\if@fleqnŽ¡‘Sw^\global\eqnshift@\@mathmarginŽ¡‘Sw^\ifdim\tagwidth@>\z@Ž¡‘f]¶\advance\dimen@\tagwidth@Ž¡‘f]¶\iftagsleft@Ž¡‘yD\ifdim\dimen@>\@mathmarginŽ¡’Œ*f\global\shifttag@trueŽ¡‘yD\fiŽ¡‘f]¶\elseŽ¡‘yD\advance\dimen@\@mathmarginŽ¡‘yD\advance\dimen@\wdz@Ž¡‘yD\ifdim\dimen@>\displaywidthŽ¡’‡pÐ\global\shifttag@trueŽ¡‘yD\fiŽ¡‘f]¶\fiŽ¡‘Sw^\fiŽ¡‘@‘\elseŽ¡‘Sw^\global\eqnshift@\displaywidthŽ¡‘Sw^\global\advance\eqnshift@-\wdz@Ž¡‘Sw^\ifdim\tagwidth@>\z@Ž¡‘f]¶\multiply\dimen@\tw@Ž¡‘f]¶\advance\dimen@\wdz@Ž¡‘f]¶\advance\dimen@\tagwidth@Ž¡‘f]¶\ifdim\dimen@>\displaywidthŽ¡‘yD\global\shifttag@trueŽ¡‘f]¶\elseŽ¡‘yD\ifdim\eqnshift@<4\tagwidth@Ž¡’Œ*f\global\advance\eqnshift@-\tagwidth@Ž¡‘yD\fiŽ¡‘f]¶\fiŽ¡‘Sw^\fiŽ¡‘Sw^\global\divide\eqnshift@\tw@Ž¡‘Sw^\iftagsleft@Ž¡‘f]¶\global\eqnshift@-\eqnshift@ŽŽŽŒ‹,¦Î s\È ý®£8‘Y²44’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’œ]¶Æ\global\advance\eqnshift@\displaywidthŽ¤ ’œ]¶\global\advance\eqnshift@-\wdz@Ž¡’‰w^\fiŽ¡’‰w^\ifdim\eqnshift@<\z@Ž¡’œ]¶\global\eqnshift@\z@Ž¡’‰w^\fiŽ¡‘v‘\fiŽ¡‘cª®}ŽŸ@‘þót\place@tag@gatherŽŽŸ ‘þót\set@gather@fieldŽŽŽŽŽŽŸ À‘cª®\def\place@tag@gather{%Ž¡‘v‘\iftagsleft@Ž¡’‰w^\kern-\gdisplaywidth@Ž¡’‰w^\ifshifttag@Ž¡’œ]¶\rlap{\vbox{%Ž¡’¯D\normalbaselinesŽ¡’¯D\boxz@Ž¡’¯D\vbox‘¹–to\lineht@{}%Ž¡’¯D\raise@tagŽ¡’œ]¶}}%Ž¡’œ]¶\global\shifttag@falseŽ¡’‰w^\elseŽ¡’œ]¶\rlap{\boxz@}%Ž¡’‰w^\fiŽ¡‘v‘\elseŽ¡’‰w^\ifdim\totwidth@>\displaywidthŽ¡’œ]¶\dimen@\totwidth@Ž¡’œ]¶\advance\dimen@-\displaywidthŽ¡’œ]¶\kern-\dimen@Ž¡’‰w^\fiŽ¡’‰w^\ifshifttag@Ž¡’œ]¶\llap{\vtop{%Ž¡’¯D\raise@tagŽ¡’¯D\normalbaselinesŽ¡’¯D\setbox\@ne\nullŽ¡’¯D\dp\@ne\lineht@Ž¡’¯D\box\@neŽ¡’¯D\boxz@Ž¡’œ]¶}}%Ž¡’œ]¶\global\shifttag@falseŽ¡’‰w^\elseŽ¡’œ]¶\llap{\boxz@}%Ž¡’‰w^\fiŽ¡‘v‘\fiŽ¡‘cª®}Ž¡‘cª®%Ž¡‘cª®\def\set@gather@field{%Ž¡‘v‘\iftagsleft@Ž¡’‰w^\global\lineht@\ht\z@Ž¡‘v‘\elseŽŽŽŒ‹-¯C s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ45ŽŽ 8G ýä‘Sw^Æ\global\lineht@\dp\z@Ž¤ ‘@‘\fiŽ¡‘@‘\kern\eqnshift@Ž¡‘@‘\boxz@Ž¡‘@‘\hfilŽ¡‘-ª®}Ž©|i‘#Ä14.6Ž‘Bñ¼The–ÕTÅalign“Äfamily“of“en•®9vironmen“tsŽŸ…~‘#²The›±yÅalign²,–Ò?Åflalign²,“Åalignat²,“Åxalignat²,“and˜Åxxalignat˜²en•¸ãvironmen“ts˜are˜vir-Ž¤ ‘#tually–idenš¸ãtical,‘and“th˜us“will“share“m˜uc˜h“coGde.‘Z[W‘ÿ*ªe'll“refer“to“the“en˜vironmen˜tsŽ¡‘#generically–ŒÊas“\Åalign²"“and“will“distinguish“bGet•¸ãw“een–ŒÊthem“explicitly“only“whenŽ¡‘#necessary‘ÿ*ª.ŽŸ›„‘óyºÆ\ifxxat@ŽŽ¡‘åLø\ifcheckat@ŽŽŽŽ¡¡‘êŽ\xatlevel@ŽŽŽŽŽ‘#²The–YzÅ\xatlevel@“²macro“will“bšGe“used,‘‹Ùinformally“sp˜eaking,‘‹Ùto“distinguish“b˜et•¸ãw“eenŽ¡‘#the–UUÅalignat“²and“Åxalignat²,“and“Åxxalignat“²en•¸ãvironmen“ts.ŽŸcˆ‘-ª®Æ\newif\ifxxat@Ž¤ ¡‘-ª®\newif\ifcheckat@Ž¡¡‘-ª®\let\xatlevel@\@emptyŽ¦‘à“b\start@alignŽŽŽ‘#Å\start@align– H²will“bGe“called“bš¸ãy“all“of“the“Åalign²-lik˜e“en˜vironmen˜ts.‘ÒŸThe“ rstŽ¤ ‘#argumenš¸ãt–ŒÀwill“bGe“the“Å\xatlevel@²,–Úši.e.,“0,“1,“or–ŒÀ2;‘(vthe“second“argumen˜t“willŽ¡‘#bšGe–Z¯either“Å\st@rredtrue“²or“Å\st@rredfalse².‘ÕThe“third“argumen¸ãt“will“b˜e“theŽ¡‘#n•¸ãum“bGer–ñof“aligned“structures“in“the“en•¸ãvironmen“t–ñ(either“as“supplied“b¸ãy“theŽ¡‘#user,‘\.or–Zϸ²1“to“indicate“that“c•¸ãhec“king–ZÏshouldn't“bšGe“done).‘‚6After“p˜erforming“theŽ¡‘#appropriate–UUerror“detection“and“initialization,“Å\start@align“²calls“Å\align@².Ž© ‘2Note–Ù{that“the“Å\equation“²coun¸ãter“is“no“longer“steppšGed“at“the“b˜eginning“ofŽ¡‘#these‘UUen•¸ãvironmen“ts.Ž¦‘2TODO:–UUImplemen¸ãt“Å\shoveleft“²and“Å\shoveright“²for“Åalign².ŽŸDm‘-ª®Æ\def\start@align#1#2#3{%Ž¤ ‘@‘\let\xatlevel@#1%–¹–always“\z@,“\@ne,“or“\tw@Ž¡‘@‘\maxfields@#3\relaxŽ¡‘@‘\ifnum\maxfields@>\m@neŽ¡‘Sw^\checkat@trueŽ¡‘Sw^\ifnum\xatlevel@=\tw@Ž¡‘f]¶\xxat@trueŽ¡‘Sw^\fiŽ¡‘Sw^\multiply\maxfields@\tw@Ž¡‘@‘\elseŽ¡‘Sw^\checkat@falseŽ¡‘@‘\fiŽ¡‘@‘\ifingather@Ž¡‘Sw^{\ifnum0=`}\fiŽ¡‘Sw^\DN@{\vcenter\bgroup\savealignstate@\align@#2}%Ž¡‘@‘\elseŽ¡‘Sw^\ifmmodeŽ¡‘f]¶\nomath@envŽŽŽŒ‹.³Ö s\È ý®£8‘Y²46’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’œ]¶Æ\DN@{\@namedef{end\@currenvir}{}\@gobble}%Ž¤ ’‰w^\elseŽ¡’œ]¶$$%Ž¡’œ]¶\DN@{\align@#2}%Ž¡’‰w^\fiŽ¡‘v‘\fiŽ¡‘v‘\collect@body\next@Ž¡‘cª®}Ž©i‘‘7¦|alignŽŽŸ ‘2ìæalign*ŽŽŽŽ¤ ¡‘.3PflalignŽŽŽŽ¤ ¡¡‘)yºflalign*ŽŽŽŽ¤ ¡¡¡‘.3PalignatŽŽŽŽ¤ ¡¡¡¡‘)yºalignat*ŽŽŽŽ¤ ¡¡¡¡¡‘)yºxalignatŽŽŽŽ¤ ¡¡¡¡¡¡‘$À$xalignat*ŽŽŽŽ¤ ¡¡¡¡¡¡¡‘$À$xxalignatŽŽŽŽŽ‘Y²The–UUde nitions“of“the“v‘ÿqÇarious“Åalign“²en•¸ãvironmen“ts–UUare“quite“straigh•¸ãt-forw“ard.ŽŸTt‘cª®Æ\def\alignat{\start@align\z@\st@rredfalse}Ž¡‘cª®\@namedef{alignat*}{\start@align\z@\st@rredtrue}Ž¡‘cª®\def\xalignat{\start@align\@ne\st@rredfalse}Ž¡‘cª®\@namedef{xalignat*}{\start@align\@ne\st@rredtrue}Ž¡‘cª®\def\xxalignat{\start@align\tw@\st@rredtrue}Ž¡‘cª®\def\align{\start@align\@ne\st@rredfalse\m@ne}Ž¡‘cª®\@namedef{align*}{\start@align\@ne\st@rredtrue\m@ne}Ž¡‘cª®\def\flalign{\start@align\tw@\st@rredfalse\m@ne}Ž¡‘cª®\@namedef{flalign*}{\start@align\tw@\st@rredtrue\m@ne}Ž¦‘.3P\align@ŽŽŽ‘Y²TODO:–¯×Some“of“these“sets“of“initializations“shoš¸ãw“up“in“m˜ultiple“places.‘:žIt“migh˜tŽŸ ‘YbGe–UUw¸ãorth“making“an“abbreviation“for“them.ŽŸTt‘cª®Æ\def\align@#1#2{%Ž¡‘v‘\inany@trueŽ¡‘v‘\inalign@trueŽ¡‘v‘\displaybreak@Ž¡‘v‘\intertext@Ž¡‘v‘\ifingather@\else\displ@y@\fiŽ¡‘v‘\Let@Ž¡‘v‘\let\math@cr@@@\math@cr@@@alignŽ¡‘v‘\ifxxat@\elseŽ¡’‰w^\let\tag\tag@in@alignŽ¡‘v‘\fiŽ¡‘v‘\let\label\label@in@displayŽ¡‘v‘#1%–¹–set“st@rŽ¡‘v‘\ifst@rred\elseŽ¡’‰w^\global\@eqnswtrueŽ¡‘v‘\fiŽ¡‘v‘\measure@{#2}%Ž¡‘v‘\global\row@\z@Ž¡‘v‘\tabskip\eqnshift@Ž¡‘v‘\halign\bgroupŽ¡’‰w^\span\align@preamble\crcrŽ¡’‰w^#2%Ž¡‘cª®}Ž¦‘$À$\endalignŽŽŸ ‘ Ž\endalign*ŽŽŽŽ¤ ¡‘Lø\endflalignŽŽŽŽ¤ ¡¡‘“b\endflalign*ŽŽŽŽ¤ ¡¡¡‘Lø\endalignatŽŽŽŽ¤ ¡¡¡¡‘“b\endalignat*ŽŽŽŽ¤ ¡¡¡¡¡‘“b\endxalignatŽŽŽŽ¤ ¡¡¡¡¡¡‘ÙÌ\endxalignat*ŽŽŽŽ¤ ¡¡¡¡¡¡¡‘ÙÌ\endxxalignatŽŽŽŽŽ‘Y²As–µwith“Å\alignat²,‘@ÍÅ\endalignat“²is“shared“among“all“v‘ÿqÇarianš¸ãts“of“the“en˜viron-ŽŸ ‘Ymen¸ãt.ŽŸ d‘hNote–UUthat“Å\setb@ck“²is“no“longer“needed.ŽŽŽŒ‹/¼€ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ47ŽŽ 8G ýä‘2Bug–Œ6 x:‘ 7c¸ãhanged“Å\math@cr@@@“²to“Å\math@cr“²so“that“Å\@eqpen“²gets“reset“prop-ŽŸ ‘#erly–UUif“Å\displaybreak“²is“used“on“the“pGen¸ãultimate“line“of“an“Åalign².Ž©šM‘-ª®Æ\def\endalign{%Ž¤ ‘Sw^\math@crŽ¡‘Sw^\black@\totwidth@Ž¡‘@‘\egroupŽ¡‘@‘\ifingather@Ž¡‘Sw^\restorealignstate@Ž¡‘Sw^\egroupŽ¡‘Sw^\nonumberŽ¡‘Sw^\ifnum0=`{\fi}%Ž¡‘@‘\elseŽ¡‘Sw^$$%Ž¡‘@‘\fiŽ¡‘@‘\global\@ignoretrueŽ¡‘-ª®}Ž¡‘-ª®%Ž¡‘-ª®\@xp\let\csname‘¹–endalign*\endcsname\endalignŽ¡‘-ª®\let\endxalignat\endalignŽ¡‘-ª®\@xp\let\csname‘¹–endxalignat*\endcsname\endalignŽ¡‘-ª®\let\endxxalignat\endalignŽ¡‘-ª®\let\endalignat\endalignŽ¡‘-ª®\@xp\let\csname‘¹–endalignat*\endcsname\endalignŽ¡‘-ª®\let\endflalign\endalignŽ¡‘-ª®\@xp\let\csname‘¹–endflalign*\endcsname\endalignŽŸŒ‘Í­ \math@cr@@@alignŽŽŽŽ¦‘-ª®\def\math@cr@@@align{%Ž¡‘@‘\kern-\alignsep@Ž¡‘@‘\ifst@rred\nonumber\fiŽ¡‘@‘\if@eqnsw–¹–\global\tag@true“\fiŽ¡‘@‘\global\advance\row@\@neŽ¡‘@‘\iftag@Ž¡‘Sw^\add@amps\maxfields@Ž¡‘Sw^\omitŽ¡‘Sw^\setboxz@h{\@lign\strut@{\make@display@tag}}%Ž¡‘Sw^\place@tagŽ¡‘@‘\fiŽ¡‘@‘\ifst@rred\else\global\@eqnswtrue\fiŽ¡‘@‘\global\lineht@\z@Ž¡‘@‘\crŽ¡‘-ª®}ŽŸŒ‘§àZ\math@cr@@@align@measureŽŽŽŽ¦‘-ª®\def\math@cr@@@align@measure{%Ž¡‘;×p&\omitŽ¡‘@‘\global\advance\row@\@neŽ¡‘@‘\ifst@rred\nonumber\fiŽ¡‘@‘\if@eqnsw–¹–\global\tag@true“\fiŽŽŽŒ‹0Å8 s\È ý®£8‘Y²48’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘v‘Æ\ifnum\column@>\maxfields@Ž¤ ’‰w^\ifcheckat@Ž¡’œ]¶\begingroupŽ¡’¥Ðâ\measuring@falseŽ¡’¥Ðâ\@amsmath@err{Extra–¹–&“on“this“line}%Ž¡’¯D{\the\andhelp@}%–¹–"An“extra“&“here“is“disastrous"Ž¡’œ]¶\endgroupŽ¡’‰w^\elseŽ¡’œ]¶\global\maxfields@\column@Ž¡’‰w^\fiŽ¡‘v‘\fiŽ¡‘v‘\setboxz@h{\@lign\strut@{%Ž¡’‰w^\if@eqnswŽ¡’œ]¶\stepcounter{equation}%Ž¡’œ]¶\tagform@\theequationŽ¡’‰w^\elseŽ¡’œ]¶\iftag@\df@tag\fiŽ¡’‰w^\fiŽ¡‘v‘}}%Ž¡‘v‘\savetaglength@Ž¡‘v‘\ifst@rred\else\global\@eqnswtrue\fiŽ¡‘v‘\crŽ¡‘cª®}Ž© ‘ 6\field@lengthsŽŽŸ ‘þót\savefieldlength@ŽŽŽŽ¤ ¡‘ 6\fieldlengths@ŽŽŽŽŽŽŸ `‘cª®\let\field@lengths\@emptyŽ¡¡‘cª®\def\savefieldlength@{%Ž¡‘v‘\begingroupŽ¡’‰w^\let\or\relaxŽ¡’‰w^\xdef\field@lengths{%Ž¡’œ]¶\field@lengthsŽ¡’œ]¶\ifnum\column@=0Ž¡’¯D\orŽ¡’œ]¶\elseŽ¡’¯D,%Ž¡’œ]¶\fiŽ¡’œ]¶\the\wdz@Ž¡’‰w^}%Ž¡‘v‘\endgroupŽ¡‘cª®}Ž¡¡‘cª®\def\fieldlengths@#1{%Ž¡‘v‘\ifcase\@xp#1\field@lengths\fiŽ¡‘cª®}Ž¦‘þót\maxcolumn@widthsŽŽŽ‘YÅ\maxcolumn@widths–Öq²will“bGe“used“to“hold“the“widths“of“the“ elds“of“the“ÅalignatŽ¤ ‘Y²en•¸ãvironmen“t.‘[OThe–ìwidths“will“bGe“separated“bš¸ãy“the“tok˜en“Å\or²,‘hmaking“it“easy“toŽ¡‘Yextract–UUa“giv¸ãen“width“using“Å\ifcase².ŽŸ `‘cª®Æ\let\maxcolumn@widths\@emptyŽŽŽŒ‹1Ë  s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ49ŽŽ 8G ýä‘ÛÙÌÆ\maxcol@widthŽŽŽ‘#Å\maxcol@width–}Šµn“²=“maximš¸ãum“width“of“µn²th“column“of“the“curren˜t“Åalignat“²(i.e.,Ž¤ ‘#the–…µn²th“ eld“of“Å\maxcolumn@widths².)‘4‚It“expands“to“a“¸hÉdimen‘Äc¸i²,‘ÂHso“it“can“bGe“usedŽ¡‘#as–èÎthe“righš¸ãt-hand“side“of“a“¸hÉvariable‘0assignment‘òظi“²or“¸hÉarithmetic‘¶¸i“²statemen˜t.‘MšIt'sŽ¡‘#argumenš¸ãt–ÌVcan“bGe“an˜y“¸hÉnumb–ÿ}'er‘¸i²,‘缸hÉinte“ger‘Þvariable‘À[¸i–ÌV²or“macro“that“expands“to“oneŽ¡‘#of–UUthese.‘qÇ[Checš¸ãk“to“mak˜e“sure“this“is“true.]Ž© a‘2This–UUis“subtler“than“it“loGoks.ŽŸÕœ‘-ª®Æ\def\maxcol@width#1{%Ž¤ ‘@‘\ifcase\@xp#1\maxcolumn@widths\fi\relaxŽ¡‘-ª®}ŽŸ„c‘2²Noš¸ãw–’dcomes“the“real“fun.‘(óA‘’t˜ypical“Åalign“²en˜vironmen˜ts“loGoks“somethingŽ¤ ‘#likš¸ãe–vÂthis,‘where“the“v˜ertical“bars“mark“the“edges“of“the“ elds“of“the“underlyingŽ¡‘#Å\halign²:ŽŸÇá‘Pfóo´‹Ç cmr9È1Ž‘v·X2Ž’žóÜ3Ž’Á)¯4Ž’ýÖ5Ž’.õ±6ŽŽŸfd‘?1Ÿ™œ„ ffŸüfdµVŸÿó 0e—rcmmi7´iŽ‘,²+‘8àµqŸÿ´iŽ‘TLµvŸÿ´jŽŽ‘&=,„ ffŽ‘g:ûŸ™œ„ ffŸüfd²=‘ǵvŸÿ´iŽ‘TLµ;Ž‘dã„ ffŽ’š­Ÿ™œ„ ff‘â`ŸüfdXŸÿ´iŽŽ‘ „ ffŽ’¨ê Ÿ™œ„ ffŸüfd²=‘ǵxŸÿ´iŽ‘,¸‘8àµqŸÿ´iŽ‘TLµxŸÿ´jŽ‘6¬µ;Ž‘4R~„ ffŽ’ú:VŸ™œ„ ff‘â`ŸüfdUŸÿ´iŽŽ‘ •„ ffŽ’·Ÿ™œ„ ffŸüfd²=–ǵuŸÿ´iŽ‘TLµ;‘ªª²for‘UUµi“¸6²=“µj‘’‹²;ŽŽ‘S›%„ ffŽ’jãŒ(3)ŽŽŽŸ ‘?1Ÿc„ã”ff‘1+ŸñœpµVŸÿ´jŽŽ‘&=,„ã”ffŽ‘g:ûŸc„ã”ffŸñœp²=‘ǵvŸÿ´jŽ‘6¬µ;Ž‘dã„ã”ffŽ’š­Ÿc„ã”ffŸñœpXŸÿ´jŽŽ‘ „ã”ffŽ’¨ê Ÿc„ã”ffŸñœp²=‘ǵxŸÿ´jŽ‘6¬µ;Ž‘4R~„ã”ffŽ’ú:VŸc„ã”ffŸñœpUŸÿ´jŽŽ‘ •„ã”ffŽ’·Ÿc„ã”ffŸñœp²=‘ǵuŸÿ´jŽ‘oŒ²+‘8àŸöüóú±u cmex10«XŽŽŸ ‘´ió O!â…cmsy7·6±=´jŽŽ‘UQµqŸÿ´iŽ–TLµuŸÿ´iŽ“µ:Ž‘S›%„ã”ffŽ’j㌲(4)ŽŽŽŸ!ˆ‘#Note–…‹that“eacš¸ãh“align“structure“consists“of“t˜w˜o“ elds,‘¯with“no“space“bGet˜w˜een“themŽ¡‘#(a–OÐsmall“space“has“bšGeen“added“here“to“highligh¸ãt“the“b˜oundaries).‘oðF‘ÿ*ªurthermore,Ž¡‘#the–ÈBtext“inside“the“ošGdd-n•¸ãum“b˜ered–ÈB elds“is“ ushrigh¸ãt,‘äþwhile“the“text“inside“theŽ¡‘#ev•¸ãen-n“um“bGered– C elds“is“ ushleft.‘R‘The“equation“tags“(shoš¸ãwn“on“the“righ˜t“here)Ž¡‘#can–1jbšGe“on“either“the“righ¸ãt“or“the“left.‘If“there“is“not“ro˜om“(in“a“sense“to“b˜eŽ¡‘#de ned–pshortly)“for“the“tag“on“the“same“line“as“the“equation,‘Ewthe“tag“will“bGeŽ¡‘#shifted–UUto“a“separate“line.Ž¦‘2Eac•¸ãh›éÉen“vironmen“t˜also˜has˜a˜certain˜n“um“bGer˜of˜\ exible˜spaces,"‘åmeaningŽ¡‘#spaces–>ùwhose“width“wš¸ãe“are“allo˜w˜ed“to“adjust“to“tak˜e“up“the“amoun˜t“of“\freeŽ¡‘#space"–Œin“the“line,‘)meaning“the“space“not“takš¸ãen“up“b˜y“the“equation“tag“and“theŽ¡‘# elds–UUof“the“underlying“Å\halign².Ž¦‘2The–É! exible“spaces“come“in“t•¸ãw“o›É! a“v“ors:‘+­in“teralign˜spaces˜and˜margin˜spaces.Ž¡‘#If–TÌthere“are“µn“²align“structures“(µn–Dz=“3–TÌin“the“illustration“abGo•¸ãv“e),‘Tçthere–TÌare“µn–7θ“²1Ž¡‘#inš¸ãteralign–Xspaces,‘%unless“w˜e“are“in“an“Åalignat“²en˜vironmen˜t,‘%in“whic˜h“case“thereŽ¡‘#are–UUno“ exible“in¸ãteralign“spaces.Ž¦‘2The›ƒ.n•¸ãum“bGer˜of˜margin˜spaces˜is˜a˜little˜more˜complicated:‘ÍyNormally‘ÿ*ª,‘Ž¤thereŽ¡‘#are›î—t•¸ãw“o,‘çbut˜if˜w“e're˜in˜Åfleqn˜²moGde,–çthere˜is˜only˜one.‘=ŒF‘ÿ*ªurthermore,“if˜w¸ãe'reŽ¡‘#in–ÆLan“Åxxalignat“²or“Åflalign“²en•¸ãvironmen“t–ÆL(correspGonding“to“Å\xatlevel@Ž‘;É‹²=‘ƒ]2,Ž¡‘#then–UUthere“are“no“ exible“margin“spaces.Ž¦‘2Calculating–UUthe“inš¸ãteralign“and“margin“spaces“is“done“in“t˜w˜o“stages.Ž¦‘2First,‘Lthe–ºètotal“amoun¸ãt“of“free“space“is“divided“uniformly“among“all“theŽ¡‘# exible–:®spaces,‘s6without“regard“for“the“lengths“of“the“tags“on“the“v‘ÿqÇarious“lines.‘F‘ÿ*ªorŽ¡‘#the–v¡non-Åfleqn“²case,‘~óthis“correspšGonds“to“cen¸ãtering“the“align“structures“b˜et•¸ãw“eenŽ¡‘#the–ö^margin.‘TáNote“that“in“Åfleqn“²moGde,‘ the“righš¸ãt“margin“is“still“allo˜w˜ed“to“bGeŽ¡‘#larger–£Žthan“Å\@mathmargin².‘\sThis“inš¸ãtroGduces“an“elemen˜t“of“asymmetry“in˜to“theŽ¡‘#appGearance–E of“the“en•¸ãvironmen“t,‘HNbut–E it“has“the“adv‘ÿqÇanš¸ãtage“of“lea˜ving“more“spaceŽ¡‘#for–ÄÉequation“tags“in“the“righš¸ãt“margin.‘A™If“the“righ˜t“margin“w˜ere“constrained“to“bGeŽŽŽŒ‹2б s\È ý®£8‘Y²50’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²equal–ñhto“the“left“margin“in“this“case,‘etags“w¸ãould“need“to“bGe“shifted“to“a“separateŽ¤ ‘Yline–UUmore“often“than“w¸ãould“bGe“desirable.Ž© ¦õ‘hOrdinarily‘ÿ*ª,‘1all–òÒ exible“spaces“will“bGe“givš¸ãen“the“same“width.‘J>Ho˜w˜ev˜er,‘1thisŽ¡‘Yis–qÄnot“inš¸ãv‘ÿqÇariably“true,‘xàsince“the“in˜teralign“spaces“are“constrained“to“bGe“at“leastŽ¡‘YÅ\minalignsep–Dzwide,›(äwhile|in“the“absence“of“equation“tags,˜at“least|the“mar-Ž¡‘Ygin–Rqspaces“are“allo•¸ãw“ed–Rqto“shrink“to“zero.‘ iAs“wš¸ãe“shall“see“in“a“min˜ute,‘Ñ·ifŽ¡‘Ythere–N[are“tags“in“the“en•¸ãvironmen“t,‘Œœthen–N[the“margins“are“also“bšGounded“b˜elo¸ãwŽ¡‘Yb¸ãy‘UUÅ\mintagsep².Ž¦‘hNext,‘$åwš¸ãe–Èexamine“eac˜h“line“of“the“en˜vironmen˜t“that“has“a“tag“to“see“if“thereŽ¡‘Yis–Ua“gap“of“at“least“Å\mintagsep“²bGet•¸ãw“een–Uthe“equation“and“its“tag.‘\rIf“there“isn't,Ž¡‘Ywš¸ãe–attempt“to“cen˜ter“the“equation“bGet˜w˜een“the“tag“and“the“oppGosite“margin,Ž¡‘Yleaš¸ãving–²¦a“gap“of“at“least“Å\mintagsep“²on“either“side,‘Éûin“order“to“preserv˜e“someŽ¡‘Ysymmetry‘ÿ*ª,–E·i.e.,“w•¸ãe›âqw“an“t˜the˜equation˜to˜Élo‘ÿ}'ok‘õþ²lik“e˜it's˜cen“tered˜bGet“w“een˜theŽ¡‘Ymargin–>Òand“the“tag,‘CRso“wš¸ãe“don't“w˜an˜t“the“margin“space“to“bGe“less“than“the“gapŽ¡‘YbšGet•¸ãw“een–¿¤the“tag“and“the“equation.‘°³(Arguably‘ÿ*ª,‘Ú7it“w¸ãould“b˜e“b˜etter“to“allo¸ãw“theŽ¡‘Ymargin–-space“to“shrink“to“zero“in“this“case“in“order“to“a•¸ãv“oid–-shifting“the“tagŽ¡‘Yto–z a“separate“line“at“anš¸ãy“cost,‘ƒóbut“that“w˜ould“require“all“of“our“calculations“toŽ¡‘YbGe–šça“little“more“complicated“and“hence“a“little“slo•¸ãw“er.)‘B}Finally‘ÿ*ª,‘¬Kif–šçno“v‘ÿqÇalues“ofŽ¡‘Ythe–ÿVinš¸ãteralign“spaces“and“the“margins“(with“the“constrain˜ts“outlined“abGo˜v˜e)“willŽ¡‘YprošGduce–oqan“acceptable“distance“b˜et•¸ãw“een–oqthe“equation“and“its“tag,‘uøthen“the“tagŽ¡‘Ywill–UUbGe“shifted“to“a“separate“line.ŽŸBÉ‘$À$Æ\measure@ŽŽŽ‘YÅ\measure@–(²collects“the“v‘ÿqÇarious“bits“of“information“that“w¸ãe'll“need“to“pGerformŽ¡‘Ythe–¿calculations“outlined“abšGo•¸ãv“e,–Ù}namely‘ÿ*ª,“the‘¿n•¸ãum“b˜er–¿of“align“structures“in“theŽ¡‘Yen•¸ãvironmen“t,‘Ñfthe–°jnatural“lengths“of“the“ elds“on“eacš¸ãh“ro˜w,‘Ñfthe“maxim˜um“widthsŽ¡‘Yof–ÿeacš¸ãh“column,‘jand“the“widths“of“the“equation“tags“on“eac˜h“line.‘ ppIt“alsoŽ¡‘Ycalculates–¿üthe“n•¸ãum“bGer–¿üof“ exible“in¸ãteralign“and“margin“spaces“and“computes“theŽ¡‘Yinitial–Ü"v‘ÿqÇalues“of“the“parameters“Å\eqnshift@“²and“Å\alignsep@²,‘ô`whic¸ãh“correspGondŽ¡‘Yto–UUthe“widths“of“the“margins“and“the“inš¸ãteralign“spaces,“respGectiv˜ely‘ÿ*ª.ŽŸoN‘cª®Æ\def\measure@#1{%Ž¤ ‘v‘\begingroupŽ¡’‰w^\measuring@trueŽ¡’‰w^\eqnshift@\z@Ž¡’‰w^\alignsep@\z@Ž¡’‰w^\global\let\tag@lengths\@emptyŽ¡’‰w^\global\let\field@lengths\@emptyŽ¡’‰w^\savecounters@Ž¡’‰w^\global\setbox0\vbox{%Ž¡’œ]¶\let\math@cr@@@\math@cr@@@align@measureŽ¡’œ]¶\everycr{\noalign{\global\tag@falseŽ¡’¥Ðâ\global\let\raise@tag\@empty‘¹–\global\column@\z@}}%Ž¡’œ]¶\let\label\@gobbleŽ¡’œ]¶\global\row@\z@Ž¡’œ]¶\tabskip\z@Ž¡’œ]¶\halign{\span\align@preamble\crcrŽ¡’¯D#1%Ž¡’¯D\math@cr@@@ŽŽŽŒ‹3âW s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ51ŽŽ 8G ýä‘yDÆ\column@\z@Ž¤ ‘yD\add@amps\maxfields@\crŽ¡‘f]¶}%Ž¡‘Sw^}%Ž¡‘Sw^\restorecounters@Ž©¸‘#²It's›Ù6con•¸ãv“enien“t˜to˜ha“v“e˜Å\maxfields@˜²rounded˜up˜to˜the˜nearest˜ev“en˜n“um“bGer,ŽŸ ‘#so–UUthat“Å\maxfields@“²is“precisely“tš¸ãwice“the“n˜um˜bGer“of“align“structures.ŽŸ¸‘Sw^Æ\ifodd\maxfields@Ž¡‘f]¶\global\advance\maxfields@\@neŽ¡‘Sw^\fiŽ¦‘#²It–ÛYdoGesn't“makš¸ãe“sense“to“ha˜v˜e“a“single“align“structure“in“either“Åflalign“²orŽ¤ ‘#Åxxalignat².‘ž{So,‘Ÿw•¸ãe›¹‘c“hec“k˜for˜that˜case˜no“w˜and,–Ÿif˜necessary‘ÿ*ª,“switc¸ãh˜to˜anŽ¡‘#Åalign–ÀD²or“Åalignat².‘²“Arguably‘ÿ*ª,‘ÿwš¸ãe“should“issue“a“w˜arning“message,‘ÿbut“wh˜yŽ¡‘#bGother?ŽŸ¸‘Sw^Æ\ifnum\xatlevel@=\tw@Ž¤ ‘f]¶\ifnum\maxfields@<\thr@@Ž¡‘yD\let\xatlevel@\z@Ž¡‘f]¶\fiŽ¡‘Sw^\fiŽ¦‘#Å\box0–CÔ²noš¸ãw“con˜tains“the“lines“of“the“Å\halign².‘=EAfter“the“follo˜wing“maneuv˜er,Ž¤ ‘#Å\box1–yѲwill“conš¸ãtain“the“last“line“of“the“Å\halign²,‘¥¹whic˜h“is“what“w˜e're“in˜terested“in.Ž¡‘#(Inciden•¸ãtally‘ÿ*ª,‘1Ythe›(ZpGenalt“y˜w“e're˜remo“ving˜is˜the˜Å\@eqpen˜²inserted˜b“y˜Å\math@cr².Ž¡‘#Normally‘ÿ*ª,›this–ª±is“Å\interdisplaylinepenalty²,˜unless“the“user“has“o•¸ãv“erridenŽ¡‘#that–UUwith“a“Å\displaybreak“²command.)ŽŸ¸‘Sw^Æ\setbox0\vbox{%Ž¤ ‘f]¶\unvbox0Ž¡‘f]¶\unpenaltyŽ¡‘f]¶\global\setbox1\lastboxŽ¡‘Sw^}%Ž¦‘#Å\box1–¿L²bGegins“with“Å\tabskip“²glue“and“con¸ãtains“alternating“Å\hbox²es“(the“ eldsŽ¤ ‘#whose–UUwidths“w¸ãe're“trying“to“get)“and“Å\tabskip“²glue“[need“bGetter“diagram]:ŽŸ ‘5æXÆ\hbox{\tabskip\hbox\tabskip...\hbox\tabskip}ŽŸX‘#²In–²…fact,› Ðall“the“Å\tabskip“²glue“will“bGe“0pt,˜bGecause“all“the“Å\tabskip²s“in“anŽ¡‘#Åalignat›Ï=²en•¸ãvironmen“t˜ha“v“e˜a˜natural˜width˜of˜0pt,‘í·and˜the˜Å\halign˜²has˜bGeenŽ¡‘#set–UUin“its“natural“width.ŽŸ È‘2One–Ànice“result“of“this“is“that“w¸ãe“can“read“Å\totwidth@“²o “immediately‘ÿ*ª,Ž¡‘#since–jÍit“is“just“the“width“of“Å\box1²,‘p,plus“Å\@mathmargin“²if“w¸ãe're“in“Åfleqn“²moGde.Ž¡‘#(Actually‘ÿ*ª,‘wš¸ãe–ãŽalso“ha˜v˜e“to“tak˜e“Å\minalignsep“²in˜to“accoun˜t,‘but“w˜e'll“do“thatŽ¡‘#later):ŽŸ¸‘Sw^Æ\global\totwidth@\wd1Ž¤ ‘Sw^\if@fleqnŽ¡‘a¤ \global\advance\totwidth@\@mathmarginŽ¡‘Sw^\fiŽŽŽŒ‹4ïg s\È ý®£8‘Y²52’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²No•¸ãw›f,w“e˜initialize˜Å\align@lengths˜²and˜start˜p•Geeling˜the˜b“o•¸ãxes˜o ,‘jaone˜b“y˜one,Ž¤ ‘Yand–wîadding“their“widths“to“Å\align@lengths².‘'ûW‘ÿ*ªe“stop“when“wš¸ãe“run“out“of“bGo˜xes,Ž¡‘Yi.e.,‘ä¦when–ÇüÅ\lastbox“²returns“a“vš¸ãoid“bGo˜x.‘ɽW‘ÿ*ªe're“going“to“build“a“list“using“Å\orŽ¡‘Y²as–UUa“delimiter,“so“wš¸ãe“w˜an˜t“to“disable“it“tempGorarily‘ÿ*ª.Ž© ㎒‰w^Æ\global\let\maxcolumn@widths\@emptyŽ¤ ’‰w^\begingroupŽ¡’œ]¶\let\or\relaxŽ¡’œ]¶\loopŽ¡’ªŠx\setbox1\hbox{%Ž¡’½pÐ\unhbox1Ž¡’½pÐ\unskipŽ¡’½pÐ\global\setbox0\lastboxŽ¡’ªŠx}%Ž¡’¯D\ifhbox0Ž¡’Â*f\xdef\maxcolumn@widths{–¹–\or“\the\wd0“\maxcolumn@widths}%Ž¡’œ]¶\repeatŽ¡’‰w^\endgroupŽŸ㎑Y²No•¸ãw› ow“e˜calculate˜the˜n“um“bGer˜of˜ exible˜spaces˜and˜the˜initial˜v‘ÿqÇalues˜ofŽ¤ ‘YÅ\eqnshift@–ݲand“Å\alignsep@².‘ Œ^W‘ÿ*ªe“start“b¸ãy“calculating“Å\displaywidthŽ‘NN™¸Ž¡‘YÅ\totwidth@Ž’â²,–UUwhicš¸ãh“giv˜es“us“the“total“amoun˜t“of“\free“space"“in“a“ro˜w.Ž¦’‰w^Æ\dimen@\displaywidthŽŸ ’‰w^\advance\dimen@-\totwidth@ŽŸ㎑Y²Next–Û§wš¸ãe“calculate“the“n˜um˜bGer“of“columns“of“ exible“spaces“in“the“displa˜y‘ÿ*ª,‘óþwhic˜hŽ¡‘YdepšGends–Ton“whether“w¸ãe're“in“Åfleqn“²mo˜de“and“in“whicš¸ãh“particular“en˜vironmen˜tŽ¡‘Yw¸ãe–UUare“in.Ž¡‘hW‘ÿ*ªe–Dìuse“Å\@tempcnta“²to“store“the“total“n•¸ãum“bGer–Dìof“ exible“spaces“in“the“alignŽ¡‘Yand–UUÅ\@tempcntb“²for“the“n•¸ãum“bGer–UUof“in¸ãteralign“spaces.Ž¦’‰w^Æ\ifcase\xatlevel@ŽŸ㎑Y²In–Ë,Åalignat²,‘è¢the“inš¸ãteralign“spaces“are“under“user“con˜trol,›è¢not“ours.‘ÓLSo,˜w¸ãe“setŽ¡‘YÅ\alignsep@–,²and“Å\minalignsep“²bGoth“equal“to“0pt.‘uLLater,‘,"when“calculating“aŽ¡‘Ynew–hëv‘ÿqÇalue“for“Å\alignsep@²,‘­Ðwš¸ãe“will“only“sa˜v˜e“the“new“v‘ÿqÇalue“if“it“is“less“thanŽ¡‘Ythe–î™currenš¸ãt“v‘ÿqÇalue“of“Å\alignsep@“²(i.e.,‘éÅ\alignsep@“²will“nev˜er“increase).‘=’SinceŽ¡‘Ythe–2v‘ÿqÇalues“wš¸ãe“calculate“will“nev˜er“bGe“negativ˜e,‘Ÿthis“will“ensure“that“Å\alignsep@Ž¡‘Y²remains–UUzero“in“Åalignat².Ž¦’œ]¶Æ\global\alignsep@\z@Ž¤ ’œ]¶\let\minalignsep\z@Ž¡’œ]¶\@tempcntb\z@ŽŸ㎑Y²In–.Åfleqn“²moGde,‘Pdthe“left“margin|and“hence“the“righ¸ãt“margin“in“this“case|isŽŸ ‘Y xed.‘qÇOtherwise,–UUwš¸ãe“divide“the“free“space“equally“bGet˜w˜een“the“t˜w˜o“margins.Ž¦’œ]¶Æ\if@fleqnŽ¡’¯D\@tempcnta\@neŽ¡’¯D\global\eqnshift@\@mathmarginŽ¡’œ]¶\elseŽ¡’¯D\@tempcnta\tw@Ž¡’¯D\global\eqnshift@\dimen@Ž¡’¯D\global\divide\eqnshift@\@tempcntaŽŽŽŒ‹5øàs\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ53ŽŽ 8G ýä‘f]¶Æ\fiŽ© ‘Sw^\orŽŸÀ‘#²In–×±an“Åalign“²or“Åxalignat“²en•¸ãvironmen“t–×±with“µn“²aligned“structures,‘ðÒthere“are“µn–=™¸“²1Ž¤ ‘#inš¸ãteralign–í«spaces“and“either“1“or“2“ exible“margins,‘fdepGending“on“whether“w˜e'reŽ¡‘#in–UUÅfleqn“²moGde“or“not.ŽŸ À‘f]¶Æ\@tempcntb\maxfields@Ž¦‘f]¶\divide\@tempcntb\tw@Ž¦‘f]¶\@tempcnta\@tempcntbŽ¦‘f]¶\advance\@tempcntb\m@neŽŸÀ‘#²If–ÎNwš¸ãe“are“in“Åfleqn“²moGde,‘éPw˜e“ x“the“left“margin“and“divide“the“free“space“equallyŽ¡‘#among–UUthe“inš¸ãteralign“spaces“and“the“righ˜t“margin.ŽŸ À‘f]¶Æ\if@fleqnŽ¦‘yD\global\eqnshift@\@mathmarginŽ¦‘yD\alignsep@\dimen@Ž¦‘yD\global\divide\alignsep@\@tempcntaŽ¦‘f]¶\elseŽŸÀ‘#²Otherwise,‘¨Gwš¸ãe–d~divide“the“free“space“equally“among“the“in˜teralign“spaces“andŽ¡‘#bGoth‘UUmargins.ŽŸ À‘yDÆ\global\advance\@tempcnta\@neŽ¦‘yD\global\eqnshift@\dimen@Ž¦‘yD\global\divide\eqnshift@\@tempcntaŽ¦‘yD\global\alignsep@\eqnshift@Ž¦‘f]¶\fiŽ¦‘Sw^\orŽŸÀ‘#²Finally‘ÿ*ª,‘5óif–.wš¸ãe're“in“an“Åflalign“²or“Åxxalignat“²en˜vironmen˜t,‘5óthere“are“no“ exibleŽ¡‘#margins–UUand“µn–8ณ²1–UU exible“in¸ãteralign“spaces.ŽŸ À‘f]¶Æ\@tempcntb\maxfields@Ž¦‘f]¶\divide\@tempcntb\tw@Ž¦‘f]¶\global\advance\@tempcntb\m@neŽ¦‘f]¶\global\@tempcnta\@tempcntbŽ¦‘f]¶\global\eqnshift@\z@Ž¦‘f]¶\global\alignsep@\dimen@ŽŸÀ‘#²If–ö‡wš¸ãe're“in“Åfleqn“²moGde,‘Ów˜e“need“to“add“bac˜k“the“Å\@mathmargin“²that“w˜as“re-Ž¡‘#mo•¸ãv“ed–UUwhen“Å\dimen@“²wš¸ãas“originally“calculated“abGo˜v˜e.Ž¤ À‘f]¶Æ\if@fleqnŽ¦‘yD\advance\alignsep@\@mathmargin\relaxŽ¦‘f]¶\fiŽ¦‘f]¶\global\divide\alignsep@\@tempcntbŽ¦‘Sw^\fiŽŸÀ‘#²No•¸ãw›UUw“e˜mak“e˜sure˜Å\alignsep@˜²isn't˜toGo˜small.Ž¡‘Sw^Æ\ifdim\alignsep@<\minalignsep\relaxŽ¦‘f]¶\global\alignsep@\minalignsep\relaxŽ¦‘f]¶\ifdim\eqnshift@>\z@Ž¦‘yD\if@fleqn\elseŽ¦’Œ*f\eqnshift@\displaywidthŽ¦’Œ*f\advance\eqnshift@-\totwidth@ŽŽŽŒ‹6 s\È ý®£8‘Y²54’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’Â*fÆ\advance\eqnshift@-\@tempcntb\alignsep@Ž¤ ’Â*f\global\divide\eqnshift@\tw@Ž¡’¯D\fiŽ¡’œ]¶\fiŽ¡’‰w^\fiŽ¡’‰w^\ifdim\eqnshift@<\z@Ž¡’œ]¶\global\eqnshift@\z@Ž¡’‰w^\fiŽ¡’‰w^\calc@shift@alignŽ©<Ö‘Y²Next,‘aw¸ãe–]ãcalculate“the“v‘ÿqÇalue“of“Å\tagshift@².‘LThis“is“the“glue“that“will“bGe“insertedŽ¤ ‘Yin–›|fronš¸ãt“of“the“equation“tag“to“mak˜e“sure“it“lines“up“ ush“against“the“appropriateŽ¡‘Ymargin.ŽŸ <Ö’‰w^Æ\tagshift@\totwidth@Ž¤ ’‰w^\advance\tagshift@\@tempcntb\alignsep@Ž¡’‰w^\if@fleqnŽ¡’œ]¶\ifnum\xatlevel@=\tw@Ž¡’¯D\global\advance\tagshift@-\@mathmargin\relaxŽ¡’œ]¶\fiŽ¡’‰w^\elseŽ¡’œ]¶\global\advance\tagshift@\eqnshift@Ž¡’‰w^\fiŽ¡’‰w^\iftagsleft@‘¹–\elseŽ¡’œ]¶\global\advance\tagshift@-\displaywidthŽ¡’‰w^\fiŽ¦‘Y²Finally‘ÿ*ª,‘­Ãwš¸ãe–œincrease“Å\totwidth@“²b˜y“an“appropriate“m˜ultiple“of“Å\minalignsep².Ž¤ ‘YIf–«+the“result“is“greater“than“Å\displaywidth²,‘À it“means“that“at“least“one“line“inŽ¡‘Ythe–„$Åalign“²is“o•¸ãv“erfull–„$and“wš¸ãe“will“issue“an“appropriate“w˜arning“message“(viaŽ¡‘YÅ\bl@ck²)–UUat“the“end“of“the“en•¸ãvironmen“t.ŽŸ <Ö’‰w^Æ\dimen@\minalignsep\relaxŽ¤ ’‰w^\advance\totwidth@\@tempcntb\dimen@Ž¡’‰w^\ifdim\totwidth@>\displaywidthŽ¡’œ]¶\global\let\displaywidth@\totwidth@Ž¡’‰w^\elseŽ¡’œ]¶\global\let\displaywidth@\displaywidthŽ¡’‰w^\fiŽ¡‘v‘\endgroupŽ¡‘cª®}ŽŸ¶‘h²The–™2coGde“for“calculating“the“appropriate“placemen¸ãt“of“equation“tags“in“theŽ¤ ‘YÅalign›S1²en•¸ãvironmen“ts˜is˜quite˜complicated˜and˜v‘ÿqÇaries˜wildly˜depGending˜on˜theŽ¡‘Ysettings–ðÝof“the“Åtagsleft@“²and“Å@fleqn“²switc¸ãhes.‘PJT‘ÿ*ªo“minimize“memory“and“hashŽ¡‘Yspace–‡usage,‘J”wš¸ãe“only“de ne“the“v‘ÿqÇarian˜t“appropriate“for“the“curren˜t“setting“ofŽ¡‘Ythose‘UUswitc¸ãhes.Ž¡‘hIt–rówš¸ãould“bGe“w˜orth˜while“to“examine“this“coGde“more“closely“someda˜y“and“seeŽ¡‘Yif–UUit“could“bGe“optimized“an¸ãy‘ÿ*ª.ŽŸV(‘YÄT‘ÿ «ag–¢ðplacemen®9t“when“Å\tagsleft@trueÄ,‘ÖVÅ\@fleqntrueÄ.‘ ²W‘ÿ*ªe–bGegin“with“theŽ¡‘Yv¸ãersion–aof“Å\calc@shift@align“²appropriate“for“ ush-left“equations“with“tags“onŽŽŽŒ‹7  s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ55ŽŽ 8G ýä‘#the‘UUleft.ŽŸÀ‘ÈótÆ\calc@shift@alignŽŽŽ‘#²This–bäis“the“simplest“case.‘šsSince“the“left“margin“is“ xed,‘¦Gin“general“the“onlyŽ¤ ‘#thing–˜áto“do“is“c•¸ãhec“k–˜áwhether“there“is“roGom“for“the“tag“in“the“left“margin.‘Ÿ'EŽ‘ãxX's˜built-in˜algorithm:‘Wyhere,‘$äa˜width˜of˜zeroŽ¡‘#prohibits–7Ithe“tag“from“bGeing“shifted,›=Lwhile“in“T‘þU>Ÿ'EŽ‘ãxX's“built-in“algorithm,˜a“widthŽ¡‘#of–UUzero“forces“the“tag“to“bGe“shifted.Ž¦‘f]¶Æ\loopŽ¤ ‘yD\ifnum\row@>0Ž¡’Œ*f\ifdim\tag@width\row@>\z@Ž¡’Ÿ¾\x@calc@shift@lfŽ¡’Œ*f\elseŽ¡’Ÿ¾\saveshift@0%Ž¡’Œ*f\fiŽ¡’Œ*f\advance\row@\m@neŽ¡‘f]¶\repeatŽ¡‘Sw^\endgroupŽ¡‘@‘}ŽŸÀ‘Í­ \x@calc@shift@lfŽŽŽ‘#²As– }menš¸ãtioned“abGo˜v˜e,‘6‡Å\x@calc@shift@lf“² rst“c˜hec˜ks“to“see“if“the“curren˜t“leftŽ¤ ‘#margin–±„is“set“to“0“and,›Hif“so,˜resets“it“to“Å\@mathmargin“²and“recalculatesŽ¡‘#Å\alignsep@².‘”7Next,‘c®it›`Ðc•¸ãhec“ks˜whether˜the˜length˜of˜the˜curren“t˜tag˜exceeds˜theŽ¡‘#previously–XÁcalculated“limit“and,›Yœif“so,˜marks“the“tag“to“bGe“shifted“to“a“separateŽ¡‘#line.Ž¦‘@‘Æ\def\x@calc@shift@lf{%Ž¤ ‘Sw^\ifdim\eqnshift@=\z@Ž¡‘f]¶\global\eqnshift@\@mathmargin\relaxŽ¡‘f]¶\alignsep@\displaywidthŽ¡‘f]¶\advance\alignsep@-\totwidth@Ž¡‘f]¶\global\divide\alignsep@\@tempcntbŽŽŽŒ‹8ó s\È ý®£8‘Y²56’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’œ]¶Æ\ifdim\alignsep@<\minalignsep\relaxŽ¤ ’¯D\global\alignsep@\minalignsep\relaxŽ¡’œ]¶\fiŽ¡’‰w^\fiŽ¡’‰w^\ifdim\tag@width\row@>\@tempdimaŽ¡’œ]¶\saveshift@1%Ž¡’‰w^\elseŽ¡’œ]¶\saveshift@0%Ž¡’‰w^\fiŽ¡‘v‘}Ž¡‘cª®\fi\fiŽŸþ·‘YÄT‘ÿ «ag–â placemen®9t“when“Å\tagsleft@falseÄ,‘%7Å\@fleqntrueÄ.‘ ²Next–>þw¸ãe“considerŽ¤ ‘Ythe–case“when“equations“are“ ush-left,‘ÞÃbut“tags“are“on“the“righ¸ãt.‘"This“caseŽ¡‘Yis–± somewhat“more“complicated“than“the“previous“one,‘Ç÷since“w¸ãe“can“adjust“theŽ¡‘Yrighš¸ãt–+µmargin“b˜y“v‘ÿqÇarying“the“in˜ter-align“separatin.‘cçTh˜us,‘4when“a“tag“is“found“toŽ¡‘Yb•Ge›üqto“o˜close˜to˜its˜equation,‘9w¸ãe˜ rst˜attempt˜to˜decrease˜Å\alignsep@˜²enough˜toŽ¡‘Ymo•¸ãv“e–¶ûthe“equation“o “to“an“acceptable“distance.‘–¹Only“if“that“w¸ãould“require“aŽ¡‘Yv‘ÿqÇalue–1Êof“Å\alignsep@“²less“than“Å\minalignsep“²do“wš¸ãe“mo˜v˜e“the“tag“to“a“separateŽ¡‘Yline.ŽŸz‘þótÆ\calc@shift@alignŽŽŽ‘Y²This–HŠvš¸ãersion“of“Å\calc@shift@align“²di ers“from“the“previous“v˜ersion“only“inŽ¡‘Ycalling–UUÅ\x@calc@shift@rf“²rather“than“Å\x@calc@shift@lf².Ž©6‘cª®Æ\iftagsleft@\else\if@fleqnŽ¤ ‘v‘\def\calc@shift@align{%Ž¡’‰w^\global\let\tag@shifts\@emptyŽ¡’‰w^\begingroupŽ¡’œ]¶\loopŽ¡’¯D\ifnum\row@>0Ž¡’Â*f\ifdim\tag@width\row@>\z@Ž¡’Õ¾\x@calc@shift@rfŽ¡’Â*f\elseŽ¡’Õ¾\saveshift@0%Ž¡’Â*f\fiŽ¡’Â*f\advance\row@\m@neŽ¡’œ]¶\repeatŽ¡’‰w^\endgroupŽ¡‘v‘}ŽŸa‘­ \x@calc@shift@rfŽŽŽ‘Y²T‘ÿ*ªo–HÙstart,‘…ºwš¸ãe“need“to“kno˜w“t˜w˜o“quan˜tities:‘XÏthe“n˜um˜bGer“of“align“structures“inŽ¤ ‘Ythe–ì«currenš¸ãt“ro˜w“and“the“\e ectiv˜e“length"“of“the“ro˜w,‘€de ned“as“the“distanceŽ¡‘Yfrom–šëthe“left“margin“to“the“righ¸ãt“edge“of“the“text“assuming“that“Å\eqnshift@“²andŽ¡‘YÅ\alignsep@–‡ ²are“bšGoth“0.‘-T‘ÿ*ªo“get“the“n•¸ãum“b˜er–‡ of“align“structures,‘°Lwš¸ãe“ rst“coun˜t“theŽ¡‘Yn•¸ãum“bGer–´^of“columns“bš¸ãy“coun˜ting“the“n˜um˜bGer“of“en˜tries“in“the“Å\fieldlengths@Ž¡‘Y²for–›[the“currenš¸ãt“ro˜w.‘CØThe“e ectiv˜e“length“is“calcuated“b˜y“Å\x@rcalc@width“²andŽ¡‘Yput–Øin“the“tempGorary“register“Å\@tempdimc²,‘Oøusing“Å\@tempdimb“²as“an“auxiliaryŽ¡‘Yv‘ÿqÇariable.Ž¦‘v‘Æ\def\x@calc@shift@rf{%ŽŽŽŒ‹9 s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ57ŽŽ 8G ýä‘Sw^Æ\column@\z@Ž¤ ‘Sw^\@tempdimb\z@Ž¡‘Sw^\@tempdimc\z@Ž¡‘Sw^\edef\@tempb{\fieldlengths@\row@}%Ž¡‘Sw^\@for\@tempa:=\@tempb\do{%Ž¡‘f]¶\advance\column@\@neŽ¡‘f]¶\x@rcalc@widthŽ¡‘Sw^}%Ž¡‘Sw^\begingroupŽ©‘#²If–ªthere“are“µn“²columns“in“the“currenš¸ãt“ro˜w,‘ÿGthen“there“are“¸b²(µn– ²+“1)µ=²2¸c‘ª²alignŽŸ ‘#structures–UUand“¸b²(µn–8ณ²1)µ=²2¸c–UU²in¸ãteralign“spaces.ŽŸ‘f]¶Æ\advance\column@\m@neŽ¡‘f]¶\divide\column@\tw@Ž¦‘#²If–this“is“smaller“than“the“maximš¸ãum“n˜um˜bGer“of“in˜teralign“spaces“in“the“en˜viron-Ž¤ ‘#men•¸ãt,‘»Žthen›•w“e˜need˜to˜reduce˜Å\@tempcnta˜²(the˜total˜n“um“bGer˜of˜ exible˜spaces˜inŽ¡‘#the–ücurrenš¸ãt“line)“b˜y“Å\@tempcntbŽ‘7Á¸‘°1Å\column@Ž‘-A²and“reset“Å\@tempcntb“²to“Å\column@².ŽŸ‘f]¶Æ\ifnum\@tempcntb>\column@Ž¤ ‘yD\advance\@tempcnta-\@tempcntbŽ¡‘yD\advance\@tempcnta\column@Ž¡‘yD\@tempcntb\column@Ž¡‘f]¶\fiŽ¦‘#²Next,‘òwš¸ãe–ÒÂadd“the“width“of“the“tag“and“the“( xed)“left“margin“to“the“e ectiv˜eŽ¤ ‘#length–“Ìcalculated“abšGo•¸ãv“e.‘--This–“Ìcan“b˜e“used“to“calculate“hoš¸ãw“m˜uc˜h“\free“space"Ž¡‘#there–œpis“in“the“currenš¸ãt“line“and“th˜us“ho˜w“m˜uc˜h“leew˜a˜y“w˜e“ha˜v˜e“to“increase“theŽ¡‘#amounš¸ãt–UUof“space“bGet˜w˜een“the“tag“and“the“equation.ŽŸ‘f]¶Æ\tagwidth@\tag@width\row@\relaxŽ¤ ‘f]¶\@tempdima\eqnshift@Ž¡‘f]¶\advance\@tempdima\@tempdimc\relaxŽ¡‘f]¶\advance\@tempdima\tagwidth@Ž¦‘#²The–Jk rst“thing“to“c•¸ãhec“k–Jkis“whether“the“tag“should“bGe“shifted“to“a“separate“line.Ž¤ ‘#T‘ÿ*ªo–Pdo“this,‘¯Owš¸ãe“add“the“minim˜um“in˜teralign“separation“and“the“Å\mintagsep“²toŽ¡‘#the–ÈKv‘ÿqÇalue“of“Å\@tempdima“²just“calculated.‘Ê©This“yields“the“minim¸ãum“acceptableŽ¡‘#length–\Ìof“the“currenš¸ãt“line.‘ˆ+If“that“is“greater“than“Å\displaywidth²,‘^©w˜e“mark“theŽ¡‘#tag–­‹to“bšGe“calculated.‘ziOtherwise,‘Øw¸ãe“mark“the“tag“to“b˜e“k¸ãept“on“the“same“lineŽ¡‘#and–? then“c•¸ãhec“k–? to“see“if“the“Å\alignsep@“²needs“to“bšGe“reduced“to“mak¸ãe“ro˜om“forŽ¡‘#the‘UUtag.ŽŸ‘f]¶Æ\dimen@\minalignsep\relaxŽ¤ ‘f]¶\multiply\dimen@\@tempcntbŽ¡‘f]¶\advance\dimen@\mintagsep\relaxŽ¡‘f]¶\advance\dimen@\@tempdimaŽ¡‘f]¶\ifdim\dimen@>\displaywidthŽ¡‘yD\saveshift@1%Ž¡‘f]¶\elseŽ¡‘yD\saveshift@0%Ž¦‘#²No•¸ãw›øgw“e˜pGerform˜essen“tially˜the˜same˜calculation,‘!+but˜using˜the˜curren“t˜v‘ÿqÇalueŽŸ ‘#of–ÕXÅ\alignsep@“²instead“of“Å\minalignsep².‘ñÑThis“givš¸ães“the“curren˜t“length“of“theŽŽŽŒ‹:'Ì s\È ý®£8‘Y²58’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²line.‘KlIf–âCthis“is“greater“than“Å\displaywidth²,‘ùGwš¸ãe“recalculate“Å\alignsep@“²to“mak˜eŽ© ‘YroGom–UUfor“the“tag.ŽŸ ²M’¯DÆ\dimen@\alignsep@\relaxŽ¤ ’¯D\multiply\dimen@\@tempcntbŽ¡’¯D\advance\dimen@\@tempdimaŽ¡’¯D\advance\dimen@\tagwidth@Ž¡’¯D\ifdim\dimen@>\displaywidthŽ¡’Â*f\dimen@\displaywidthŽ¡’Â*f\advance\dimen@-\@tempdimaŽ¡’Â*f\ifnum\xatlevel@=\tw@Ž¡’Õ¾\advance\dimen@-\mintagsep\relaxŽ¡’Â*f\fiŽ¡’Â*f\divide\dimen@\@tempcntaŽ¡’Â*f\ifdim\dimen@<\minalignsep\relaxŽ¡’Õ¾\global\alignsep@\minalignsep\relaxŽ¡’Â*f\elseŽ¡’Õ¾\global\alignsep@\dimen@Ž¡’Â*f\fiŽ¡’¯D\fiŽ¡’œ]¶\fiŽ¡’‰w^\endgroupŽ¡‘v‘}Ž¡‘cª®\fi\fiŽŸ»N‘YÄT‘ÿ «ag–0Ž¡’Â*f\ifdim\tag@width\row@>\z@Ž¡’Õ¾\x@calc@shift@rcŽ¡’Â*f\elseŽ¡’Õ¾\saveshift@0%Ž¡’Â*f\fiŽ¡’Â*f\advance\row@\m@neŽ¡’œ]¶\repeatŽ¡’‰w^\endgroupŽ¡‘v‘}Ž¦‘­ \x@calc@shift@rcŽŽŽŽŸ ²M‘v‘\def\x@calc@shift@rc{%Ž¡’‰w^\column@\z@ŽŽŽŒ‹;2 s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ59ŽŽ 8G ýä‘Sw^Æ\@tempdimb\z@Ž¤ ‘Sw^\@tempdimc\z@Ž¡‘Sw^\edef\@tempb{\fieldlengths@\row@}%Ž¡‘Sw^\@for\@tempa:=\@tempb\do{%Ž¡‘f]¶\advance\column@\@neŽ¡‘f]¶\x@rcalc@widthŽ¡‘Sw^}%Ž¡‘Sw^\begingroupŽ¡‘f]¶\advance\column@\m@neŽ¡‘f]¶\divide\column@\tw@Ž¡‘f]¶\ifnum\@tempcntb>\column@Ž¡‘yD\advance\@tempcnta-\@tempcntbŽ¡‘yD\advance\@tempcnta\column@Ž¡‘yD\@tempcntb\column@Ž¡‘f]¶\fiŽ¡‘f]¶\tagwidth@\tag@width\row@\relaxŽ¡‘f]¶\@tempdima\@tempdimcŽ¡‘f]¶\advance\@tempdima\tagwidth@Ž¡‘f]¶\dimen@\minalignsep\relaxŽ¡‘f]¶\multiply\dimen@\@tempcntbŽ¡‘f]¶\advance\dimen@\mintagsep\relaxŽ¡‘f]¶\ifnum\xatlevel@=\tw@‘¹–\elseŽ¡‘yD\advance\dimen@\mintagsep\relaxŽ¡‘f]¶\fiŽ¡‘f]¶\advance\dimen@\@tempdimaŽ¡‘f]¶\ifdim\dimen@>\displaywidthŽ¡‘yD\saveshift@1%Ž¡‘f]¶\elseŽ¡‘yD\saveshift@0%Ž¡‘yD\dimen@\eqnshift@Ž¡‘yD\advance\dimen@\@tempdimaŽ¡‘yD\advance\dimen@\@tempcntb\alignsep@Ž¡‘yD\advance\dimen@\tagwidth@Ž¡‘yD\ifdim\dimen@>\displaywidthŽ¡’Œ*f\dimen@\displaywidthŽ¡’Œ*f\advance\dimen@-\@tempdimaŽ¡’Œ*f\ifnum\xatlevel@=\tw@Ž¡’Ÿ¾\advance\dimen@-\mintagsep\relaxŽ¡’Œ*f\fiŽ¡’Œ*f\divide\dimen@\@tempcntaŽ¡’Œ*f\ifdim\dimen@<\minalignsep\relaxŽ¡’Ÿ¾\global\alignsep@\minalignsep\relaxŽ¡’Ÿ¾\eqnshift@\displaywidthŽ¡’Ÿ¾\advance\eqnshift@-\@tempdimaŽ¡’Ÿ¾\advance\eqnshift@-\@tempcntb\alignsep@Ž¡’Ÿ¾\global\divide\eqnshift@\tw@Ž¡’Œ*f\elseŽ¡’Ÿ¾\ifdim\dimen@<\eqnshift@Ž¡’±÷\ifdim\dimen@<\z@Ž¡’ÄÝn\global\eqnshift@\z@ŽŽŽŒ‹<8 s\È ý®£8‘Y²60’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’ç÷Æ\elseŽ¤ ’úÝn\global\eqnshift@\dimen@Ž¡’ç÷\fiŽ¡’Õ¾\fiŽ¡’Õ¾\ifdim\dimen@<\alignsep@Ž¡’ç÷\global\alignsep@\dimen@Ž¡’Õ¾\fiŽ¡’Â*f\fiŽ¡’¯D\fiŽ¡’œ]¶\fiŽ¡’‰w^\endgroupŽ¡‘v‘}Ž¡‘cª®\fi\fiŽŸ[k‘ 6\x@rcalc@widthŽŽŽŽ©¿‘cª®\iftagsleft@\elseŽ¡‘v‘\def\x@rcalc@width{%Ž¡’‰w^\ifdim\@tempa–¹–>“\z@Ž¡’œ]¶\advance\@tempdimc\@tempdimbŽ¡’œ]¶\ifodd\column@Ž¡’¯D\advance\@tempdimc\maxcol@width\column@Ž¡’¯D\@tempdimb\z@Ž¡’œ]¶\elseŽ¡’¯D\advance\@tempdimc\@tempa\relaxŽ¡’¯D\@tempdimb\maxcol@width\column@Ž¡’¯D\advance\@tempdimb-\@tempa\relaxŽ¡’œ]¶\fiŽ¡’‰w^\elseŽ¡’œ]¶\advance\@tempdimb\maxcol@width\column@\relaxŽ¡’‰w^\fiŽ¡‘v‘}Ž¡‘cª®\fiŽŸË‘YÄT‘ÿ «ag–ÕTplacemen®9t“when“Å\tagsleft@trueÄ,“Å\@fleqnfalseÄ.ŽŸ[k‘þótÆ\calc@shift@alignŽŽŽŽ¦‘cª®\iftagsleft@\if@fleqn\elseŽ¡‘v‘\def\calc@shift@align{%Ž¡’‰w^\global\let\tag@shifts\@emptyŽ¡’‰w^\begingroupŽ¡’œ]¶\loopŽ¡’¯D\ifnum\row@>\z@Ž¡’Â*f\ifdim\tag@width\row@>\z@Ž¡’Õ¾\x@calc@shift@lcŽ¡’Â*f\elseŽ¡’Õ¾\saveshift@0%Ž¡’Â*f\fiŽ¡’Â*f\advance\row@\m@neŽ¡’œ]¶\repeatŽŽŽŒ‹=>V s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ61ŽŽ 8G ýä‘Sw^Æ\endgroupŽ¤ ‘@‘}ŽŸ1‘Í­ \x@calc@shift@lcŽŽŽŽ©Ô‘@‘\def\x@calc@shift@lc{%Ž¡‘Sw^\column@\z@ŽŸÔ‘#Å\@tempdima–ìr²will“(ev•¸ãen“tually)–ìrbGe“set“to“the“e ectivš¸ãe“width“of“the“curren˜t“ro˜w,Ž¤ ‘#de ned–ýsas“the“distance“from“the“leftmost“pGoinš¸ãt“of“the“curren˜t“line“to“the“endŽ¡‘#of–í;the“last“ eld“of“the“Å\halign²,‘4ignoring“anš¸ãy“in˜terv˜ening“Å\tabskip²s,‘4plus“theŽ¡‘#width–ïof“the“currenš¸ãt“tag.‘? That“is,‘‡it“will“bGe“the“width“of“the“ rst“non-empt˜yŽ¡‘# eld–æ plus“the“sum“of“the“maximš¸ãum“widths“of“all“follo˜wing“ elds,‘ 7plus“the“tagŽ¡‘#width.ŽŸ ì‘2Å\@tempdimb–¾ä²will“bGe“the“\inden¸ãtation"“of“leftmost“end“of“text,‘ÙHignoring“theŽ¡‘#Å\tabskip›‘ã²glue,–¡i.e.,“it˜will˜bGe˜the˜sum˜of˜the˜maxim•¸ãum˜widths˜of˜an“y˜ elds˜toŽ¡‘#the–•²left“of“the“ rst“non-emptš¸ãy“ eld,‘¥Êplus“whatev˜er“empt˜y“space“there“is“at“theŽ¡‘#bGeginning–UUof“the“ rst“non-empt¸ãy“ eld.Ž¦‘Sw^Æ\@tempdima\z@–¹–%“``width“of“equation''Ž¤ ‘Sw^\@tempdimb\z@–¹–%“``indent“of“equation''Ž¡‘Sw^\edef\@tempb{\fieldlengths@\row@}%Ž¡‘Sw^\@for\@tempa:=\@tempb\do{%Ž¡‘f]¶\advance\column@\@neŽ¡‘f]¶\x@lcalc@widthŽ¡‘Sw^}%Ž¡‘Sw^\begingroupŽ¡‘f]¶\tagwidth@\tag@width\row@\relaxŽŸÔ‘#Å\@tempdima–“Ò²is“no¸ãw“easy“to“calculate,‘º†since“it“is“just“Å\totwidth@Ž‘7É‘¸‘µÝÅ\@tempdimbŽ‘5뜲+ŽŸ ‘#Å\tagwidth@Ž‘Wâ².Ž¦‘f]¶Æ\@tempdima\totwidth@Ž¡‘f]¶\advance\@tempdima-\@tempdimbŽ¡‘f]¶\advance\@tempdima\tagwidth@ŽŸÔ‘#²Next,‘\Qw•¸ãe›Zëc“hec“k˜to˜see˜whether˜there˜is˜ro•Gom˜for˜b“oth˜the˜equation˜and˜the˜tagŽ¤ ‘#on–pthe“same“line,‘v²bš¸ãy“calculating“the“minim˜um“acceptable“length“of“the“curren˜tŽ¡‘#roš¸ãw–®Ðand“comparing“that“to“Å\displaywidth².‘:FNote“that“here“w˜e“use“Å\@tempcntb²,Ž¡‘#i.e.,–UUthe“n•¸ãum“bGer–UUof“inš¸ãteralign“spaces“after“the“ rst“non-empt˜y“align“structure.Ž¦‘f]¶Æ\dimen@\minalignsep\relaxŽ¤ ‘f]¶\multiply\dimen@\@tempcntbŽ¡‘f]¶\advance\dimen@\mintagsep\relaxŽ¡‘f]¶\ifnum\xatlevel@=\tw@‘¹–\elseŽ¡‘yD\advance\dimen@\mintagsep\relaxŽ¡‘f]¶\fiŽ¡‘f]¶\advance\dimen@\@tempdimaŽŸÔ‘#²If–8ãthe“minimš¸ãum“acceptable“width“of“the“curren˜t“line“is“greater“than“Å\displaywidth²,ŽŸ ‘#wš¸ãe–UUmark“the“curren˜t“tag“to“bGe“shifted“to“a“separate“line.Ž¦‘f]¶Æ\ifdim\dimen@>\displaywidthŽ¡‘yD\saveshift@1%Ž¡‘f]¶\elseŽŽŽŒ‹>C s\È ý®£8‘Y²62’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘Y²Otherwise,›ð¼the–ѧtag“can“sta¸ãy“on“the“same“line“as“the“equation,˜but“w¸ãe“need“toŽ¤ ‘Yc•¸ãhec“k–…Òwhether“it“is“toGo“close“to“the“equation.‘>So,‘Ññw¸ãe“calculate“the“distanceŽ¡‘YbGet•¸ãw“een–“”the“left“margin“and“the“left“side“of“the“equation,‘ã#using“the“curren¸ãtŽ¡‘Yv‘ÿqÇalues–=3of“Å\eqnshift@“²and“Å\alignsep@².‘)aNote“that“w¸ãe“use“Å\count@“²here,‘w*notŽ¡‘YÅ\@tempcntb²,–UUas“abGo•¸ãv“e.Ž©À’¯DÆ\saveshift@0%Ž¤ ’¯D\dimen@\alignsep@Ž¡’¯D\multiply\dimen@\count@Ž¡’¯D\advance\dimen@\eqnshift@Ž¡’¯D\advance\dimen@\@tempdimbŽŸÀ‘Y²If–á®the“left“margin“is“less“than“tš¸ãwice“the“tag“width,‘Äw˜e“calculate“new“v‘ÿqÇalues“ofŽ¤ ‘YÅ\eqnshift@–z1²and“Å\alignsep@“²to“mo•¸ãv“e–z1the“equation“further“a•¸ãw“a“y–z1from“the“tag.Ž¡‘YIn–¦]particular,‘ºŸwš¸ãe“cen˜ter“the“curren˜t“line“bGet˜w˜een“its“tag“and“the“righ˜t“margin.Ž¡‘YNote–›Xthat“although“wš¸ãe“later“will“need“to“transform“Å\dimen@“²in˜to“a“v‘ÿqÇalue“suitableŽ¡‘Yfor–K™use“as“Å\eqnshift@²,‘M‹for“the“time“bGeing“it“is“more“useful“to“think“of“it“as“theŽ¡‘Yspace–UUseparating“the“tag“from“the“equation.Ž¦’¯DÆ\ifdim\dimen@<2\tagwidth@Ž¤ ’Â*f\dimen@\displaywidthŽ¡’Â*f\advance\dimen@-\@tempdimaŽ¡’Â*f\ifnum\xatlevel@=\tw@Ž¡’Õ¾\advance\dimen@-\mintagsep\relaxŽ¡’Â*f\fiŽ¡’Â*f\divide\dimen@\@tempcntaŽŸÀ‘Y²As– Æusual,‘º¡wš¸ãe“c˜hec˜k“to“mak˜e“sure“w˜e“don't“set“Å\alignsep@“²smaller“thanŽ¤ ‘YÅ\minalignsep–†×²and,›“7in“an¸ãy“case,˜that“wš¸ãe“don't“replace“Å\alignsep@“²b˜y“a“largerŽ¡‘Yv‘ÿqÇalue.Ž¦’Â*fÆ\ifdim\dimen@<\minalignsep\relaxŽ¤ ’Õ¾\global\alignsep@\minalignsep\relaxŽ¡’Õ¾\dimen@\displaywidthŽ¡’Õ¾\advance\dimen@-\@tempdimaŽ¡’Õ¾\advance\dimen@-\@tempcntb\alignsep@Ž¡’Õ¾\global\divide\dimen@\tw@Ž¡’Â*f\elseŽ¡’Õ¾\ifdim\dimen@<\alignsep@Ž¡’ç÷\global\alignsep@\dimen@Ž¡’Õ¾\fiŽ¡’Â*f\fiŽŸÀ‘Y²Next,›ý w¸ãe–æøcalculate“an“appropriate“v‘ÿqÇalue“of“Å\eqnshift@²,˜assuming“that“Å\dimen@Ž¤ ‘Y²is– 6the“desired“separation“bGet•¸ãw“een– 6the“tag“and“equation“of“the“curren¸ãt“line.‘XhThisŽ¡‘Ymeans–ÚBthat“wš¸ãe“ rst“need“to“adjust“Å\dimen@“²if“w˜e're“in“an“Åflalign“²en˜vironmen˜t.Ž¦’Â*fÆ\ifnum\xatlevel@=\tw@Ž¤ ’Õ¾\dimen@\mintagsep\relaxŽ¡’Â*f\fiŽŸÀ‘Y²No•¸ãw›í w“e˜calculate˜the˜v‘ÿqÇalue˜of˜Å\eqnshift@˜²needed˜to˜proGduce˜a˜separation˜ofŽŸ ‘YÅ\dimen@› ©²bGet•¸ãw“een˜the˜equation˜tag˜and˜the˜bGeginning˜of˜the˜equation.‘‘ÄT‘ÿ*ªo˜doŽŽŽŒ‹?LÝ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ63ŽŽ 8G ýä‘#this,–UUwš¸ãe“need“the“follo˜wing“equation“to“hold:Ž¤ìÕ‘8 Å\eqnshift@Ž‘nØȲ+–8àµnÅ\alignsep@Ž‘6¸Â²+“Å\@tempdimbŽ–9Ú²=‘ÇÅ\tagwidth@Ž“²+‘8àÅ\dimen@ŽŽ¡‘#²where›’ µn–Dz=“Å\count@Ž‘*²is˜the˜n•¸ãum“bGer˜of˜in“teralign˜spaces˜bGefore˜the˜ rst˜non-empt“yŽ© ‘# eld–UUof“the“curren¸ãt“line.ŽŸ È÷’Œ*fÆ\advance\dimen@\tagwidth@Ž¤ ’Œ*f\advance\dimen@-\@tempdimbŽ¡’Œ*f\advance\dimen@-\count@\alignsep@ŽŸÈ÷‘#²The–·ÿv›ÿqÇalue“of“Å\eqnshift@“²just“calculated“is“the“minim¸ãum“acceptable“v˜alue;‘ìqth¸ãus,Ž¦‘#w•¸ãe›UUsa“v“e˜it˜only˜if˜it˜is˜larger˜than˜the˜curren“t˜v‘ÿqÇalue.ŽŸ È÷’Œ*fÆ\ifdim\dimen@>\eqnshift@Ž¡’Ÿ¾\global\eqnshift@\dimen@Ž¡’Œ*f\fiŽ¡‘yD\fiŽ¡‘f]¶\fiŽ¡‘Sw^\endgroupŽ¡‘@‘}ŽŸZæ‘× 6\x@lcalc@widthŽŽŽ‘#²This–%émacro“calculates“the“\indenš¸ãtation"“of“the“curren˜t“ro˜w,‘Zas“de ned“abGo˜v˜eŽ¦‘#under–)Lthe“description“of“Å\x@calc@shift@lc².‘cThis“macro“is“called“for“eac¸ãh“ eldŽ¦‘#of–ŠHthe“currenš¸ãt“line,‘—„with“Å\@tempa“²set“to“the“width“of“the“curren˜t“ eld.‘ŸIdeally‘ÿ*ª,Ž¦‘#the–Í–lošGop“enclosing“Å\x@lcalc@width“²w¸ãould“terminate“as“so˜on“as“Å\@tempa“²is“non-Ž¦‘#zero,‘?Wbut–9×that“wš¸ãould“bGe“a“bit“tric˜ky“to“arrange.‘hInstead,‘?Ww˜e“use“Å\@tempdima“²asŽ¦‘#a–UU ag“to“signal“when“w•¸ãe'v“e›UUencoun“tered˜the˜ rst˜non-empt“y˜ eld.ŽŸ‘ï‘@‘Æ\def\x@lcalc@width{%Ž¡‘Sw^\ifdim\@tempdima–¹–=“\z@ŽŸ‘ï‘#²If–Q the“currenš¸ãt“ eld“is“empt˜y“(i.e.,‘…Å\@tempaŽ‘* ²=‘Ç0‘ª¨ptŽ‘ãŠ,‘…then“w˜e“incremen˜t“Å\@tempdimbŽ¦‘#²bš¸ãy–ãJthe“width“of“the“curren˜t“ eld).‘¦Otherwise,‘Çw˜e“set“Å\@tempdimaŽ‘<Û²=‘³¯1‘ª¨ptŽ‘³kas“aŽ¦‘#signal–x=v‘ÿqÇalue“and“incremenš¸ãt“Å\@tempdimb“²b˜y“the“width“of“whatev˜er“empt˜y“spaceŽ¦‘#there–UUmighš¸ãt“bGe“at“the“left“of“the“curren˜t“ eld.ŽŸ È÷‘f]¶Æ\ifdim\@tempa–¹–>“\z@Ž¡‘yD\@tempdima\p@Ž¡‘yD\ifodd\column@Ž¡’Œ*f\advance\@tempdimb‘¹–\maxcol@width\column@Ž¡’Œ*f\advance\@tempdimb-\@tempaŽ¡‘yD\fiŽŸÈ÷‘#²In–Aaddition,‘{ów¸ãe“need“to“adjust“the“v‘ÿqÇalues“of“Å\@tempcnta“²and“Å\@tempcntb“²toŽ¦‘#accounš¸ãt–Iwfor“an˜y“empt˜y“align“structures“that“migh˜t“ošGccur“at“the“b˜eginning“ofŽ¦‘#the–)êcurrenš¸ãt“line.‘ï‡More“spGeci cally‘ÿ*ª,‘_w˜e“ rst“set“Å\count@“²equal“to“the“n˜um˜bGerŽ¦‘#of–inš¸ãteralign“spaces“preceding“the“curren˜t“ eld“(namely‘ÿ*ª,‘*ª¸b²(Å\column@Ž‘,ª¸‘ª§²1)µ=²2¸c²),Ž¦‘#and–óÕthen“subtract“Å\count@“²from“bGoth“Å\@tempcnta“²and“Å\@tempcntb².‘QGThe“ratio-Ž¦‘#nale–›kis“that“for“the“purpšGoses“of“adjusting“the“spacing“b˜et•¸ãw“een–›kthe“tag“and“theŽ¦‘#equation,‘ƒ$the–yûonly“ exible“inš¸ãteralign“spaces“are“those“after“the“ rst“non-empt˜yŽ¦‘#align–ïÏstructure,‘so“wš¸ãe“need“to“treat“those“di eren˜t“from“the“ones“bGefore“the“ rstŽ¦‘#non-empt¸ãy–UUalign“structure.ŽŽŽŒ‹@W s\È ý®£8‘Y²64’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’¯DÆ\count@\column@Ž¤ ’¯D\advance\count@\m@neŽ¡’¯D\divide\count@\tw@Ž¡’¯D\advance\@tempcnta-\count@Ž¡’¯D\advance\@tempcntb-\count@Ž¡’œ]¶\elseŽ¡’¯D\advance\@tempdimb‘¹–\maxcol@width\column@\relaxŽ¡’œ]¶\fiŽ¡’‰w^\fiŽ¡‘v‘}Ž¡‘cª®\fi\fiŽŸ<ô‘ Ž\place@tagŽŽŽ‘YÅ\place@tag–UU²takš¸ães“care“of“the“placmen˜t“of“tags“in“the“Åalign“²en˜vironmen˜ts.Ž©!†‘cª®Æ\def\place@tag{%Ž¡‘v‘\iftagsleft@Ž¡’‰w^\kern-\tagshift@Ž¡’‰w^\if1\shift@tag\row@\relaxŽ¡’œ]¶\rlap{\vbox{%Ž¡’¯D\normalbaselinesŽ¡’¯D\boxz@Ž¡’¯D\vbox‘¹–to\lineht@{}%Ž¡’¯D\raise@tagŽ¡’œ]¶}}%Ž¡’‰w^\elseŽ¡’œ]¶\rlap{\boxz@}%Ž¡’‰w^\fiŽ¡’‰w^\kern\displaywidth@Ž¡‘v‘\elseŽ¡’‰w^\kern-\tagshift@Ž¡’‰w^\if1\shift@tag\row@\relaxŽŸ!†‘Y²Added–8ãdepth“to“correct“v¸ãertical“spacing“of“shifted“equation“tags.|dmj,‘qÇ1994/12/29Ž¦’œ]¶Æ\llap{\vtop{%Ž¡’¯D\raise@tagŽ¡’¯D\normalbaselinesŽ¡’¯D\setbox\@ne\nullŽ¡’¯D\dp\@ne\lineht@Ž¡’¯D\box\@neŽ¡’¯D\boxz@Ž¡’œ]¶}}%Ž¡’‰w^\elseŽ¡’œ]¶\llap{\boxz@}%Ž¡’‰w^\fiŽ¡‘v‘\fiŽ¡‘cª®}ŽŸ<ô‘f \align@preambleŽŽŽŽ¦‘cª®\def\align@preamble{%Ž¡‘q×p&\hfilŽ¡‘v‘\strut@ŽŽŽŒ‹Ab­ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ65ŽŽ 8G ýä‘@‘Æ\setboxz@h{\@lign$\m@th\displaystyle{##}$}%Ž¤ ‘@‘\ifmeasuring@\savefieldlength@\fiŽ¡‘@‘\set@fieldŽ¡‘@‘\tabskip\z@skipŽ¡‘;×p&\setboxz@h{\@lign$\m@th\displaystyle{{}##}$}%Ž¡‘@‘\ifmeasuring@\savefieldlength@\fiŽ¡‘@‘\set@fieldŽ¡‘@‘\hfilŽ¡‘@‘\tabskip\alignsep@Ž¡‘-ª®}Ž©‘êŽ\set@fieldŽŽŽ‘#Å\set@field–”z²incremenš¸ãts“the“column“coun˜ter,‘¤Ctrac˜ks“the“v‘ÿqÇalue“of“Å\lineht@“²andŽŸ ‘# nally–UUinserts“the“bGoš¸ãx“con˜taining“the“con˜ten˜ts“of“the“curren˜t“ eld.ŽŸ °‘-ª®Æ\def\set@field{%Ž¡‘@‘\column@plusŽ¡‘@‘\iftagsleft@Ž¡‘Sw^\ifdim\ht\z@>\lineht@Ž¡‘f]¶\global\lineht@\ht\z@Ž¡‘Sw^\fiŽ¡‘@‘\elseŽ¡‘Sw^\ifdim\dp\z@>\lineht@Ž¡‘f]¶\global\lineht@\dp\z@Ž¡‘Sw^\fiŽ¡‘@‘\fiŽ¡‘@‘\boxz@Ž¡‘-ª®}Ž¦‘#Ä14.7Ž‘Bñ¼The–ÕTÅsplit“Äen•®9vironmen“tŽŸfd‘¦|ÆsplitŽŽŽŽŸ °‘-ª®\def\split{%Ž¡‘@‘\ifinany@Ž¡‘Sw^\@xp\insplit@Ž¡‘@‘\elseŽ¡‘Sw^\@xp\split@errŽ¡‘@‘\fiŽ¡‘-ª®}Ž¦‘êŽ\split@errŽŽŽ‘#²A‘rspGecial– error“function“for“Åsplit“²to“conserv¸ãe“main“mem“(at“a“cost“of“stringŽŸ ‘#p•Go“ol/hash‘UUsize.ŽŸ °‘-ª®Æ\edef\split@err{%Ž¡‘@‘\@nx\@amsmath@err{%Ž¡‘Sw^\string\begin{split}–¹–won't“work“here%Ž¡‘@‘}{%Ž¡‘Sw^\@xp\@nx\csnameŽ¡‘7ÚDid–¹–you“forget“a“preceding“\string\begin{equation}?^^J%Ž¡‘7ÚIf–¹–not,“perhaps“the“`aligned'“environment“is“what“you“want.\endcsname}%Ž¡‘-ª®}Ž¦‘îÀ$\insplit@ŽŽŽŽŽŽŒ‹Bgš s\È ý®£8‘Y²66’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘cª®Æ\def\insplit@{%Ž¤ ‘v‘\global\setbox\z@\vbox\bgroupŽ¡’‰w^\Let@Ž¡’‰w^\restore@math@crŽ¡’‰w^\default@tag–¹–%“disallow“use“of“\tag“hereŽ¡’‰w^\ialign\bgroupŽ¡’œ]¶\hfilŽ¡’œ]¶\strut@Ž¡’œ]¶$\m@th\displaystyle{##}$%Ž¡’—¤ &$\m@th\displaystyle{{}##}$%Ž¡’œ]¶\hfill–¹–%“Why“not“\hfil?---dmj,“1994/12/28Ž¡’œ]¶\crcrŽ¡‘cª®}Ž©š‘$À$\endsplitŽŽŽŽŸ ³3‘cª®\def\endsplit{%Ž¡’œ]¶\crcrŽ¡’‰w^\egroupŽ¡‘v‘\egroupŽ¡‘v‘\iftagsleft@Ž¡’‰w^\@xp\lendsplit@Ž¡‘v‘\elseŽ¡’‰w^\@xp\rendsplit@Ž¡‘v‘\fiŽ¡‘cª®}Ž¦‘Lø\rendsplit@ŽŽŽ‘Y²Mo•¸ãv“ed–Pƒthe“bGoš¸ãx“maneuv˜ers“inside“the“Å\ifinalign@²,‘Qzsince“that“is“the“only“placeŽ¤ ‘Ythey–UUare“needed.|dmj,“1994/12/28Ž¡‘hTODO:–ºÞExplore“inš¸ãteraction“of“tag-placemen˜t“algorithm“with“Åsplit².‘>JIs“thereŽ¡‘Yan•¸ãy› Øw“a“y˜for˜Åsplit˜²to˜pass˜the˜relev‘ÿqÇan“t˜information˜out˜to˜the˜enclosing˜ÅgatherŽ¡‘Y²or‘UUÅalign²?Ž¤ ³3‘cª®Æ\def\rendsplit@{%Ž© ‘v‘\ifinalign@ŽŸ³3‘Y²Changed–UUÅ\box9“²in¸ãto“a“Å\vtop“²here“for“bGetter“spacing.Ž¡’‰w^Æ\global\setbox9‘¹–\vtop{%Ž¦’œ]¶\unvcopy\z@Ž¦’œ]¶\global\setbox8‘¹–\lastboxŽ¦’œ]¶\unskipŽ¦’‰w^}%Ž¦’‰w^\setbox\@ne\hbox{%Ž¦’œ]¶\unhcopy8Ž¦’œ]¶\unskipŽ¦’œ]¶\global\setbox\tw@\lastboxŽ¦’œ]¶\unskipŽ¦’œ]¶\global\setbox\thr@@\lastboxŽ¦’‰w^}%Ž¦’‰w^\ifctagsplit@Ž¦’œ]¶\gdef\split@{%Ž¦’¯D\hbox‘¹–to\wd\thr@@{}%ŽŽŽŒ‹Cmƒ s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ67ŽŽ 8G ýä‘tŠxÆ&\vcenter{\vbox{\moveleft\wd\thr@@\boxz@}}%Ž¤ ‘f]¶}%Ž¡‘Sw^\elseŽ¡‘f]¶\global\setbox7‘¹–\hbox{\unhbox\tw@\unskip}%Ž©Tz‘#²Added–ðBÅ\add@amps“²to“makš¸ãe“sure“w˜e“put“the“last“line“of“the“Åsplit“²in˜to“theŽ¤ ‘#propGer–°úcolumn“of“an“Åalign“²en•¸ãvironmen“t–°úwith“m¸ãultiple“align“structures.|dmj,Ž¡‘#1994/12/28ŽŸ &f‘2SpšGecial–¼qcare“has“to“b˜e“tak¸ãen“in“this“case“b˜ecause“the“Åsplit“²turns“inš¸ãto“t˜w˜oŽ¡‘#lines–ßnof“the“Åalign“²instead“of“just“one.‘ So,‘Aówš¸ãe“ha˜v˜e“to“mak˜e“sure“that“theŽ¡‘# rst–ªline“prošGduced“b¸ãy“the“Åsplit“²do˜esn't“upset“our“b˜o˜okkš¸ãeeping,‘¿Dhence“w˜e“callŽ¡‘#Å\savetaglength@–($²to“insert“0‘ª®pt“as“the“tag“for“this“pseudo-line,‘1-and“w¸ãe“adv‘ÿqÇanceŽ¡‘#the–FìÅ\row@“²counš¸ãter“and“reset“Å\lineht@“²afterw˜ards.‘lùIt“w˜ould“bGe“nice“if“w˜e“couldŽ¡‘#just–replace“the“Å\crcr“²bš¸ãy“Å\math@cr@@@²,‘H³but“that“w˜ould“cause“problems“withŽ¡‘#the–UUtag“proGcessing.ŽŸT{‘f]¶Æ\gdef\split@{%Ž¤ ‘yD\global\@tempcnta\column@Ž¡‘tŠx&\setboxz@h{}%Ž¡‘yD\savetaglength@Ž¡‘yD\global\advance\row@\@neŽ¡‘yD\vbox{\moveleft\wd\thr@@\box9}%Ž¡‘yD\crcrŽ¡‘yD\noalign{\global\lineht@\z@}%Ž¡‘yD\add@amps\@tempcntaŽ¡‘yD\box\thr@@Ž¡‘tŠx&\box7Ž¡‘f]¶}%Ž¡‘Sw^\fiŽ¡‘@‘\elseŽ¡‘Sw^\ifctagsplit@Ž¡‘f]¶\gdef\split@{\vcenter{\boxz@}}%Ž¡‘Sw^\elseŽ¦‘#²Changed–é=to“just“Å\boxz@²,‘7otherwise“last“line“gets“cen¸ãtered“rather“than“alignedŽ¤ ‘#propšGerly–Jçwith“resp˜ect“to“the“rest“of“the“lines.‘nMBut“this“means“that“w¸ãe“can't“seeŽ¡‘#inside–™‚of“the“last“line“to“decide“whether“the“tag“needs“to“bGe“mo•¸ãv“ed.‘>MWill‘™‚ha“v“eŽ¡‘#to–UUthink“abGout“this.|dmj,“1994/12/28ŽŸT{‘f]¶Æ\gdef\split@{%Ž¤ ‘yD\boxz@Ž¡‘-ª®%‘K™`\box9Ž¡‘-ª®%‘K™`\crcrŽ¡‘-ª®%‘K™`\hbox{\box\thr@@\box7}%Ž¡‘f]¶}%Ž¡‘Sw^\fiŽ¡‘@‘\fiŽ¡‘@‘\aftergroup\split@Ž¡‘-ª®}ŽŸ™™‘åLø\lendsplit@ŽŽŽŽŽŽŒ‹Ds[ s\È ý®£8‘Y²68’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘cª®Æ\def\lendsplit@{%Ž¤ ‘v‘\global\setbox9\vtop{\unvcopy\z@}%Ž¡‘v‘\ifinalign@ŽŸyò‘Y²Mo•¸ãv“ed›-ƒfollo“wing˜t“w“o˜bGo“xes˜inside˜the˜Å\ifinalign@²,‘cŽsince˜they˜are˜only˜usedŽ¤ ‘Yin–” that“case.‘-íIn“fact,‘£ºif“wš¸ãe“just“k˜ept“trac˜k“of“the“width“of“the“ rst“column,‘£ºw˜eŽ¡‘Ycould–ÀdispGense“with“this“enš¸ãtirely‘ÿ*ª.‘³ESurely“that“w˜ould“bGe“more“ecien˜t“than“allŽ¡‘Ythese–UUbGo¸ãx“copies.|dmj,“1994/12/28ŽŸyó’‰w^Æ\setbox\@ne\vbox{%Ž¤ ’œ]¶\unvcopy\z@Ž¡’œ]¶\global\setbox8\lastboxŽ¡’‰w^}%Ž¡’‰w^\setbox\@ne\hbox{%Ž¡’œ]¶\unhcopy8%Ž¡’œ]¶\unskipŽ¡’œ]¶\setbox\tw@\lastboxŽ¡’œ]¶\unskipŽ¡’œ]¶\global\setbox\thr@@\lastboxŽ¡’‰w^}%Ž¡’‰w^\ifctagsplit@Ž¡’œ]¶\gdef\split@{%Ž¡’¯D\hbox‘¹–to\wd\thr@@{}%Ž¡’ªŠx&\vcenter{\vbox{\moveleft\wd\thr@@\box9}}%Ž¡’œ]¶}%Ž¡’‰w^\elseŽ¡’œ]¶\gdef\split@{%Ž¡’¯D\hbox‘¹–to\wd\thr@@{}%Ž¡’ªŠx&\vbox{\moveleft\wd\thr@@\box9}%Ž¡’œ]¶}%Ž¡’‰w^\fiŽ¡‘v‘\elseŽ¡’‰w^\ifctagsplit@Ž¡’œ]¶\gdef\split@{\vcenter{\box9}}%Ž¡’‰w^\elseŽ¡’œ]¶\gdef\split@{\box9}%Ž¡’‰w^\fiŽ¡‘v‘\fiŽ¡‘v‘\aftergroup\split@Ž¡‘cª®}ŽŸݹ‘YÄ14.8Ž‘xñ¼The–ÕTÅmultline“Äen•®9vironmen“tŽŸÒ‘Y²In–‡nthe“original“¸A‘þU>Ÿ'MŽ‘ ‹S²-T‘þU>Ÿ'EŽ‘ãxX,‘ÓôÅ\multlinegap“²is“a“macro“with“an“argumen¸ãt“thatŽ¤ ‘Yresets–&:an“inš¸ãternal“dimension“(one“with“an“Å@“²c˜haracter“in“its“name).‘äwHere,‘ZstoŽ¡‘Ysa•¸ãv“e›Å#con“trol˜sequence˜names,‘áúw“e˜de ne˜Å\multlinegap˜²to˜bGe˜the˜dimension˜itselfŽ¡‘Yand–œqthe“doGcumenš¸ãtation“instructs“users“to“use“Å\setlength“²if“they“need“to“c˜hangeŽ¡‘Yit.ŽŸݹ‘“bÆ\multlinegapŽŽ¡‘f \multlinetaggapŽŽŽŽŽ‘Y²Changed–o«Å\multlinegap“²and“Å\multlinetaggap“²to“skip“registers.‘ÀÈAlso“c¸ãhangedŽ¡‘Yname–UUto“Å\multlinetaggap“²from“Å\multlinetaggap@².ŽŽŽŒ‹E{O s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ69ŽŽ 8G ýä‘-ª®Æ\newskip\multlinegapŽ¤ ‘-ª®\multlinegap10ptŽ¡‘-ª®\newskip\multlinetaggapŽ¡‘-ª®\multlinetaggap10ptŽ©p‘Òf \start@multlineŽŽŽŽŸ Б-ª®\def\start@multline#1{%Ž¡‘@‘\RIfM@Ž¡‘Sw^\nomath@envŽ¡‘Sw^\DN@{\@namedef{end\@currenvir}{}\@gobble}%Ž¡‘@‘\elseŽ¡‘Sw^$$%Ž¡‘Sw^#1%Ž¡‘Sw^\ifst@rredŽ¡‘f]¶\nonumberŽ¡‘Sw^\elseŽ¡‘f]¶\global\@eqnswtrueŽ¡‘Sw^\fiŽ¡‘Sw^\let\next@\multline@Ž¡‘@‘\fiŽ¡‘@‘\collect@body\next@Ž¡‘-ª®}Ž¦‘óyºmultlineŽŽŸ ‘îÀ$multline*ŽŽŽŽŽŽŸ Б-ª®\def\multline{\start@multline\st@rredfalse}Ž¡‘-ª®%Ž¡‘-ª®\@namedef{multline*}{\start@multline\st@rredtrue}Ž¦‘êŽ\multline@ŽŽŽŽ© Б-ª®\def\multline@#1{%Ž¡‘@‘\inany@trueŽ¡‘@‘\Let@ŽŸБ#²F‘ÿ*ªor–ømš¸ãultline“neither“Å\displ@y“²no“Å\displ@y@“²is“quite“righ˜t;‘+w˜e“w˜an˜t“to“adv‘ÿqÇanceŽ¤ ‘#the–ÏÖroš¸ãw“n˜um˜bšGer“and“(I‘Ï´supp˜ose?)‘EHthe“displaš¸ãy-pagebreak“lev˜el,‘ê‰but“w˜e“only“w˜an˜tŽ¡‘#to–]Îdo“tag-related“stu “once“bšGefore“the“ rst“line,‘Ÿìnot“rep˜eat“it“for“ev¸ãery“line.Ž¡‘#(Recall–UUthat“the“arg“of“Å\@display@init“²goGes“in¸ãto“Å\everycr².)Ž¦‘@‘Æ\@display@init{\global\advance\row@\@ne‘¹–\global\dspbrk@lvl\m@ne}%Ž¤ ‘@‘\displaybreak@Ž¡‘@‘\restore@math@crŽŸБ#²The–NÂÅmultline“²en•¸ãvironmen“t–NÂis“somewhat“un¸ãusual,‘Pin“that“Å\tag“²and“Å\label“²areŽ¤ ‘#enabled–only“during“the“measuring“phase“and“disabled“during“the“proGductionŽ¡‘#phase.‘ôøHere–w¸ãe“disable“Å\tag“²and“Å\label²;‘–îÅ\mmeasure“²will“re-enable“them“tem-Ž¡‘#pGorarily‘ÿ*ª.Ž¦‘@‘Æ\let\tag\tag@in@alignŽ¤ ‘@‘\global\tag@false‘¹–\global\let\raise@tag\@emptyŽ¡‘@‘\mmeasure@{#1}%Ž¡‘@‘\let\tag\gobble@tag‘¹–\let\label\@gobbleŽ¡‘@‘\tabskip–¹–\if@fleqn“\@mathmargin“\else“\z@skip“\fiŽŽŽŒ‹F‚Ù s\È ý®£8‘Y²70’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘v‘Æ\totwidth@\displaywidthŽ¤ ‘v‘\if@fleqnŽ¡’‰w^\advance\totwidth@-\@mathmarginŽ¡‘v‘\fiŽ¡‘v‘\halign\bgroupŽ¡’‰w^\hbox‘¹–to\totwidth@{%Ž©‘Y²In–§˜order“to“get“the“spacing“of“the“last“line“righš¸ãt“in“ eqn“moGde,‘ü)w˜e“need“toŽ¤ ‘Yplaš¸ãy–‰za“little“game“here.‘5Normally“the“stretc˜habilit˜y“of“the“Å\hskip“²here“will“bGeŽ¡‘Ysuppressed–8xb¸ãy“the“Å\hfil“²at“the“end“of“the“template,‘>>except“inside“the“last“line,Ž¡‘Ywhen–UUthat“Å\hfil“²will“bGe“remo•¸ãv“ed›UUb“y˜the˜Å\hfilneg˜²in˜Å\lendmultline@².ŽŸ’œ]¶Æ\if@fleqnŽ¤ ’¯D\hskip–¹–\@centering“\relaxŽ¡’œ]¶\elseŽ¡’¯D\hfilŽ¡’œ]¶\fiŽ¡’œ]¶\strut@Ž¡’œ]¶$\m@th\displaystyle{}##$%Ž¡’œ]¶\hfilŽ¡’‰w^}%Ž¡’‰w^\crcrŽ¦‘Y²In–½×Åfleqn“²mošGde,‘×÷it's“the“Å\tabskip“²of“Å\@mathmargin“²that“needs“to“b˜e“remo•¸ãv“edŽŸ ‘Yin–UUthe“ rst“line,“not“the“Å\hfil“²at“the“bGeginning“of“the“template.ŽŸ’‰w^Æ\if@fleqnŽ¡’œ]¶\hskip-\@mathmarginŽ¡’‰w^\elseŽ¡’œ]¶\hfilnegŽ¡’‰w^\fiŽ¡’‰w^\iftagsleft@Ž¡’œ]¶\iftag@Ž¡’¯D\begingroupŽ¡’Â*f\ifshifttag@Ž¡’Õ¾\rlap{\vbox{%Ž¡’úÝn\normalbaselinesŽ¡’úÝn\hbox{%Ž¡’ ÃÆ\strut@Ž¡’ ÃÆ\make@display@tagŽ¡’úÝn}%Ž¡’úÝn\vbox‘¹–to\lineht@{}%Ž¡’úÝn\raise@tagŽ¡’Õ¾}}%Ž¦‘Y²If–ýthe“equation“tag“doGesn't“ t“on“the“same“line“with“the“ rst“line“of“the“displa¸ãy‘ÿ*ª,Ž¤ ‘Yw•¸ãe'll›Ÿ€inden“t˜the˜ rst˜line˜b“y˜Å\multlinegap².‘PHThis˜is˜a˜c“hange˜from˜Åamstex²,Ž¡‘Ywhere–ª&the“ rst“line“wš¸ãould“ha˜v˜e“bGeen“ ush“against“the“left“margin“in“this“case.Ž¡‘YA–UUcorrespšGonding“c¸ãhange“will“b˜e“made“in“Å\rendmultline@².ŽŸ’Õ¾Æ\hskip\multlinegapŽ¤ ’Â*f\elseŽ¡’Õ¾\make@display@tagŽŽŽŒ‹GŠ0 s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ71ŽŽ 8G ýä’Ÿ¾Æ\hskip\multlinetaggapŽ¤ ’Œ*f\fiŽ¡‘yD\endgroupŽ¡‘f]¶\elseŽ¡‘yD\hskip\multlinegapŽ¡‘f]¶\fiŽ¡‘Sw^\elseŽ¡‘f]¶\hskip\multlinegapŽ¡‘Sw^\fiŽ¡‘@‘#1%Ž¡‘-ª®}Ž©u@‘à“b\endmultlineŽŽŸ ‘ÛÙÌ\endmultline*ŽŽŽŽŽ‘#²W‘ÿ*ªe–yùuse“some“expandafters“here“to“reduce“the“n•¸ãum“bGer–yùof“tok¸ãens“in“the“replace-ŽŸ ‘#men¸ãt–UUtext“of“Å\endmultline².‘qÇÅ\endmultline“²and“Å\endmultline*“²are“the“same.ŽŸ@}‘-ª®Æ\def\endmultline{%Ž¡‘@‘\iftagsleft@Ž¡‘Sw^\@xp\lendmultline@Ž¡‘@‘\elseŽ¡‘Sw^\@xp\rendmultline@Ž¡‘@‘\fiŽ¡‘@‘\global\@ignoretrueŽ¡‘-ª®}ŽŸ]Í‘-ª®\@xp\let\csname‘¹–endmultline*\endcsname=\endmultlineŽ¦‘× 6\lendmultline@ŽŽŽ‘#²Bug–Šó x:‘Ýc¸ãhanged“Å\crcr“²to“Å\math@cr“²so“that“Å\@eqpen“²gets“reset“propGerly“ifŽŸ ‘#Å\displaybreak–UU²is“used“on“the“pGen¸ãultimate“line“of“an“Åalign².ŽŸ@}‘-ª®Æ\def\lendmultline@{%Ž¡‘Sw^\hfilnegŽ¡‘Sw^\hskip\multlinegapŽ¡‘Sw^\math@crŽ¡‘@‘\egroupŽ¡‘@‘$$%Ž¡‘-ª®}Ž¦‘× 6\rendmultline@ŽŽŽŽ©@}‘-ª®\def\rendmultline@{%Ž¡‘@‘\iftag@Ž¡‘Sw^\begingroupŽ¡‘f]¶\ifshifttag@Ž¡‘yD\hskip\multlinegapŽŸ@}‘#²Added–8ãdepth“to“correct“v¸ãertical“spacing“of“shifted“equation“tags.|dmj,‘qÇ1994/12/29Ž¦‘yDÆ\llap{\vtop{%Ž¡’Œ*f\raise@tagŽ¡’Œ*f\normalbaselinesŽ¡’Œ*f\setbox\@ne\nullŽ¡’Œ*f\dp\@ne\lineht@Ž¡’Œ*f\box\@neŽ¡’Œ*f\hbox{\strut@\make@display@tag}%ŽŽŽŒ‹H‘: s\È ý®£8‘Y²72’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’¯DÆ}}%Ž¤ ’œ]¶\elseŽ¡’¯D\hskip\multlinetaggapŽ¡’¯D\make@display@tagŽ¡’œ]¶\fiŽ¡’‰w^\endgroupŽ¡‘v‘\elseŽ¡’‰w^\hskip\multlinegapŽ¡‘v‘\fiŽ¡‘v‘\hfilnegŽŸ–/‘Y²Bug–Šó x:‘Ýc¸ãhanged“Å\crcr“²to“Å\math@cr“²so“that“Å\@eqpen“²gets“reset“propGerly“ifŽŸ ‘YÅ\displaybreak–UU²is“used“on“the“pGen¸ãultimate“line“of“an“Åalign².Ž©–0’‰w^Æ\math@crŽ¡‘v‘\egroup$$%Ž¡‘cª®}ŽŸ‘ Ž\mmeasure@ŽŽŽŽ¦‘cª®\def\mmeasure@#1{%Ž¡‘v‘\begingroupŽ¡’‰w^\measuring@trueŽŸ–/‘Y²W‘ÿ*ªe–Ùàuse“Å\begin/endgroup“²rather“than“Å{}“²in“this“de nition“of“Å\label“²bGecauseŽ¤ ‘Ythe–latter“wš¸ãould“create“an“extra“(w˜asteful“of“main“mem)“n˜ull“bGo˜x“in“the“curren˜tŽ¡‘Ymath–UUlist.‘qÇ[mjd,“1995/01/17]Ž¦’‰w^Æ\def\label##1{%Ž¤ ’’êŠ\begingroup\measuring@false\label@in@display{##1}\endgroup}%Ž¡’‰w^\def\math@cr@@@{\cr}%Ž¡’‰w^\let\shoveleft\@iden‘¹–\let\shoveright\@idenŽ¡’‰w^\savecounters@Ž¡’‰w^\global\row@\z@Ž¡’‰w^\setbox\@ne\vbox{%Ž¡’œ]¶\global\let\df@tag\@emptyŽ¡’œ]¶\halign{%Ž¡’¯D\setboxz@h{\@lign$\m@th\displaystyle{}##$}%Ž¡’¯D\iftagsleft@Ž¡’Â*f\ifnum\row@=\@neŽ¡’Õ¾\global\totwidth@\wdz@Ž¡’Õ¾\global\lineht@\ht\z@Ž¡’Â*f\fiŽ¡’¯D\elseŽ¡’Â*f\global\totwidth@\wdz@Ž¡’Â*f\global\lineht@\dp\z@Ž¡’¯D\fiŽ¡’¯D\crcrŽ¡’¯D#1%Ž¡’¯D\crcrŽ¡’œ]¶}%Ž¡’‰w^}%Ž¡’‰w^\ifx\df@tag\@empty\else\global\tag@true\fiŽŽŽŒ‹I— s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ73ŽŽ 8G ýä‘Sw^Æ\if@eqnsw\global\tag@true\fiŽ¤ ‘Sw^\iftag@Ž¡‘f]¶\setboxz@h{%Ž¡‘yD\if@eqnswŽ¡’Œ*f\stepcounter{equation}%Ž¡’Œ*f\tagform@\theequationŽ¡‘yD\elseŽ¡’Œ*f\df@tagŽ¡‘yD\fiŽ¡‘f]¶}%Ž¡‘f]¶\global\tagwidth@\wdz@Ž¡‘f]¶\dimen@\totwidth@Ž¡‘f]¶\advance\dimen@\tagwidth@Ž¡‘f]¶\advance\dimen@\multlinetaggapŽ¡‘f]¶\iftagsleft@\elseŽ¡‘yD\if@fleqnŽ¡’Œ*f\advance\dimen@\@mathmarginŽ¡‘yD\fiŽ¡‘f]¶\fiŽ¡‘f]¶\ifdim\dimen@>\displaywidthŽ¡‘yD\global\shifttag@trueŽ¡‘f]¶\elseŽ¡‘yD\global\shifttag@falseŽ¡‘f]¶\fiŽ¡‘Sw^\fiŽ¡‘Sw^\restorecounters@Ž¡‘@‘\endgroupŽ¡‘-ª®}ŽŸq‘êŽ\shoveleftŽŽŸ ‘åLø\shoverightŽŽŽŽŽ‘#Å\shoveleft–n¢²and“Å\shoveright“²need“to“do“slighš¸ãtly“di eren˜t“things“depGendingŽ¤ ‘#on–kœwhether“tags“are“on“the“left“or“the“righš¸ãt“and“whether“w˜e're“in“Åfleqn“²moGde.Ž¡‘#F‘ÿ*ªor–Q^compactness“of“coGde,‘R)wš¸ãe“mak˜e“the“appropriate“decisions“at“\compile"“timeŽ¡‘#rather–UUthan“at“load“time.ŽŸ G‘2TODO:›In•¸ãv“estigate˜making˜Å\shoveright˜²bGeha“v“e˜\propGerly"(?)‘‡if˜used˜onŽ¡‘#the–È rst“line“of“a“Åmultline“²and“makš¸ãe“Å\shoveleft“²bGeha˜v˜e“propGerly“if“used“onŽ¡‘#the–Ùélast“line“of“a“Åmultline².‘ÿ„But“in“his“Åamstex.doc“²Spiv‘ÿqÇak“indicates“thoseŽ¡‘#commands–wýshould“nevš¸ãer“bGe“used“on“a“ rst“or“last“line.‘ÙÀP˜erhaps“bGetter“to“lea˜v˜eŽ¡‘#the–UUquestion“opGen“unless/un¸ãtil“real-life“examples“turn“up.ŽŸœr‘-ª®Æ\iftagsleft@Ž¤ ‘@‘\def\shoveright#1{%Ž¡‘Sw^#1%Ž¡‘Sw^\hfilnegŽ¡‘Sw^\hskip\multlinegapŽ¡‘@‘}Ž¡‘-ª®\elseŽ¡‘@‘\def\shoveright#1{%Ž¡‘Sw^#1%Ž¡‘Sw^\hfilnegŽ¡‘Sw^\iftag@ŽŽŽŒ‹Jœ÷ s\È ý®£8‘Y²74’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä’œ]¶Æ\ifshifttag@Ž¤ ’¯D\hskip\multlinegapŽ¡’œ]¶\elseŽ¡’¯D\hskip\tagwidth@Ž¡’¯D\hskip\multlinetaggapŽ¡’œ]¶\fiŽ¡’‰w^\elseŽ¡’œ]¶\hskip\multlinegapŽ¡’‰w^\fiŽ¡‘v‘}Ž¡‘cª®\fiŽ¡¡‘cª®\if@fleqnŽ¡‘v‘\def\shoveleft#1{#1}%Ž¡‘cª®\elseŽ¡‘v‘\iftagsleft@Ž¡’‰w^\def\shoveleft#1{%Ž¡’œ]¶\setboxz@h{$\m@th\displaystyle{}#1$}%Ž¡’œ]¶\setbox\@ne\hbox{$\m@th\displaystyle#1$}%Ž¡’œ]¶\hfilnegŽ¡’œ]¶\iftag@Ž¡’¯D\ifshifttag@Ž¡’Â*f\hskip\multlinegapŽ¡’¯D\elseŽ¡’Â*f\hskip\tagwidth@Ž¡’Â*f\hskip\multlinetaggapŽ¡’¯D\fiŽ¡’œ]¶\elseŽ¡’¯D\hskip\multlinegapŽ¡’œ]¶\fiŽ¡’œ]¶\hskip.5\wd\@neŽ¡’œ]¶\hskip-.5\wdz@Ž¡’œ]¶#1%Ž¡’‰w^}Ž¡‘v‘\elseŽ¡’‰w^\def\shoveleft#1{%Ž¡’œ]¶\setboxz@h{$\m@th\displaystyle{}#1$}%Ž¡’œ]¶\setbox\@ne\hbox{$\m@th\displaystyle#1$}%Ž¡’œ]¶\hfilnegŽ¡’œ]¶\hskip\multlinegapŽ¡’œ]¶\hskip.5\wd\@neŽ¡’œ]¶\hskip-.5\wdz@Ž¡’œ]¶#1%Ž¡’‰w^}Ž¡‘v‘\fiŽ¡‘cª®\fiŽŸ|á‘YÄ14.9Ž‘xñ¼MiscellaneousŽŸ…œ‘EÓ>Æ\[ŽŽŽ‘Y²This–UUis“basically“just“a“strippGed-do¸ãwn“Ågather².ŽŽŽŒ‹K£Ê s\È ý®£8‘#Ç14.‘ÇMUL–ÿ*ªTILINE›UUEQUA“TION˜ENVIR¸ãONMENTS‘oβ75ŽŽ 8G ýä‘-ª®Æ\def\[{%Ž¤ ‘@‘\RIfM@Ž¡‘Sw^\@badmathŽ¡‘@‘\elseŽ¡‘Sw^\DN@{%Ž¡‘f]¶$$%Ž¡‘f]¶\ingather@trueŽ¡‘f]¶\inany@trueŽ¡‘f]¶\def\\{\@amsmath@err{\Invalid@@\\}\@eha}%Ž¡‘f]¶\tabskip\@mathmarginŽ¡‘f]¶\halign‘¹–to\displaywidth\bgroupŽ¡‘yD\if@fleqn\else\hfil\fiŽ¡‘yD\setboxz@h{$\m@th\displaystyle{####}$}%Ž¡‘yD\global\totwidth@\wdz@Ž¡‘yD\boxz@Ž¡‘yD\hfilŽ¡‘yD\tabskip\@centeringŽ¡‘yD\crŽ¡‘Sw^}%Ž¡‘Sw^\@xp\next@Ž¡‘@‘\fiŽ¡‘-ª®}Ž¡¡‘-ª®\def\]{%Ž¡‘@‘\RIfM@Ž¡‘Sw^\DN@{%Ž¡‘yD\crcrŽ¡‘f]¶\black@\totwidth@Ž¡‘f]¶\egroupŽ¡‘f]¶$$%Ž¡‘Sw^}%Ž¡‘Sw^\@xp\next@Ž¡‘@‘\elseŽ¡‘Sw^\@badmathŽ¡‘@‘\fiŽ¡‘-ª®}Ž©*‘#Ä14.10Ž‘H±ºFinal‘ÕTincan®9tationsŽŸ0摺ƲÆ\@arrayparboxrestoreŽŽŽ‘#²Here–UUwš¸ãe“m˜ust“reset“a“few“additional“parameters.ŽŸ½„‘-ª®Æ\@xp\def\@xp\@arrayparboxrestore\@xp{\@arrayparboxrestoreŽ¡‘7Ú\inany@false\ingather@false\inalign@false‘¹–\default@tag}Ž¦‘îÀ$\equationŽŽŸ ‘à“b\endequationŽŽŽŽŽ‘#²The–­ëÅsplit“²en•¸ãvironmen“t–­ëdoGes“not“w¸ãork“inside“a“Ådisplaymath“²or“Åequation“²en-Ž¤ ‘#vironmenš¸ãt–Àsince“it“m˜ust“bGe“enclosed“b˜y“an“alignmen˜t.‘V–W‘ÿ*ªe“therefore“rede ne“theŽ¡‘#Åequation›ƒ²en•¸ãvironmen“t˜to˜bGe˜a˜one-lined˜Ågather˜²en“vironmen“t.‘+°The˜Å\\˜²commandŽ¡‘#is–UUmade“inaccessible“in“an“Åequation“²en•¸ãvironmen“t.ŽŸ½„‘-ª®Æ\def\equation{\gather\def\\{\@amsmath@err{\Invalid@@\\}\@eha}}ŽŸ ‘-ª®\def\endequation{\endgather}ŽŽŽŒ‹L¨J s\È ý®£8‘Y²76’Ûü~ÇTHE–UUÅAMSMATH“ÇP‘ÿ*ªA•¸ãCKA“GEŽŽ 8G ýä‘ ŽÆ\equation*ŽŽŸ ‘ÙÌ\endequation*ŽŽŽŽŽ‘Y²The–SÿÅequation*“²en•¸ãvironmen“t–Sÿis“nearly“the“same;‘©Çit“only“suppresses“the“automaticŽ© ‘Ygeneration–UUof“a“tag.ŽŸ‘cª®Æ\newenvironment{equation*}{%Ž¤ ‘mÚ\equationŽ¡‘cª®}{%Ž¡‘mÚ\nonumber\endequationŽ¡‘cª®}ŽŸ‘h²The–£usual“Å\endinput“²to“ensure“that“random“garbage“at“the“end“of“the“ leŽ¦‘YdoGesn't–UUget“copied“b¸ãy“Ådocstrip².ŽŸ‘cª®Æ\endinputŽŽŽŒø®bƒ’À;ès\ȲLóý': cmti10óo´‹Ç cmr9óp®0J cmsl10óߤN cmtt9óßê cmmi10ó 0e—rcmmi7óKñ`y cmr10óÙ“ Rcmr7óú±u cmex10ù°”ßßßßßßß