Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- documentclass[twocolumn]{article}
- usepackage{lipsum,widetext}
- usepackage[switch]{lineno}
- linenumbers
- begin{document}
- lipsum[1-10]
- begin{strip}
- lipsum[4]
- end{strip}
- lipsum[4]
- begin{widetext}
- lipsum[4]
- end{widetext}
- lipsum[4]
- end{document}
- iffalse; awk '/S[H]ELL/' lineno.sty|sh;exit;fi
- deffileversion{v4.32b} deffiledate{2005/10/15}
- newcountlinenopenaltylinenopenalty=-100000
- mathchardeflinenopenaltypar=32000
- let@LN@outputoutput
- newtoksoutput
- output=expandafter{the@LN@output}
- @LN@output={%
- LineNoTest
- if@tempswa
- LineNoHoldInsertsTest
- if@tempswa
- if@twocolumnlet@makecol@LN@makecolfi
- theoutput
- ifnumholdinginserts=-3
- globalholdinginserts 3
- fi
- else
- globalholdinginserts-3
- unvbox@cclv
- ifnumoutputpenalty=10000else
- penaltyoutputpenalty
- fi
- fi
- else
- MakeLineNo
- fi
- }
- defLineNoTest{%
- let@@par@@@par
- ifnuminterlinepenalty<-linenopenaltypar
- advanceinterlinepenalty-linenopenalty
- my@nobreaktrue
- fi
- @tempswatrue
- ifnumoutputpenalty>-linenopenaltyparelse
- ifnumoutputpenalty>-188000relax
- @tempswafalse
- fi
- fi
- }
- defmy@nobreaktrue{letif@nobreakiftrue}
- defLineNoHoldInsertsTest{%
- ifnumholdinginserts=3relax
- @tempswafalse
- fi
- }
- defMakeLineNo{@tempdimadp@cclv unvbox@cclv
- sbox@tempboxa{hbox toz@{makeLineNumber}}%
- stepcounter{linenumber}%
- dp@tempboxa=@tempdimaht@tempboxa=z@
- nointerlineskipkern-@tempdimabox@tempboxa
- ifnumoutputpenalty=-linenopenaltyparelse
- @tempcntaoutputpenalty
- advance@tempcnta -linenopenalty
- penalty@tempcnta
- fi
- }
- let@@@par@@par
- newcountlinenoprevgraf
- deflinenumberpar{ifvmode@@@parelseifinner@@@parelse
- advanceinterlinepenalty linenopenalty
- linenoprevgrafprevgraf
- globalholdinginserts3%
- @@@par
- ifnumprevgraf>linenoprevgraf
- penalty-linenopenaltypar
- fi
- kernz@
- globalholdinginserts0%
- advanceinterlinepenalty -linenopenalty
- fifi
- }
- deflinenumbers{let@@parlinenumberpar
- ifx@par@@@parlet@parlinenumberparfi
- ifxpar@@@parletparlinenumberparfi
- @ifnextchar[{resetlinenumber}%]
- {@ifstar{resetlinenumber}{}}%
- }
- defnolinenumbers{let@@par@@@par
- ifx@parlinenumberparlet@par@@@parfi
- ifxparlinenumberparletpar@@@parfi
- }
- defpagewiselinenumbers{linenumberssetpagewiselinenumbers}
- defrunninglinenumbers{setrunninglinenumberslinenumbers}
- @namedef{linenumbers*}{parlinenumbers*}
- @namedef{runninglinenumbers*}{parrunninglinenumbers*}
- defendlinenumbers{par@endpetrue}
- letendrunninglinenumbersendlinenumbers
- letendpagewiselinenumbersendlinenumbers
- expandafterletcsname endlinenumbers*endcsnameendlinenumbers
- expandafterletcsname endrunninglinenumbers*endcsnameendlinenumbers
- letendnolinenumbersendlinenumbers
- newcommandlinenomathNonumbers{%
- ifx@@par@@@parelse
- ifnuminterlinepenalty>-linenopenaltypar
- globalholdinginserts3%
- advanceinterlinepenalty linenopenalty
- advancepredisplaypenalty linenopenalty
- fi
- fi
- ignorespaces
- }
- newcommandlinenomathWithnumbers{%
- ifx@@par@@@parelse
- ifnuminterlinepenalty>-linenopenaltypar
- globalholdinginserts3%
- advanceinterlinepenalty linenopenalty
- advancepredisplaypenalty linenopenalty
- advancepostdisplaypenalty linenopenalty
- advanceinterdisplaylinepenalty linenopenalty
- fi
- fi
- ignorespaces
- }
- newcommandlinenumberdisplaymath{%
- deflinenomath{linenomathWithnumbers}%
- @namedef{linenomath*}{linenomathNonumbers}%
- }
- newcommandnolinenumberdisplaymath{%
- deflinenomath{linenomathNonumbers}%
- @namedef{linenomath*}{linenomathWithnumbers}%
- }
- defendlinenomath{%
- globalholdinginserts0
- @ignoretrue
- }
- expandafterletcsname endlinenomath*endcsnameendlinenomath
- nolinenumberdisplaymath
- let@LN@addmarginpar@addmarginpar
- def@addmarginpar{%
- ifnumcount@currbox>-2relax
- expandafter@LN@addmarginpar
- else
- @cons@freelist@currbox
- protected@write@auxout{}{%
- stringnewlabel
- {csname @LNL@the@currboxendcsname}%
- {{theLineNumber}{thepage}@LN@ExtraLabelItems}}%
- fi}
- let@LN@ExtraLabelItems@empty
- deflinelabel#1{%
- ifvmode
- ifinner else
- leavevmode @bsphack @savskp@
- fi
- else
- @bsphack
- fi
- ifhmode
- ifinner
- @parmoderr
- else
- @floatpenalty -@Mii
- @next@currbox@freelist
- {globalcount@currbox-2%
- expandaftergdefcsname @LNL@the@currboxendcsname{#1}}%
- {@floatpenaltyz@ @fltovf def@currbox{@tempboxa}}%
- begingroup
- setbox@currbox color@vbox vbox bgroup end@float
- endgroup
- @ignorefalse @esphack
- fi
- else
- @parmoderr
- fi
- }
- defmakeLineNumberLeft{hsslinenumberfontLineNumberhskiplinenumbersep}
- defmakeLineNumberRight{linenumberfonthskiplinenumbersephskipcolumnwidth
- hbox tolinenumberwidth{hssLineNumber}hss}
- deflinenumberfont{normalfonttinysffamily}
- newdimenlinenumbersep
- newdimenlinenumberwidth
- linenumberwidth=10pt
- linenumbersep=10pt
- defswitchlinenumbers{@ifstar
- {letmakeLineNumberOddmakeLineNumberRight
- letmakeLineNumberEvenmakeLineNumberLeft}%
- {letmakeLineNumberOddmakeLineNumberLeft
- letmakeLineNumberEvenmakeLineNumberRight}%
- }
- defsetmakelinenumbers#1{@ifstar
- {letmakeLineNumberRunning#1%
- letmakeLineNumberOdd#1%
- letmakeLineNumberEven#1}%
- {ifxc@linenumberc@runninglinenumber
- letmakeLineNumberRunning#1%
- else
- letmakeLineNumberOdd#1%
- letmakeLineNumberEven#1%
- fi}%
- }
- defleftlinenumbers{setmakelinenumbersmakeLineNumberLeft}
- defrightlinenumbers{setmakelinenumbersmakeLineNumberRight}
- leftlinenumbers*
- newcounter{linenumber}
- newcountc@pagewiselinenumber
- letc@runninglinenumberc@linenumber
- newcommandresetlinenumber[1][1]{c@runninglinenumber#1}
- defmakeRunningLineNumber{makeLineNumberRunning}
- defsetrunninglinenumbers{%
- deftheLineNumber{thelinenumber}%
- letc@linenumberc@runninglinenumber
- letmakeLineNumbermakeRunningLineNumber
- }
- setrunninglinenumbersresetlinenumber
- defsetpagewiselinenumbers{%
- lettheLineNumberthePagewiseLineNumber
- letc@linenumberc@pagewiselinenumber
- letmakeLineNumbermakePagewiseLineNumber
- }
- defmakePagewiseLineNumber{logtheLineNumbergetLineNumber
- ifoddNumberedPage
- makeLineNumberOdd
- else
- makeLineNumberEven
- fi
- }
- deflogtheLineNumber{protected@write@auxout{}{%
- string@LN{thec@linenumber}{noexpandthec@page}}}
- defLastNumberedPage{first}
- defLN@Pfirst{nextLNrelax}
- letlastLNrelax % compare to last line on this page
- letfirstLNrelax % compare to first line on this page
- letpageLNrelax % get the page number, compute the linenumber
- letnextLNrelax % move to the next page
- AtEndDocument{let@LN@gobbletwo}
- def@LN#1#2{{expandafter@@LN
- csname LN@P#2C@LN@columnexpandafterendcsname
- csname LN@PO#2endcsname
- {#1}{#2}}}
- def@@LN#1#2#3#4{ifx#1relax
- ifx#2relaxgdef#2{#3}fi
- expandafter@@@LNcsname LN@PLastNumberedPageendcsname#1
- xdef#1{lastLN{#3}firstLN{#3}pageLN{#4}{@LN@column}{#2}nextLNrelax}%
- else
- deflastLN##1{noexpandlastLN{#3}}%
- xdef#1{#1}%
- fi
- xdefLastNumberedPage{#4C@LN@column}}
- def@@@LN#1#2{{defnextLN##1{noexpandnextLNnoexpand#2}%
- xdef#1{#1}}}
- defNumberedPageCache{LN@Pfirst}
- deftestLastNumberedPage#1{ifnum#1<c@linenumber
- letfirstLN@gobble
- fi}
- deftestFirstNumberedPage#1{ifnum#1>c@linenumber
- defnextLN##1{testNextNumberedPageLN@Pfirst}%
- else
- letnextLN@gobble
- defpageLN{gotNumberedPage{#1}}%
- fi}
- longdef @gobblethree #1#2#3{}
- deftestNumberedPage{%
- letlastLNtestLastNumberedPage
- letfirstLNtestFirstNumberedPage
- letpageLN@gobblethree
- letnextLNtestNextNumberedPage
- NumberedPageCache
- }
- deftestNextNumberedPage#1{ifx#1relax
- globaldefNumberedPageCache{gotNumberedPage0000}%
- PackageWarningNoLine{lineno}%
- {Linenumber reference failed,
- MessageBreak rerun to get it right}%
- else
- globalletNumberedPageCache#1%
- fi
- testNumberedPage
- }
- letgetLineNumbertestNumberedPage
- newififoddNumberedPage
- newififcolumnwiselinenumbers
- columnwiselinenumbersfalse
- defgotNumberedPage#1#2#3#4{oddNumberedPagefalse
- ifodd if@twocolumn #3else #2firelaxoddNumberedPagetruefi
- advancec@linenumber 1relax
- ifcolumnwiselinenumbers
- subtractlinenumberoffset{#1}%
- else
- subtractlinenumberoffset{#4}%
- fi
- }
- defrunningpagewiselinenumbers{%
- letsubtractlinenumberoffset@gobble
- }
- defrealpagewiselinenumbers{%
- defsubtractlinenumberoffset##1{advancec@linenumber-##1relax}%
- }
- realpagewiselinenumbers
- defthePagewiseLineNumber{protect
- getpagewiselinenumber{thec@linenumber}}%
- defgetpagewiselinenumber#1{{%
- c@linenumber #1relaxtestNumberedPage
- thelinenumber
- }}
- let@LN@orig@makecol@makecol
- def@LN@makecol{%
- @LN@orig@makecol
- setbox@outputbox vbox{%
- boxmaxdepth @maxdepth
- protected@write@auxout{}{%
- string@LN@col{if@firstcolumn1else2fi}%
- }%
- box@outputbox
- }% vbox
- }
- def@LN@col#1{def@LN@column{#1}}
- @LN@col{1}
- newcountc@linenumbermodulo
- defthemodulolinenumber{{@tempcntac@linenumber
- divide@tempcntac@linenumbermodulo
- multiply@tempcntac@linenumbermodulo
- ifnum@tempcnta=c@linenumberthelinenumberfi
- }}
- newcommandmodulolinenumbers[1][0]{%
- letLineNumberthemodulolinenumber
- ifnum#1>1relax
- c@linenumbermodulo#1relax
- elseifnum#1=1relax
- defLineNumber{thelinenumber}%
- fifi
- }
- setcounter{linenumbermodulo}{5}
- modulolinenumbers[1]
- DeclareOption{left}{leftlinenumbers*}
- DeclareOption{right}{rightlinenumbers*}
- DeclareOption{switch}{setpagewiselinenumbers
- switchlinenumbers
- runningpagewiselinenumbers}
- DeclareOption{switch*}{setpagewiselinenumbers
- switchlinenumbers*%
- runningpagewiselinenumbers}
- DeclareOption{columnwise}{setpagewiselinenumbers
- columnwiselinenumberstrue
- realpagewiselinenumbers}
- DeclareOption{pagewise}{setpagewiselinenumbers
- realpagewiselinenumbers}
- DeclareOption{running}{setrunninglinenumbers}
- DeclareOption{modulo}{modulolinenumbersrelax}
- DeclareOption{mathlines}{linenumberdisplaymath}
- letdo@mlinenorelax
- DeclareOption{displaymath}{letdo@mlineno@empty}
- DeclareOption{hyperref}{PackageWarningNoLine{lineno}{%
- Option [hyperref] is obsolete.
- MessageBreak The hyperref package is detected automatically.}}
- AtBeginDocument{%
- @ifpackageloaded{nameref}{%
- def@LN@ExtraLabelItems{{}{}{}}}}
- ProcessOptions
- ifxdo@mlineno@empty
- @ifundefined{mathindent}{
- letLN@displaymath[
- letLN@enddisplaymath]
- renewcommand[{begin{linenomath}LN@displaymath}
- renewcommand]{LN@enddisplaymathend{linenomath}}
- letLN@equationequation
- letLN@endequationendequation
- renewenvironment{equation}
- {linenomathLN@equation}
- {LN@endequationendlinenomath}
- }% @ifundefined{mathindent}
- letLN@eqnarrayeqnarray
- letLN@endeqnarrayendeqnarray
- renewenvironment{eqnarray}
- {linenomathLN@eqnarray}
- {LN@endeqnarrayendlinenomath}
- fi
- definternallinenumbers{setrunninglinenumbers
- let@@parinternallinenumberpar
- ifx@par@@@parlet@parinternallinenumberparfi
- ifxpar@@@parletparinternallinenumberparfi
- ifx@parlinenumberparlet@parinternallinenumberparfi
- ifxparlinenumberparletparinternallinenumberparfi
- @ifnextchar[{resetlinenumber}%]
- {@ifstar{letc@linenumberc@internallinenumber
- c@linenumber@ne}{}}%
- }
- letendinternallinenumbersendlinenumbers
- @namedef{internallinenumbers*}{internallinenumbers*}
- expandafterletcsname endinternallinenumbers*endcsnameendlinenumbers
- newcountc@internallinenumber
- newcountc@internallinenumbers
- definternallinenumberpar{ifvmode@@@parelseifinner@@@parelse@@@par
- begingroup
- c@internallinenumbersprevgraf
- setbox@tempboxahbox{vbox{makeinternalLinenumbers}}%
- dp@tempboxaprevdepth
- ht@tempboxaz@
- nobreakvskip-prevdepth
- nointerlineskipbox@tempboxa
- endgroup
- fifi
- }
- defmakeinternalLinenumbers{ifnumc@internallinenumbers>0relax
- hbox toz@{makeLineNumber}globaladvancec@linenumber@ne
- advancec@internallinenumbersm@ne
- expandaftermakeinternalLinenumbersfi
- }
- newcommandlineref{%
- ifxc@linenumnerc@runninglinenumner
- expandafterlinerefr
- else
- expandafterlinerefp
- fi
- }
- newcommandlinerefp[2][z@]{{%
- let@thelinenumberthelinenumber
- edefthelinenumber{advancec@linenumber#1relaxnoexpand@thelinenumber}%
- ref{#2}%
- }}
- newcommandlinerefr[2][z@]{{%
- def@@linerefadd{advancec@linenumber#1}%
- expandafter@setrefcsname r@#2endcsname
- @linerefadd{#2}%
- }}
- newcommand@linerefadd[2]{c@linenumber=#1@@linerefaddrelax
- thelinenumber}
- newcommandquotelinenumbers
- {@ifstarlinenumbers{@ifnextchar[linenumbers{linenumbers*}}}
- newdimenquotelinenumbersep
- quotelinenumbersep=linenumbersep
- letquotelinenumberfontlinenumberfont
- newcommandnumquotelist
- {leftlinenumbers
- linenumbersepquotelinenumbersep
- letlinenumberfontquotelinenumberfont
- addtolength{linenumbersep}{-@totalleftmargin}%
- quotelinenumbers
- }
- newenvironment{numquote} {quotenumquotelist}{endquote}
- newenvironment{numquotation} {quotationnumquotelist}{endquotation}
- newenvironment{numquote*} {quotenumquotelist*}{endquote}
- newenvironment{numquotation*}{quotationnumquotelist*}{endquotation}
- newenvironment{bframe}
- {par
- @tempdimatextwidth
- advance@tempdima 2bframesep
- setboxbframeboxhbox totextwidth{%
- hskip-bframesep
- vrule@widthbframerule@heightbaselineskip@depthbframesep
- advance@tempdima-2bframerule
- hskip@tempdima
- vrule@widthbframerule@heightbaselineskip@depthbframesep
- hskip-bframesep
- }%
- hbox{hskip-bframesep
- vrule@width@tempdima@heightbframerule@depthz@}%
- nointerlineskip
- copybframebox
- nobreak
- kern-baselineskip
- runninglinenumbers
- defmakeLineNumber{copybframeboxhss}%
- }
- {par
- kern-prevdepth
- kernbframesep
- nointerlineskip
- @tempdimatextwidth
- advance@tempdima 2bframesep
- hbox{hskip-bframesep
- vrule@width@tempdima@heightbframerule@depthz@}%
- }
- newdimenbframerule
- bframerule=fboxrule
- newdimenbframesep
- bframesep=fboxsep
- newboxbframebox
- advancemaxdeadcycles 100
- endinput
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement