summaryrefslogtreecommitdiff
path: root/language/turkish/inputs
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/turkish/inputs
Initial commit
Diffstat (limited to 'language/turkish/inputs')
-rw-r--r--language/turkish/inputs/sample.tex497
-rw-r--r--language/turkish/inputs/tkccode.tex62
l---------language/turkish/inputs/tkhyphen.tex1
-rw-r--r--language/turkish/inputs/tplain.tex1240
4 files changed, 1800 insertions, 0 deletions
diff --git a/language/turkish/inputs/sample.tex b/language/turkish/inputs/sample.tex
new file mode 100644
index 0000000000..14bca89a6f
--- /dev/null
+++ b/language/turkish/inputs/sample.tex
@@ -0,0 +1,497 @@
+% Copyright 1986 by Walter Andrews, University of Washington.
+% This input file is provided as a test of the Turkish fonts
+% and is not for publication.
+
+% \input tkccode % may be needed if unfiltered Turkish input is used
+\font\tk=wtkr10
+\font\ti=wtkti10
+\hsize=4.5in\vsize=7in
+\def\beginprose{\endmode
+ \begingroup\smallskip\def\endmode{\par\endgroup}}
+\def\beginverse{\endmode
+ \begingroup\obeylines\def\endmode{\par\endgroup}}
+\let\endmode=\par
+\def\beyt{\beginverse\getverse}
+{\obeylines\gdef\getverse #1
+ #2
+ {#1\gdef\style{#2}%
+ \bgroup\bigskip\leftskip=4pc\parindent=0pc\raggedright#2
+ \def\endmode{\egroup\endgroup}}}
+\def\nathr{\beginprose\goodbreak\bigskip\noindent Nes=r\par\nobreak}
+\def\dua{\beginprose\goodbreak\noindent}
+
+\sfcode`\:=1000 \sfcode`\!=1000 \sfcode`\==1000 % Frenchspacing after
+% these
+
+
+\tk
+\centerline{DI=BA=CE}
+\vskip.5in
+\noindent
+H!amd..i: na=-mah!du=d ve s=ena=..yi na=-ma\`du=d
+H!az:ret..i: \`I:zzete ki: mu:bdi:\`..i: ma=hi:y\-ya=t ve muh=teri:\`..i:
+\`ak!l u h!aya=tdur celle cela=lehu ve \`amme neva=lehu.
+
+\beyt
+ Beyt
+ I:ri:s:mez \`ak!l..i ka=mi:l h!i:kmeti:ne
+ Yeti:s:mez ki:mse anun= k!udreti:ne
+
+
+\nathr
+Zi:hi= H=a=lik! ki: zu:mre..i: i:nsa=ni es:ref..i: mah=lu=k!a=t
+i:du:p \`akl..i reh-nu:ma=yi ve fi:kr..i: ci:ha=n-a=ra=yi z=i:hn..i:
+seli=m ve t!ab\`..i mu:stak!i=m i:le nut!k!..i fas!i=h! ve kela=m..i
+s!ah!i=h! erza=ni= go:ru:p ve faz:z:alna=hu:m \`ala= kes=i=ri:n mi:mmen
+h=alak!na= tafz:i=la= s:erefi:yle mug:tenem buyurdi.
+
+\beyt
+ Beyt
+ Di:la= \`a=ci:z durur medh!i:nde i:dra=k
+ K!ac:an vas!f i:der ani bi:r avuc: h=a=k
+
+\nathr
+Zi:hi= K!a=di:r ki: fes!a=h!at meyda=ninun= c:a=bu:k-su:va=rlarina
+ni:ya=m..i deha=ndan ti=g:..i: a=bda=r..i zeba=n vi:ru:p mu:lk..i: naz!m
+u Nes=ri: an=lara mu:sah=h=ar i:tdi:.
+
+\beyt
+ Beyt
+ Ne ulu pa=di:s:a=h olur o Su:bh!a=n
+ Ki:m anun= bi:r k!ulidur Mis!ra sult!a=n
+
+\dua
+{\ti h=allada'lla=hu mu:lkehu ve ebbede salt!anatahu i:la=
+ebedi:'d-du:hu=ri: ve'l-ezma=n.}
+
+
+\nathr
+Zi:hi= mu:tekelli:m ki: bela=g:at s:ekeri:sta=ninun=
+t!u=t!i=leri:n a=yi=ne..i: efka=r i:le gu=ya= i:du:p
+s:ekkeri=n-gu:fta=r i:tdi:.
+
+\beyt
+ Beyt
+ Zeba=n bi:r t!u=t!i=..i: s:i=ri=n-suh=endu:r
+ Di:l a=yi=ne k!afes an=a dehendu:r
+
+\nathr
+Zi:hi= ka=s:i:f ki: g:ayb mestu=releri:nu:n= perde-gu:s:a=lig:in
+dest..i: i:lha=m i:le a=sa=n i:du:p mu:s:a=hedesi:n
+di=de..i: du=rbi=ne mu:yesser k!ildi.
+
+\beyt
+ Beyt
+ K!amer h!u:sni:ni: k!ilmis:dur mu:retteb
+ Hi:la=li: an=a i:tmi:s: t!avk!..i g:abg:ab
+
+\nathr
+Zi:hi= \`a=li:m ki: debi=ri:sta=n..i \`i:rfa=nda ta\`li=m u: i:rs:a=d i:le
+t!ifl..i nev-a=mu=z k!ilup h=ava=t!ir..i i:nsa=ni, ki: h=ula=sa..i:
+a=feri=ni:s:du:r, gu:li:sta=n..i faz:l u da=ni:s: k!ildi. Ve heza=r-da=sta=n..i
+zeba=ni bu=sta=n-sera=y..i deha=nda h!amd u: s=ena=siyle gu=ya= i:du:p
+ag:s!a=n..i beya=nda da=sta=n..i teba=reka'lla=hu ah!senu'l-h=a=lik!i=n
+okindi.
+
+\beyt
+ Beyt
+ K!udreti: k!as!ri i:c:i:nde c:arh= bi:r ka=s:a=nedu:r
+ \`Ak!l..i ka=mi:l \`i:lmi: i:c:re t!ifl..i mekteb-h=a=nedu:r
+
+\nathr
+Zi:hi= rah!i=m ki: i:sti:h!ka=m..i esa=s..i mu:lk u: mi:llet ve esba=b..i farz:
+u su:nnet i:c:u:n enbi:ya= ve ru:su:le s:em\`..i: nu:bu:vvet ve c:era=g:..i
+ri:sa=let mu:yesser i:du:p enva=r..i i:rs:a=dlariyle gu:m-ra=ha=n..i
+ba=di:ye..i: d!ala=let ve peyreva=n..i ka=rba=n..i z!ulema=t..i ceha=lete deli=l
+oldilar. H=us!u=s!a= h={\ti a=\/}ce..i: \`a=lem ve muk!teda=..yi evla=d..i
+a=dem, mu:fti=..i: h=it!t!a..i: meleku=t, mu:nhi=..i: \`a=lem..i:
+ceberu=t, \`andeli=b..i: gu:li:sta=n..i ve ma= yant!ik!u \`ani:'l-heva= ve
+t!u=t!i=..i: s:ekeri:sta=n..i i:n huve i:lla= vah!yun yu=h!a= Muh!ammed
+Mus!t!afa= s!alava=ta'lla=hu \`aleyhi: ve \`ala= a=li:hi: ma=
+da=metu:'l-\`arz:u ve's-sema=
+
+\beyt
+ Mes=nevi=
+ H!abi=b..i: H!ak! mu\`i=n..i: h=alk!..i \`a=lem
+ Gu:zi=n..i: enbi:ya= vu: fah=r..i: A=dem
+ Mu\`anber s!ac:lari anun= s:eb..i: K!adr
+ Mu:nevver ruh=lari anun= meh..i: bedr
+ Degu:ldu:r kehkes:a=n germ olup efla=k
+ Anun= s:evk!inden i:tmi:s: yak!asin c:a=k
+ Ri:ya=z:etde an=a olmag:a hem-reng
+ K!omis: H!a=tem k!us:ag:i i:c:i:ne seng
+ Sara=yi menzi:l..i: Ru=h!u:'l-Emi=ndu:r
+ Vu:cu=di rah!meten li:'l-\`a=lemi=ndu:r
+ I:ki: \`a=lemde oldur k!urretu:'l-\`ayn
+ T!ufeyli: k!as:larinun= k!a=be k!avseyn
+ Seri=r..i: \`ars:a na\`leyni: durur ta=c
+ Emi=n..i: vah!y u s!a=h!i:b-sirr..i mi:\`ra=c
+ Ci:ha=n ki:m tes:neli:kden ola bi=-ta=b
+ Ak!ida lu=le..i: si=mi=nleri: a=b
+ Ne mu\`ci:zdu:r o si=mi=n h=a=meye bak!
+ Ki: ma=hun= na=h=uninda eyledi: s:ak!
+ Go:n=u:l yok! mu\`ci:za=tina ni:ha=yet
+ Anun= na\`ti:nde olmaz so:ze g:a=yet
+ Odur c:u:n H!ak! yaninda z=a=t..i ekrem
+ Gerek so:z muh=tas!ar va'lla=hi: a\`lem
+
+\nathr
+Zi:hi= mu:debbi:r te\'ki=d..i: umu=r..i mes!a=li:h!..i: \`a=lem ve te\'yi=d..i:
+mu:hi:mma=t..i beni= \`adem i:c:u:n mu:lu=k..i: di=nda=r ve sela=t!i=n..i:
+z=evi='l..i:kti:da=ri ki: ta=c..i i:bti:ha=c..i es-sult!a=n z!illu'lla=h i:le
+mu\`alla= ve ser-efra=z ve h=il\`at..i: ri:f\`at..i: ve u:lu:'l-emru:
+mi:nku:m i:le muh!alla= ve mu:mta=z i:du:p sema=\'..i: devletleri:nde
+a=fi:ta=b..i \`adl seyya=re ve felek..i: h!as:metleri:nde k!amer-va=r devva=r
+olup \`a=lem sa=ye..i: hi:ma=yetleri:nde a=su=de-h!a=l ve h=alk! ketf..i:
+\`a=t!ifetleri:nde mu:reffehu:'l-ah!va=l olmis:lardur. Si:yyema= h!az:ret..i:
+salt!anat-pena=hi= ve h=ila=fet-destga=hi= ki:, s!ah!i=fe..i: h=a=t!ir..i
+s:eri=fleri: mah!all..i: nu:k!u=s:..i h!ak!a=yik! ve levh!..i: z:ami=r..i:
+mu:ni=rleri: mehbit!..i enva=r..i dek!a=yik! ve derya=..yi t!ab\`..i
+gevher-efs:a=nlari mah=zen..i: esra=r..i I:la=hi= ve z=i:hn..i: vek!k!a=d..i
+du:r-efs:a=nlari mevri:d..i: let!a=yi:f..i: na=-mu:tena=hi=du:r, da=yi:ma=
+\`ahd..i: s:eri=fi:nde \`uk!u=d..i s:er\` muntaz!am ve her dem \`as!r..i
+mu:ni=fi:nde cu:nu=d..i fisk! mu:nhezi:m.
+
+\beyt
+ Beyt
+ G:ibt!a eyler t!a=\`ati:nu:n= yi:ri:ne Da=ru:'ssela=m
+ Zu:hdi: s!ah!ra=si olupdur menzi:l..i: Ru=h!u:'lemi=n
+
+\nathr
+Bi:r gerdu=n..i:k!ti:da=rdur ki: a=fi:ta=b..i \`a=lem-ta=b h!u:km..i:
+sat!veti:ne t!ug:ra=..yi s:ehri:ya=ri= ve bi:r refi=\`-mi:k!da=rdur ki:
+felek..i: pu:r-encu:m defter..i: \`az!ameti:ne ci:ld..i: s!adefka=ri=du:r.
+
+\beyt
+ Beyt
+ Hey ne \`a=li= s:a=h olur ol h=usrev..i: \`a=li=-cena=b
+ K'i:s:i:gi:nde altun u:sku:flu: k!ulidur a=fi:ta=b
+
+\nathr
+Es-sult!a=n i:bnu:'s-sulta=n i:bnu:'s-sult!a=n i:bnu:'s-sult!a=n Seli=m
+H=a=n i:bnu:'s-sult!a=n Ba=yezi=d bi:n sult!a=n Meh!emmed bi:n Mura=d H=a=n
+h=allada'lla=hu mu:lkehu ve ebbede salt!anatahu i:la= ebedi:'d-du:hu=ri:
+ve'l-ezma=nun= eyya=m..i hu:ma=yu=n ve ru=zga=r..i meymu=nlarinda ehl..i:
+\`i:lme zi:ya=de \`i:zzet ve s!a=h!i:b..i: faz:la tama=m rag:bet olup s:i:\`r
+u: i:ns:a= ve naz!m..i di:l-gu:s:a=ya i:lti:fa=t..i s:a=ha=ne ve
+i:\`ti:ba=ra=t..i pa=di:s:a=ha=ne olinurdi. Ol ci:hetden erba=b..i
+k!ara=yih!..i seli=m ve as!h!a=b..i t!aba=yi\`..i mu:stak!i=m g:avva=s!lik!lar
+i:du:p fi:ki:r derya=sindan c:ik!arduk!lari du:rr..i: s:a=hva=rdan so:z
+\`aru=sina gu=s:va=r i:derlerdi: ve suh=envera=n..i ci:ha=n ve
+nu:kte-perda=za=n..i zama=n s!arra=flik!lar i:du:p me\`a=di:n..i: mak!a=lden
+ceva=hi:r..i: h=aya=l getu:ru:p ebka=r..i efka=run= sa=\`i:dleri:ne mu:cevher
+si:va=rlar du:zerlerddi:. Her ga=h ki: muh=addera=t..i t!abi=\`at ve
+\`ara=yi:s..i: efka=r sera=-perde..i: bela=g:at ve tu:tu:k..i: fes!a=h!atden
+ki:lk..i: h=aya=l..i: dak!i=k! ve h!ulel..i: ma\`a=ni=..i: rak!i=k! i:le
+muh!alla= ve mu:zeyyen k!ilinup manz!ara..i: t!a=k!..i tema=s:a=ga=hda
+ci:lveler i:du:p h!u:sn..i: behcet..i: di:l-gu:s:a= ve h!u:sn..i: cema=l..i:
+ci:ha=n-a=ra= i:le \`us:s:a=k!i h!ayra=n ve u:fta=deleri: ser-gerda=n
+i:derlerdi:.
+
+\beyt
+ Beyt
+ Yu:ri: \`a=s:ik! naz!ar eyle bu k!as!r..i gu:ls:en-a=ra=ya
+ Gu:zeller seyri:n i:stersen= gel i:mdi: sen tema=s:a=ya
+
+\nathr
+Ve ebka=r..i efka=r mu:s:ki=n k!aba=lar geyu:p Meryem-a=sa= ci:lvega=h..i
+\`i:zz u: na=z ve gu:lges:t..i: i:\`za=zda h=ira=ma=n ve ga=h s:a=hi:d..i:
+es:\`a=r mu:zellef mah!bu=blar gi:bi: ma\`na=..yi rengi=ni: zi=net..i:
+ruh=sa=r i:du:p seyra=nga=h..i h=ava=t!irda s!adr-ni:s:i=n olmis:lardi.
+
+\beyt
+ Naz!m
+ Ne na=zu:kdu:r bu zi=ba= di:lru:ba=lar
+ T!onanmis:lar geyu:p rengi=n k!aba=lar
+ Bularun= h!u:sni: c:avlanmis: irak!dan
+ Ki: \`a=lem h=alk!i \`a=s:ik!dur k!ulak!dan
+
+\nathr
+I:dra=k meh!a=fi:li:nu:n= s!adr-ni:s:i=nleri:
+vi: i:z=\`a=n meca=mi:\`i:nu:n= pa=k u: gu:zi=nleri: bunlarun= h!u:sn u:
+cema=li:ne h!ayra=n ve na=z u ki:ri:s:meleri:ne va=li:h u: ser-gerda=n
+olmis:lardi.
+
+\beyt
+ Beyt
+ H=a=llerdu:r so:z \`aru=sinun= yu:zi:nde zeyn i:c:u:n
+ Nok!t!alar s!anman= ki: du:s:mi:s:du:r h=at!..i es:\`a=rda
+
+\nathr
+S:evk! meyh=a=nesi:nu:n= ba=de-nu=s:lari ve z=evk! h=umh=a=nesi:nu:n=
+mey-fu:ru=s:lari sebu=..yi es:\`a=r ve k!ira=be..i: gu:fta=rdan mu:da=m
+s:ara=b..i h=aya=l i:le def\`..i: mela=l i:derlerdi:.
+
+\beyt
+ Beyt
+ Ne sa=g:ardur k'anun= yok! i:nki:sa=ri
+ Ne meydu:r k'ol anun= olmaz h=uma=ri
+
+\nathr
+Kela=m ba=g:inun= bu:lbu:l..i: gu=ya=lari ve naz!m gu:li:sta=ninun= murg:..i:
+h=o=s:-neva=lari gu:lbu:n..i: gu:li:sta=n..i \`i:ba=ra=t ve g:onca..i:
+baha=ri:sta=n..i i:sti:\`a=ra=tdan su\-h=en-sa=z ve nag:me-perda=z olmis:lardi.
+
+\beyt
+ Beyt
+ Ne gu:ls:endu:r k'anun= yok!dur h=aza=ni
+ Ne gu:ldu:r ol k'anun= c:ok!dur zama=ni
+
+\nathr
+S!ah!a=yif..i evra=k!..i h=ava=t!ir..i da=na=ya=n ve defa=ti:r..i: ecza=..yi
+z!ama=yi:r..i: g:azel-sera=ya=n naz!m..i di:l-gu:s:a= i:le mektu=b u
+muh!as:s:a= olmis:dur.
+
+\beyt
+ Beyt
+ Ok!inan mecli:sler i:c:re s:i:\`r..i: gevherba=rdur
+ Her go:n=u:l gu=ya= ki: bi:r mecmu=\`a..i: es:\`a=rdr
+
+\nathr
+Ol sebebden nak!k!a=s:..i nak!s:bend..i: es:\`a=r ve ressa=m..i beyt..i:
+a=bda=r, ki: nak!s:inda Ma=ni= h!ayra=n ve resmi:nde Erjeng
+ser-gerda=ndur, ya\`ni= gi:ri:h-gu:s:a=..yi fi:kr..i: \`ami=k! ve
+s:emme-gu:da=z=..i z:ami=r..i: dak!i=k! nak!s: u ni:ga=r i:le her mat!la\`i
+g:ayret..i: h=uld..i: beri=n ve her beyti: res:k..i: ni:ga=rh=a=ne..i: C:i=n
+k!ilmis:dur.
+
+\beyt
+ Beyt
+ Beytu:mu:n= her ki:m naz!ar i:tse i:c:i:ne t!as:s:ina
+ Di:r heza=ra=n a=feri=n tah!si=n anun= nak!k!a=s:ina
+
+\nathr
+T!u=t!i=..i: h=a=me..i: du:-zeba=n ve bu:lbu:l..i: gu:li:sta=n..i beya=n
+g:ulg:ule..i: \`is:k!-engi=z ve velvele..i: s:evk!-a=mi=zi: bu k!afes..i:
+a=benu=s..i efla=k ve bu gu:ls:en..i: zu:mu:rru:di=n..i: h=a=k u:zre
+s!alup, a=va=ze..i: s:i:\`r..i: bu:lend-pa=ye ve s!ada=..yi naz!m..i
+refi=\`-pi=ra=yeden mesa=mi:\`..i: gu=s:e-ni:s:i=na=n..i ku=y..i mah!abbet ve
+gu=s:..i hu=s:..i mu:ca=vi:ra=n..i s:ehr..i: meveddet memlu= olup nag:ama=t..i
+\`is:k! ve terennu:ma=t..i a=s:ik!i= bi:le t!a=s..i felek pu:r-t!ani=n i:di:.
+
+\beyt
+ Beyt
+ Felek bi:r c:engi=du:r so:zdu:r s!ada=si
+ Ne rag:bet c:enge olmasa neva=si
+
+\nathr
+Ci:ha=n s!arra=flari naz!m cevheri:ne t!a=li:b ve devra=n h={\ti a=\/}celeri:
+meta=\`..i s:i:\`ru:me ra=g:ib olup da=yi:m terti=b..i: di=va=n ve her dem
+tah!ri=r..i: es:\`ar..i peri=s:a=n olmag:a h!u:sn..i: i:k!da=m ve kema=l..i:
+i:hti:ma=m go:steru:rlerdi:. Eks=eri:yya= mah!bu=blar na=me..i: es:\`a=rumi
+g:onca..i: zanbak! gi:bi: a=ra=yi:s:..i: desta=r ve \`a=s:ik!lar t!o=ma=r..i
+gu:fta=ruma h!ama=yi:l gi:bi: i:\`ti:ba=r i:derlerdi:. Amma= h=a=t!ir..i
+fa=t!irda ol ni:yyet ve z:ami=r..i: k!a=s!irda ol \`azi=met yog: i:di: ki:m
+du:s:en es:\`a=r ve va=k!i:\` olan gu:fta=r seva=ddan beya=z:a
+go:tu:ru:leydi:, eks=er du:s:en k!as!a=yi:d memdu=h!a va=s!il olmag: i:c:u:n
+tah!ri=r ve s!a=dir olan es:\`a=r ca=na=nelere i:rsa=l olmag: i:c:u:n
+tast!i=r olinurdi. I:tti:fa=k! s:ol eyya=mda ki: di:l..i: a=s:u:fte-h!a=l u:
+peri=s:a=n-ah!va=l mu:ca=vi:r..i: Ka\`be..i: ku=y..i ya=r ve za=yi:r..i:
+h=aremh=a=ne..i: di:lda=r olmak!dan fera=g:at eyleyu:p \`azm..i: beytu'lla=h
+ve sefer..i: Ka\`be..i: s:eri=fe s:errefeha='lla=hu ni:yyet ve \`azi=met
+go:stermi:s:di:.
+
+\beyt
+ Mes=nevi=
+ Nedu:r ol s:a=n..i a\`z!am z=a=t..i ekrem
+ Ki: olupdur zi:ya=retga=h..i \`a=lem
+ Ya za=hi:ddu:r ki: olmis:dur si:yeh-pu=s:
+ Go:ren ani i:der derya= gi:bi: cu=s:
+ \`Aru=s..i dehr anun=la buldi zi=ver
+ \`I:z=a=rinda budur h=a=l..i: mu\`anber
+ Ci:ha=nda \`i:zzeti: c:ok! k!adri: \`a=li=
+ Cema=li:n go:rmege \`a=lem s!afa=li
+ Hi:la=l olmis:dur an=a h!alk!a..i: der
+ K!apusinda gu:nes: bi:r s:emse..i: zer
+
+\nathr
+As!h!a=b..i pu:r-s!afa= ve ah!ba=b..i bi=-ri:ya= bu bende..i: h!ak!i=r ve bu
+\`abd..i: fak!i=ri: muh!i:b-neva=zlik! eyleyu:p mu:sa=feret i:c:u:n gu=s:e..i:
+gu:lza=r ve bi:r di:l-gu:s:a= merg:za=ra i:ledu:p ezha=r..i nevbaha=r..i
+pu:r-su:ru=rdan nu=ru:n \`ala= nu=r sirri z!uhu=r bulmis:di ve
+su:nbu:lza=r Ka\`be..i: gu:lza=ra perdeda=r olup mena=r..i s:a=h=dan
+bela=bi:l..i: mu:\'ez=z=i:na=n..i h=u=b-a=va=z gi:bi: ser-a=g:a=z i:du:p
+di:l..i: muk!i=ma=n ve h=a=t!ir..i mu\`teki:fa=n s!ada=..yi di:l-gu:s:a= ve
+neva=..yi ca=n-feza=sindan mesru=r u s:a=da=n olmis:lardi. La=leza=r Mu:nye
+ba=za=ri gi:bi: \`ak!i=k!..i rengi=n ve merca=n..i s=emi=nden zi=b u: zi=net
+bulmis:di. Mis!ra gu:lza=r ve Ni=le cu=yba=r ve S:a=ma benefs:eza=r
+ben=zeyu:p k!ulu=b..i as!h!a=b ve h=ava=t!ir..i ah!ba=b bu tema=s:a=dan
+mesru=r ve bu seyra=ndan pu:r-h!uz:u=r olup ebya=t u es:\`a=r ok!inmag:a
+i:s:\`a=r olindi. I:tti:fa=k! s!oh!betde s:a=ri:b..i: s:ara=b..i cennet ve
+\`ayya=s:..i bezmga=h..i mag:fi:ret mag:fu=r u merh!u=m..i ki:ra=mi=
+H!az:ret..i: Mevla=na= Ca=mi= nevvera'lla=he merk!adehunun= di=va=n..i
+tama=mi bulinup ya=ra=n tefe\'\'u:l i:tdu:kden s!on=ra bendeye bu mat!la\`..i
+s:i=ri=n-mak!a=l h!asb..i: h!a=l va=k!i\` oldi:
+
+\beyt
+ Beyt
+ Key bu:ved ya= Rab ki: ru=-der-Yes=ri:b u: Bat!h!a= ku:nem
+ Geh be-Mekke menzi:l u: geh der-Medi=ne ca= ku:nem
+
+\nathr
+Ya=ra=n bu sirra h!ayra=n k!alup ``Bi:-\`avni:'lla=hi: Meli:ki:'l-Menna=n bu
+sefer..i: sa\`a=det-enca=m ve bu mu:sa=feret..i: \`i:zzet-ferca=m, ki:
+fi:'l-h!ak!i=k!a \`i:na=yet..i: I:la=hi= ve h!i:ma=yet..i:
+na=-mu:tena=hi=du:r, si:zlere ve cemi=\`..i: k!arindas:lara mu:yesser ve
+muk!adder olmis: ola ki: mut!a=bik!..i ni:yyet ve muva=fik!..i \`azi=mi:t
+va=k!i:\` oldi'' di:yu: kera=mete h!aml i:tdi:ler. Alla=hu:mme yessi:r
+reca=..yi va=ci:b du\`a=..yi vi:rd..i: zeba=n ve z=i:kr..i: li:sa=n
+kilindi. Ya=ra=n dah=i: muh=li:sleri:n bu s:evk!den pu:r-su:ru=r go:ru:p
+yi:ne i:k!da=m u i:bra=m go:sterdi:ler ki: peri=s:a=n so:zleru:m tah!ri=r ve
+na=-merbu=t! keli:ma=tum tast!i=r olina.
+
+\beyt
+ Mes=nevi=
+ S:u den=lu: eyledi: i:bra=mi ya=ra=n
+ Ki: oldum ben bu i:s:de mest u: h!ayra=n
+ Go:n=u:l gerc:i: degu:ldu:r bun=a k!a=di:r
+ Di:lemez buni ki:m i:nci:ne h=a=t!ir
+ Ki:s:i: k!urtulmak! olur bendeli:kden
+ Veli= k!urtulimaz s:ermendeli:kden
+
+\nathr
+Bu h!ak!i=r dah=i: anlarun= ceva=binda ``Bu emre i:mti:s=a=l olinurdi li=k
+si:z s!a=h!i:b-kema=lleru:n naz!arinda hema=n Mis!ra s:eker ve \`Adene
+gevher ve Hi:nde \`anber ve H=utene mu:s:k..i: ezfer ve Yemene \`ak!i=k!..i
+k!iymetda=r ve Bedah=s:a=na la\`l..i: a=bda=r i:letmek gi:bi:du:r, bunun=
+gi:bi: ti:ca=retden ki:s:i:ye ne fa=yi:de'' di:ni:ldu:kde anlar dah=i:
+zi:ya=de lut!f u k!abu=l go:steru:p ``Cevher k!iymetden ve k!uma=s: baha=dan
+k!almaz, bu \`o:z=r degu:ldu:r belki: ta\`allu:ldu:r,
+i:ns:a='lla=hu'l-e\`azzu: mu:la=k!a=t mu:yesser olinca ya=ra=na eglencedu:r''
+di:yu: yi:ne i:bra=m..i bi=-ni:ha=ye ve i:k!da=m..i bi=-g:a=ye go:sterdi:ler.
+Eyle olsa el..i:bra=m muh!as!s!ilu'l-mera=m muk!tez:a=sinca anlarun=
+h=a=t!ir..i \`a=t!irlari, ki: mi:\`ya=r..i nak!d..i: kela=mdur, muh=a=lefete
+meca=l olmayup \`is:k! zenci=ri:nu:n= esi=ri: ve derd u: mi:h!net
+esra=rinun= h=abi=ri: Reva=ni=..i: bi=-k!ara=r u a=s:u:fte vu: za=r
+ant!ak!a'lla=hu bi:'l-h!ak!k!i ve's!-s!ava=bi: ve h!allas!ahu
+\`ani:'l-su\'a=li: vel-ceva=b
+
+\beyt
+ Mes=nevi=
+ Gel ey s:u=ri=de-di:l ma\`z=u=r oldun=
+ Bu i:s:de c:u:nki: sen me\'mu=r oldun=
+ Bas!i=ret ehli: an=ladi c:u: h!a=lu:n=
+ Dah=i: k!almadi hi=c: \`o:z=re meca=lu:n=
+ Ele al h=a=meyi: go:ster ma\`a=ni=
+ Mu:zeyyen k!il yi:ne si:lk..i: beya=ni
+
+\nathr
+\`A=s:ik!lik! zama=ninda \`is:k! va=sit!asi ve s:eyda=lik! \`a=lemi:nde
+s:evk! vesi=lesi:, vus!lat eyya=minda mah!abbet muk!tez:a=si, fi:ra=k!
+gu:nleri:nde h!urk!at i:k!ti:z:a=si, baha=r mevsi:mi:nde s!oh!bet
+germi:yyeti:, mah!bu=blar mecli:si:nde s:ara=b keyfi:yyeti:, ca=na=neler
+i:bra=mi ve \`a=s:ik!lar i:k!da=mi ve fuz:ala= mus!a=h!abeti: ve \`uk!ala=
+i:lti:fa=ti, ehl..i: di:ller rag:beti: ve t!a=li:bler mi:nneti: i:le di:du:gu:
+ebya=t ve es:\`a=r, ki: her bi:ri:nu:n= lat!i=f ma\`a=ni=si: ca=m..i naz!ma
+s:ara=b..i rengi=n ve s:i=ri=n h=aya=la=ti bezm..i: s!afa=da nuk!l..i:
+s:ekkeri=n olup mu\`a=s:i:ra=n..i mecli:s..i: z=evk! bu meyh=a=nenu:n=
+ba=deci:si: ve h!ari=fa=n..i bezm..i: s:evk! bu ka=s:a=nenu:n= sebu=-kes:i:
+olmis:lardi. K!alem..i: i:\`ti:z=a=r bu h=a=me..i: i:nki:sa=r i:le bu evra=k!a
+tah!ri=re i:k!da=m ve bu ecza=ya tast!i=re i:hti:ma=m go:sterdi:.
+
+\beyt
+ Mes=nevi=
+ Gel ey cu=yende..i: esra=r..i ma\`ni=
+ Gel ey gu=yende..i: gu:fta=r..i ma\`ni=
+ Gel ey gevher-fu:ru=s:..i naz!m u i:ns:a=
+ Gel ey cevher-fu:ru=s:..i s:i:\`r..i: g:arra=
+ Gel ey nak!k!a=s:..i tas!vi=r..i: h=aya=la=t
+ Gel ey ressa=m..i tah!ri=r..i: mak!a=la=t
+ H=at! u ma\`ni=den i:stersen= i:s:a=ret
+ Bu ebya=tum yeter san=a bes:a=ret
+ H=aya=l..i: naz!m..i g:arra= h=at!t!..i di:lkes:
+ Go:ri:nu:r go:zlere beyt..i: mu:nak!k!as:
+ H=at!i beytu:n= ten..i: i:nsa=na ben=zer
+ H=aya=l anun= i:c:i:nde ca=na ben=zer
+ Ma\`a=ni=du:r h=at!..i es:\`a=r i:c:i:nde
+ Ac:ilmis: ta=ze gu:ller h=a=r i:c:i:nde
+ Seva=d..i naz!mdur s!an s!ah!n..i cennet
+ Tera=zu= vezndu:r ma\`na= k!iya=met
+ H=aya=l..i: beyt k!as!r..i ka=mra=ni=
+ I:ki: mis!ra\`dur i:ki: nerdu:ba=ni
+ H=at! u ma\`ni= ki: i:tmi:s: a=s:i:na=lik!
+ Gi:ce s:em\` i:le bulmis: ru=s:ena=lik!
+ Anun=c:u:n di:r go:ru:p ya=r..i suh=enda=n
+ Bulut i:c:i:ndedu:r s!an ma=h..i ta=ba=n
+ Hu:ma= olmak! gerek ma\`ni=nu:n= adi
+ Ki: beyt olmis: durur i:ki: k!ana=di
+ Yah=o=d naz!mum \`aru=si h=at! yeri:ne
+ T!ak!inmis: zi=net i:c:u:n \`anberi=ne
+ Ne zi=ba=dur go:r ol s!a=h!i:b-cema=li:
+ Ki: h=at!t! u nok!t!a olmis: zu:lf u: h=a=li:
+ Bu ni:ce ma\`ni= ni:ce h=at!t!a ben=zer
+ Hema=n bi:r k!as:i go:zi: k!ara di:lber
+ Ya \`a=s:ik!dur yi:ne bi:r meh-li:k!a=ya
+ Ki: go:n=legi:n boyamis:dur k!araya
+ Gu:zel ma\`ni= i:le h=at!t!..i di:l-a=vi=z
+ T!urur Gu:lgu=n i:le bi:r yerde S:ebdi=z
+ Zi:hi= h=at!t! u zi:hi= ma\`na=..yi ru=s:en
+ S!anasin pehleva=ndur geydi: cevs:en
+ H=aya=lu:n= gu=s:e..i: h=at!dur t!urag:i
+ Olurmis: mi=s:eler arslan yatag:i
+ Bu ni:ce s!ayd olur buna ne tedbi=r
+ Bu arslana gerekdu:r i:ki: zenci=r
+
+\nathr
+I:lahi= bu gu:ldeste..i: t!ara=vet-bah=s:a=..yi c:emen..i: mah!abbet ve bu
+nah=l..i: naz:a=ret-efza=..yi gu:ls:en..i: h!ayret mah!bu=blar bezmi:nu:n=
+a=ra=yi:s:i: ve \`a=s:ik!lar mec\-li:\-si:nu:n= a=sa=yi:s:i: olup \`ana=di:l..i:
+s:evk! ve bela=bi:l..i: z=evk! tema=s:a=sindan h!ayra=n ve bu=y..i
+di:l-a=vi=zi:nden ser-gerda=n olup a=sa=yi:s:..i: ca=n..i h=asta ve
+gu:s:a=yi:s:..i: h=a=t!ir..i beste ola.
+
+\beyt
+ Beyt
+ Bu ba=g:ba=n..i t!ab\`uma s!ad a=feri=n ki:m
+ Vi:rdi: ci:ha=na naz!mum i:le ra=yega=n gu:l
+
+\nathr
+Ve mercu=dur ki: bu la=leza=r..i h=aya=l ve sebzeza=r..i mak!a=l seyra=nga=h..i
+h=ava=\-t!ir-s!a=h!i:b-kema=l ve tema=s:a=ga=h..i z:ama=yi:r..i: ehl..i: h!a=l
+olup t!ab\`..i a=bda=r ve z=i:hn..i: cu=yba=rlarindan nad!ret..i: ta=ze ve
+h=ad!ret..i: bi=-enda=ze h!a=s!il eyleye.
+
+\beyt
+ Beyt
+ Gu:lza=r..i t!ab\`umun= deru:ben ta=ze gu:lleri:n
+ Bi:r nah=l bag:ladum k'ola \`a=lemde ya=di:ga=r
+
+\nathr
+Ve mu:tevak!k!a\`dur ki: bu res:ah!a=t..i: ki:lk..i: \`anber-ba=r ve
+nefah!a=t..i: h=a=me..i: si:h!r-a=s:a=r nesi=m..i: gu:lza=r ve hava=..yi
+ezha=r..i nevbaha=r gi:bi: ca=n-feza= vu: ru=h!-perver ve di:l-gu:s:a= vu:
+s!afa=-gu:ster olup h=alk!..i \`a=lem heva=da=ri olmag: i:le k!adr u:
+i:\`ti:ba=r bula.
+
+\beyt
+ Beyt
+ Yazmadan es:\`a=rumi olmis: durur h!ayra=n k!alem
+ Bu peri=s:a=n so:zleru:mden oldi ser-gerda=n k!alem
+
+\nathr
+Ve mes\'u=ldu:r ki: erba=b..i naz!ar ve as!h!a=b..i bas!ar bu evra=k!..i
+muh=at!t!at!a ve bu ecza=..yi muh=abbat!a di=de..i: k!abu=l i:le na=z!ir olup
+h=at!a=sin is!la=h buyurmag:la \`uyu=bin sa=ti:r olalar
+
+\beyt
+ Mes=nevi=
+ Go:n=u:l c:ekme so:zu:n=den i:nfi:\`a=li:
+ Bi:lu:r ehl..i: di:l olanlar bu h!a=li:
+ H=at!a=suz olmaz i:mi:s: hi=c: gu:fta=r
+ Olurmis: bi:r gu:lu:n= yaninda bi:n h=a=r
+
+\beyt
+ K!it!\`a
+ Reva=ni= bu ni:ce di=va=neli:kdu:r
+ Ki: di=va=n yazmag:a i:k!da=m i:dersi:n
+ Elu:n=e ca=m alup serh=o=s:lanursin
+ Hema=n sen kendu:n=i: bedna=m i:dersi:n
+
+\beyt
+ Mes=nevi=
+ I:la=hi= senden i:rmezse \`i:na=yet
+ Bu i:s:de eylemez \`ak!lum ki:fa=yet
+ Beni: sen s:ermsa=r i:tme I:la=hi=
+ Ki: s!ig:indum san=a ben ya= I:la=hi=
+\endmode
+\bye
diff --git a/language/turkish/inputs/tkccode.tex b/language/turkish/inputs/tkccode.tex
new file mode 100644
index 0000000000..39bc30c6ad
--- /dev/null
+++ b/language/turkish/inputs/tkccode.tex
@@ -0,0 +1,62 @@
+% uccodes and lccodes for Turkish font with full diacriticals.
+\chardef\`='43 \chardef\'='100 % codes for ayn and hamza (accents not needed)
+
+% codes required for postpositive accent convention
+
+\lccode`!=`! \uccode`!=`! % These four characters are
+\lccode`==`= \uccode`==`= % swallowed up by the ligtable
+\lccode`:=`: \uccode`:=`: % but must have \lccodes to
+\lccode`.=`. \uccode`.=`. % permit hyphenation of Turkish
+
+\lccode'43='43 \uccode'43='43 % ayn
+\lccode'100='100 \uccode'100='100 % hamza
+\lccode'175='175 \uccode'175='175 % dot for Persian izafet
+
+% uccodes and lccodes for future use with direct input
+
+\uccode'044='044 \uccode'074='044
+\uccode'013='013 \uccode'033='013
+\uccode'000='000 \uccode'020='000
+\uccode'014='014 \uccode'034='014
+\uccode'015='015 \uccode'035='015
+\uccode'001='001 \uccode'021='001
+\uccode'004='004 \uccode'024='004
+\uccode'005='005 \uccode'025='005
+\uccode'046='046 \uccode'076='046
+\uccode'007='007 \uccode'027='007
+\uccode'010='010 \uccode'030='010
+\uccode'016='016 \uccode'036='016
+\uccode'002='002 \uccode'022='002
+\uccode'003='003 \uccode'023='003
+\uccode'045='045 \uccode'075='045
+\uccode'017='017 \uccode'037='017
+\uccode'052='052 \uccode'053='052
+\uccode'0136='0136 \uccode'0176='0136
+\uccode'006='006 \uccode'026='006
+\uccode'011='011 \uccode'031='011
+\uccode'0137='0137 \uccode'0177='0137
+\uccode'012='012 \uccode'032='012
+
+
+\lccode'074='074 \lccode'044='074
+\lccode'033='033 \lccode'013='033
+\lccode'020='020 \lccode'000='020
+\lccode'034='034 \lccode'014='034
+\lccode'035='035 \lccode'015='035
+\lccode'021='021 \lccode'001='021
+\lccode'024='024 \lccode'004='024
+\lccode'025='025 \lccode'005='025
+\lccode'076='076 \lccode'046='076
+\lccode'027='027 \lccode'007='027
+\lccode'030='030 \lccode'010='030
+\lccode'036='036 \lccode'016='036
+\lccode'022='022 \lccode'002='022
+\lccode'023='023 \lccode'003='023
+\lccode'037='037 \lccode'017='037
+\lccode'075='075 \lccode'045='075
+\lccode'053='053 \lccode'052='053
+\lccode'0176='0176 \lccode'0136='0176
+\lccode'026='026 \lccode'006='026
+\lccode'031='031 \lccode'011='031
+\lccode'0177='0177 \lccode'0137='0177
+\lccode'032='032 \lccode'012='032
diff --git a/language/turkish/inputs/tkhyphen.tex b/language/turkish/inputs/tkhyphen.tex
new file mode 120000
index 0000000000..05b78e17ec
--- /dev/null
+++ b/language/turkish/inputs/tkhyphen.tex
@@ -0,0 +1 @@
+../../hyphenation/tkhyph.tex \ No newline at end of file
diff --git a/language/turkish/inputs/tplain.tex b/language/turkish/inputs/tplain.tex
new file mode 100644
index 0000000000..71966757bb
--- /dev/null
+++ b/language/turkish/inputs/tplain.tex
@@ -0,0 +1,1240 @@
+% This is a Turkish adaptation of the plain TeX format that's
+% described in The TeXbook, modified for Turkish fonts and hyphenation
+
+% Adapted by P. A. MacKay. 8 May, 1988
+
+% Would like to avoid using a modified plain, but need to replace
+% some of the preloaded fonts for a truly Turkish TeX
+
+\catcode`\{=1 % left brace is begin-group character
+\catcode`\}=2 % right brace is end-group character
+\catcode`\$=3 % dollar sign is math shift
+\catcode`\&=4 % ampersand is alignment tab
+\catcode`\#=6 % hash mark is macro parameter character
+\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts
+\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts
+\catcode`\^^I=10 % ascii tab is a blank space
+\chardef\active=13 \catcode`\~=\active % tilde is active
+\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par"
+
+\message{Preloading the plain format: codes,}
+
+% We had to define the \catcodes right away, before the message line,
+% since \message uses the { and } characters.
+% When INITEX (the TeX initializer) starts up,
+% it has defined the following \catcode values:
+% \catcode`\^^@=9 % ascii null is ignored
+% \catcode`\^^M=5 % ascii return is end-line
+% \catcode`\\=0 % backslash is TeX escape character
+% \catcode`\%=14 % percent sign is comment character
+% \catcode`\ =10 % ascii space is blank space
+% \catcode`\^^?=15 % ascii delete is invalid
+% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters
+% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters
+% all others are type 12 (other)
+
+% Here is a list of the characters that have been specially catcoded:
+\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+% (not counting ascii null, tab, linefeed, formfeed, return, delete)
+% Each symbol in the list is preceded by \do, which can be defined
+% if you want to do something to every item in the list.
+
+% We make @ signs act like letters, temporarily, to avoid conflict
+% between user names and internal control sequences of plain format.
+\catcode`@=11
+
+% INITEX sets up \mathcode x=x, for x=0..127, except that
+% \mathcode x=x+"7100, for x = `A to `Z and `a to `z;
+% \mathcode x=x+"7000, for x = `0 to `9.
+% The following changes define internal codes as recommended
+% in Appendix C of The TeXbook:
+\mathcode`\^^@="2201 % \cdot
+\mathcode`\^^A="3223 % \downarrow
+\mathcode`\^^B="010B % \alpha
+\mathcode`\^^C="010C % \beta
+\mathcode`\^^D="225E % \land
+\mathcode`\^^E="023A % \lnot
+\mathcode`\^^F="3232 % \in
+\mathcode`\^^G="0119 % \pi
+\mathcode`\^^H="0115 % \lambda
+\mathcode`\^^I="010D % \gamma
+\mathcode`\^^J="010E % \delta
+\mathcode`\^^K="3222 % \uparrow
+\mathcode`\^^L="2206 % \pm
+\mathcode`\^^M="2208 % \oplus
+\mathcode`\^^N="0231 % \infty
+\mathcode`\^^O="0140 % \partial
+\mathcode`\^^P="321A % \subset
+\mathcode`\^^Q="321B % \supset
+\mathcode`\^^R="225C % \cap
+\mathcode`\^^S="225B % \cup
+\mathcode`\^^T="0238 % \forall
+\mathcode`\^^U="0239 % \exists
+\mathcode`\^^V="220A % \otimes
+\mathcode`\^^W="3224 % \leftrightarrow
+\mathcode`\^^X="3220 % \leftarrow
+\mathcode`\^^Y="3221 % \rightarrow
+\mathcode`\^^Z="8000 % \ne
+\mathcode`\^^[="2205 % \diamond
+\mathcode`\^^\="3214 % \le
+\mathcode`\^^]="3215 % \ge
+\mathcode`\^^^="3211 % \equiv
+\mathcode`\^^_="225F % \lor
+\mathcode`\ ="8000 % \space
+\mathcode`\!="5021
+\mathcode`\'="8000 % ^\prime
+\mathcode`\(="4028
+\mathcode`\)="5029
+\mathcode`\*="2203 % \ast
+\mathcode`\+="202B
+\mathcode`\,="613B
+\mathcode`\-="2200
+\mathcode`\.="013A
+\mathcode`\/="013D
+\mathcode`\:="303A
+\mathcode`\;="603B
+\mathcode`\<="313C
+\mathcode`\=="303D
+\mathcode`\>="313E
+\mathcode`\?="503F
+\mathcode`\[="405B
+\mathcode`\\="026E % \backslash
+\mathcode`\]="505D
+\mathcode`\_="8000 % \_
+\mathcode`\{="4266
+\mathcode`\|="026A
+\mathcode`\}="5267
+\mathcode`\^^?="1273 % \smallint
+
+% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x,
+% and \lccode`x=`x, \lccode`X=`x; all other values are zero.
+% No changes to those tables are needed in plain TeX format.
+
+% uccodes and lccodes for Turkish font with full diacriticals.
+
+\message{Turkish character codes,}
+
+\chardef\`='43 \chardef\'='100 % codes for ayn and hamza
+
+% codes required for postpositive accent convention
+
+\lccode`!=`! \uccode`!=`! % These three characters are
+\lccode`==`= \uccode`==`= % swallowed up by the ligtable
+\lccode`:=`: \uccode`:=`: % but must have \lccodes for hyphenation
+
+\lccode'43='43 \uccode'43='43 % ayn
+\lccode'100='100 \uccode'100='100 % hamza
+\lccode'175='175 \uccode'175='175 % dot for Persian izafet
+
+
+% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999
+% for uppercase letters. The following changes are needed:
+\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
+% The \nonfrenchspacing macro will make further changes to \sfcode values.
+
+% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0
+\delcode`\(="028300
+\delcode`\)="029301
+\delcode`\[="05B302
+\delcode`\]="05D303
+\delcode`\<="26830A
+\delcode`\>="26930B
+\delcode`\/="02F30E
+\delcode`\|="26A30C
+\delcode`\\="26E30F
+% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails!
+
+% To make the plain macros more efficient in time and space,
+% several constant values are declared here as control sequences.
+% If they were changed, anything could happen; so they are private symbols.
+\chardef\@ne=1
+\chardef\tw@=2
+\chardef\thr@@=3
+\chardef\sixt@@n=16
+\chardef\@cclv=255
+\mathchardef\@cclvi=256
+\mathchardef\@m=1000
+\mathchardef\@M=10000
+\mathchardef\@MM=20000
+
+% Allocation of registers
+
+% Here are macros for the automatic allocation of \count, \box, \dimen,
+% \skip, \muskip, and \toks registers, as well as \read and \write
+% stream numbers, \fam codes, and \insert numbers.
+
+\message{registers,}
+
+% When a register is used only temporarily, it need not be allocated;
+% grouping can be used, making the value previously in the register return
+% after the close of the group. The main use of these macros is for
+% registers that are defined by one macro and used by others, possibly at
+% different nesting levels. All such registers should be defined through
+% these macros; otherwise conflicts may occur, especially when two or more
+% more macro packages are being used at once.
+
+% The following counters are reserved:
+% 0 to 9 page numbering
+% 10 count allocation
+% 11 dimen allocation
+% 12 skip allocation
+% 13 muskip allocation
+% 14 box allocation
+% 15 toks allocation
+% 16 read file allocation
+% 17 write file allocation
+% 18 math family allocation
+% 19 insert allocation
+% 20 the most recently allocated number
+% 21 constant -1
+% New counters are allocated starting with 22, 23, etc. Other registers are
+% allocated starting with 10. This leaves 0 through 9 for the user to play
+% with safely, except that counts 0 to 9 are considered to be the page and
+% subpage numbers (since they are displayed during output). In this scheme,
+% \count 10 always contains the number of the highest-numbered counter that
+% has been allocated, \count 14 the highest-numbered box, etc.
+% Inserts are given numbers 254, 253, etc., since they require a \count,
+% \dimen, \skip, and \box all with the same number; \count 19 contains the
+% lowest-numbered insert that has been allocated. Of course, \box255 is
+% reserved for \output; \count255, \dimen255, and \skip255 can be used freely.
+
+% It is recommended that macro designers always use
+% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and
+% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255.
+% This will prevent ``save stack buildup'' that might otherwise occur.
+
+\count10=21 % allocates \count registers 22, 23, ...
+\count11=9 % allocates \dimen registers 10, 11, ...
+\count12=9 % allocates \skip registers 10, 11, ...
+\count13=9 % allocates \muskip registers 10, 11, ...
+\count14=9 % allocates \box registers 10, 11, ...
+\count15=9 % allocates \toks registers 10, 11, ...
+\count16=-1 % allocates input streams 0, 1, ...
+\count17=-1 % allocates output streams 0, 1, ...
+\count18=3 % allocates math families 4, 5, ...
+\count19=255 % allocates insertions 254, 253, ...
+\countdef\insc@unt=19 % the insertion counter
+\countdef\allocationnumber=20 % the most recent allocation
+\countdef\m@ne=21 \m@ne=-1 % a handy constant
+\def\wlog{\immediate\write\m@ne} % write on log file (only)
+
+% Here are abbreviations for the names of scratch registers
+% that don't need to be allocated.
+
+\countdef\count@=255
+\dimendef\dimen@=0
+\dimendef\dimen@i=1 % global only
+\dimendef\dimen@ii=2
+\skipdef\skip@=0
+\toksdef\toks@=0
+
+% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo
+% and \foo will be defined (with \countdef) to be the next counter.
+% To find out which counter \foo is, you can look at \allocationnumber.
+% Since there's no \boxdef command, \chardef is used to define a \newbox,
+% \newinsert, \newfam, and so on.
+
+\outer\def\newcount{\alloc@0\count\countdef\insc@unt}
+\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
+\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt}
+\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
+\outer\def\newbox{\alloc@4\box\chardef\insc@unt}
+\let\newtoks=\relax % we do this to allow plain.tex to be read in twice
+\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
+\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
+\outer\def\newread{\alloc@6\read\chardef\sixt@@n}
+\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
+ \ch@ck#1#4#2% make sure there's still room
+ \allocationnumber=\count1#1%
+ \global#3#5=\allocationnumber
+ \wlog{\string#5=\string#2\the\allocationnumber}}
+\outer\def\newinsert#1{\global\advance\insc@unt by\m@ne
+ \ch@ck0\insc@unt\count
+ \ch@ck1\insc@unt\dimen
+ \ch@ck2\insc@unt\skip
+ \ch@ck4\insc@unt\box
+ \allocationnumber=\insc@unt
+ \global\chardef#1=\allocationnumber
+ \wlog{\string#1=\string\insert\the\allocationnumber}}
+\def\ch@ck#1#2#3{\ifnum\count1#1<#2%
+ \else\errmessage{No room for a new #3}\fi}
+
+% Here are some examples of allocation.
+\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
+\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
+\newskip\centering \centering=0pt plus 1000pt minus 1000pt
+\newdimen\p@ \p@=1pt % this saves macro space and time
+\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
+\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+\newbox\voidb@x % permanently void box register
+
+% And here's a different sort of allocation:
+% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo.
+\outer\def\newif#1{\count@\escapechar \escapechar\m@ne
+ \expandafter\expandafter\expandafter
+ \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%
+ \expandafter\expandafter\expandafter
+ \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%
+ \@if#1{false}\escapechar\count@} % the condition starts out false
+\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname}
+{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required
+
+% Assign initial values to TeX's parameters
+
+\message{parameters,}
+
+% All of TeX's numeric parameters are listed here,
+% but the code is commented out if no special value needs to be set.
+% INITEX makes all parameters zero except where noted.
+
+\pretolerance=100
+\tolerance=200 % INITEX sets this to 10000
+\hbadness=1000
+\vbadness=1000
+\linepenalty=10
+\hyphenpenalty=50
+\exhyphenpenalty=50
+\binoppenalty=700
+\relpenalty=500
+\clubpenalty=150
+\widowpenalty=150
+\displaywidowpenalty=50
+\brokenpenalty=100
+\predisplaypenalty=10000
+% \postdisplaypenalty=0
+% \interlinepenalty=0
+% \floatingpenalty=0, set during \insert
+% \outputpenalty=0, set before TeX enters \output
+\doublehyphendemerits=10000
+\finalhyphendemerits=5000
+\adjdemerits=10000
+% \looseness=0, cleared by TeX after each paragraph
+% \pausing=0
+% \tracingonline=0
+% \tracingmacros=0
+% \tracingstats=0
+% \tracingparagraphs=0
+% \tracingpages=0
+% \tracingoutput=0
+\tracinglostchars=1
+% \tracingcommands=0
+% \tracingrestores=0
+\uchyph=1
+% \globaldefs=0
+% \maxdeadcycles=25 % INITEX does this
+% \hangafter=1 % INITEX does this, also TeX after each paragraph
+% \fam=0
+% \mag=1000 % INITEX does this
+% \escapechar=`\\ % INITEX does this
+\defaulthyphenchar=`\-
+\defaultskewchar=-1
+% \endlinechar=`\^^M % INITEX does this
+\newlinechar=-1
+\delimiterfactor=901
+% \time=now % TeX does this at beginning of job
+% \day=now % TeX does this at beginning of job
+% \month=now % TeX does this at beginning of job
+% \year=now % TeX does this at beginning of job
+\showboxbreadth=5
+\showboxdepth=3
+
+\hfuzz=0.1pt
+\vfuzz=0.1pt
+\overfullrule=5pt
+\hsize=6.5in
+\vsize=8.9in
+\maxdepth=4pt
+\splitmaxdepth=\maxdimen
+\boxmaxdepth=\maxdimen
+% \lineskiplimit=0pt, changed by \normalbaselines
+\delimitershortfall=5pt
+\nulldelimiterspace=1.2pt
+\scriptspace=0.5pt
+% \mathsurround=0pt
+% \predisplaysize=0pt, set before TeX enters $$
+% \displaywidth=0pt, set before TeX enters $$
+% \displayindent=0pt, set before TeX enters $$
+\parindent=20pt
+% \hangindent=0pt, zeroed by TeX after each paragraph
+% \hoffset=0pt
+% \voffset=0pt
+
+% \baselineskip=0pt, changed by \normalbaselines
+% \lineskip=0pt, changed by \normalbaselines
+\parskip=0pt plus 1pt
+\abovedisplayskip=12pt plus 3pt minus 9pt
+\abovedisplayshortskip=0pt plus 3pt
+\belowdisplayskip=12pt plus 3pt minus 9pt
+\belowdisplayshortskip=7pt plus 3pt minus 4pt
+% \leftskip=0pt
+% \rightskip=0pt
+\topskip=10pt
+\splittopskip=10pt
+% \tabskip=0pt
+% \spaceskip=0pt
+% \xspaceskip=0pt
+\parfillskip=0pt plus 1fil
+
+\thinmuskip=3mu
+\medmuskip=4mu plus 2mu minus 4mu
+\thickmuskip=5mu plus 5mu
+
+% We also define special registers that function like parameters:
+\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
+\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt
+\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt
+\newskip\normalbaselineskip \normalbaselineskip=12pt
+\newskip\normallineskip \normallineskip=1pt
+\newdimen\normallineskiplimit \normallineskiplimit=0pt
+\newdimen\jot \jot=3pt
+\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
+\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
+
+% Definitions for preloaded fonts
+
+\def\magstephalf{1095 }
+\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax}
+
+% Fonts assigned to \preloaded are not part of "plain TeX",
+% but they are preloaded so that other format packages can use them.
+% For example, if another set of macros says "\font\ninerm=cmr9",
+% TeX will not have to reload the font metric information for cmr9.
+
+\message{fonts,}
+
+\font\tenrm=wtkr10 % roman text
+\font\preloaded=cmr9
+\font\preloaded=cmr8
+\font\sevenrm=cmr7
+\font\preloaded=cmr6
+\font\fiverm=cmr5
+
+\font\teni=cmmi10 % math italic
+\font\preloaded=cmmi9
+\font\preloaded=cmmi8
+\font\seveni=cmmi7
+\font\preloaded=cmmi6
+\font\fivei=cmmi5
+
+\font\tensy=cmsy10 % math symbols
+\font\preloaded=cmsy9
+\font\preloaded=cmsy8
+\font\sevensy=cmsy7
+\font\preloaded=cmsy6
+\font\fivesy=cmsy5
+
+\font\tenex=cmex10 % math extension
+
+\font\preloaded=cmss10 % sans serif
+\font\preloaded=cmssq8
+
+\font\preloaded=cmssi10 % sans serif italic
+\font\preloaded=cmssqi8
+
+\font\tenbf=cmbx10 % boldface extended
+\font\preloaded=cmbx9
+\font\preloaded=cmbx8
+\font\sevenbf=cmbx7
+\font\preloaded=cmbx6
+\font\fivebf=cmbx5
+
+\font\tentt=cmtt10 % typewriter
+\font\preloaded=cmtt9
+\font\preloaded=cmtt8
+
+\font\preloaded=cmsltt10 % slanted typewriter
+
+\font\tensl=cmsl10 % slanted roman
+\font\preloaded=cmsl9
+\font\preloaded=cmsl8
+
+\font\tenit=wtkti10 % text italic
+\font\preloaded=cmti9
+\font\preloaded=cmti8
+\font\preloaded=cmti7
+
+\message{more fonts,}
+\font\preloaded=cmu10 % unslanted text italic
+
+\font\preloaded=cmmib10 % bold math italic
+\font\preloaded=cmbsy10 % bold math symbols
+
+\font\preloaded=cmcsc10 % caps and small caps
+
+\font\preloaded=cmssbx10 % sans serif bold extended
+
+\font\preloaded=cmdunh10 % Dunhill style
+
+\font\preloaded=cmr7 scaled \magstep4 % for titles
+\font\preloaded=cmtt10 scaled \magstep2
+\font\preloaded=cmssbx10 scaled \magstep2
+
+\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols
+
+% Additional \preloaded fonts can be specified here.
+% (And those that were \preloaded above can be eliminated.)
+
+\let\preloaded=\undefined % preloaded fonts must be declared anew later.
+
+\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
+\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60
+
+\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+\def\rm{\fam\z@\tenrm}
+\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni}
+\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+\def\cal{\fam\tw@}
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4
+\textfont\itfam=\tenit
+\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5
+\textfont\slfam=\tensl
+\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6
+\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+\scriptscriptfont\bffam=\fivebf
+\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7
+\textfont\ttfam=\tentt
+
+% Macros for setting ordinary text
+\message{macros,}
+
+\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
+ \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
+\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
+
+\def\normalbaselines{\lineskip\normallineskip
+ \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
+
+\def\^^M{\ } % control <return> = control <space>
+\def\^^I{\ } % same for <tab>
+
+\def\lq{`} \def\rq{'}
+\def\lbrack{[} \def\rbrack{]}
+
+\let\endgraf=\par \let\endline=\cr
+
+\def\space{ }
+\def\empty{}
+\def\null{\hbox{}}
+
+\let\bgroup={ \let\egroup=}
+
+% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}'
+% since this allows, for example, `\let\par=\cr \obeylines \halign{...'
+{\catcode`\^^M=\active % these lines must end with %
+ \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
+ \global\let^^M\par} % this is in case ^^M appears in a \write
+\def\obeyspaces{\catcode`\ \active}
+{\obeyspaces\global\let =\space}
+
+\def\loop#1\repeat{\def\body{#1}\iterate}
+\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
+\let\repeat=\fi % this makes \loop...\if...\repeat skippable
+
+\def\thinspace{\kern .16667em }
+\def\negthinspace{\kern-.16667em }
+\def\enspace{\kern.5em }
+
+\def\enskip{\hskip.5em\relax}
+\def\quad{\hskip1em\relax}
+\def\qquad{\hskip2em\relax}
+
+\def\smallskip{\vskip\smallskipamount}
+\def\medskip{\vskip\medskipamount}
+\def\bigskip{\vskip\bigskipamount}
+
+\def\nointerlineskip{\prevdepth-1000\p@}
+\def\offinterlineskip{\baselineskip-1000\p@
+ \lineskip\z@ \lineskiplimit\maxdimen}
+
+\def\vglue{\afterassignment\vgl@\skip@=}
+\def\vgl@{\par \dimen@\prevdepth \hrule height\z@
+ \nobreak\vskip\skip@ \prevdepth\dimen@}
+\def\hglue{\afterassignment\hgl@\skip@=}
+\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@
+ \nobreak\hskip\skip@ \spacefactor\count@}
+
+\def~{\penalty\@M \ } % tie
+\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
+
+\def\break{\penalty-\@M}
+\def\nobreak{\penalty \@M}
+\def\allowbreak{\penalty \z@}
+
+\def\filbreak{\par\vfil\penalty-200\vfilneg}
+\def\goodbreak{\par\penalty-500 }
+\def\eject{\par\break}
+\def\supereject{\par\penalty-\@MM}
+
+\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
+\def\smallbreak{\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi}
+\def\medbreak{\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi}
+\def\bigbreak{\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi}
+
+\def\line{\hbox to\hsize}
+\def\leftline#1{\line{#1\hss}}
+\def\rightline#1{\line{\hss#1}}
+\def\centerline#1{\line{\hss#1\hss}}
+
+\def\rlap#1{\hbox to\z@{#1\hss}}
+\def\llap#1{\hbox to\z@{\hss#1}}
+
+\def\m@th{\mathsurround=\z@}
+\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
+ \m@th \underline{\box\z@}$}
+
+\newbox\strutbox
+\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}
+\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+
+\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out
+\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
+\newcount\mscount
+\def\multispan#1{\omit \mscount#1
+ \loop\ifnum\mscount>\@ne \sp@n\repeat}
+\def\sp@n{\span\omit\advance\mscount\m@ne}
+
+\newif\ifus@ \newif\if@cr
+\newbox\tabs \newbox\tabsyet \newbox\tabsdone
+
+\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null}
+\def\settabs{\setbox\tabs\null \futurelet\next\sett@b}
+\let\+=\relax % in case this file is being read in twice
+\def\sett@b{\ifx\next\+\let\next\relax
+ \def\next{\afterassignment\s@tt@b\let\next}%
+ \else\let\next\s@tcols\fi\next}
+\def\s@tt@b{\let\next\relax\us@false\m@ketabbox}
+\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+
+\outer\def\+{\tabalign}
+\def\s@tcols#1\columns{\count@#1 \dimen@\hsize
+ \loop\ifnum\count@>\z@ \@nother \repeat}
+\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@
+ \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}%
+ \advance\dimen@-\dimen@ii \advance\count@\m@ne}
+
+\def\m@ketabbox{\begingroup
+ \global\setbox\tabsyet\copy\tabs
+ \global\setbox\tabsdone\null
+ \def\cr{\@crtrue\crcr\egroup\egroup
+ \ifus@\unvbox\z@\lastbox\fi\endgroup
+ \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}%
+ \setbox\z@\vbox\bgroup\@crfalse
+ \ialign\bgroup&\t@bbox##\t@bb@x\crcr}
+
+\def\t@bbox{\setbox\z@\hbox\bgroup}
+\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column
+ \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet
+ \global\setbox\@ne\lastbox}% now \box\@ne holds its size
+ \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}%
+ \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi
+ \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi
+ \box\z@}
+
+\def\hang{\hangindent\parindent}
+\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\indent \hangindent2\parindent \textindent}
+\def\narrower{\advance\leftskip\parindent
+ \advance\rightskip\parindent}
+
+\outer\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250
+ \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip
+ \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent}
+\outer\def\proclaim #1. #2\par{\medbreak
+ \noindent{\bf#1.\enspace}{\sl#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+\def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only
+
+\chardef\%=`\%
+\chardef\&=`\&
+\chardef\#=`\#
+\chardef\$=`\$
+\chardef\ss="19
+\chardef\ae="1A
+\chardef\oe="1B
+\chardef\o="1C
+\chardef\AE="1D
+\chardef\OE="1E
+\chardef\O="1F
+\chardef\i="10 \chardef\j="11 % dotless letters
+\def\aa{\accent23a}
+\def\l{\char32l}
+\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
+
+\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
+\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
+\def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex%
+ \rlap{\raise.67\dimen@\hbox{\char'27}}A}
+
+\def\mathhexbox#1#2#3{\leavevmode
+ \hbox{$\m@th \mathchar"#1#2#3$}}
+\def\dag{\mathhexbox279}
+\def\ddag{\mathhexbox27A}
+\def\S{\mathhexbox278}
+\def\P{\mathhexbox27B}
+
+\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
+ \ialign{##\crcr#1\crcr}}} % put characters over each other
+\def\ooalign{\lineskiplimit-\maxdimen \oalign}
+\def\d#1{\oalign{#1\crcr\hidewidth.\hidewidth}}
+\def\b#1{\oalign{#1\crcr\hidewidth
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}
+\def\c#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1%
+ \else{\ooalign{\hidewidth\char24\hidewidth\crcr\unhbox\z@}}\fi}
+\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}}
+
+\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi}
+\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
+
+\def\v#1{{\accent20 #1}} \let\^^_=\v
+\def\u#1{{\accent21 #1}} \let\^^S=\u
+\def\=#1{{\accent22 #1}}
+\def\^#1{{\accent94 #1}} \let\^^D=\^
+\def\.#1{{\accent95 #1}}
+\def\H#1{{\accent"7D #1}}
+\def\~#1{{\accent"7E #1}}
+\def\"#1{{\accent"7F #1}}
+\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}}
+
+\def\hrulefill{\leaders\hrule\hfill}
+\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}
+\def\rightarrowfill{$\m@th\mathord-\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
+ \mkern-6mu\mathord\rightarrow$}
+\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
+ \mkern-6mu\mathord-$}
+\mathchardef\braceld="37A \mathchardef\bracerd="37B
+\mathchardef\bracelu="37C \mathchardef\braceru="37D
+\def\downbracefill{$\m@th\braceld\leaders\vrule\hfill\braceru
+ \bracelu\leaders\vrule\hfill\bracerd$}
+\def\upbracefill{$\m@th\bracelu\leaders\vrule\hfill\bracerd
+ \braceld\leaders\vrule\hfill\braceru$}
+
+\outer\def\bye{\par\vfill\supereject\end}
+
+% Macros for math setting
+\message{math definitions,}
+
+\let\sp=^ \let\sb=_
+\def\,{\mskip\thinmuskip}
+\def\>{\mskip\medmuskip}
+\def\;{\mskip\thickmuskip}
+\def\!{\mskip-\thinmuskip}
+\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
+{\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
+\def\prim@s{\prime\futurelet\next\pr@m@s}
+\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t
+ \else\let\nxt\egroup\fi\fi \nxt}
+\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
+{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math
+
+{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_
+
+\mathchardef\alpha="010B
+\mathchardef\beta="010C
+\mathchardef\gamma="010D
+\mathchardef\delta="010E
+\mathchardef\epsilon="010F
+\mathchardef\zeta="0110
+\mathchardef\eta="0111
+\mathchardef\theta="0112
+\mathchardef\iota="0113
+\mathchardef\kappa="0114
+\mathchardef\lambda="0115
+\mathchardef\mu="0116
+\mathchardef\nu="0117
+\mathchardef\xi="0118
+\mathchardef\pi="0119
+\mathchardef\rho="011A
+\mathchardef\sigma="011B
+\mathchardef\tau="011C
+\mathchardef\upsilon="011D
+\mathchardef\phi="011E
+\mathchardef\chi="011F
+\mathchardef\psi="0120
+\mathchardef\omega="0121
+\mathchardef\varepsilon="0122
+\mathchardef\vartheta="0123
+\mathchardef\varpi="0124
+\mathchardef\varrho="0125
+\mathchardef\varsigma="0126
+\mathchardef\varphi="0127
+\mathchardef\Gamma="7000
+\mathchardef\Delta="7001
+\mathchardef\Theta="7002
+\mathchardef\Lambda="7003
+\mathchardef\Xi="7004
+\mathchardef\Pi="7005
+\mathchardef\Sigma="7006
+\mathchardef\Upsilon="7007
+\mathchardef\Phi="7008
+\mathchardef\Psi="7009
+\mathchardef\Omega="700A
+
+\mathchardef\aleph="0240
+\def\hbar{{\mathchar'26\mkern-9muh}}
+\mathchardef\imath="017B
+\mathchardef\jmath="017C
+\mathchardef\ell="0160
+\mathchardef\wp="017D
+\mathchardef\Re="023C
+\mathchardef\Im="023D
+\mathchardef\partial="0140
+\mathchardef\infty="0231
+\mathchardef\prime="0230
+\mathchardef\emptyset="023B
+\mathchardef\nabla="0272
+\def\surd{{\mathchar"1270}}
+\mathchardef\top="023E
+\mathchardef\bot="023F
+\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ \not\mathrel{\mkern14mu}\crcr
+ \noalign{\nointerlineskip}
+ \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
+\mathchardef\triangle="0234
+\mathchardef\forall="0238
+\mathchardef\exists="0239
+\mathchardef\neg="023A \let\lnot=\neg
+\mathchardef\flat="015B
+\mathchardef\natural="015C
+\mathchardef\sharp="015D
+\mathchardef\clubsuit="027C
+\mathchardef\diamondsuit="027D
+\mathchardef\heartsuit="027E
+\mathchardef\spadesuit="027F
+
+\mathchardef\coprod="1360
+\mathchardef\bigvee="1357
+\mathchardef\bigwedge="1356
+\mathchardef\biguplus="1355
+\mathchardef\bigcap="1354
+\mathchardef\bigcup="1353
+\mathchardef\intop="1352 \def\int{\intop\nolimits}
+\mathchardef\prod="1351
+\mathchardef\sum="1350
+\mathchardef\bigotimes="134E
+\mathchardef\bigoplus="134C
+\mathchardef\bigodot="134A
+\mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
+\mathchardef\bigsqcup="1346
+\mathchardef\smallint="1273
+
+\mathchardef\triangleleft="212F
+\mathchardef\triangleright="212E
+\mathchardef\bigtriangleup="2234
+\mathchardef\bigtriangledown="2235
+\mathchardef\wedge="225E \let\land=\wedge
+\mathchardef\vee="225F \let\lor=\vee
+\mathchardef\cap="225C
+\mathchardef\cup="225B
+\mathchardef\ddagger="227A
+\mathchardef\dagger="2279
+\mathchardef\sqcap="2275
+\mathchardef\sqcup="2274
+\mathchardef\uplus="225D
+\mathchardef\amalg="2271
+\mathchardef\diamond="2205
+\mathchardef\bullet="220F
+\mathchardef\wr="226F
+\mathchardef\div="2204
+\mathchardef\odot="220C
+\mathchardef\oslash="220B
+\mathchardef\otimes="220A
+\mathchardef\ominus="2209
+\mathchardef\oplus="2208
+\mathchardef\mp="2207
+\mathchardef\pm="2206
+\mathchardef\circ="220E
+\mathchardef\bigcirc="220D
+\mathchardef\setminus="226E % for set difference A\setminus B
+\mathchardef\cdot="2201
+\mathchardef\ast="2203
+\mathchardef\times="2202
+\mathchardef\star="213F
+
+\mathchardef\propto="322F
+\mathchardef\sqsubseteq="3276
+\mathchardef\sqsupseteq="3277
+\mathchardef\parallel="326B
+\mathchardef\mid="326A
+\mathchardef\dashv="3261
+\mathchardef\vdash="3260
+\mathchardef\nearrow="3225
+\mathchardef\searrow="3226
+\mathchardef\nwarrow="322D
+\mathchardef\swarrow="322E
+\mathchardef\Leftrightarrow="322C
+\mathchardef\Leftarrow="3228
+\mathchardef\Rightarrow="3229
+\def\neq{\not=} \let\ne=\neq
+\mathchardef\leq="3214 \let\le=\leq
+\mathchardef\geq="3215 \let\ge=\geq
+\mathchardef\succ="321F
+\mathchardef\prec="321E
+\mathchardef\approx="3219
+\mathchardef\succeq="3217
+\mathchardef\preceq="3216
+\mathchardef\supset="321B
+\mathchardef\subset="321A
+\mathchardef\supseteq="3213
+\mathchardef\subseteq="3212
+\mathchardef\in="3232
+\mathchardef\ni="3233 \let\owns=\ni
+\mathchardef\gg="321D
+\mathchardef\ll="321C
+\mathchardef\not="3236
+\mathchardef\leftrightarrow="3224
+\mathchardef\leftarrow="3220 \let\gets=\leftarrow
+\mathchardef\rightarrow="3221 \let\to=\rightarrow
+\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow}
+\mathchardef\sim="3218
+\mathchardef\simeq="3227
+\mathchardef\perp="323F
+\mathchardef\equiv="3211
+\mathchardef\asymp="3210
+\mathchardef\smile="315E
+\mathchardef\frown="315F
+\mathchardef\leftharpoonup="3128
+\mathchardef\leftharpoondown="3129
+\mathchardef\rightharpoonup="312A
+\mathchardef\rightharpoondown="312B
+
+\def\joinrel{\mathrel{\mkern-3mu}}
+\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as +
+\def\Relbar{\mathrel=}
+\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
+\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
+\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
+\def\models{\mathrel|\joinrel=}
+\def\Longrightarrow{\Relbar\joinrel\Rightarrow}
+\def\longrightarrow{\relbar\joinrel\rightarrow}
+\def\longleftarrow{\leftarrow\joinrel\relbar}
+\def\Longleftarrow{\Leftarrow\joinrel\Relbar}
+\def\longmapsto{\mapstochar\longrightarrow}
+\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+\def\iff{\;\Longleftrightarrow\;}
+
+\mathchardef\ldotp="602E % ldot as a punctuation mark
+\mathchardef\cdotp="6201 % cdot as a punctuation mark
+\mathchardef\colon="603A % colon as a punctuation mark
+\def\ldots{\mathinner{\ldotp\ldotp\ldotp}}
+\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
+\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
+\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
+
+\def\acute{\mathaccent"7013 }
+\def\grave{\mathaccent"7012 }
+\def\ddot{\mathaccent"707F }
+\def\tilde{\mathaccent"707E }
+\def\bar{\mathaccent"7016 }
+\def\breve{\mathaccent"7015 }
+\def\check{\mathaccent"7014 }
+\def\hat{\mathaccent"705E }
+\def\vec{\mathaccent"017E }
+\def\dot{\mathaccent"705F }
+\def\widetilde{\mathaccent"0365 }
+\def\widehat{\mathaccent"0362 }
+\def\overrightarrow#1{\vbox{\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overleftarrow#1{\vbox{\ialign{##\crcr
+ \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overbrace#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
+ \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+\def\underbrace#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
+\def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}}
+
+\def\lmoustache{\delimiter"4000340 } % top from (, bottom from )
+\def\rmoustache{\delimiter"5000341 } % top from ), bottom from (
+\def\lgroup{\delimiter"400033A } % extensible ( with sharper tips
+\def\rgroup{\delimiter"500033B } % extensible ) with sharper tips
+\def\arrowvert{\delimiter"33C } % arrow without arrowheads
+\def\Arrowvert{\delimiter"33D } % double arrow without arrowheads
+\def\bracevert{\delimiter"33E } % the vertical bar that extends braces
+\def\Vert{\delimiter"26B30D } \let\|=\Vert
+\def\vert{\delimiter"26A30C }
+\def\uparrow{\delimiter"3222378 }
+\def\downarrow{\delimiter"3223379 }
+\def\updownarrow{\delimiter"326C33F }
+\def\Uparrow{\delimiter"322A37E }
+\def\Downarrow{\delimiter"322B37F }
+\def\Updownarrow{\delimiter"326D377 }
+\def\backslash{\delimiter"26E30F } % for double coset G\backslash H
+\def\rangle{\delimiter"526930B }
+\def\langle{\delimiter"426830A }
+\def\rbrace{\delimiter"5267309 } \let\}=\rbrace
+\def\lbrace{\delimiter"4266308 } \let\{=\lbrace
+\def\rceil{\delimiter"5265307 }
+\def\lceil{\delimiter"4264306 }
+\def\rfloor{\delimiter"5263305 }
+\def\lfloor{\delimiter"4262304 }
+
+\def\bigl{\mathopen\big}
+\def\bigm{\mathrel\big}
+\def\bigr{\mathclose\big}
+\def\Bigl{\mathopen\Big}
+\def\Bigm{\mathrel\Big}
+\def\Bigr{\mathclose\Big}
+\def\biggl{\mathopen\bigg}
+\def\biggm{\mathrel\bigg}
+\def\biggr{\mathclose\bigg}
+\def\Biggl{\mathopen\Bigg}
+\def\Biggm{\mathrel\Bigg}
+\def\Biggr{\mathclose\Bigg}
+\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
+\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
+\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
+\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
+\def\n@space{\nulldelimiterspace\z@ \m@th}
+
+\def\choose{\atopwithdelims()}
+\def\brack{\atopwithdelims[]}
+\def\brace{\atopwithdelims\{\}}
+
+\def\sqrt{\radical"270370 }
+
+\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}%
+ {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
+\newbox\rootbox
+\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}
+ \mathpalette\r@@t}
+\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
+ \dimen@\ht\z@ \advance\dimen@-\dp\z@
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@}
+\newif\ifv@ \newif\ifh@
+\def\vphantom{\v@true\h@false\ph@nt}
+\def\hphantom{\v@false\h@true\ph@nt}
+\def\phantom{\v@true\h@true\ph@nt}
+\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}%
+ \else\let\next\makeph@nt\fi\next}
+\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt}
+\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
+\def\finph@nt{\setbox\tw@\null
+ \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
+ \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
+\def\mathstrut{\vphantom(}
+\def\smash{\relax % \relax, in case this comes first in \halign
+ \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh
+ \fi\next}
+\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh}
+\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
+\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
+
+\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
+\def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@
+ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
+\def\notin{\mathrel{\mathpalette\c@ncel\in}}
+\def\c@ncel#1#2{\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
+\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
+\def\rlh@#1{\vcenter{\hbox{\ooalign{\raise2pt
+ \hbox{$#1\rightharpoonup$}\crcr
+ $#1\leftharpoondown$}}}}
+\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
+\def\doteq{\buildrel\textstyle.\over=}
+
+\def\log{\mathop{\rm log}\nolimits}
+\def\lg{\mathop{\rm lg}\nolimits}
+\def\ln{\mathop{\rm ln}\nolimits}
+\def\lim{\mathop{\rm lim}}
+\def\limsup{\mathop{\rm lim\,sup}}
+\def\liminf{\mathop{\rm lim\,inf}}
+\def\sin{\mathop{\rm sin}\nolimits}
+\def\arcsin{\mathop{\rm arcsin}\nolimits}
+\def\sinh{\mathop{\rm sinh}\nolimits}
+\def\cos{\mathop{\rm cos}\nolimits}
+\def\arccos{\mathop{\rm arccos}\nolimits}
+\def\cosh{\mathop{\rm cosh}\nolimits}
+\def\tan{\mathop{\rm tan}\nolimits}
+\def\arctan{\mathop{\rm arctan}\nolimits}
+\def\tanh{\mathop{\rm tanh}\nolimits}
+\def\cot{\mathop{\rm cot}\nolimits}
+\def\coth{\mathop{\rm coth}\nolimits}
+\def\sec{\mathop{\rm sec}\nolimits}
+\def\csc{\mathop{\rm csc}\nolimits}
+\def\max{\mathop{\rm max}}
+\def\min{\mathop{\rm min}}
+\def\sup{\mathop{\rm sup}}
+\def\inf{\mathop{\rm inf}}
+\def\arg{\mathop{\rm arg}\nolimits}
+\def\ker{\mathop{\rm ker}\nolimits}
+\def\dim{\mathop{\rm dim}\nolimits}
+\def\hom{\mathop{\rm hom}\nolimits}
+\def\det{\mathop{\rm det}}
+\def\exp{\mathop{\rm exp}\nolimits}
+\def\Pr{\mathop{\rm Pr}}
+\def\gcd{\mathop{\rm gcd}}
+\def\deg{\mathop{\rm deg}\nolimits}
+
+\def\bmod{\mskip-\medmuskip\mkern5mu
+ \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip}
+\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
+
+\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
+ \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.}
+\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+\def\pmatrix#1{\left(\matrix{#1}\right)}
+\newdimen\p@renwd
+\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
+\def\bordermatrix#1{\begingroup \m@th
+ \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
+ \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil
+ &&\quad\hfil$##$\hfil\crcr
+ \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
+ #1\crcr\omit\strut\cr}}%
+ \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
+ \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
+ \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne
+ \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
+ \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
+ \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
+
+\def\openup{\afterassignment\@penup\dimen@=}
+\def\@penup{\advance\lineskip\dimen@
+ \advance\baselineskip\dimen@
+ \advance\lineskiplimit\dimen@}
+\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}\,}
+\newif\ifdt@p
+\def\displ@y{\global\dt@ptrue\openup\jot\m@th
+ \everycr{\noalign{\ifdt@p \global\dt@pfalse
+ \vskip-\lineskiplimit \vskip\normallineskiplimit
+ \else \penalty\interdisplaylinepenalty \fi}}}
+\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
+\def\displaylines#1{\displ@y
+ \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
+ #1\crcr}}
+\def\eqalignno#1{\displ@y \tabskip\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\llap{$\@lign##$}\tabskip\z@skip\crcr
+ #1\crcr}}
+\def\leqalignno#1{\displ@y \tabskip\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
+ #1\crcr}}
+
+% Definitions related to output
+
+\message{output routines,}
+
+\countdef\pageno=0 \pageno=1 % first page is number 1
+\newtoks\headline \headline={\hfil} % headline is normally blank
+\newtoks\footline \footline={\hss\tenrm\folio\hss}
+ % footline is normally a centered page number in font \tenrm
+\newif\ifr@ggedbottom
+\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
+\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom
+\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi}
+\def\nopagenumbers{\footline{\hfil}} % blank out the footline
+\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne
+ \else\global\advance\pageno\@ne \fi} % increase |pageno|
+
+\newinsert\footins
+\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ #1\@sf\vfootnote{#1}}
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \textindent{#1}\footstrut\futurelet\next\fo@t}
+\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
+ \else\let\next\f@t\fi \next}
+\def\f@@t{\bgroup\aftergroup\@foot\let\next}
+\def\f@t#1{#1\@foot}
+\def\@foot{\strut\egroup}
+\def\footstrut{\vbox to\splittopskip{}}
+\skip\footins=\bigskipamount % space added when footnote is present
+\count\footins=1000 % footnote magnification factor (1 to 1)
+\dimen\footins=8in % maximum footnotes per page
+
+\newinsert\topins
+\newif\ifp@ge \newif\if@mid
+\def\topinsert{\@midfalse\p@gefalse\@ins}
+\def\midinsert{\@midtrue\@ins}
+\def\pageinsert{\@midfalse\p@getrue\@ins}
+\skip\topins=\z@skip % no space added when a topinsert is present
+\count\topins=1000 % magnification factor (1 to 1)
+\dimen\topins=\maxdimen % no limit per page
+\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@
+ \advance\dimen@12\p@ \advance\dimen@\pagetotal
+ \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
+ \if@mid \bigskip\box\z@\bigbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\bigskip\fi}\fi\endgroup}
+
+\output{\plainoutput}
+\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}}
+\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
+ \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}
+\def\makefootline{\baselineskip24\p@\line{\the\footline}}
+\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over
+ \line{}\kern-\topskip\nobreak\vfill\supereject\fi}
+
+\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+\def\footnoterule{\kern-3\p@
+ \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high
+
+% Hyphenation, miscellaneous macros, and initial values for standard layout
+\message{hyphenation}
+
+
+\input hyphen
+
+
+\def\magnification{\afterassignment\m@g\count@}
+\def\m@g{\mag\count@
+ \hsize6.5truein\vsize8.9truein\dimen\footins8truein}
+
+\def\tracingall{\tracingonline\@ne\tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
+ \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
+ \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
+
+\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm
+ \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}}
+
+\normalbaselines\rm % select roman font
+\frenchspacing % punctuation does not affect the spacing
+\catcode`@=12 % at signs are no longer letters
+
+\def\fmtname{tplain}\def\fmtversion{0.9} % identifies the current format