; TeX output 1997.10.30:0949yiG -\linenopenaltypar\else<219?\ifnum\outputpenalty>-175000\relax<22C\@tempswafalse<23C\fi<249?\fi<25)}<26<27\def\my@nobreaktrue{\let\if@nobreak\iftrue}<28WVeharvetoreturnallthepagetothecurrentpage,andaddabSoxwiththe10lineGnrumbSer,withoutaddingbreakpoinrts,glueorspace.\Thedepthofour11linegnrumbSershouldbeequaltothepreviousdepthofthepage,incasethe12pagebreakshere,andthebSorxhastobemorvedupbrythatdepth.130The\interlinepenaltycomesafterthe\vadjustfroma\linelabel,14so wreincrementthelinenumbSer&@ cmti12after Jprintingit.y%Themacro15\makeLineNumber}proSducesthetextofthelinenrumber, see}section5.|Finally16wreputinthenatural\interlinepenalty,exceptafterthelastline.17\def\MakeLineNo{\@tempdima\dp\@cclv?\unvbox\@cclv<293yi.\sbox\@tempboxa{\hbox?to\z@{\makeLineNumber}}%<30 .\stepcounter{linenumber}%<31.\dp\@tempboxa=\@tempdima\ht\@tempboxa=\z@<32.\nointerlineskip\kern-\@tempdima\box\@tempboxa<33.\ifnum\outputpenalty=-\linenopenaltypar\else<34C\@tempcnta\outputpenalty<35C\advance\@tempcnta?-\linenopenalty<36C\penalty\@tempcnta<37.\fi<38.}<39(V3BConutrolzlinenumb=ering1b#The?linenrumbSering?isconrtrolledvia\par.qLDD"A_ٹT UE!XsavedtheT UE!X-primitive2\parnin\@@par.2WVepushitonelevrelfurtherout,andrede ne\@@parto3insertǞthe\interlinepenaltyneededtotriggerthelinenrumbSering.And4wreneedtoallowpagebreaksafteraparagraph.5\let\@@@par\@@par<40 <41\def\linenumberpar{\ifvmode\@@@par\else\ifinner\@@@par\else<429?\advance\interlinepenalty?\linenopenalty<43H\@@@par<44H\penalty-\linenopenaltypar<45H\kern\z@<469?\advance\interlinepenalty?-\linenopenalty<479?\fi\fi<489?}<49ThebasiccommandstoenableanddisablelinenrumbSers.>>\@parand\par6areonlytoucrhed,$|whentheyare\letto\@@@par/\linenumberpar.MTheline7nrumbSer[2maybSeresetto1withthestar-form,worsetbyanoptionalargument8[hnumbfferJi].9\def\linenumbers{\let\@@par\linenumberpar<50 9?\ifx\@par\@@@par\let\@par\linenumberpar\fi<519?\ifx\par\@@@par\let\par\linenumberpar\fi<529?\@ifnextchar[{\resetlinenumber}%]<53x?{\@ifstar{\resetlinenumber}{}}%<549?}<55<56\def\nolinenumbers{\let\@@par\@@@par<57)\ifx\@par\linenumberpar\let\@par\@@@par\fi<58)\ifx\par\linenumberpar\let\par\@@@par\fi<59)}<604 ryiWhathappSenswithadisplary?CSince\parisnotexecuted,ĊwhenbreakingthelinesbSeforeadisplaryV,theywillnotgetlinenumbSers.SorryV,butIdonotdaretocrhange\interlinepenaltygloballyV,SnordoIwanttorede nethedisplarymathenvironments.8Dothat,ifyoureallyneedit./displCayXmathThefnexttrwofcommandsareprorvidedtoturnonlinenumbSeringinaspeci c1moSde.DGPleaseunotethedi erence:@zforpagewisenrumbering,/h\linenumbers2comes rsttoinhibititfromseeingoptionalargumenrts,sincere-/presetting3thecounrterisuseless.4\def\pagewiselinenumbers{\linenumbers\setpagewiselinenumbers}<61 \def\runninglinenumbers{\setrunninglinenumbers\linenumbers}<62FinallyV,ityisaLDD"A_ٹT UE!Xstryle,sowreprovidefortheuseofenvironments,includ-5ingthesuppressionofthefollorwingparagraphsindentation.6\@namedef{linenumbers*}{\par\linenumbers*}<63 \@namedef{runninglinenumbers*}{\par\runninglinenumbers*}<64<65\def\endlinenumbers{\par\@endpetrue}<66\let\endrunninglinenumbers\endlinenumbers<67\let\endpagewiselinenumbers\endlinenumbers<68\expandafter\let\csname?endlinenumbers*\endcsname\endlinenumbers<69\expandafter\let\csname?endrunninglinenumbers*\endcsname\endlinenumbers<70(V4BLineznuumb=erreferences7b#TheonlywraytogetalabSeltoalinenrumberinaparagraphistoaskthe8outputroutinetomarkit.90WVeusethemarginparmecrhanismtohoSokto\outputforasecondtime.10Marginpars|are oatswithnrumbSer|1,GwefakemarginparswithNo2.11OriginallyV,evrerynegativenumbSered oatwasconsideredtobSeamarginpar.120The oatbSorxnumbSer\@currboxisusedtotransferthelabelnameina13macrocalled\@LNL@hbffox-numberJi.140A \newlabel oiswrittentotheaux- le.5Thereferenceisto15\theLineNumber,%notP\thelinenumber. J This allorwstohoSokin,asdone16bSelorwforpagewiselinenumbSering.17\let\@LN@addmarginpar\@addmarginpar<71 \def\@addmarginpar{%<72.\ifnum\count\@currbox>-2\relax<735)yi9?\@LN@addmarginpar<74 .\else<759?\@cons\@freelist\@currbox<769?\protected@write\@auxout{}{%<77N?\string\newlabel<78]{\csname?@LNL@\the\@currbox\endcsname}%<79]{{\theLineNumber}{\thepage}}}%<80.\fi}<81"ʫ'Nff cmbx124.1ILThefflinelabs3elcommand1@TVoԶrefertoaplaceinline\ref{hfoffoi}atpage\pageref{hfooi}yrouplacea2\linelabel{hfoffoi}꨹atthatplace.35dIf+yrouusethiscommandoutsidea\linenumbersparagraph,youwillAacmr6Itw9orks:Thisparagraphstartsonpage6,line4.4getbXreferencestosomejunkylinenrumbSers,DsorryV.ButbXwedon'tdisablethe5command,bSecauseL+onlythe\parattheendofaparagraphmarydecides6whetherVtoprinrtlinenumbSersonthisparagraphornot.!AD\linelabelmay7appSearearlierthan\linenumbers.80\linelabel,(viaOXafakre oatnumbSer2,(putsa\penaltyintoa9\vadjust,4Mwhicrh_triggersthepagebuilderafterputtingthecurrentlineto10thePmainvrerticallist.A\writeisplacedonthemainverticallist,which11prinrtsareferencetothecurrentvXalueof\thelinenumberand\thepageat12thetimeofthe\shipout.130A\linelabelisallorwedonlyinouterhorizonrtalorverticalmoSdes.140The0argumenrtof\linelabelisputintoamacrowithanamederived15from-thenrumbSer-oftheallocated oatborx.Much-oftherestisdummry oat16setup.17\def\linelabel#1{%<82 .\ifvmode<83C\ifinner?\else\leavevmode\fi<849?\fi<85.\ifhmode<869?\ifinner<87C\@parmoderr<889?\else<89C\@bsphack\@floatpenalty?-\@Mii<90C\@next\@currbox\@freelist<91X{\global\count\@currbox-2%<92]\expandafter\gdef\csname?@LNL@\the\@currbox\endcsname{#1}}%<93X{\@floatpenalty\z@?\@fltovf\def\@currbox{\@tempboxa}}%<94C\begingroup<95X\setbox\@currbox?\color@vbox\vbox\bgroup\end@float<96C\endgroup<97C\global?\@ignorefalse\@esphack<9865yi9?\fi<99 .\else&1009?\@parmoderr&101.\fi&102.}&103(V5BThezapp=earanceofthelinenuumbersb#TheqVlinenrumbSersqVaresetas\tiny\sffamily\arabic{linenumber},10ptleftofthetext.8YVoumaryaddoptionstoplaceitrightofthetext,or.8..30.8..herearethehoSoks:\def\makeLineNumberLeft{\hss\linenumberfont\LineNumber\hskip\linenumbersep}&104 &105\def\makeLineNumberRight{\linenumberfont\hskip\linenumbersep\hskip\textwidth&106?\hbox?to\linenumberwidth{\hss\LineNumber}\hss}&107&108\def\linenumberfont{\normalfont\tiny\sffamily}&109&110\newdimen\linenumbersep&111\newdimen\linenumberwidth&112&113\linenumberwidth=10pt&114\linenumbersep=10pt&115Ohy%wrell,someofthesuggested`customization'hasbSeendone,particularlytheplacemenrtofthenumbSers.liMarginswitchingrequirespagewisenum-6bSering{mode,PbutcrhoosingtheleftorrighrtmarginforthenumbSersalwayswrorks.\def\switchlinenumbers{\@ifstar&116 3{\let\makeLineNumberOdd\makeLineNumberRight&1179?\let\makeLineNumberEven\makeLineNumberLeft}%&1183{\let\makeLineNumberOdd\makeLineNumberLeft&1199?\let\makeLineNumberEven\makeLineNumberRight}%&1203}&121&122\def\setmakelinenumbers#1{\@ifstar&123){\let\makeLineNumberRunning#1%&124.\let\makeLineNumberOdd#1%&125.\let\makeLineNumberEven#1}%&126){\ifx\c@linenumber\c@runninglinenumber&127>\let\makeLineNumberRunning#1%&128.\else&129>\let\makeLineNumberOdd#1%&130>\let\makeLineNumberEven#1%&1317@:yi.\fi}%&132 )}&133&134\def\leftlinenumbers{\setmakelinenumbers\makeLineNumberLeft}&135\def\rightlinenumbers{\setmakelinenumbers\makeLineNumberRight}&136&137\leftlinenumbers*&138\LineNumber'-isahoSokwhicrhisusedforthemodulostu .ItisthecommandtoVfuseforthelinenrumbSer,VwhenVfyoucustomizes\makeLineNumber. |Use\thelinenumber꨹tocrhangetheout tofthedigits.30WVewillimplemenrttwomoSdesofoperation:0<_nrumbSersrunningthrough(partsof8)thetext0<_pagewise꨹nrumbSersstartingoverwithoneontopofeachpage.6Both)moSdesharve)theirorwncountregister,ybutonlyoneisalloScatedasaLDD"A_ٹT UE!Xcounrter,withtheattachedfacilitiesservingbSoth.\newcounter{linenumber}&139 \newcount\c@pagewiselinenumber&140\let\c@runninglinenumber\c@linenumber&141OnlytherunningmoSdecounrtermaybSereset,orpreset,forindividualpara-9graphs.iThepagewisecounrtermustgiveauniqueanonymousnumbSerforeacrhline.\newcommand\resetlinenumber[1][1]{\c@runninglinenumber#1}&142"ʫ5.1ILRunningfflinenumbs3ers12@Running moSdeiseasyV, \LineNumberand\theLineNumberproduce\thelinenumber, 4*whicrhDdefaultsto\arabic{linenumber},usingthe\c@runninglinenumber꨹counrter.8ThisisthedefaultmoSdeofoperation.15\def\makeRunningLineNumber{\makeLineNumberRunning}&143 &144\def\setrunninglinenumbers{%&145.\def\theLineNumber{\thelinenumber}%&146.\let\c@linenumber\c@runninglinenumber&147.\let\makeLineNumber\makeRunningLineNumber&148.}&149&150\setrunninglinenumbers\resetlinenumber&1518 Hyi5.2ILPagewisefflinenumbs3ers@Dicult,if_yrouthinkabSoutit.6ThenumbSerhastobeprinrtedwhenthereisnoTmeanstoknorwonwhichpageitwillendup,exceptthroughtheaux- le.3MysolutionisreallyexpSensivre,butquiterobust.0With[vrersionv2.00thehashsizerequirementsarereduced,HbSecausewedo'notneedoneconrtrolsequenceforeachlineanymore.Butthiscostssome6computationtimeto ndoutonwhicrhpageweare.0\makeLineNumbergetsahoSoktologthelineandpagenrumbertotheaux- le.AnotherhoSoktriesto ndoutwhatthepageo setis,{and9subtractsi{itfromthecounrter\c@linenumber. YAdditionallyV, 0theswitch\ifoddNumberedPage꨹issettrueforoSddnrumberedpages,falseotherwise.V\def\setpagewiselinenumbers{%&152 .\let\theLineNumber\thePagewiseLineNumber&153.\let\c@linenumber\c@pagewiselinenumber&154.\let\makeLineNumber\makePagewiseLineNumber&155.}&156&157\def\makePagewiseLineNumber{\logtheLineNumber\getLineNumber&158)\ifoddNumberedPage&1599?\makeLineNumberOdd&160)\else&1619?\makeLineNumberEven&162)\fi&163)}&164UVEacrhnumbSeredlinegivesalinetotheaux le12<_\@LN{hlinei}{hpffagei}vrery4similartothe\newlabelbusiness,Gexceptthatweneedanarabicrep-resenrtationofthepagenumbSer,notwhattheremightelsebSein\thepage.15\def\logtheLineNumber{\protected@write\@auxout{}{%&165.\string\@LN{\the\c@linenumber}{\noexpand\the\c@page}}}&166UVFVromtheaux- lewregetonemacro\LN@PhpffageiforeachpagewithlinenrumbSersJonit.:Thismacrocallsfourothermacroswithoneargumenrteach.Thesemacrosaredynamicallyde nedtodotestsandactions,to ndouton18whicrhpagethecurrentlinenumbSerislocated.0WVeŒneedsortofapSoinrtertothe rstpagewithlinenumbSers,initiallizedtopSoinrttonothing:21\def\LastNumberedPage{first}&167 \def\LN@Pfirst{\nextLN\relax}&1689 QyiTheޘfourdynamicmacrosareinitiallizedtoreproSducethemselvresinan\xdef\let\lastLN\relax %?comparetolastlineonthispage&169 \let\firstLN\relax?%comparetofirstlineonthispage&170\let\pageLN\relax %?getthepagenumber,computethelinenumber&171\let\nextLN\relax %?movetothenextpage&172During=theend-doScumenrtrunthroughtheaux- les,wedisable\@LN.Imayputinacrheckherelater,togivrearerunrecommendation.3\AtEndDocument{\let\@LN\@gobbletwo}&173Norw, {this^isthetrickypart.Firstofall, {thewholede nitionof\@LNݹisgroupSed,toarvoidaccumulationonthesavestack.Somehow\csnamehcsi\endcsnames>pushesanenrtryV, whichs>staysafteran\xdeftothat6hcsi.0If\LN@Phpffageiisunde ned,]initializeitwiththecurrenrtpageandlinenrumbSer,f&with thepffointer-to-the-next-page̽poinrting tonothing. .Andthe9macroforthepreviouspagewillbSerede nedtopoinrttothecurrentone.0IfXthemacroforthecurrenrtpagealreadyexists,0justrede nethelast-line-numbffer5SenrtryV.120FinallyV,5sarveXthecurrenrtpagenumbSer,5togetthepoinrtertothefollowingpagelater.\def\@LN#1#2{{\expandafter\@@LN\csname?LN@P#2\endcsname{#1}{#2}}}&174 \def\@@LN#1#2#3{\ifx#1\relax&1753\expandafter\@@@LN\csname?LN@P\LastNumberedPage\endcsname#1&1763\xdef#1{\lastLN{#2}\firstLN{#2}\pageLN{#3}\nextLN\relax}%&177)\else&1783\def\lastLN##1{\noexpand\lastLN{#2}}%&1793\xdef#1{#1}%&180)\fi&181)\gdef\LastNumberedPage{#3}}&182ThepreviouspagemacrogetsitspSoinrtertothecurrentone,replacingthe15\relaxwiththecs-tokren\LN@Phpffagei.iIncaseofpagenumbSermismatch,T UE!X#willtriphere,2bSecausetheargumenrtstringfor\nextLN#isnot\relax.Itthinktit'sdiculttodoareasonableinrtercepthere,>bSecausethisisrunning18inan\xdef.8DoSes\PackageError{}wrorkinthere?\def\@@@LN#1#2{{\def\nextLN\relax{\noexpand\nextLN\noexpand#2}%&183 r\xdef#1{#1}}}&184 10 \yiNorw,toyprintalinenumbSer,weneedto ndthepage,whereitresides.Thiswill|mostprobablybSetheonewherethelastonecamefromormarybethenext.Horwever,~ it`canbSeacompletelydi erenrtone.WVemainrtainacache,3whicrhnislettothelastaccessedpagesmacro.2ButfornowitisinitializedtoTexpand\LN@first,wherethepSoinertothe rstnrumberedTpagehasbeenstoredin.6U\def\NumberedPageCache{\LN@Pfirst}&185UUTVo ndoutonwhicrhpagethecurrent\c@linenumberis,|wede nethefourdynamicmacrostodosomethingusefullandexecutethecurrenrtcachemacro.\lastLNisrun rst,testingifthelinenrumbSerinquestionmarybeonalater9page.8Ifso,disable\firstLN,andgoontothenextpagevia\nextLN.\def\testLastNumberedPage#1{\ifnum#1<\c@linenumber&186 >\let\firstLN\@gobble&187)\fi}&188UUElse,if/\firstLN ndsoutthatwreneedanearlierpage,wrestartoverfromthebSeginning.Else,\nextLNɹwillbedisabled,and\pageLNɹwillrun12\gotNumberedPagewithtrwoarguments:othe rstlinenumbSeronthispage,andthepagenrumbSer.\def\testFirstNumberedPage#1{\ifnum#1>\c@linenumber&189 9?\def\nextLN##1{\testNextNumberedPage\LN@Pfirst}%&190)\else&191>\let\nextLN\@gobble&192>\def\pageLN{\gotNumberedPage{#1}}%&193)\fi}&194UUWVe}startwith\pageLNsdisabledand\nextLNde nedtoconrtinue}thesearcrh15withthenextpage.\def\testNumberedPage{%&195)\let\lastLN\testLastNumberedPage&196)\let\firstLN\testFirstNumberedPage&197)\let\pageLN\@gobble&198)\let\nextLN\testNextNumberedPage&199)\NumberedPageCache&200)}&201UUWhenwreswitchtoanotherpage,‹we rsthavetomakesurethatitisthere.IfDwrearedonewiththelastpage,[sweprobablyneedtorunT UE!Xagain,[sbut18for\MessageBreak rerun?togetitright}%&206.\else&2079?\global\let\NumberedPageCache#1%&208.\fi&209.\testNumberedPage&210.}&211"!TVo!separatetheocialhoSoksfromtheinrternalsthereisthisequivXalence,toLet'sseeifit ndsthelab1elonpage6,line4,andbac9khereonpage12,line1.hoSokinlaterforwhatevrerpurpose:\let\getLineNumber\testNumberedPage&212So,norw *wegotthepagewherethenumbSerison.fWVeestablishifweareon3anoSddorevrenpage,andcalculatethe nallinenumbSertobeprinrted.\newif\ifoddNumberedPage&213 &214\def\gotNumberedPage#1#2{\oddNumberedPagefalse&215)\ifodd#2\relax\oddNumberedPagetrue\fi&216)\advance\c@linenumber?1\relax&217)\subtractlinenumberoffset{#1}%&218)}&219YVou5mighrtwanttorunthepagewisemoSdewithrunninglinenumbSers,;oryroumightnot.8It'syourchoice:6\def\runningpagewiselinenumbers{%&220)\let\subtractlinenumberoffset\@gobble&221)}&222&223\def\realpagewiselinenumbers{%&224)\def\subtractlinenumberoffset##1{\advance\c@linenumber-##1\relax}%&225)}&226&227\realpagewiselinenumbers&228FVorZlinenrumbSerZreferences,6weneedaprotectedcalltothewholeproScedure,withtherequestedlinenrumbSerstoredinthe\c@linenumbercounrter.ҀThisiswhatgetsprinrtedtotheaux- letomakealabSel:9\def\thePagewiseLineNumber{\protect&229C\getpagewiselinenumber{\the\c@linenumber}}%&230 12 rgyiAndhereiswhathappSenswhenthelabelisreferedto:\def\getpagewiselinenumber#1{{%&231 )\c@linenumber?#1\relax\testNumberedPage&232)\thelinenumber&233)}}&234AsummaryofallpSerlineexpenses:CPU:ETheZ\outputroutineiscalledforeacrhline,andthepage-searchis3<_done.DISK:JĹOnelineofoutputtotheaux- leforeacrhnumbSeredlineMEM:KOnexmacropSerpage.Greatimprorvementxoverv1.02,whichhadone6<_conrtrolosequencepSerlineinaddition.Itblewthehashtableaftersome<_ vrethousandlines."ʫ5.3ILNumbs3eringffmodulo59@MostJuserswrantJtoharveJonlyonein vrelinesnumbSered.\LineNumberissuppSosed~toproducetheout tofthelinenrumber~attachedtotheline,while\thelinenumber8isusedalsoforreferences,\whicrhshouldappSearevenifthey12arenotmrultiplesof ve.\newcount\c@linenumbermodulo&235 &236\def\themodulolinenumber{{\@tempcnta\c@linenumber&237)\divide\@tempcnta\c@linenumbermodulo&238)\multiply\@tempcnta\c@linenumbermodulo&239)\ifnum\@tempcnta=\c@linenumber\thelinenumber\fi&240)}}&241TheusercommandtosetthemoSdulocounrter:\newcommand\modulolinenumbers[1][0]{%&242$?\let\LineNumber\themodulolinenumber&243$?\ifnum#1>1\relax&244.\c@linenumbermodulo#1\relax&245$?\else\ifnum#1=1\relax&246.\def\LineNumber{\thelinenumber}%&247$?\fi\fi&248$?}&249&250\setcounter{linenumbermodulo}{5}&251\modulolinenumbers[1]&252 13{yi6BPuackagezoptions1b#ThereisabuncrhofpackXageoptions,mallofthemexecutingonlyusercom-2mands(seebSelorw).30Optionsleft(right)putthelinenrumbSersontheleft(righrt)margin.4ThiswrorksinallmoSdes.8leftisthedefault.5\DeclareOption{left}{\leftlinenumbers*}&253 &254\DeclareOption{right}{\rightlinenumbers*}&255`Optionmswitch(switch*)putsthelinenrumbSersmontheouter(inner)margin6ofthetext.KThisrequiresrunningthepagewisemoSde,butwreturno the7pageVo setsubtraction,gettingsortofrunningnrumbSersVagain.oThepagewise8optionmaryrestoretruepagewisemoSdelater.9\DeclareOption{switch}{\setpagewiselinenumbers&256 \switchlinenumbers&257\runningpagewiselinenumbers}&258&259\DeclareOption{switch*}{\setpagewiselinenumbers&260\switchlinenumbers*%&261\runningpagewiselinenumbers}&262`The? optionspagewiseandrunningselectthemajorlinenrumbSer? mechanism.10runninglinenrumbSersrefertoarealcounrtervXalue,ߒwhichcanbSeresetfor11anry8%paragraph,Kevengettingmultipleparagraphsononepagestartingwith12lined nrumbSerone. pagewiselinenumbSersgetauniquehiddennumbSerwithin13the0doScumenrt,butwiththeopportunitrytoestablishthepageonwhichthey14 nallykcometorest.6Thisallorwsthesubtractionofthepageo set,7getting15thenrumbSersstartingwith1ontopofeachpage,ًandmarginswitchingin16trwosideformatsbSecomespossible.8Thedefaultmodeisrunning.170TheorderofdeclarationoftheoptionsisimpSortanrtherepagewisemust18comeafterswitch,BtoorveriderunningpagewisemoSde.}runningcomeslast,19to,resettherunninglinenrumbSer,mode,} e.g,afterselectingmarginswitcrh20moSde>forpagewiserunning.gOncemore, ifyrouspecifyallthreeoftheoptions21[switch,pagewise,running],-theresultisalmostnothing,butifyroulater22sary\pagewiselinenumbers,Fyougetmarginswitching,Fwithrealpagewise23linenrumbSers.24\DeclareOption{pagewise}{\setpagewiselinenumbers&263 ?\realpagewiselinenumbers}&264&265\DeclareOption{running}{\setrunninglinenumbers}&266 14yiAnd1 nallyV,CtheoptionmodulocausesonlythoselinenrumbSers1tobeprinrted1whicrharemultiplesof ve.2\DeclareOption{modulo}{\modulolinenumbers\relax}&267 &268\ProcessOptions&269(V7BThez naltoucuh3b#ThereisonedeadcycleforeacrhlinenumbSer.4\advance\maxdeadcycles?100&270&271\endinput&272(V8BThezusercommands5b#Theusercommandtoturnonando linenrumbSeringare6\linenumbers7<_TVurnonlinenrumbSeringinthecurrenrtmode.8\linenumbers*9WʄandresetthelinenrumbSerto1.10\linenumbers[h(F C cmbxti10numbKerUUi]11WʄandstartwithhnumbfferJi.12\nolinenumbers13<_TVurno linenrumbSering.14\runninglinenumbers*[hnumbKerUUi]15<_TVurnronrunninglinenrumbSers,withrthesameoptionalargumenrtsas16<_\linenumbers.aThe(nrumbSersarerunningthroughthetextoverpage-17<_breaks.HWhen uyrouturnnumbSeringo andonagain,)thenumbSerswill18<_conrtinue,except,ofcause,ifyrouasktoresetorpresetthecounter.19\pagewiselinenumbers20<_TVurnonpagewiselinenrumbSers.ThelinesoneacrhpagearenumbSered21<_bSeginningwithoneatthe rstpagewisenrumberedline.22 15_yi\resetlinenumber[hnumbKerUUi]1<_Reset[Set]thelinenrumbSerto1[hnumbfferJi].2\setrunninglinenumbers3<_SwitcrhtorunninglinenumbSermode.8Donotturnitonoro .4\setpagewiselinenumbers5<_SwitcrhtopagewiselinenumbSermode.8Donotturnitonoro .6\switchlinenumbers*7<_CausesmarginswitcrhinginpagewisemoSdes.aWiththestar,putthe8<_linenrumbSersontheinnermargim.9\leftlinenumbers*10\rightlinenumbers*11<_SetuthelinenrumbSersuintheleft/righrtmargin.Withthestarthisworks12<_for]bSothmodesofoperation,4Jwithoutthestaronlyforthecurrenrtly13<_selectedmoSde.14\runningpagewiselinenumbers15<_WhenusingthepagewiselinenrumbSermode,donotsubtractthepage16<_o set.RThisresultsinrunninglinenrumbSersagain,butwiththepossibil-17<_itrytoswitchmargins.wBecarefulwhendoinglinenumbSerreferencing,18<_thisymoSdestatusmrustbethesamewhilesettingtheparagraphand19<_duringreferences.20\realpagewiselinenumbers21<_Revrersesthee ectof\runningpagewiselinenumbers.22\modulolinenumbers[hnumbKerUUi]23<_Givre*anumbSeronlytolineswhicharemultiplesof[hnumbfferJi].24<_IfƮhnumbfferJiisnotspSeci ed, thecurrenrtvXalueinthecounter25<_linenumbermoduloisretained. chnumbfferJi=1turnsthiso without26<_crhanginglinenumbermodulo.8Thecounterisinitializedto5.27\linelabel28<_Setka\linelabel{hfoffoi}tothelinenrumbSerkwherethiscommandsis29<_in.Refer[toitwiththeLDD"A_ٹT UE!Xreferencingcommands\ref{hfoffoi}and30<_\pageref{hfoffoi}.31 16ڠyiThe9commandscanbSeusedgloballyV,jlocallywithingroupsorasenrviron-1menrts.BItisimpSortanttoknowthattheytakeactiononlywhenthe\paris2executed.kThex\end{hmoffdeilinenumbers}commandsprorvidea\par.Ex-3amples:4<_{\linenumbershtext$Di\par}56<_\begin{linenumbers}7<_htext$Di8<_\end{linenumbers}910<_hpffaragraphi{\linenumbers\par}1112<_\linenumbers13<_htext$Di\par14<_\nolinenumbers1516<_\linenumbers17<_hpffaragraphi{\nolinenumbers\par}18"ʫ8.1ILCustomizationffhos3oks19@ThereQaresevreralhoSokstocustomizetheappearanceofthelinenrumbers,20andsomelorwlevelhoSoksforspeciale ects.21\thelinenumber22<_ThismacroshouldgivretherepresentationofthelinenumbSerinthe23<_LDD"A_ٹT UE!X-counrterlinenumber.8ThedefaultisprovidedbyLDD"A_ٹT UE!X:24Wʄ\arabic{linenumber}25\makeLineNumberLeft26<_ThismacroisusedtoattacrhalinenumbSertotheleftofthetextpage.27<_Thismacroshould llan\hbox,to0ptwhicrhwillbSeplacedatthe28<_leftJmarginofthepage, rwiththereferencepSoinrtalignedtothelineto29<_whicrh%itshouldgiveanumbSer.VPleaseusethemacro\LineNumberto30<_refertothelinenrumbSer.31<_Thedefaultde nitionis32Wʄ\hss\linenumberfont\LineNumber\hskip\linenumbersep33\makeLineNumberRight34 17yi<_LikreF\makeLineNumberLeft,butforlinenumbSersontherightmargin.1<_Thedefaultde nitionis2Wʄ\linenumberfont\hskip\linenumbersep\hskip\textwidth3Wʄ\hbox,to\linenumberwidth{\hss\LineNumber}\hss4\linenumberfont5<_Thismacroisinitializedto6Wʄ\normalfont\tiny\sffamily7\linenumbersep8<_ThisIdimensionregistersetstheseparationofthelinenrumbSerItothe9<_text.8DefaultvXalueis10pt.10\linenumberwidth11<_ThisnLdimensionregistersetsthewidthofthelinenrumbSernLborxonthe12<_righrtmargin.DThedistanceoftherightedgeofthetexttotheright13<_edgeMofthelinenrumbSerMis\linenumbersep+\linenumberwidth.lThe14<_defaultvXalueis10pt.15\theLineNumber{S2(forwizards)16<_ThisQlmacroiscalledforprinrtinga\newlabelentrytotheaux- le.17<_Itsde nitiondepSendsonthemode.4FVorrunninglinenrumbersit'sjust18<_\thelinenumber,-pwhile inpagewisemoSde,thepageo setsubtraction19<_isdoneinhere.20\makeLineNumber(forwizards)21<_ThismacroproSducesthelinenrumbers.L Thede nitiondepends22<_onUthemoSde. zIntherunninglinenrumbersUmodeitjustexpands23<_\makeLineNumberLeft.24\LineNumberh˹(forwizards)25<_Thismacroiscalledbry\makeLineNumbertotypSesetthelinenumbSer.26<_ThishoSokiscrhangedbythemoSdulomechanism.27 18b;(F C cmbxti10'Nff cmbx12&@ cmti12%t}\cmti7$