Sunteți pe pagina 1din 516

A Babel, a multilingual package for use with L T X's E

standard document classes


Johannes Braams Kersengaarde 33 2723 BP Zoetermeer

babel@braams.xs4all.nl
Printed July 6, 2008

The Netherlands

A The standard distribution of L TEX contains a number of document classes that are meant to be used, but also serve as examples for other users to create their own document classes. These document classes have A become very popular among L TEX users. But it should be kept in mind that they were designed for American tastes and typography. At one time they contained a number of hard-wired texts. This report describes babel, a package that makes use of the new capabilities of TEX version 3 to provide an environment in which documents can be typeset in a language other than US English, or in more than one language.

Abstract

Contents
1 The user interface
IFI IFP vnguges supported y Babel F F F F F F F F F F F F F F F F F F F F orkrounds F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

V W

A 2 Changes for L TEX 2


3 Changes in 4 Changes in 5 Changes in

9 10 11 12

Babel version 3.7 Babel version 3.6 Babel version 3.5 babel and the language deniF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

6 The interface between the core of tion les


TFI TFP TFQ TFR

upport for tive hrters F F F F F F F upport for sving mro de(nitions F F F upport for extending mros F F F F F F F wros ommon to numer of lnguges

12

IR IS IS IS

During the development ideas from Nico Poppelier, Piet van Oostrum and many others have
been used. Bernd Raichle has provided many helpful suggestions.

7 Compatibility with german.sty 8 Compatibility with ngerman.sty 9 Compatibility with the french package 10 Identication 11 The Package File
IIFI vnguge options F F F F F F F F F F F F F F F F F F F F F F F F F F F F IPFI inoding issues @prt IA F F F F F F F F F F IPFP wultiple lnguges F F F F F F F F F F F F F IPFQ upport for tive hrters F F F F F F F IPFR horthnds F F F F F F F F F F F F F F F F F IPFS vnguge ttriutes F F F F F F F F F F F F IPFT upport for sving mro de(nitions F F F IPFU upport for extending mros F F F F F F F IPFV wros ommon to numer of lnguges IPFW wking glyphs ville F F F F F F F F F F IPFIHuottion mrks F F F F F F F F F F F F F F IPFIIvetters F F F F F F F F F F F F F F F F F F F F IPFIPhorthnds for quottion mrks F F F F F F IPFIQmluts nd trem9s F F F F F F F F F F F F IPFIRhe rede(nition of the style ommnds F F IPFIRFI ede(nition of mros F F F F F F F IPFISgross referening mros F F F F F F F F F F IPFITmrks F F F F F F F F F F F F F F F F F F F F IPFIUinoding issues @prt PA F F F F F F F F F F IPFIVreventing lshes with other pkges F F IPFIVFI ifthen F F F F F F F F F F F F F F F IPFIVFP varioref F F F F F F F F F F F F F F IPFIVFQ hhline F F F F F F F F F F F F F F F IPFIVFR hyperref F F F F F F F F F F F F F F IPFIVFS qenerl F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

15 16 16 16 17
IV

12 The Kernel of Babel

21

PI PP QU QV RV SI SP SP SQ SQ SS ST SU SV SW TQ TU TW TW TW UH UH UI UI

13 Local Language Conguration 14 Driver les for the documented source code 15 Conclusion 16 Acknowledgements 17 The Esperanto language 18 The Interlingua language 19 The Dutch language 20 The English language
P

71 73 77 77 78 81 83 88

21 The German language 22 The German language  new orthography 23 The Breton language 24 The Welsh language 25 The Irish language 26 The Scottish language 27 The Greek language

92 97 101 105 107 109 111

PUFI yping onventions F F F F F F F F F F F F F F F F F F F F F F F F F F F III PUFP qreek numering F F F F F F F F F F F F F F F F F F F F F F F F F F F F III PVFI PVFP PVFQ PVFR PVFS fsi interfe F F F gustomistion F F F F ryphention heks ghnges F F F F F F F pile frenhFfg F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

28 The French language

120

IPH IPP IPR IPS IPT

29 TEXnical details

PWFI snitil setup F F F F F F F F F F PWFP untution F F F F F F F F F F PWFQ prenh quottion mrks F F F PWFR hte in prenh F F F F F F F F PWFS ixtr utilities F F F F F F F F F PWFT pormtting numers F F F F F PWFU gption nmes F F F F F F F F PWFV prenh lists F F F F F F F F F F PWFW prenh indenttion of setions PWFIHpormtting footnotes F F F F F PWFIIqlol lyout F F F F F F F F F PWFIPhotsF F F F F F F F F F F F F F F PWFIQetup optionsX keyvl stu' F F PWFIRglen up nd exit F F F F F F F QHFI QHFP QHFQ QHFR QHFS

126

IPT IPV IQH IQP IQP IQT IQU IQW IRI IRI IRQ IRR IRR ISQ IST ISW ITH ITH ITQ

30 The Italian language

upport for etymologil hyphention F F F F F pilities required y the sy QIGs regultions eents F F F F F F F F F F F F F F F F F F F F F F Caporali or prenh doule quotes F F F F F F F F pinishing ommnds F F F F F F F F F F F F F F F

154

31 The Latin language 32 Latin shortcuts 33 Etymological hyphenation


Q

165 169 171

34 The Portuguese language 35 The Spanish language

173 178

QSFI he gode F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F IVP

36 The Catalan language 37 This le 38 The Galcian language 39 The Basque language 40 The Romanian language 41 The Danish language 42 The Icelandic language
RPFI RPFP RPFQ RPFR RPFS RPFT RPFU yverview F F F F F F F F F inil detils F F F F F F gptionnmes nd dte F selndi quottion mrks yld selndi F F F F F F F pormtting numers F F F ixtr utilities F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

201 209 209

QVFI he gode F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PII

231 235 237 240


PRH PRI PRP PRQ PRR PRS PRU

43 The Norwegian language 44 The Swedish language 45 The North Sami language 46 The Finnish language 47 The Hungarian language 48 The Estonian language

249 254 258

RSFI he ode of samin.dtx F F F F F F F F F F F F F F F F F F F F F F F F PSV

260 263 281

RVFI smplementtion F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PVI

49 The Albanian language 50 The Croatian language 51 The Czech Language

285 288 290

SIFI sge F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PWH SIFP gomptiility F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PWH SIFQ smplementtion F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PWI

52 The Polish language 53 The Serbocroatian language


R

303 309

54 The Slovak language

SRFI gomptiility F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QIP SRFP smplementtion F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QIQ

312

55 The Slovenian language 56 The Russian language 57 The Bulgarian language 58 The Ukrainian language 59 The Lower Sorbian language 60 The Upper Sorbian language 61 The Turkish language 62 The Hebrew language
TPFI eknowledgement F F F F F F F F F F F F F F F F F F TPFP he docstrip modules F F F F F F F F F F F F F F TPFQ rerew lnguge de(nitions F F F F F F F F F F F F TPFQFI rerew numerls F F F F F F F F F F F F F F TPFR ight to left support F F F F F F F F F F F F F F F F TPFRFI withing from v to v mode nd k TPFRFP gounters F F F F F F F F F F F F F F F F F F TPFRFQ reserving logos F F F F F F F F F F F F F F TPFRFR vist environments F F F F F F F F F F F F F TPFRFS les of moving stu' F F F F F F F F F F F TPFRFT woEolumn mode F F F F F F F F F F F F F TPFRFU pootnotes F F F F F F F F F F F F F F F F F F TPFRFV redings nd twoEside support F F F F F F TPFRFW ostsript orlems F F F F F F F F F F F F A TPFRFIH wisellneous internl v i mros F F F TPFRFII filiogrphy nd ittions F F F F F F F F F TPFRFIP edditionl idiretionl ommnds F F F F TPFS rerew lendr F F F F F F F F F F F F F F F F F F TPFSFI sntrodution F F F F F F F F F F F F F F F F TPFSFP egistersD gommndsD pormtting wros TPFSFQ euxiliry wros F F F F F F F F F F F F F F TPFSFR qregorin rt F F F F F F F F F F F F F F F TPFSFS rerew rt F F F F F F F F F F F F F F F F TQFI TQFP TQFQ TQFR hefult de(nitions for hrters he sEWTH enoding F F F F F F F he sy VVSWEV enoding nd the he sfw ode pge VTP F F F F F F F F F F F F F F F F F F F F F w indows F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

327 330 344 356 370 372 376 379


QUW QVH QVH QVR QWI QWI QWR QWS QWT QWT RHI RHP RHP RHS RHT RHV RIH RII RIP RIQ RIS RIT RIU RPQ RPR RPR RPU

63 Hebrew input encodings

F F F F F F F F F F F F F F F F F F F F pIPSS enoding F F F F F F F F F F

422

64 Hebrew font encodings

TRFI rs igsyx s y yp heiF hei hyg y wegr riV ixgyhsxq F F F F F F F F F F F F F F F F F F F F F F F F F F F F TRFP he docstrip modules F F F F F F F F F F F F F F F F F F F F F F F F TRFQ he LHEenoding de(nition (le F F F F F F F F F F F F F F F F F F F F TRFR he font de(nition (les @in LHE enodingA F F F F F F F F F F F F F F TRFRFI rerew defult font F F F F F F F F F F F F F F F F F F F F F F TRFRFP rerew snsEserif font F F F F F F F F F F F F F F F F F F F F F TRFRFQ rerew typewriter font F F F F F F F F F F F F F F F F F F F F TRFRFR rerew lssi font F F F F F F F F F F F F F F F F F F F F F F F TRFRFS rerew shlom fonts F F F F F F F F F F F F F F F F F F F F F F TRFRFT rerew frnkEruehl font F F F F F F F F F F F F F F F F F F F F TRFRFU rerew rmel font F F F F F F F F F F F F F F F F F F F F F F TRFRFV rerew redis font F F F F F F F F F F F F F F F F F F F F F F F F TRFS he HE8enoding de(nition (le F F F F F F F F F F F F F F F F F F F F TRFSFI grigu rii py riV hei F F F F F F F F F F F F TRFT he font de(nition (les @in HE8 enodingA F F F F F F F F F F F F F F TRFTFI rerew defult font F F F F F F F F F F F F F F F F F F F F F F TRFTFP rerew snsEserif font F F F F F F F F F F F F F F F F F F F F F TRFTFQ rerew typewriter font F F F F F F F F F F F F F F F F F F F F TRFTFR Vfit ymegrerew font F F F F F F F F F F F F F F F F F F F F TRFTFS Vfit ehroni font F F F F F F F F F F F F F F F F F F F F F F F TRFTFT Vfit hvid font F F F F F F F F F F F F F F F F F F F F F F F F F TRFTFU Vfit hrugulin font F F F F F F F F F F F F F F F F F F F F F F F TRFTFV Vfit illini font F F F F F F F F F F F F F F F F F F F F F F F F TRFTFW Vfit prnkuehl font F F F F F F F F F F F F F F F F F F F F F TRFTFIH Vfit utvd font F F F F F F F F F F F F F F F F F F F F F F F TRFTFII Vfit wirimwono font F F F F F F F F F F F F F F F F F F F F F TRFTFIP Vfit xhlieli font F F F F F F F F F F F F F F F F F F F F F F F TRFTFIQ rerew font swithing ommnds F F F F F F F F F F F F F F F

429
RPW RPW RQH RQP RQP RQP RQQ RQR RQR RQS RQT RQT RQU RQU RQW RQW RQW RRH RRH RRI RRI RRI RRP RRP RRP RRP RRQ RRQ

A 65 Hebrew in L TEX 2.09 compatibility mode


66 The Bahasa Indonesian language 67 The Bahasa Malaysia language 68 Not renaming hyphen.tex 69 Support for formats based on

TSFI he docstrip modules F F F F F F F F F F F F F F F F F F F F F F F F RRT TSFP ysolete style (les F F F F F F F F F F F F F F F F F F F F F F F F F F F RRU

446

448 451 454

plainTEX

455

The user interface

seletlnguge

he user interfe of this pkge is quite simpleF st onsists of set of ommnds tht swith from one lnguge to notherD nd set of ommnds tht del with shorthndsF st is lso possile to (nd out wht the urrent lnguge isF hen user wnts to swith from one lnguge to nother he n do so using the mro \selectlanguageF his mro tkes the lngugeD de(ned previously T

otherlnguge

foreignlnguge

otherlngugeB

hyphenrules

lngugenme iflnguge

useshorthnds

defineshorthnd

lisshorthnd

lngugeshorthnds

shorthndon shorthndoff

lngugettriute

y lnguge de(nition (leD s its rgumentF st lls severl mros tht should e de(ned in the lnguge de(nition (les to tivte the speil de(nitions for the lnguge hosenF he environment otherlanguage does silly the sme s \selectlanguageD exept the lnguge hnge is lol to the environmentF his environment is reE quired for intermixing leftEtoEright typesetting with rightEtoEleft typesettingF he lnguge to swith to is spei(ed s n rgument to \begin{otherlanguage}F he ommnd \foreignlanguage tkes two rgumentsY the seond rgument is phrse to e typeset ording to the rules of the lnguge nmed in its (rst rgumentF his ommnd only swithes the extr de(nitions nd the hyphention rules for the lngugeD not the nmes nd dtesF sn the environment otherlanguage* only the typesetting is done ording to the rules of the other lngugeD ut the textEstrings suh s (gure9D tle9D etF re left s they were set outside this environmentF he environment hyphenrules n e used to selet only the hyphention rules to e usedF his n for instne e used to selet nohyphention9D proE vided tht in language.dat the lnguge9 nohyphention is de(ned y loding serohyph.texF he ontrol sequene \languagename ontins the nme of the urrent lnE gugeF sf more thn one lnguge is usedD it might e neessry to know whih lnE guge is tive t spei( timeF his n e heked y ll to \iflanguageF his mro tkes three rgumentsF he (rst rgument is the nme of lngugeY the seond nd third rguments re the tions to tke if the result of the test is true or false respetivelyF he ommnd \useshorthands initites the de(nition of userEde(ned shortE hnd sequenesF st hs one rgumentD the hrter tht strts these personl shorthndsF he ommnd \defineshorthand tkes two rgumentsX the (rst is oneE or twoEhrter shorthnd sequeneD nd the seond is the ode the shorthnd should expnd toF he ommnd \aliasshorthand n e used to let nother hrter perform the sme funtions s the defult shorthnd hrterF sf one prefers for exmple to use the hrter / over " in typing polish textsD this n e hieved y entering \aliasshorthand{"}{/}F Please note tht the sustitute shorthnd hrter must hve een delred in the premle of your doumentD using ommnd suh s \useshorthands{/} in this exmpleF he ommnd \languageshorthands n e used to swith the shorthnds on the lnguge levelF st tkes one rgumentD the nme of lngugeF xote tht for this to work the lnguge should hve een spei(ed s n option when loding the babel pkgeF st is sometimes neessry to swith shorthnd hrter o' temporrilyD eE use it must e used in n entirely di'erent wyF por this purposeD the user ommnds \shorthandoff nd \shorthandon re providedF hey eh tke list of hrters s their rgumentsF he ommnd \shorthandoff sets the \catcode for eh of the hrters in its rgument to other @IPAY the ommnd \shorthandon sets the \catcode to tive @IQAF foth ommnds only work on known9 shorthnd hrtersF sf hrter is not known to e shorthnd hrter its tegory ode will e left unhngedF his is userElevel ommndD to e used in the premle of doument @fter U

\usepackage[...]{babel}AD tht delres whih ttriutes re to e used for given lngugeF st tkes two rgumentsX the (rst is the nme of the lngugeY the seondD @list ofA ttriute@sA to usedF he ommnd heks whether the lnguge is known in this doument nd whether the ttriute@sA re known for this lngugeF

1.1 Languages supported by Babel


sn the following tle ll the lnguges supported y Babel re listedD together with the nmes of the options with whih you n lod babel for eh lngugeF vnguge efrikns fhs fsque freton fulgrin gtln grotin gzeh hnish huth inglish ispernto istonin pinnish prenh qliin qermn qreek rerew rungrin selndi snterlingu srish qeli stlin vtin vower orin xorth mi xorwegin olish ortuguese omnin ussin ottish qeli yption@sA frikns hsD indonesinD indonD hsiD hsmD mlyD meylu sque reton ulgrin tln rotin zeh dnish duth englishD englishD merinD uenglishD ritishD ndinD ustrlinD newzelnd espernto estonin (nnish frenhD frnisD ndienD din gliin ustrinD germnD germnD ngermnD nustrin greekD polutonikogreek herew mgyrD hungrin ielndi interlingu irish itlin ltin lowersorin smin norskD nynorsk polish portugesD portugueseD rzilinD rzil romnin russin sottish

vnguge pnish lovkin lovenin wedish erin urkish krinin pper orin elsh

yption@sA spnish slovk slovene swedish serin turkish ukrinin uppersorin welsh

por some lnguges babel supports the options activeacute nd activegraveY for typestting ussin textsD babel knows out the options LWN nd LCY to speify the fontenoding of the yrilli font usedF gurrently only LWN is supportedF

1.2 Workarounds
sf you use the doument lss book and you use \ref inside the rgument of A \chapterD v i will keep omplining out n unde(ned lelF he reson is tht the rgument of \ref is pssed through \uppercase t some time during proessingF o prevent suh prolemsD you ould revert to using upperse lelsD or you n use \lowercase{\ref{foo}} inside the rgument of \chapterF

A Changes for L TEX 2

A ith the dvent of v i P the interfe to babel in the premle of the doument A hs hngedF ith v iPFHW one used to ll up the babel system with line suh sX

doumentstyleduthDenglish{rtile}
A whih would tell v i tht the doument would e written in two lngugesD huth nd inglishD nd tht inglish would e the (rst lnguge in useF A he v i P wy of providing the sme informtion isX

doumentlss{rtile} usepkgeduthDenglish{el}

orD mking dutch nd english glol options in order to let other pkges detet nd use themX
doumentlssduthDenglish{rtile} usepkge{el} usepkge{vrioref}

sn this lst exmpleD the pkge varioref will lso see the options nd will e le to use themF

Changes in

Babel version 3.7

sn Babel version QFU numer of ugs tht were found in version QFT re (xedF elso numer of hnges nd dditions hve ourredX

horthnds re expndle ginF he disdvntge is tht one hs to type '{}a when the ute ent is used s shorthnd hrterF he dvntge is tht numer of other prolems @suh s the reking of ligturesD etFA hve vnishedF wo new ommndsD \shorthandon nd \shorthandoff hve een introE dued to enle to temporrily swith o' one or more shorthndsF upport for typesetting qreek hs een enhnedF gode from the kdgreek pkge @suggested y the uthorA ws dded nd \greeknumeral hs een ddedF upport for typesetting fsque is now ville thnks to tun eguirreE giriF upport for typesetting erin with vtin sript is now ville thnks to hejn wuhmedgi nd tnkovi loodnF upport for typesetting rerew @nd potentil support for typesetting other rightEtoEleft written lngugesA is now ville thnks to m orrt nd foris vvvF upport for typesetting fulgrin is now ville thnks to qeorgi foshE nkovF upport for typesetting vtin is now villeD thnks to gludio feri nd urzysztof uonrd elehowskiF upport for typesetting xorth mi is now villeD thnks to egnor ternslettenF he options canadianD canadien nd acadien hve een dded for gndin inglish nd prenh useF e lnguge ttriute hs een dded to the \mark... ommnds in order to mke sure tht qreek heder line omes out right on the lst pge efore lnguge swithF ryphention pttern (les re now red inside a group Y therefore ny hnges pttern (le needs to mke to lowerse odesD upperse odesD nd teE gory odes re kept lol to tht groupF sf they re needed for the lngugeD these hnges will need to e repeted nd stored in \extras... he onept of lnguge ttriutes is introduedF st is intended to give the user some ontrol over the fetures lngugeEde(nition (le providesF sts (rst use is for the qreek lngugeD where the user n hoose the o o o @olutoniko or multiEentedA qreek wy of typesetting textsF hese tE triutes will possily (nd wider use in future relesesF he environment hyphenrules is introduedF
IH

he syntx of the (le language.dat hs een extended to llow @optionllyA speifying the font enoding to e used while proessing the ptterns (leF he ommnd \providehyphenmins should now e used in lnguge de(E nition (les in order to e le to keep ny settings provided y the pttern (leF

Changes in

Babel version 3.6

sn Babel version QFT numer of ugs tht were found in version QFS re (xedF elso numer of hnges nd dditions hve ourredX

e new environment otherlanguage* is introduedF it only swithes the speE ils9D ut leves the ptions9 untouhedF he shorthnds re no longer fully expndleF ome prolems ould only e solved y peeking t the token following n tive hrterF he dvntge is tht '{}a works s expeted for lnguges tht hve the ' tiveF upport for typesetting frenh texts is muh enhnedY the (le francais.ldf is now repled y frenchb.ldf whih is mintined y hniel plipoF upport for typesetting the russin lnguge is gin villeF he lnE guge de(nition (le ws originlly developed y ylg vpko from gyrqF he fonts needed to typeset the russin lnguge re now prt of the babel distriutionF he support is not yet up to the level whih is needed ording to ylgD ut this is strtF upport for typesetting greek texts is now lso villeF ht is o'ered in this relese is (rst ttemptY it will e enhned lter on y nnis rrlmousF in babel QFTj some hooks hve een dded for the development of support for rerew typesettingF upport for typesetting texts in efrikns @ vrint of huthD spoken in outh efriA hs een dded to dutch.ldfF upport for typesetting elsh texts is now villeF e new ommnd \aliasshorthand is introduedF st seems tht in olnd vrious onventions re used to type the neessry olish lettersF st is now possile to use the hrter / s shorthnd hrter insted of the hrE ter "D y issuing the ommnd \aliasshorthand{"}{/}F he shorthnd mehnism now dels orretly with hrters tht re lE redy tiveF horthnd hrters re mde tive t \begin{document}D not erlierF his is to prevent prolems with other pkgesF e preambleonly ommnd \substitutefontfamily hs een dded to reE te .fd (les on the )y when the font fmilies of the vtin text di'er from the fmilies used for the gyrilli or qreek prts of the textF
II

hree new ommnds \LdfInitD \ldf@quit nd \ldf@finish re introE dued tht perform numer of stndrd tsksF sn el QFTk the lnguge krinin hs een dded nd the support for ussin typesetting hs een dpted to the pkge 9yrilli9 to e relesed A with the heemer IWWV relese of v i P F

Changes in

Babel version 3.5

sn Babel version QFS lot of hnges hve een mde when ompred with the previous releseF rere is list of the most importnt onesX

the seletion of the lnguge is delyed until \begin{document}D whih mens you must dd pproprite \selectlanguage ommnds if you inE lude \hyphenation lists in the premle of your doumentF babel now hs language environment nd new ommnd \foreignlanguageY the wy tive hrters re delt with is ompletely hngedF hey re lled shorthnds9Y one n hve three levels of shorthndsX on the user levelD the lnguge levelD nd on system level9F e onsequene of the new wy of hndling tive hrters is tht they re now written to uxiliry (les vertim9Y e lnguge hnge now lso writes informtion in the .aux (leD s the hnge might lso 'et typesetting the tle of ontentsF he onsequene is tht n Fux (le generted y ve formt with el preloded gives errors when red with ve formt without elY ut s think this proly doesn9t ourY babel is now omptile with the inputenc nd fontenc pkgesY the lnguge de(nition (les now hve new extensionD ldfY the syntx of the (le language.dat is extended to e omptile with the french pkge y fernrd qulleY eh lnguge de(nition (le looks for on(gurtion (le whih hs the sme A nmeD ut the extension .cfgF st n ontin ny vlid v i odeF

The interface between the core of language denition les

babel and the

ddlnguge

dddilet

sn the ore of the babel systemD severl mros re de(ned for use in lnguge de(nition (lesF heir purpose is to mke new lnguge knownF he mro \addlanguage is nonEouter version of the mro \newlanguageD de(ned in plain.tex version QFxF por older versions of plain.tex nd lplain.tex sustitute de(nition is usedF he mro \adddialect n e used when two lnguges n @or mustA use the sme hyphention ptternsF his n lso e useful for lnguges for whih no ptterns re preloded in the formtF sn suh ses the defult ehviour of IP

the babel system is to de(ne this lnguge s dilet9 of the lnguge for whih the ptterns were loded s \language0F he lnguge de(nition (les must onform to numer of onventionsD euse these (les hve to (ll in the gps left y the ommon ode in babel.defD iF eFD the de(nitions of the mros tht produe textsF elso the lngugeEswithing possiility whih hs een uilt into the babel system hs its implitionsF he following ssumptions re mdeX

ome of the lngugeEspei( de(nitions might e used y plin i usersD A so the (les hve to e oded so tht they n e red y oth v i nd plin iF he urrent formt n e heked y looking t the vlue of the mro \fmtnameF he ommon prt of the babel system rede(nes numer of mros nd environments @de(ned previously in the doument styleA to put in the nmes of mros tht reple the previously hrdEwired textsF hese mros hve to e de(ned in the lnguge de(nition (lesF he lnguge de(nition (les de(ne (ve mrosD used to tivte nd detiE vte the lngugeEspei( de(nitionsF hese mros re \ lang hyphenminsD \captions lang D \date lang D \extras lang nd \noextras lang Y where lang is either the nme of the lnguge de(nition (le or the nme of the A v i option tht is to e usedF hese mros nd their funtions re disE ussed elowF hen lnguge de(nition (le is lodedD it n de(ne \l@ dilet of \language0 when \l@ lang is unde(nedF
lang

to e

he lnguge de(nition (les n e red in the premle of the doumentD ut lso in the middle of doument proessingF his mens tht they hve to funtion independently of the urrent \catcode of the @ signF
providehyphenmins

lnghyphenmins ptionslng dtelng extrslng noextrslng

lddelredttriute

mindlnguge

he mro \providehyphenmins should e used in the lnguge de(nition (les to set the \lefthyphenmin nd \righthyphenminF his mro will hek whether these prmeters were provided y the hyphention (le efore it tkes ny tionF he mro \ lang hyphenmins is used to store the vlues of the \lefthyphenmin nd \righthyphenminF he mro \captions lang de(nes the mros tht hold the texts to reple the originl hrdEwired textsF he mro \date lang de(nes \today nd he mro \extras lang ontins ll the extr de(nitions needed for spei( lngugeF feuse we wnt to let the user swith etween lngugesD ut we do not know wht stte i might e in fter the exeution of \extras lang D mro tht rings i into prede(ned stte is neededF st will e no surprise tht the nme of this mro is \noextras lang F his is ommnd to e used in the lnguge de(nition (les for delring lnguge ttriuteF st tkes three rgumentsX the nme of the lngugeD the ttriute to e de(nedD nd the ode to e exeuted when the ttriute is to e usedF o postpone the tivtion of the de(nitions needed for lnguge until the eginning of doumentD ll lnguge de(nition (les should use \main@language IQ

rovidesvnguge

vdfsnit

ldfdquit

ldfdfinish

lodlolfg

sustitutefontfmily

insted of \selectlanguageF his will just store the nme of the lngugeD nd the proper lnguge will e tivted t the strt of the doumentF he mro \ProvidesLanguage should e used to identify the lnguge A de(nition (lesF sts syntx is similr to the syntx of the v i ommnd \ProvidesPackageF he mro \LdfInit performs ouple of stndrd heks tht must e mde t the eginning of lnguge de(nition (leD suh s heking the tegory ode of the dEsignD preventing the .ldf (le from eing proessed twieD etF he mro \ldf@quit does work needed if .ldf (le ws proessed erlierF his inludes resetting the tegory ode of the dEsignD prepring the lnguge to e tivted t \begin{document} timeD nd ending the input stremF he mro \ldf@finish does work needed t the end of eh .ldf (leF his inludes resetting the tegory ode of the dEsignD loding lol on(gurtion (leD nd prepring the lnguge to e tivted t \begin{document} timeF A efter proessing lnguge de(nition (leD v i n e instruted to lod lol on(gurtion (leF his (le nD for instneD e used to dd strings to \captions lang to support lol doument lssesF he user will e informed tht this on(gurtion (le hs een lodedF his mro is lled y \ldf@finishF his ommnd tkes three rgumentsD font enoding nd two font fmily nmesF st retes font desription (le for the (rst font in the given enodingF A his .fd (le will instrut v i to use font from the seond fmily when font from the (rst fmily in the given enoding seems to e neededF

6.1 Support for active characters


inititedtivedhr

ldtivte lddetivte

delredshorthnd

lddddspeil ldremovedspeil

sn quite numer of lnguge de(nition (lesD tive hrters re introduedF o filitte thisD some support mros re providedF he internl mro \initiate@active@char is used in lnguge de(nition (les A to instrut v i to give hrter the tegory ode tive9F hen hrter hs een mde tive it will remin tht wy until the end of the doumentF sts de(nition my vryF he ommnd \bbl@activate is used to hnge the wy n tive hrter expndsF \bbl@activate swithes on9 the tive ehviour of the hrterF \bbl@deactivate lets the tive hrter expnd to its former @mostlyA nonE tive selfF he mro \declare@shorthand is used to de(ne the vrious shorthndsF st tkes three rgumentsX the nme for the olletion of shorthnds this de(nition elongs toY the hrter @sequeneA tht mkes up the shorthndD iFeF ~ or "aY nd the ode to e exeuted when the shorthnd is enounteredF he iook sttesX lin i inludes mro lled \dospecials tht is essentilly set mroD representing the set of ll hrters tht hve speE il tegory odeF ID pF QVH st is used to set text vertim9F o mke this work if more hrters get speil tegory odeD you hve to dd this hrE A ter to the mro \dospecialF v i dds nother mro lled \@sanitize representing the sme hrter setD ut without the urly resF he mros \bbl@add@special char nd \bbl@remove@special char dd nd remove the hrter char to these two setsF

IR

6.2 Support for saving macro denitions


vnguge de(nition (les my wnt to re de(ne mros tht lredy existF herefor mehnism for sving @nd restoringA the originl de(nition of those mros is providedF e provide two mros for this1 F o sve the urrent mening of ny ontrol sequeneD the mro \babel@save is providedF st tkes one rgumentD csname D the ontrol sequene for whih the mening hs to e svedF e seond mro is provided to sve the urrent vlue of vrileF sn this ontextD nything tht is llowed fter the \the primitive is onsidered to e vrileF he mro tkes one rgumentD the variable F he e'et of the preeding mros is to ppend piee of ode to the urrent de(nition of \originalTeXF hen \originalTeX is expndedD this ode restores the previous de(nition of the ontrol sequene or the previous vlue of the vrileF

eldsve

eldsvevrile

6.3 Support for extending macros


ddto

he mro \addto{ control sequence }{ TEX code } n e used to extend the de(nition of mroF he mro need not e de(nedF his mro nD for instneD e used in dding instrutions to mro like \extrasenglishF

6.4 Macros common to a number of languages


llowhyphens

setdlowdox

svedsfdq

ldfrenhsping ldnonfrenhsping

sn ouple of iuropen lnguges ompound words re usedF his mens tht when i hs to hyphente suh ompound wordD it only does so t the -9 tht is used in suh wordsF o llow hyphention in the rest of suh ompound wordD the mro \allowhyphens n e usedF por some lngugesD quotes need to e lowered to the selineF por this purE pose the mro \set@low@box is villeF st tkes one rgument nd puts tht rgument in n \hboxD t the selineF he result is ville in \box0 for further proessingF ometimes it is neessry to preserve the \spacefactorF por this purpose the mro \save@sf@q is villeF st tkes one rgumentD sves the urrent speftorD exeutes the rgumentD nd restores the speftorF he ommnds \bbl@frenchspacing nd \bbl@nonfrenchspacing n e used to properly swith prenh sping on nd o'F

Compatibility with german.sty

he (le german.sty hs een one of the soures of inspirtion for the babel sysE temF feuse of this s wnted to inlude german.sty in the babel systemF o e le to do tht s hd to llow for one inomptiilityX in the de(nition of the mro \selectlanguage in german.sty the rgument is used s the number for n \ifcaseF o in this se ll to \selectlanguage might look like \selectlanguage{\german}F sn the de(nition of the mro \selectlanguage in babel.def the rgument is used s prt of other mronmesD so ll to \selectlanguage now looks
1 This
mechanism was introduced by Bernd Raichle.

IS

like \selectlanguage{german}F xotie the sene of the espe hrterF es of version QFI of babel oth syntxes re llowedF ell other fetures of the originl german.sty hve een opied into new (leD lled germanb.sty2 F A elthough the babel system ws developed to e used with v iD some of the fetures implemented in the lnguge de(nition (les might e needed y plin i usersF gre hs een tken tht ll (les in the system n e proessed y plin iF

Compatibility with ngerman.sty

hen used with the options ngerman or naustrianD babel will provide ll fetures of the pkge ngermanF here is however one exeptionX he ommnds for speil hyphention of doule onsonnts @"ff etFA nd k @"ckAD whih re no longer required with the new qermn orthogrphyD re unde(nedF ith the ngerman pkgeD howeverD these ommnds will generte pproprite wrning messges onlyF

Compatibility with the french package

st hs een reported to me tht the pkge french y fernrd qulle @gaulle@idris.frA works together with babelF yn the other hndD it seems not to work well together with lot of other pkgesF herefore s hve deided to no longer lod french.ldf y defultF snstedD when you wnt to use the pkge y fernrd qulleD you will hve to request it spei(llyD y pssing either frenchle or frenchpro s n option to babelF

10

Identication

A he (le babel.sty3 is ment for v i P D therefor we mke sure tht the formt (le used is the right oneF

rovidesvnguge

A he identi(tion ode for eh (le is something tht ws introdued in v i P F hen the ommnd \ProvidesFile does not existD dummy de(nition is provided temporrilyF por use in the lnguge de(nition (le the ommnd \ProvidesLanguage is de(ned y babelF

!package ifxrovidespiledundefined 10.3 defrovidespile5I5P 5Q 5R{7 10.4 wlog{pileX 5I 5R 5Q `5Pb}7 10.5 kernel & patterns 10.6 \toks8{Babel <#3> and hyphenation patterns for }% 10.7 /kernel & patterns 10.8 letrovidespiledundefined 10.9 }
10.1 10.2

2 The 3 The

`b' is added to the name to distinguish the le from Partls' le. le described in this section is called

babel.dtx,

has version number v3.8l and was last

revised on 2008/03/16.

IT

es n lterntive for \ProvidesFile we de(ne \ProvidesLanguage here to e used in the lnguge de(nition (lesF
10.10

kernel \def\ProvidesLanguage#1[#2 #3 #4]{% 10.12 \wlog{Language: #1 #4 #3 <#2>}% 10.13 } 10.14 \else


10.11

sn this se we sve the originl de(nition of \ProvidesFile in \bbl@tempa nd restore it fter we hve stored the version of the (le in \toks8F
10.15 10.16 10.17 10.18 10.19 10.20 10.21

kernel & patterns \let\bbl@tempa\ProvidesFile \def\ProvidesFile#1[#2 #3 #4]{% \toks8{Babel <#3> and hyphenation patterns for }% \bbl@tempa#1[#2 #3 #4]% \let\ProvidesFile\bbl@tempa} /kernel & patterns

hen \ProvidesFile is de(ned we give \ProvidesLanguage similr de(nitionF


\def\ProvidesLanguage#1{% \begingroup 10.24 \catcode`\ 10 % 10.25 \@makeother\/% 10.26 \@ifnextchar[%] 10.27 {\@provideslanguage{#1}}{\@provideslanguage{#1}[]}} 10.28 \def\@provideslanguage#1[#2]{% 10.29 \wlog{Language: #1 #2}% 10.30 \expandafter\xdef\csname ver@#1.ldf\endcsname{#2}% 10.31 \endgroup} 10.32 /kernel 10.33 fi 10.34 /!package
10.22 10.23

sdentify eh (le tht is produed from this soure (leF


10.35 10.36 10.37 10.38 10.39 10.40 10.41 10.42 10.43 10.44 10.45

+package rovideskge{el} +core rovidespile{elFdef} +kernel & patterns rovidespile{hyphenFfg} +kernel&!patterns rovidespile{swithFdef} +driver&!user rovidespile{elFdrv} +driver & user rovidespile{userFdrv} PHHVGHUGHT vQFVl 7 +package he fel pkge +core fel ommon definitions +kernel fel lnguge swithing mehnism +driver

11

The Package File

A sn order to mke use of the fetures of v i P D the babel system ontins pkge (leD babel.styF his (le is loded y the \usepackage ommnd nd de(nes ll the lnguge options known in the babel systemF st lso tkes re of numer of omptiility issues with other pkgesF

IU

11.1 Language options


11.1 11.2

package ifxvdfsnitdundefinedinput elFdefrelxfi

helreyption{din}{input{frenhFldf}} 11.4 helreyption{lnin}{input{lninFldf}} 11.5 helreyption{frikns}{input{duthFldf}} 11.6 helreyption{merin}{input{englishFldf}} 11.7 helreyption{ustrlin}{input{englishFldf}}


11.3

por ll the lnguges supported we need to delre n optionF

helreyption{ustrin}{input{germnFldf}} helreyption{hs}{input{hsiFldf}} 11.10 helreyption{indonesin}{input{hsiFldf}} 11.11 helreyption{indon}{input{hsiFldf}} 11.12 helreyption{hsi}{input{hsiFldf}} 11.13 helreyption{mly}{input{hsmFldf}} 11.14 helreyption{meylu}{input{hsmFldf}} 11.15 helreyption{hsm}{input{hsmFldf}} 11.16 helreyption{sque}{input{squeFldf}} 11.17 helreyption{rzil}{input{portugesFldf}}
11.8 11.9 11.18 11.19 11.20 11.21

eustrin is relly dilet of qermnF

helreyption{rzilin}{input{portugesFldf}} helreyption{reton}{input{retonFldf}}

helreyption{ritish}{input{englishFldf}} helreyption{ulgrin}{input{ulgrinFldf}} 11.22 helreyption{ndin}{input{englishFldf}} 11.23 helreyption{ndien}{input{frenhFldf}} 11.24 helreyption{tln}{input{tlnFldf}} 11.25 helreyption{rotin}{input{rotinFldf}} 11.26 helreyption{zeh}{input{zehFldf}} 11.27 helreyption{dnish}{input{dnishFldf}} 11.28 helreyption{duth}{input{duthFldf}} helreyption{english}{input{englishFldf}} helreyption{espernto}{input{esperntoFldf}} 11.31 helreyption{estonin}{input{estoninFldf}} 11.32 helreyption{finnish}{input{finnishFldf}}
11.29 11.30

he babel support or prenh used to e stored in francais.ldfY therefor the A v iPFHW option used to e francaisF he hyphention ptterns my e loded s either frenh9 or s frnis9F
11.33 11.34

helreyption{frnis}{input{frenhFldf}} helreyption{frenh}{input{frenhFldf}}

helreyption{frenh}{input{frenhFldf}}7 helreyption{gliin}{input{gliinFldf}} 11.37 helreyption{germn}{input{germnFldf}} 11.38 helreyption{germn}{input{germnFldf}} 11.39 helreyption{greek}{input{greekFldf}} 11.40 helreyption{polutonikogreek}{7 11.41 input{greekFldf}7 11.42 lngugettriute{greek}{polutoniko}}
11.35 11.36

A ith v i P we n now lso use the option french nd still ll the (le frenchb.ldfF

IV

helreyption{herew}{7 input{rlelFdef}7 11.45 input{herewFldf}}


11.43 11.44

helreyption{hungrin}{input{mgyrFldf}} helreyption{ielndi}{input{ielndiFldf}} 11.48 helreyption{interlingu}{input{interlinguFldf}} 11.49 helreyption{irish}{input{irishFldf}} 11.50 helreyption{itlin}{input{itlinFldf}} 11.51 helreyption{ltin}{input{ltinFldf}} 11.52 helreyption{lowersorin}{input{lsorinFldf}} 11.53 7ehelreyption{knnd}{input{knndFldf}} 11.54 helreyption{mgyr}{input{mgyrFldf}} 11.55 7ehelreyption{ngri}{input{ngriFldf}}
11.46 11.47

hungarian is just synonym for magyar

helreyption{nustrin}{input{ngermnFldf}} helreyption{newzelnd}{input{englishFldf}} 11.58 helreyption{ngermn}{input{ngermnFldf}} 11.59 helreyption{norsk}{input{norskFldf}} 11.60 helreyption{smin}{input{sminFldf}}


11.56 11.57

xew9 qermn orthogrphyD inluding eustrin vrintX

helreyption{nynorsk}{input{norskFldf}} helreyption{polish}{input{polishFldf}} 11.63 helreyption{portuges}{input{portugesFldf}} 11.64 helreyption{portuguese}{input{portugesFldf}} 11.65 helreyption{romnin}{input{romninFldf}} 11.66 helreyption{russin}{input{russinFldf}} 11.67 7ehelreyption{snskrit}{input{snskritFldf}} 11.68 helreyption{sottish}{input{sottishFldf}} 11.69 helreyption{serin}{input{serinFldf}} 11.70 helreyption{slovk}{input{slovkFldf}} 11.71 helreyption{slovene}{input{sloveneFldf}} 11.72 helreyption{spnish}{input{spnishFldf}} 11.73 helreyption{swedish}{input{swedishFldf}} 11.74 7ehelreyption{tmil}{input{tmilFldf}} 11.75 helreyption{turkish}{input{turkishFldf}} 11.76 helreyption{ukrinin}{input{ukrineFldf}} 11.77 helreyption{uppersorin}{input{usorinFldf}} 11.78 helreyption{welsh}{input{welshFldf}}
11.61 11.62 11.79 11.80

por xorwegin two spelling vrints re providedF

helreyption{uenglish}{input{englishFldf}} helreyption{english}{input{englishFldf}}

helreyptionB{7 snputsfpileixists{gurrentyptionFldf}{}{7 11.83 kgeirror{el}{7 11.84 vnguge definition file gurrentyptionFldf not found}{7 11.85 wye you misspelled the lnguge optionc}}7 11.86 }
11.81 11.82

por ll those lnguges for whih the option nme is the sme s the nme of the lnguge spei( (le we speify defult optionD whih tries to lod the (le spei(edF sf this doesn9t sueed n error is signlledF

enother wy to extend the list of known9 options for babel is to rete the (le bblopts.cfg in whih one n dd option delrtionsF IW

snputsfpileixists{loptsFfg}{7 typeout{BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBt7 11.89 B vol onfig file loptsFfg usedt7 11.90 B}7 11.91 }{}
11.87 11.88

eprt from ll the lnguge options we lso hve few options tht in)uene the ehviour of lnguge de(nition (lesF he following options don9t do nything themselvesD they re just de(ned in order to mke it possile for lnguge de(nition (les to hek if one of them ws spei(ed y the userF
11.92 11.93

helreyption{tiveute}{} helreyption{tivegrve}{}

he next option tells babel to leve shorthnd hrters tive t the end of proessing the pkgeF his is not the defult s it n use prolems with other pkgesD ut for those who wnt to use the shorthnd hrters in the premle of their douments this n helpF
11.94

helreyption{ueephorthndsetive}{} roessyptionsB

he options hve to e proessed in the order in whih the user spei(ed themX

11.95

ifxldmindlngugedundefined kgeirror{el}{7 11.98 ou hven9t speified lnguge option}{7 11.99 ou need to speify lngugeD either s glol 11.100 optionwessgefrek 11.101 or s n optionl rgument to the stringusepkgespe 11.102 ommndY wessgefrek 11.103 ou shouldn9t try to proeed from hereD type x to quitF}
11.96 11.97

sn order to th the se where the user forgot to speify lnguge we hek whether \bbl@main@languageD hs eome de(nedF sf notD no lnguge hs een loded nd n error messge is displyedF

o prevent unde(ned ommnd errors when the user insists on ontinuing we lod babel.def hereF re should expet more errors thoughF
11.104 11.105

input{elFdef} fi

sustitutefontfmily

he ommnd \substitutefontfamily retes n .fd (le on the )yF he (rst rgument is n enoding mnemoniD the seond nd third rguments re font fmily nmesF

defsustitutefontfmily5I5P5Q{7 lowerse{immediteopenoutISa5I5PFfdrelx}7 11.108 immeditewriteIS{7 11.109 stringrovidespile{5I5PFfd}7 11.110 theyerGtwoddigits{themonth}Gtwoddigits{thedy} 11.111 spe generted font desription filet 11.112 stringhelrepontpmily{5I}{5P}{}t 11.113 stringhelreponthpe{5I}{5P}{m}{n}{`Ebssu B 5QGmGn}{}t 11.114 stringhelreponthpe{5I}{5P}{m}{it}{`Ebssu B 5QGmGit}{}t 11.115 stringhelreponthpe{5I}{5P}{m}{sl}{`Ebssu B 5QGmGsl}{}t 11.116 stringhelreponthpe{5I}{5P}{m}{s}{`Ebssu B 5QGmGs}{}t 11.117 stringhelreponthpe{5I}{5P}{}{n}{`Ebssu B 5QGxGn}{}t 11.118 stringhelreponthpe{5I}{5P}{}{it}{`Ebssu B 5QGxGit}{}t 11.119 stringhelreponthpe{5I}{5P}{}{sl}{`Ebssu B 5QGxGsl}{}t
11.106 11.107

PH

11.120 11.121 11.122 11.123

stringhelreponthpe{5I}{5P}{}{s}{`Ebssu B 5QGxGs}{}t }7 loseoutIS } donlypremlesustitutefontfmily


/package

his ommnd should only e used in the premle of doumentF


11.124

11.125

12

The Kernel of Babel

he kernel of the babel system is stored in either hyphen.cfg or switch.def nd babel.defF he (le hyphen.cfg is (le tht n e loded into the formtD whih is neessry when you wnt to e le to swith hyphention ptternsF he (le babel.def ontins some i ode tht n e red in t run timeF hen babel.def is loded it heks if hyphen.cfg is in the formtY if not the (le switch.def is lodedF feuse plin i users might wnt to use some of the fetures of the babel system tooD re hs to e tken tht plin i n proess the (lesF por this reson the urrent formt will hve to e heked in numer of plesF ome A A of the ode elow is ommon to plin i nd v iD some of it is for the v i se onlyF hen the ommnd \AtBeginDocument doesn9t exist we ssume tht we re deling with plinEsed formtF sn tht se the (le plain.def is neededF
12.1 12.2

kernel | core ifxetfeginhoumentdundefined

fut we need to use the seond prt of plain.def @when we lod it from switch.defA whih we n do y de(ning \adddialectF
kernel&!patterns \def\adddialect{} input plinFdefrelx 12.5 fi 12.6 /kernel | core
12.3 12.4

ghek the presene of the ommnd \iflanguageD if it is unde(ned red the (le switch.defF
core ifxiflngugedundefined 12.9 input swithFdefrelx 12.10 fi 12.11 /core
12.7 12.8

12.1 Encoding issues (part 1)


he (rst thing we need to do is to determineD t \begin{document}D whih ltin fontenoding to useF
ltinenoding

hen text is eing typeset in n enoding other thn ltin9 @OT1 or T1AD it would e nie to still hve omn numerls ome out in the vtin enodingF o we (rst ssume tht the urrent enoding t the end of proessing the pkge is the vtin enodingF PI

12.12 12.13

core etindyfkge{edefltinenoding{fdenoding}}

fut this might e overruled with lter loding of the pkge fontencF herefor we hek t the exeution of \begin{document} whether it ws loded with the T1 optionF he norml wy to do this @using \@ifpackageloadedA is disled for this pkgeF xow we hve to revert to prsing the internl mro \@filelist whih ontins ll the (lenmes lodedF
etfeginhoument{7 gdefltinenoding{yI}7 12.16 ifxfdenodingldtdone 12.17 xdefltinenoding{ldtdone}7 12.18 else 12.19 difldded{def}{tIen}{xdefltinenoding{ldtdone}}{}7 12.20 fi 12.21 }
12.14 12.15

ltintext

hen we n de(ne the ommnd \latintext whih is delrtive swith to ltin fontEenodingF

helreoustgommnd{ltintext}{7 fontenoding{ltinenoding}seletfont 12.24 defenodingdefult{ltinenoding}}


12.22 12.23

textltin

his ommnd tkes n rgument whih is then typeset using the requested font enodingF sn order to void mny enoding swithes it opertes in lol sopeF

ifxdundefinedhelreextpontgommnd helreoustgommnd{textltin}I{levevmode{ltintext 5I}} 12.27 else 12.28 helreextpontgommnd{textltin}{ltintext} 12.29 fi 12.30 /core
12.25 12.26

e lso need to rede(ne numer of ommnds to ensure tht the right font enoding is usedD ut this n9t e done efore babel.def is lodedF

12.2 Multiple languages


ith i version QFH it hs eome possile to lod hyphention ptterns for more thn one lngugeF his mens tht some extr dministrtion hs to e tken re ofF he user hs to know for whih lnguges ptterns hve een lodedD nd wht vlues of \language hve een usedF ome disussion hs een going on in the i world out how to use \languageF ome hve suggested to set (xed stndrdD iF eFD ptterns for eh lnguge should always e loded in the sme lotionF st hs lso een suggested to use the iso list for this purposeF ythers hve pointed out tht the iso list ontins more thn PST lngugesD whih hve not een numered onseutivelyF s think the est wy to use \languageD is to use it dynmillyF his ode implements n lgorithm to do soF st uses n externl (le in whih the person who mintins i environment hs to reord for whih lnguges he hs hyphenE tion ptterns and in whih (les these re stored4 F hen hyphention exeptions
4 This
tions. is because dierent operating systems sometimes use

very

dierent le-naming conven-

PP

re stored in seprte (le this n e indited y nming tht (le after the (le with the hyphention ptternsF his on(gurtion (le n ontin empty lines nd ommentsD s well s A lines whih strt with n equls @=A signF uh line will instrut v i tht the hyphention ptterns just proessed hve to e known under n lterntive nmeF rere is n exmpleX
7 pile X lngugeFdt 7 urpose X tell inie wht files with ptterns to lodF english englishFhyphentions aritish duth hyphenFduth exeptionsFduth 7 xederlnds germn hyphenFger

es the (le switch.def needs to e red only oneD we hek whether it ws red eforeF sf it wsD the ommnd \iflanguage is lredy de(nedD so we n stop proessingF
kernel !patterns 12.33 \expandafter\ifx\csname iflanguage\endcsname\relax \else 12.34 \expandafter\endinput 12.35 \fi 12.36 /!patterns
12.31 12.32

lnguge

lin i version QFH provides the primitive \language tht is used to store the urrent lngugeF hen used with preEQFH version this funtion hs to e implemented y lloting ounterF

ifxlngugedundefined snme newountendsnmelnguge 12.39 fi


12.37 12.38

lstdlnguge

enother ounter is used to store the lst lnguge de(nedF por preEQFH formts n extr ounter hs to e llotedD
ifxnewlngugedundefined snme newountendsnmelstdlnguge

12.40 12.41

else ountdeflstdlngugeaIW 12.44 fi


12.42 12.43

plin i version QFH uses \count 19 for this purposeF

ddlnguge

o dd lnguges to i9s memory plin i version QFH supplies \newlanguageD in preEQFH environment similr mro hs to e providedF por oth ses new mro is de(ned hereD euse the originl \newlanguage ws de(ned to e \outerF por formt sed on plin version PFxD the de(nition of \newlanguage n not e opied euse \count 19 is used for other purposes in these formtsF herefor \addlanguage is de(ned using de(nition sed on the mros used to de(ne \newlanguage in plin i version QFHF
ifxnewlngugedundefined defddlnguge5I{7

12.45 12.46

PQ

12.47 12.48 12.49 12.50 12.51 12.52 12.53

gloldvnelstdlnguge dne ifnumlstdlnguge`dlvi else errmessge{xo room for new stringlnguge3}7 fi glolhrdef5Ilstdlnguge wlog{string5I a stringlngugethelstdlnguge}}

por formts sed on plin version QFH the de(nition of \newlanguage n e simply opiedD removing \outerF
else defddlnguge{llodWlngugehrdefdlvi} 12.56 fi
12.54 12.55

dddilet

he mro \adddialect n e used to dd the nme of dilet or vrint lngugeD for whih n lredy de(ned hyphention tle n e usedF

defdddilet5I5P{7 glolhrdef5I5Prelx 12.59 wlog{string5I a dilet from stringlnguge5P}}


12.57 12.58

iflnguge

sers might wnt to test @in privte pkge for instneA whih lnguge is urrently tiveF por this we provide test mroD \iflanguageD tht hs three rgumentsF st heks whether the (rst rgument is known lngugeF sf soD it ompres the (rst rgument with the vlue of \languageF henD depending on the result of the omprisonD it exeutes either the seond or the third rgumentF

defiflnguge5I{7 expndfterifxsnme ld5Iendsnmerelx 12.62 dnolnerr{5I}7 12.63 else 12.64 ldfterfi{ifnumsnme ld5Iendsnmealnguge 12.65 expndfterdfirstoftwo 12.66 else 12.67 expndfterdseondoftwo 12.68 fi}7 12.69 fi}
12.60 12.61

seletlnguge

he mro \selectlanguage heks whether the lnguge is lredy de(ned efore it performs its tul tskD whih is to updte \language nd tivte lngugeEspei( de(nitionsF o llow the ll of \selectlanguage either with ontrol sequene nme or with simple string s rgumentD we hve to use trik to delete the optionl espe hrterF o onvert ontrol sequene to stringD we use the \string primitiveF xext we hve to look t the (rst hrter of this string nd ompre it with the espe hrterF feuse this espe hrter n e hnged y setting the internl integer \escapechar to hrter numerD we hve to ompre this numer with the hrter of the stringF o do this we hve to use i9s kquote nottion to speify the hrter s numerF sf the (rst hrter of the \string9ed rgument is the urrent espe hrE terD the omprison hs stripped this hrter nd the rest in the then9 prt onsists of the rest of the ontrol sequene nmeF ytherwise we know tht either PR

the rgument is not ontrol sequene or \escapechar is set to vlue outside of the hrter rnge 0!255F sf the user gives n empty rgumentD we provide defult rgument for \stringF his rgument should expnd to nothingF
edefseletlnguge{7 noexpndprotet 12.72 expndfternoexpndsnme seletlnguge endsnme 12.73 }
12.70 12.71

feuse the ommnd \selectlanguage ould e used in moving rgument it expnds to \protect\selectlanguage F hereforD we hve to mke sure tht mro \protect existsF sf it doesn9t it is \let to \relaxF
12.74

ifxdundefinedprotetletprotetrelxfi

A A es v i PFHW writes to (les expanded wheres v i P tkes re not to expnd the rguments of \write sttements we need to e it lever out the wy we dd informtion to .aux (lesF herefor we introdue the mro \xstring whih should expnd to the right mount of \string9sF

ifxdoumentlssdundefined defxstring{stringstringstring} 12.77 else 12.78 letxstringstring 12.79 fi


12.75 12.76

ine version QFS babel writes entries to the uxiliry (les in order to typeset tle of ontents etF in the orret lnguge environmentF
ldpopdlnguge

when the lnguge hnge hppens inside group the end of the group doesn9t write nything to the uxiliry (lesF herefor we need i9s aftergroup mehnism to help usF he ommnd \aftergroup stores the token immeditely following it to e exeuted when the urrent group is losedF o we de(ne temporry ontrol sequene \bbl@pop@language to e exeuted t the end of the groupF st lls \bbl@set@language with the nme of the urrent lnguge s its rgumentF
But

ldlngugedstk

he previous solution works for one level of nesting groupsD ut s soon s more levels re used it is no longer dequteF por tht se we need to keep trk of the nested lnguges using stk mehnismF his stk is lled \bbl@language@stack nd initilly emptyF
xdefldlngugedstk{}

12.80

hen using stk we need mehnism to push n element on the stk nd to retrieve the informtion fterwrdsF
ldpushdlnguge ldpopdlnguge

he stk is simply list of lngugenmesD seprted with C9 signY the push funtion n e simpleX

defldpushdlnguge{7 xdefldlngugedstk{lngugenmeCldlngugedstk}7 12.83 }


12.81 12.82

etrieving informtion from the stk is little it less simpleD s we need to remove the element from the stk while storing it in the mro \languagenameF por this we (rst de(ne helper funtionF

PS

ldpopdlng

his mro stores its (rst element @whih is delimited y the C9EsignA in \languagename nd stores the rest of the string @delimited y E9A in its third rgumentF

defldpopdlng5IC5PE5Q{7 deflngugenme{5I}xdef5Q{5P}7 12.86 }


12.84 12.85

he reson for the somewht weird rrngement of rguments to the helper funE tion is the ft it is lled in the following wyX
12.87 12.88

defldpopdlnguge{7 expndfterldpopdlngldlngugedstkEldlngugedstk

his mens tht efore \bbl@pop@lang is exeuted i (rst expands the stkD stored in \bbl@language@stackF he result of tht is tht the rgument string of \bbl@pop@lang ontins one or more lnguge nmesD eh followed y C9Esign @zero lnguge nmes won9t our s this mro will only e lled fter something hs een pushed on the stkA followed y the E9Esign nd (nlly the referene to the stkF
66 expndfterldsetdlngugeexpndfter{lngugenme}7 12.91 }
12.89 12.90

yne the nme of the previous lnguge is retrieved from the stkD it is fed to \bbl@set@language to do the tul work of swithing everything tht needs swithingF
expndfterdefsnme seletlnguge endsnme5I{7 ldpushdlnguge 12.94 ftergroupldpopdlnguge 12.95 ldsetdlnguge{5I}}
12.92 12.93

ldsetdlnguge

he mro \bbl@set@language tkes re of swithing the lnguge environment and of writing entries on the uxiliry (lesF

defldsetdlnguge5I{7 edeflngugenme{7 12.98 ifnumespehraexpndfterstring5Idempty 12.99 else string5Idemptyfi}7 12.100 seletdlnguge{lngugenme}7


12.96 12.97

e lso write ommnd to hnge the urrent lnguge in the uxiliry (lesF
12.101 12.102 12.103 12.104 12.105 12.106

ifdfilesw proteteddwriteduxout{}{stringseletdlnguge{lngugenme}}7 ddtoontents{to}{xstringseletdlnguge{lngugenme}}7 ddtoontents{lof}{xstringseletdlnguge{lngugenme}}7 ddtoontents{lot}{xstringseletdlnguge{lngugenme}}7 fi}

pirstD hek if the user sks for known lngugeF sf soD updte the vlue of \language nd ll \originalTeX to ring i in ertin preEde(ned stteF
defseletdlnguge5I{7 expndfterifxsnme ld5Iendsnmerelx 12.109 dnolnerr{5I}7
12.107 12.108

PT

12.110 12.111 12.112 12.113 12.114 12.115

else expndfterifxsnme dte5Iendsnmerelx dnoopterr{5I}7 else ldptterns{lngugenme}7 originle

he nme of the lnguge is stored in the ontrol sequene \languagenameF he ontents of this ontrol sequene ould e tested in the following wyX
edeftmp{string english} ifxlngugenmetmp FFF else FFF fi

he onstrution with \string is neessry euse \languagename returns the nme with hrters of tegory ode 12 @otherAF hen we hve to re de(ne \originalTeX to ompenste for the things tht hve een tivtedF o sve memory spe for the mro de(nition of \originalTeXD we onstrut the ontrol sequene nme for the \noextras lang ommnd t de(nition time y expnding the \csname primitiveF
12.116 12.117 12.118

expndfterdefexpndfteroriginle expndfter{snme noextrs5Iendsnme letoriginledempty}7 lngugeshorthnds{none}7 eldeginsve

12.119 12.120

xow tivte the lngugeEspei( de(nitionsF his is done y onstruting the nmes of three mros y ontenting three words with the rgument of \selectlanguageD nd lling these mrosF
12.121 12.122 12.123

snme ptions5Iendsnme snme dte5Iendsnme snme extrs5Iendsnmerelx

he swithing of the vlues of \lefthyphenmin nd \righthyphenmin is someE wht di'erentF pirst we sve their urrent vluesD then we hek if \ lang hyphenmins is de(nedF sf it is notD we set defult vlues @P nd QAD otherwise the vlues in \ lang hyphenmins will e usedF
12.124 12.125 12.126 12.127 12.128 12.129 12.130 12.131 12.132 12.133

eldsvevrilelefthyphenmin eldsvevrilerighthyphenmin expndfterifxsnme 5Ihyphenminsendsnmerelx setdhyphenminstwdthrddrelx else expndfterexpndfterexpndftersetdhyphenmins snme 5Ihyphenminsendsnmerelx fi fi fi}

otherlnguge

he otherlanguage environment n e used s n lterntive to using the \selectlanguage delrtive ommndF hen you re typesetting doument PU

whih mixes leftEtoEright nd rightEtoEleft typesetting you hve to use this enviE ronment in order to let things work s you expet them toF he (rst thing this environment does is store the nme of the lnguge in \languagenameY it then lls \selectlanguage to swith on everything tht is needed for this lnguge he \ignorespaces ommnd is neessry to hide the environment when it is entered in horizontl modeF
longdefotherlnguge5I{7 snme seletlnguge endsnme{5I}7 12.136 ignorespes 12.137 }
12.134 12.135

he \endotherlanguage prt of the environment lls \originalTeX to restore @most ofA the settings nd tries to hide itself when it is lled in horizontl modeF
longdefendotherlnguge{7 originle 12.140 gloldignoretrueignorespes 12.141 }
12.138 12.139

otherlngugeB

he otherlanguage environment is ment to e used when lrge prt of text from di'erent lnguge needs to e typesetD ut without hnging the trnsltion of words suh s (gure9F his environment mkes use of \foreign@languageF

expndfterdefsnme otherlngugeBendsnme5I{7 foreigndlnguge{5I}7 12.144 }


12.142 12.143

et the end of the environment we need to swith o' the extr de(nitionsF he grouping mehnism of the environment will tke re of resetting the orret hyphention rulesF
expndfterdefsnme endotherlngugeBendsnme{7 snme noextrslngugenmeendsnme 12.147 }
12.145 12.146

foreignlnguge

he \foreignlanguage ommnd is nother sustitute for the \selectlanguage ommndF his ommnd tkes two rgumentsD the (rst rgument is the nme of the lnguge to use for typesetting the text spei(ed in the seond rgumentF nlike \selectlanguage this ommnd doesn9t swith everythingD it only swithes the hyphention rules nd the extr de(nitions for the lnguge spei(edF st does this within group nd ssumes the \extras lang ommnd doesn9t mke ny \global hngesF he oding is very similr to prt of \selectlanguageF

defforeignlnguge{protetsnme foreignlnguge endsnme} expndfterdefsnme foreignlnguge endsnme5I5P{7 12.150 egingroup 12.151 originle 12.152 foreigndlnguge{5I}7 12.153 5P7 12.154 snme noextrs5Iendsnme 12.155 endgroup 12.156 }
12.148 12.149

foreigndlnguge

his mro does the work for \foreignlanguage nd the otherlanguage* environE mentF
defforeigndlnguge5I{7

12.157

PV

pirst we need to store the nme of the lnguge nd hek tht it is known lngugeF
12.158 12.159 12.160 12.161

deflngugenme{5I}7 expndfterifxsnme ld5Iendsnmerelx dnolnerr{5I}7 else

sf it is we n selet the proper hyphention tle nd swith on the extr de(niE tions for this lngugeF
12.162 12.163

ldptterns{lngugenme}7 lngugeshorthnds{none}7 snme extrs5Iendsnme expndfterifxsnme 5Ihyphenminsendsnmerelx setdhyphenminstwdthrddrelx else expndfterexpndfterexpndftersetdhyphenmins snme 5Ihyphenminsendsnmerelx fi fi }

hen we set the leftE nd right hyphenmin vrilesF


12.164 12.165 12.166 12.167 12.168 12.169 12.170 12.171 12.172

ldptterns

his mro selets the hyphention ptterns y hnging the \language regisE terF sf speil hyphention ptterns re ville spei(lly for the urrent font enodingD use them insted of the defultF

defldptterns5I{7 lngugeaexpndfterifxsnme ld5IXfdenodingendsnmerelx 12.175 snme ld5Iendsnme 12.176 else 12.177 snme ld5IXfdenodingendsnme 12.178 firelx 12.179 }
12.173 12.174

hyphenrules

he environment hyphenrules n e used to selet just the hyphention rulesF his environment does not hnge \languagename nd when the hyphention rules spei(ed were not loded it hs no e'etF

defhyphenrules5I{7 expndfterifxsnme ld5Iendsnmedundefined 12.182 dnolnerr{5I}7 12.183 else 12.184 ldptterns{5I}7 12.185 lngugeshorthnds{none}7 12.186 expndfterifxsnme 5Ihyphenminsendsnmerelx 12.187 setdhyphenminstwdthrddrelx 12.188 else 12.189 expndfterexpndfterexpndftersetdhyphenmins 12.190 snme 5Ihyphenminsendsnmerelx 12.191 fi 12.192 fi 12.193 } 12.194 defendhyphenrules{}
12.180 12.181

PW

providehyphenmins

he mro \providehyphenmins should e used in the lnguge de(nition (les to provide default setting for the hyphention prmeters \lefthyphenmin nd \righthyphenminF sf the mro \ lang hyphenmins is lredy de(ned this omE mnd hs no e'etF

defprovidehyphenmins5I5P{7 expndfterifxsnme 5Ihyphenminsendsnmerelx 12.197 dnmedef{5Ihyphenmins}{5P}7 12.198 fi}


12.195 12.196

setdhyphenmins

his mro sets the vlues of \lefthyphenmin nd \righthyphenminF st expets two vlues s its rgumentF
defsetdhyphenmins5I5P{lefthyphenmin5Irighthyphenmin5P}

12.199

vdfsnit

his mro is de(ned in two versionsF he (rst version is to e prt of the kernel9 of babelD ieF the prt tht is loded in the formtY the seond version is de(ned in babel.defF he version in the formt just heks the tegory ode of the mpersnd nd then lods babel.defF

defvdfsnit{7 hrdefttodeatoded 12.202 todedaIIrelx 12.203 input elFdefrelx


12.200 12.201

he tegory ode of the mpersnd is restored nd the mro lls itself gin with the new de(nition from babel.def
12.204 12.205 12.206

todedattode letttoderelx vdfsnit} /kernel

he seond version of this mro tkes two rgumentsF he (rst rgument is the nme of the lnguge tht will e de(ned in the lnguge de(nition (leY the seond rgument is either ontrol sequene or string from whih ontrol sequene should e onstrutedF he existene of the ontrol sequene indites tht the (le hs een proessed eforeF et the strt of proessing lnguge de(nition (le we lwys hek the tegory ode of the mpersndF e mke sure tht it is letter9 during the proessing of the (leF
core defvdfsnit5I5P{7 12.209 hrdefttodeatoded 12.210 todedaIIrelx
12.207 12.208

enother hrter tht needs to hve the orret tegory ode during proessing of lnguge de(nition (les is the equls signD a9D euse it is sometimes used in onstrutions with the \let primitiveF herefor we store its urrent tode nd restore it lter onF
12.211 12.212

hrdefeqtodeatodea todeaaIPrelx

xow we hek whether we should perhps stop the proessing of this (leF o do this we (rst need to hek whether the seond rgument tht is pssed to \LdfInit is ontrol sequeneF e do tht y looking t the (rst token fter pssing #2 through stringF hen it is equl to \@backslashchar we re deling with ontrol sequene whih we n ompre with \@undefinedF QH

12.213 12.214 12.215 12.216 12.217

letldtemprelx expndfterifexpndfterdkslshhr expndfterdrstring5Pdnil ifx5Pdundefined else

sf soD we ll \ldf@quit @ut fter the end of this \if onstrutionA to set the min lngugeD restore the tegory ode of the dEsign nd ll \endinputF
12.218 12.219 12.220

defldtemp{ldfdquit{5I}} fi else expndfterifxsnme5Pendsnmerelx else defldtemp{ldfdquit{5I}} fi fi ldtemp ifxoriginledundefined letoriginledempty else originle fi}

hen #2 ws not ontrol sequene we onstrut one nd ompre it with \relaxF


12.221 12.222 12.223 12.224 12.225 12.226

pinlly we hek \originalTeXF


12.227 12.228 12.229 12.230 12.231

ldfdquit

his mro interrupts the proessing of lnguge de(nition (leF

defldfdquit5I{7 expndftermindlngugeexpndfter{5I}7 12.234 todedattode letttoderelx 12.235 todeaaeqtode leteqtoderelx 12.236 endinput 12.237 }
12.232 12.233

ldfdfinish

his mro tkes one rgumentF st is the nme of the lnguge tht ws de(ned in the lnguge de(nition (leF e lod the lol on(gurtion (le if one is presentD we set the min lnguge @tking into ount tht the rgument might e ontrol sequene tht needs to e expndedA nd reset the tegory ode of the dEsignF

defldfdfinish5I{7 lodlolfg{5I}7 12.240 expndftermindlngugeexpndfter{5I}7 12.241 todedattode letttoderelx 12.242 todeaaeqtode leteqtoderelx 12.243 }
12.238 12.239

donlypremlevdfsnit donlypremleldfdquit 12.246 donlypremleldfdfinish


12.244 12.245

efter the premle of the doument the ommnds \LdfInitD \ldf@quit nd \ldf@finish re no longer neededF herefor they re turned into wrning mesE A sges in v iF

QI

mindlnguge ldmindlnguge

his ommnd should e used in the vrious lnguge de(nition (lesF st stores its rgument in \bbl@main@languageY to e used to swith to the orret lnguge t the eginning of the doumentF

defmindlnguge5I{7 defldmindlnguge{5I}7 12.249 letlngugenmeldmindlnguge 12.250 ldptterns{lngugenme}7 12.251 }


12.247 12.248

he defult is to use inglish s the min lngugeF


ifxldenglishdundefined letldenglishzd 12.254 fi 12.255 mindlnguge{english}
12.252 12.253

e lso hve to mke sure tht some ode gets exeuted t the eginning of the doumentF
etfeginhoument{7 expndfterseletlngugeexpndfter{ldmindlnguge}} 12.258 /core
12.256 12.257

originle

he mro\originalTeX should e known to i t this momentF es it hs to e expndle we \let it to \@empty insted of \relaxF
kernel ifxoriginledundefinedletoriginledemptyfi

12.259 12.260

feuse this prt of the ode n e inluded in formtD we mke sure tht the mro whih initilises the sve mehnismD \babel@beginsaveD is not onsidered to e unde(nedF
12.261

ifxeldeginsvedundefinedleteldeginsverelxfi

dnolnerr dnoptterns

he babel pkge will signl n error when douments tries to selet lnguge tht hsn9t een de(ned erlierF hen user selets lnguge for whih no hyphention ptterns were loded into the formt he will e given wrning out tht ftF e revert to the ptterns for \languageaH in tht seF sn most formts tht will e @AenglishD ut it might lso e emptyF hen the pkge ws loded without options not everything will work s exE petedF en error messge is issued in tht seF A hen the formt knows out \PackageError it must e v i P D so we n sfely use its error hndling interfeF ytherwise we9ll hve to keep it simple9F

dnoopterr

ifxkgeirrordundefined defdnolnerr5I{7 12.264 errhelp{our ommnd will e ignoredD type `returnb to proeed}7 12.265 errmessge{ou hven9t defined the lnguge 5Ispe yet}} 12.266 defdnoptterns5I{7 12.267 messge{xo hyphention ptterns were loded for}7 12.268 messge{the lnguge 5I9}7 12.269 messge{s will use the ptterns loded for stringlngugeaH 12.270 insted}} 12.271 defdnoopterr5I{7 12.272 errmessge{he option 5I ws not speified in stringusepkge} 12.273 errhelp{ou my ontinueD ut expet unexpeted results}} 12.274 defdtivted5I{7
12.262 12.263

QP

wlog{kge el snfoX wking 5I n tive hrter}} else 12.277 newommndB{dnolnerr}I{7 12.278 kgeirror{el}7 12.279 {ou hven9t defined the lnguge 5Ispe yet}7 12.280 {our ommnd will e ignoredD type `returnb to proeed}} 12.281 newommndB{dnoptterns}I{7 12.282 kgerningxovine{el}7 12.283 {xo hyphention ptterns were loded forwessgefrek 12.284 the lnguge 5I9wessgefrek 12.285 s will use the ptterns loded for stringlngugeaH 12.286 insted}} 12.287 newommndB{dnoopterr}I{7 12.288 kgeirror{el}7 12.289 {ou hven9t loded the option 5Ispe yet}7 12.290 {ou my proeedD ut expet unexpeted results}} 12.291 newommndB{dtivted}I{7 12.292 kgesnfo{el}{7 12.293 wking 5I n tive hrter}} 12.294 fi
12.275 12.276

he following ode is ment to e red y inii euse it should instrut i to red hyphention ptternsF o this end the docstrip option patterns n e used to inlude this ode in the (le hyphen.cfgF
12.295

patterns

proessdline

ih line in the (le language.dat is proessed y \process@line fter it is redF he (rst thing this mro does is to hek whether the line strts with =F hen the (rst token of line is n =D the mro \process@synonym is lledY otherwise the mro \process@language will ontinueF

\def\process@line#1#2 #3/{% \ifx=#1 12.298 \process@synonym#2 / 12.299 \else 12.300 \process@language#1#2 #3/% 12.301 \fi 12.302 }
12.296 12.297

proessdsynonym

his mro tkes re of the lines whih strt with n =F st needs n empty token register to egin withF

\toks@{} \def\process@synonym#1 /{% 12.305 \ifnum\last@language=\m@ne


12.303 12.304

hen no lnguges hve een loded yetD the nme following the = will e synonym for hyphention register HF
12.306 12.307

\expandafter\chardef\csname l@#1\endcsname0\relax \wlog{\string\l@#1=\string\language0}

es no hyphention ptterns re red in yetD we n not yet set the hyphenmin prmetersF herefor ommnds to do so is stored in token register nd exeuted when the (rst pttern (le hs een proessedF
12.308

\toks@\expandafter{\the\toks@

QQ

12.309 12.310 12.311

\expandafter\let\csname #1hyphenmins\expandafter\endcsname \csname\languagename hyphenmins\endcsname}% \else \expandafter\chardef\csname l@#1\endcsname\last@language \wlog{\string\l@#1=\string\language\the\last@language} \expandafter\let\csname #1hyphenmins\expandafter\endcsname \csname\languagename hyphenmins\endcsname \fi }

ytherwise the nme will e synonym for the lnguge loded lstF
12.312 12.313

e lso need to opy the hyphenmin prmeters for the synonymF


12.314 12.315 12.316 12.317

proessdlnguge

he mro \process@language is used to proess nonEempty line from the onE (gurtion (le9F st hs three rgumentsD eh delimited y white speF he third rgument is optionlD so / hrter is expeted to delimit the lst rgumentF he (rst rgument is the nme9 of lngugeY the seond is the nme of the (le tht ontins the ptternsF he optionl third rgument is the nme of (le ontining hyphention exeptionsF he (rst thing to do is ll \addlanguage to llote pttern register nd to mke tht register tive9F

\def\process@language#1 #2 #3/{% \expandafter\addlanguage\csname l@#1\endcsname 12.320 \expandafter\language\csname l@#1\endcsname 12.321 \def\languagename{#1}%


12.318 12.319

hen the nme9 of the lnguge tht will e loded now is dded to the token register \toks8F nd (nlly the pttern (le is redF
12.322

\global\toks8\expandafter{\the\toks8#1, }%

por some hyphention ptterns it is needed to lod them with spei( font enoding seletedF his n e spei(ed in the (le language.dat y dding for instne :T19 to the nme of the lngugeF he mro \bbl@get@enc extrts the font enoding from the lnguge nme nd stores it in \bbl@hyph@encF
12.323 12.324 12.325 12.326 12.327 12.328

\begingroup \bbl@get@enc#1:\@@@ \ifx\bbl@hyph@enc\@empty \else \fontencoding{\bbl@hyph@enc}\selectfont \fi

ome pttern (les ontin ssignments to \lefthyphenmin nd \righthyphenminF i does not keep trk of these ssignmentsF herefor we try to detet suh sE signments nd store them in the \ lang hyphenmins mroF hen no ssignments were mde we provide defult settingF
12.329

\lefthyphenmin\m@ne

ome pttern (les ontin hnges to the \lccode en \uccode rrysF uh hnges should remin lol to the lngugeY therefor we proess the pttern (le in groupY the \patterns ommnd ts glolly so its e'et will e rememeredF
12.330

\input #2\relax

QR

xow we glolly store the settings of \lefthyphenmin nd \righthyphenmin nd lose the groupF
12.331 12.332 12.333 12.334 12.335 12.336

\ifnum\lefthyphenmin=\m@ne \else \expandafter\xdef\csname #1hyphenmins\endcsname{% \the\lefthyphenmin\the\righthyphenmin}% \fi \endgroup

sf the ounter \language is still equl to zero we set the hyphenmin prmeters to the vlues for the lnguge loded on pttern register HF
12.337 12.338 12.339 12.340 12.341 12.342 12.343

\ifnum\the\language=\z@ \expandafter\ifx\csname #1hyphenmins\endcsname\relax \set@hyphenmins\tw@\thr@@\relax \else \expandafter\expandafter\expandafter\set@hyphenmins \csname #1hyphenmins\endcsname \fi

xow exeute the ontents of token register zero s it my ontin ommnds whih set the hyphenmin prmeters for synonyms tht were de(ned efore the (rst pttern (le is red inF
12.344 12.345

\the\toks@ \fi \toks@{}%

impty the token register fter useF


12.346

hen the hyphention ptterns hve een proessed we need to see if (le with hyphention exeptions needs to e redF his is the se when the third rgument is not empty nd when it does not ontin spe tokenF
12.347 12.348 12.349 12.350 12.351 12.352 12.353 12.354 12.355

\def\bbl@tempa{#3}% \ifx\bbl@tempa\@empty \else \ifx\bbl@tempa\space \else \input #3\relax \fi \fi }

ldgetden ldhyphden

he mro \bbl@get@enc extrts the font enoding from the lnguge nme nd stores it in \bbl@hyph@encF st uses delimited rguments to hieve thisF
\def\bbl@get@enc#1:#2\@@@{% \def\bbl@tempa{#1}% \def\bbl@tempb{#2}%

12.356

pirst store oth rguments in temporry mrosD


12.357 12.358

thenD if the seond rgument ws emptyD no font enoding ws spei(ed nd we9re doneF
12.359 12.360 12.361

\ifx\bbl@tempb\@empty \let\bbl@hyph@enc\@empty \else

QS

fut if the seond rgument ws not empty it will now hve super)uous olon tthed to it whih we need to removeF his done y feeding it to \bbl@get@encF he string tht we re fter will then e in the (rst rgument nd e stored in \bbl@tempaF
12.362 12.363 12.364

\bbl@get@enc#2\@@@ \edef\bbl@hyph@enc{\bbl@tempa}% \fi} \openin1 = language.dat

redonfigfile

he on(gurtion (le n now e opened for redingF ee if the (le existsD if notD use the defult hyphention (le hyphen.texF he user will e informed out thisF

12.365

\ifeof1 \message{I couldn't find the file language.dat,\space 12.368 I will try the file hyphen.tex} 12.369 \input hyphen.tex\relax 12.370 \else
12.366 12.367

ttern registers re lloted using ount register \last@languageF sts initil vlue is HF he de(nition of the mro \newlanguage is suh tht it (rst inreE ments the ount register nd then de(nes the lngugeF sn order to hve the (rst ptterns loded in pttern register numer H we initilize \last@language with the vlue 1F
12.371

\last@language\m@ne

e now red lines from the (le until the end is found
12.372

\loop

hile reding from the inputD it is useful to swith o' reognition of the endE ofEline hrterF his sves us stripping o' spes from the ontents of the ontrol sequeneF
12.373 12.374 12.375

\endlinechar\m@ne \read1 to \bbl@line \endlinechar`\^^M

impty lines re skippedF


12.376 12.377

\ifx\bbl@line\@empty \else

xow we dd spe nd / hrter to the end of \bbl@lineF his is needed to e le to reognize the thirdD optionlD rgument of \process@language lter onF
12.378 12.379 12.380

\edef\bbl@line{\bbl@line\space/}% \expandafter\process@line\bbl@line \fi

ghek for the end of the (leF o void new if ontrol sequene we rete the neessry \iftrue or \iffalse with the help of \csnameF fut there is one omplition with this pprohX when skipping the loop...repeat i hs to red \ifG\fi pirsF o we hve to insert dummy9 \iftrueF
12.381 12.382 12.383

\iftrue \csname fi\endcsname \csname if\ifeof1 false\else true\fi\endcsname \repeat

QT

etivte the defult ptternsD


12.384 12.385

\language=0 \fi \closein1

nd lose the on(gurtion (leF


12.386

elso remove some mros from memory


\let\process@language\@undefined \let\process@synonym\@undefined 12.389 \let\process@line\@undefined 12.390 \let\bbl@tempa\@undefined 12.391 \let\bbl@tempb\@undefined 12.392 \let\bbl@eq@\@undefined 12.393 \let\bbl@line\@undefined 12.394 \let\bbl@get@enc\@undefined
12.387 12.388

e dd messge out the ft tht el is loded in the formt nd with whih lnguge ptterns to the \everyjob registerF
\ifx\addto@hook\@undefined \else 12.397 \expandafter\addto@hook\expandafter\everyjob\expandafter{% 12.398 \expandafter\typeout\expandafter{\the\toks8 loaded.}} 12.399 \fi
12.395 12.396

rere the ode for inii endsF


12.400 12.401

/patterns /kernel

12.3 Support for active characters


lddddspeil

he mro \bbl@add@special is used to dd new hrter @or single hrter A ontrol sequeneA to the mro \dospecials @nd \@sanitize if v i is usedAF o keep ll hnges lolD we egin new groupF hen we rede(ne the mros \do nd \@makeother to dd themselves nd the given hrter without expnE sionF

core | shorthands deflddddspeil5I{egingroup 12.404 defdo{noexpnddonoexpnd}7 12.405 defdmkeother{noexpnddmkeothernoexpnd}7


12.402 12.403

o dd the hrter to the mrosD we expnd the originl mros with the dditionl hrter inside the rede(nition of the mrosF feuse \@sanitize n e unde(nedD we put the de(nition inside onditionlF
12.406 12.407 12.408 12.409 12.410

edefx{endgroup defnoexpnddospeils{dospeilsdo5I}7 expndfterifxsnme dsnitizeendsnmerelx else defnoexpnddsnitize{dsnitizedmkeother5I}7 fi}7

he mro \x ontins t this moment the followingX \endgroup\def\dospecials{old contents \do char }F sf \@sanitize is de(nedD it ontins n dditionl de(nition of this mroF he lst thing we hve to doD is the expnsion of \xF hen \endgroup is exeutedD

QU

whih restores the old mening of \xD \do nd \@makeotherF efter the group is losedD the new de(nition of \dospecials @nd \@sanitizeA is ssignedF
12.411

x}

ldremovedspeil

he ompnion of the former mro is \bbl@remove@specialF st is used to remove hrter from the set mros \dospecials nd \@sanitizeF o keep ll hnges lolD we egin new groupF hen we de(ne help mro \xD whih expnds to empty if the hrters mthD otherwise it expnds to its nonexpndle inputF feuse i inserts \relaxD if the orresponding \else or \fi is snned efore the omprison is evlutedD we provide stop sign9 whih should expnd to nothingF

defldremovedspeil5I{egingroup defx55I55P{ifnum5Ia55Pnoexpnddempty 12.414 elsenoexpnd55Inoexpnd55Pfi}7


12.412 12.413

ith the help of this mro we de(ne \do nd \make@otherF


12.415 12.416

defdo{xdo}7 defdmkeother{xdmkeother}7 edefx{endgroup defnoexpnddospeils{dospeils}7 expndfterifxsnme dsnitizeendsnmerelx else defnoexpnddsnitize{dsnitize}7 fi}7 x}

he rest of the work is similr to \bbl@add@specialF


12.417 12.418 12.419 12.420 12.421 12.422

12.4 Shorthands
inititedtivedhr

e lnguge de(nition (le n ll this mro to mke hrter tiveF his mro tkes one rgumentD the hrter tht is to e mde tiveF hen the hrter ws lredy tive this mro does nothingF ytherwiseD this mro de(nes the ontrol sequene \normal@char char to expnd to the hrter in its norml stte9 nd it de(nes the tive hrter to expnd to \normal@char char y defult @ char eing the hrter to e mde tiveAF vter its de(nition n e hnged to expnd to \active@char char y lling \bbl@activate{ char }F por exmpleD to mke the doule quote hrter tive one ould hve the following line in lnguge de(nition (leX
inititedtivedhr{4}

ldfterelse ldfterfi

feuse the ode tht is used in the hndling of tive hrters my need to look hedD we tke extr re to throw9 it over the \else nd \fi prts of n \ifEsttement5 F hese mros will rek if nother \if...\fi sttement ppers in one of the rgumentsF
longdefldfterelse5Ielse5Pfi{fi5I} longdefldfterfi5Ifi{fi5I}
5 This
code is based on code presented in TUGboat vol. 12, no2, June 1991 in An expansion

12.423 12.424

Power Lemma by Sonja Maus.

QV

peekdtoken

o prevent error messges when shorthndD whih normlly tkes n rgumentD sees \parD or }D or similr tokensD we need to e le to peek9 t wht is oming up next in the input stremF hepending on the tegory ode of the token tht is seenD we need to either ontinue the ode for the tive hrterD or insert the nonEtive version of tht hrter in the outputF he mro \peek@token therefore tkes two rgumentsD with whih it onstruts the ontrol sequene to expnd nextF st \let9s \bbl@nexta nd \bbl@nextb to the two possile mrosF his is neessry for \bbl@test@token to tke the right deisionF

7defpeekdtoken5I5P{7 7 expndfterletexpndfterldnextsnme 5Istring5Pendsnme 12.427 7 expndfterletexpndfterldnext 12.428 7 snme systemdtivestring5Pendsnme 12.429 7 futureletldtokenldtestdtoken}
12.425 12.426

ldtestdtoken

hen the result of peeking t the next token hs yielded token with tegory letter9D other9 or tive9 it is sfe to proeed with evluting the ode for the shorthndF hen token is found with ny other tegory ode proeeding is unsfe nd therefor the originl shorthnd hrter is inserted in the outputF he mro tht lls \bbl@test@token needs to setup \bbl@nexta nd \bbl@nextb in order to hieve thisF

7defldtestdtoken{7 7 letldnextldnext 12.432 7 iftnoexpndldtoken 7 12.433 7 else 12.434 7 iftnoexpndldtokena7 12.435 7 else 12.436 7 iftnoexpndldtokennoexpndldnext 12.437 7 else 12.438 7 letldnextldnext 12.439 7 fi 12.440 7 fi 12.441 7 fi 12.442 7 ldnext}
12.430 12.431

he mro \initiate@active@char tkes ll the neessry tions to mke its rgument shorthnd hrterF he rel work is performed one for eh hrterF
definititedtivedhr5I{7 expndfterifxsnme tivedhrstring55Iendsnmerelx 12.445 ldfterfi{dinititedtivedhr{5I}}7 12.446 fi}
12.443 12.444

xote tht the de(nition of \@initiate@active@char needs n tive hrterD for this the ~ is usedF ome of the hnges we needD do not hve to eome ville lter onD so we do it inside groupF
egingroup tode~tive 12.449 defx{endgroup 12.450 defdinititedtivedhr55I{7
12.447 12.448

sf the hrter is lredy tive we provide the defult expnsion under this shorthnd mehnismF
12.451

iftnoexpnd55Inoexpnd~relx

QW

12.452 12.453 12.454 12.455 12.456 12.457 12.458 12.459

difundefined{normldhrstring55I}{7 expndfterletsnme normldhrstring55Iendsnme55I7 expndftergdef expndfter55I7 expndfter{7 expndftertivedprefixexpndfter55I7 snme normldhrstring55Iendsnme}}{}7 else dtivted{55I}7
char

ytherwise we write messge in the trnsript (leD


12.460

nd de(ne \normal@char
12.461

to expnd to the hrter in its defult stteF

dnmedef{normldhrstring55I}{55I}7 ifx55I97 letprimdsldprimds dnmedef{normldhrstring55I}{7 textormth{55I}{groupprimds}}7 fi

sf we re mking the right quote tive we need to hnge \pr@m@s s wellF


12.462 12.463

elsoD mke sure tht single ' in mth mode does the right thing9F
12.464 12.465 12.466

sf we re using the ret s shorthnd hrter speil re should e tken to mke sure mth still worksF herefor n extr level of expnsion is introdued with hek for mth mode on the upper levelF
12.467 12.468 12.469 12.470 12.471 12.472 12.473 12.474 12.475 12.476 12.477 12.478 12.479

ifx55I7 gdefldtdret{7 ifmmode snme normldhrstringendsnme else ldfterfi {ifdsfedtives ldfterelsesnme normldhrstring55Iendsnme else ldfterfisnme userdtivestring55Iendsnme fi}7 fi} fi

o prevent prolems with the loding of other pkges fter babel we reset the tode of the hrter t the end of the pkgeF
12.480 12.481 12.482

difpkgewith{el}{ueephorthndsetive}{}{7 edefldtemp{todenoexpnd55Ithetode55I}7 expndfteretindyfkgeexpndfter{ldtemp}}7

xow we set the lowerse ode of the ~ equl to tht of the hrter to e mde tive nd exeute the rest of the ode inside \lowercase environment9F
12.483 12.484 12.485

dtempntalode~ lode~a55I7 lowerse{7 tode~tive expndfterlddddspeil snme string55Iendsnme

wke the hrter tive nd dd it to \dospecials nd \@sanitizeF


12.486 12.487 12.488

RH

elso reEtivte it gin t \begin{document}F


12.489 12.490

etfeginhoument{7 tode55Itive

e lso need to mke sure tht the shorthnds re tive during the proessing of the .aux (leF ytherwise some ittions my give unexpeted results in the printout when shorthnd ws used in the optionl rgument of \bibitem for exmpleF
12.491 12.492 12.493 12.494

ifdfilesw immeditewritedminux{7 stringtode55Istringtive}7 fi}7

he(ne the hrter to expnd to

\active@prefix
@where \active@char
12.495 12.496 12.497 12.498 12.499 12.500 12.501

char

\normal@char

char

char

is

one

ontrol sequene3AF

expndftergdef expndfter~7 expndfter{7 expndftertivedprefixexpndfter55I7 snme normldhrstring55Iendsnme}}7 lode~dtempnt fi

por the tive ret we (rst expnd to \bbl@act@caret in order to e le to hndle mth mode orretlyF
12.502 12.503 12.504

ifx55I7 dnmedef{tivedhrstring55I}{ldtdret}7 else

e de(ne the (rst level expnsion of \active@char char to hek the sttus of the @safe@actives )gF sf it is set to true we expnd to the norml9 version of this hrterD otherwise we ll \@active@char char F
12.505 12.506 12.507 12.508 12.509 12.510 12.511

dnmedef{tivedhrstring55I}{7 ifdsfedtives ldfterelsesnme normldhrstring55Iendsnme else ldfterfisnme userdtivestring55Iendsnme fi}7 fi

he next level of the ode heks whether user hs de(ned shorthnd for himself with this hrterF pirst we hek for single hrter shorthndF sf tht doesn9t exist we hek for shorthnd with n rgumentF
12.512 12.513 12.514 12.515 12.516 12.517 12.518 12.519 12.520

dnmedef{userdtivestring55I}{7 expndfterifx snme userdgroup dshdstring55Idendsnme relx ldfterelseldshdseletuserdgroup55I7 {userdtivedrgstring55I}{lngugedtivestring55I}7 else ldfterfisnme userdgroup dshdstring55Idendsnme fi}7

RI

hen there is lso no userElevel shorthnd with n rgument we will hek whether there is lnguge de(ned shorthnd for this tive hrterF fefore the next token is sored s rgument we need to mke sure tht this is sfeF herefor \peek@token is lled to deide thtF
12.521 12.522 12.523 12.524 12.525 12.526 12.527 12.528 12.529 12.530 12.531

longdnmedef{userdtivedrgstring55I}5555I{7 expndfterifx snme userdgroup dshdstring55Idstring5555Idendsnme relx ldfterelse snme lngugedtivestring55Iendsnme5555I7 else ldfterfi snme userdgroup dshdstring55Idstring5555Id7 endsnme fi}7

sn order to do the right thing when shorthnd with n rgument is used y itself t the end of the line we provide de(nition for the se of n empty rgumentF por tht se we let the shorthnd hrter expnd to its nonEtive selfF
12.532 12.533

dnmedef{userdgroup dshdstring55Idd}{7 snme normldhrstring55Iendsnme}

vike the shorthnds tht n e de(ned y the userD lnguge de(nition (le n lso de(ne shorthnds with nd without n rgumentD so we need two more mros to hek if they existF
12.534 12.535 12.536 12.537 12.538 12.539 12.540 12.541 12.542 12.543

dnmedef{lngugedtivestring55I}{7 expndfterifx snme lngugedgroup dshdstring55Idendsnme relx ldfterelseldshdseletlngugedgroup55I7 {lngugedtivedrgstring55I}{systemdtivestring55I}7 else ldfterfi snme lngugedgroup dshdstring55Idendsnme fi}7 longdnmedef{lngugedtivedrgstring55I}5555I{7 expndfterifx snme lngugedgroup dshdstring55Idstring5555Idendsnme relx ldfterelse snme systemdtivestring55Iendsnme5555I7 else ldfterfi snme lngugedgroup dshdstring55Idstring5555Id7 endsnme fi}7 dnmedef{systemdtivestring55I}{7 expndfterifx snme systemdgroup dshdstring55Idendsnme relx ldfterelseldshdseletsystemdgroup55I7 {systemdtivedrgstring55I}{normldhrstring55I}7

12.544 12.545 12.546 12.547 12.548 12.549 12.550 12.551 12.552 12.553 12.554

end the sme goes for the system levelF


12.555 12.556 12.557 12.558 12.559 12.560

RP

12.561 12.562 12.563

else ldfterfisnme systemdgroup dshdstring55Idendsnme fi}7

hen no shorthnds were found the norml9 version of the tive hrter is insertedF
12.564 12.565 12.566 12.567 12.568 12.569 12.570 12.571 12.572

longdnmedef{systemdtivedrgstring55I}5555I{7 expndfterifx snme systemdgroup dshdstring55Idstring5555Idendsnme relx ldfterelsesnme normldhrstring55Iendsnme5555I7 else ldfterfi snme systemdgroup dshdstring55Idstring5555Idendsnme fi}7

hen shorthnd omintion suh s '' ends up in heding i would see \protect'\protect'F o prevent this from hppening shorthnd needs to e de(ned t user levelF
12.573 12.574 12.575 12.576

dnmedef{userdshdstring55Idstringprotetd}{7 snme userdtivestring55Iendsnme}7 }7 }x

ldshdselet

his ommnd helps the shorthnd supporting mros to selet how to proeedF xote tht this mro needs to e expndle s do ll the shorthnd mros in order for them to work in expnsionEonly environments suh s the rgument of \hyphenationF his mro expets the nme of group of shorthnds in its (rst rgument nd shorthnd hrter in its seond rgumentF st will expnd to either \bbl@firstcs or \bbl@scndcsF rene two more rguments need to follow itF

defldshdselet5I5P{7 expndfterifxsnme5Idshdstring5Pdselendsnmerelx 12.579 ldfterelseldsnds 12.580 else 12.581 ldfterfisnme5Idshdstring5Pdselendsnme 12.582 fi 12.583 }
12.577 12.578

tivedprefix

he ommnd \active@prefix whih is used in the expnsion of tive hrE ters hs funtion similr to \OT1-cmd in tht it \protects the tive hrter whenever \protect is not \@typeset@protectF

deftivedprefix5I{7 ifxprotetdtypesetdprotet 12.586 else


12.584 12.585

hen \protect is set to \@unexpandable@protect we mke sure tht the tive hrter is ls not expnded y inserting \noexpand in front of itF he \@gobble is needed to remove token suh s \activechar: @when the doule olon ws the tive hrter to e delt withAF
12.587 12.588 12.589

ifxprotetdunexpndledprotet ldfterelseldfterfinoexpnd5Idgole else

RQ

12.590 12.591 12.592

ldfterfildfterfiprotet5Idgole fi fi}

ifdsfedtives

sn some irumstnes it is neessry to e le to hnge the expnsion of n tive hrter on the )yF por this purpose the swith @safe@actives is vilE leF he setting of this swith should e heked in the (rst level expnsion of \active@char char F
newififdsfedtives dsfedtivesflse

12.593 12.594

ldrestoredtives

hen the output routine kiks in while the tive hrters were mde sfe this must e undone in the heders to prevent unexpeted typeset resultsF por this sitution we de(ne ommnd to mke them unsfe ginF
defldrestoredtives{ifdsfedtivesdsfedtivesflsefi}

12.595

ldtivte

his mro tkes one rgumentD like \initiate@active@charF he mro is used to hnge the de(nition of n tive hrter to expnd to \active@char char insted of \normal@char char F

defldtivte5I{7 expndfterdef 12.598 expndfter5Iexpndfter{7 12.599 expndftertivedprefix 12.600 expndfter5Isnme tivedhrstring5Iendsnme}7 12.601 }
12.596 12.597

lddetivte

his mro tkes one rgumentD like \bbl@activateF he mro doesn9t relly mke hrter nonEtiveY it hnges its de(nition to expnd to \normal@char char F

deflddetivte5I{7 expndfterdef 12.604 expndfter5Iexpndfter{7 12.605 expndftertivedprefix 12.606 expndfter5Isnme normldhrstring5Iendsnme}7 12.607 }
12.602 12.603

ldfirsts ldsnds

hese mros hve two rgumentsF hey use one of their rguments to uild ontrol sequene fromF
defldfirsts5I5P{snme5Iendsnme} defldsnds5I5P{snme5Pendsnme}

12.608 12.609

delredshorthnd

he ommnd \declare@shorthand is used to delre shorthnd on ertin levelF st tkes three rgumentsX IF nme for the olletion of shorthndsD iFeF system9D or duth9Y PF the hrter @sequeneA tht mkes up the shorthndD iFeF ~ or "aY QF the ode to e exeuted when the shorthnd is enounteredF

defdelredshorthnd5I5P{ddeldshort{5I}5Pdnil} defddeldshort5I5P5Qdnil5R{7 12.612 defldtemp{5Q}7


12.610 12.611

RR

12.613 12.614 12.615 12.616 12.617 12.618 12.619

ifxldtempdempty expndfterletsnme 5Idshdstring5Pdselendsnmeldsnds dnmedef{5Idshdstring5Pd}{5R}7 else expndfterletsnme 5Idshdstring5Pdselendsnmeldfirsts dnmedef{5Idshdstring5Pdstring5Qd}{5R}7 fi}

textormth

ome of the shorthnds tht will e delred y the lnguge de(nition (les hve to e usle in oth text nd mthmodeF o hieve this the helper mro \textormath is providedF

deftextormth5I5P{7 ifmmode 12.622 ldfterelse5P7 12.623 else 12.624 ldfterfi5I7 12.625 fi}
12.620 12.621

userdgroup lngugedgroup systemdgroup

he urrent onept of shorthnds9 supports three levels or groups of shorthndsF por eh level the nme of the level or group is stored in mroF he defult is to hve user groupY use lnguge group english9 nd hve system group lled system9F

defuserdgroup{user} deflngugedgroup{english} 12.628 defsystemdgroup{system}


12.626 12.627

useshorthnds

A his is the user level ommnd to tell v i tht user level shorthnds will e used in the doumentF st tkes one rgumentD the hrter tht strts shorthndF

12.629

defuseshorthnds5I{7 defuserdgroup{user}7 inititedtivedhr{5I}7

pirst note tht this is user levelF


12.630

hen initilize the hrter for use s shorthnd hrterF


12.631

xow tht i hs seen the hrter its tegory ode is (xedD ut for the tions of \bbl@activate to sueed we need it to e tiveF rene the trik with the \lccode to irumvent thisF
12.632 12.633 12.634 12.635

dtempntlode~ lode~a5I7 lowerse{tode~tiveldtivte{~}}7 lode~dtempnt} defdefineshorthnd{delredshorthnd{user}} deflngugeshorthnds5I{deflngugedgroup{5I}} deflisshorthnd5I5P{7

defineshorthnd lngugeshorthnds lisshorthnd

gurrently we only support one group of user level shorthndsD lled user9F e user level ommnd to hnge the lnguge from whih shorthnds re usedF

12.636

12.637

12.638

RS

pirst the new shorthnd needs to e initilizedD


12.639 12.640 12.641 12.642 12.643

expndfterifxsnme tivedhrstring5Pendsnmerelx ifxdoumentdnotprerr dnotshorthnd{5P} else inititedtivedhr{5P}7

hen we need to use the \lccode trik to mke the new shorthnd ehve like the old oneF herefore we sve the urrent \lccode of the ~Ehrter nd restore it lterF hen we \let the new shorthnd hrter e equl to the originlF
12.644 12.645 12.646 12.647 12.648 12.649 12.650

dtempntlode~ lode~a5P7 lowerse{let~5I}7 lode~dtempnt fi fi

dnotshorthnd defdnotshorthnd5I{7 kgeirror{el}{7 12.653 he hrter string 5I9 should e mde 12.654 shorthnd hrterYwessgefrek 12.655 dd the ommnd stringuseshorthndsstring{5Istring} to 12.656 the premleFwessgefrek 12.657 s will ignore your instrution}{}7 12.658 }
12.651 12.652

shorthndon shorthndoff

he (rst level de(nition of these mros just psses the rgument on to \bbl@switch@shD dding \@nil t the end to denote the end of the list of hrE tersF
newommndBshorthndonI{ldswithdsh{on}5Idnil} newommndBshorthndoffI{ldswithdsh{off}5Idnil}

12.659 12.660

ldswithdsh

he mro \bbl@switch@sh tkes the list of hrters prt one y one nd susequently swithes the tegory ode of the shorthnd hrter ording to the (rst rgument of \bbl@switch@shF
defldswithdsh5I5P5Qdnil{7

12.661

fut efore ny of this swithing tkes ple we mke sure tht the hrter we re deling with is known s shorthnd hrterF sf it isD mro suh s \active@char" should existF
12.662 12.663 12.664 12.665 12.666 12.667 12.668

difundefined{tivedhrstring5P}{7 kgeirror{el}{7 he hrter 9string 5P9 is not shorthnd hrter in lngugenme}{7 wye you mde typing mistkecwessgefrek s will ignore your instrution}}{7 snme ldswithdshd5Iendsnme5P}7

xow thtD s the (rst hrter in the list hs een tken re ofD we pss the rest of the list k to \bbl@switch@shF
12.669 12.670 12.671

ifx5Qdemptyelse ldfterfildswithdsh{5I}5Qdnil fi}

RT

ldswithdshdoff

ell tht is left to do is de(ne the tul swithing mrosF withing o' is esyD we just set the tegory ode to other9 @IPAF
defldswithdshdoff5I{tode5IIPrelx}

12.672

ldswithdshdon

fut swithing the shorthnd hrter k on is it more trikyF st involves mking sure tht we hve n tive hrter to egin with when the mro is eing de(nedF st lso needs the use of \lowercase nd \lccode trikery to get everything to work out s expetedF end to keep things lol tht need to remin lol group is openedD whih is losed s soon s \x gets exeutedF

egingroup tode~tive 12.675 defx{endgroup 12.676 defldswithdshdon55I{7 12.677 egingroup 12.678 lode~a55I7 12.679 lowerse{endgroup 12.680 tode~tive 12.681 }7 12.682 }7 12.683 }
12.673 12.674

he next opertion mkes the ove de(nition e'etiveF


12.684 12.685

x 7

o prevent prolems with onstruts suh s \char"01A when the doule quote is mde tiveD we de(ne shorthnd on system levelF
12.686

delredshorthnd{system}{4}{snme normldhrstring4endsnme}

hen the right quote is mde tive we need to tke re of hndling it orE retly in mthmodeF herefore we de(ne shorthnd t system level to mke it expnd to nonEtive right quote in textmodeD ut expnd to its originl de(niE tion in mthmodeF @xote tht the right quote is tive9 in mthmode euse of its mthodeFA
delredshorthnd{system}{9}{7 textormth{snme normldhrstring9endsnme}7 12.689 {spgroupprimds}}
12.687 12.688

hen the left quote is mde tive we need to tke re of hndling it orretly when it is followed y for instne n open re tokenF herefore we de(ne shorthnd t system level to mke it expnd to nonEtive left quoteF
12.690

delredshorthnd{system}{}{snme normldhrstringendsnme}

ldprimds ldprdmds

yne of the internl mros tht re involved in sustituting \prime for eh right quote in mthmode is \prim@sF his heks if the next hrter is right quoteF hen the right quote is tiveD the de(nition of this mro needs to e dpted to look for n tive right quoteF

defldprimds{7 primefutureletdletdtokenldprdmds} 12.693 egingroup 12.694 tode9tivelet9relx 12.695 defx{endgroup 12.696 defldprdmds{7
12.691 12.692

RU

12.697 12.698 12.699 12.700 12.701 12.702 12.703 12.704 12.705 12.706 12.707

ifx9dletdtoken expndfterprddds else ifxdletdtoken expndfterexpndfterexpndfterprdddt else egroup fi fi}7

12.708

/core | shorthands

xormlly the ~ is tive nd expnds to \penalty\@M\ F hen it is written to the .aux (le it is written expndedF o prevent tht nd to e le to use the hrter ~ s strt hrter for shorthndD it is rede(ned here s one hrter shorthnd on system levelF
core inititedtivedhr{~} 12.711 delredshorthnd{system}{~}{levevmodenorek } 12.712 ldtivte{~}
12.709 12.710

yIdqpos Idqpos

he position of the doule quote hrter is di'erent for the yI nd I enodE ingsF st will lter e seleted using the \f@encoding mroF herefor we de(ne two mros here to store the position of the hrter in these enodingsF
expndfterdefsnme yIdqposendsnme{IPU} expndfterdefsnme Idqposendsnme{R}

12.713 12.714

hen the mro \f@encoding is unde(ned @s it is in plin iA we de(ne it here to expnd to OT1
ifxfdenodingdundefined deffdenoding{yI} 12.717 fi
12.715 12.716

12.5 Language attributes


vnguge ttriutes provide mens to give the user ontrol over whih fetures of the lnguge de(nition (les he wnts to enleF
lngugettriute

he mro \languageattribute heks whether its rguments re vlid nd then tivtes the seleted lnguge ttriuteF
newommndlngugettriuteP{7 expndfterifxsnme ld5Iendsnmerelx dnolnerr{5I}7 else dforldttrXa5Pdo{7

12.718

pirst hek whether the lnguge is knownF


12.719 12.720 12.721

hn proess eh ttriute in the listF


12.722

e wnt to mke sure tht eh ttriute is seleted only oneY therefor we store the lredy seleted ttriutes in \bbl@known@attribsF hen tht ontrol seE quene is not yet de(ned this ttriute is ertinly not seleted eforeF RV

12.723 12.724 12.725

ifxldknowndttrisdundefined indflse else edefldtemp{noexpndind{D5IEldttrD}7 {DldknowndttrisD}}7 ldtemp fi

xow we need to see if the ttriute ours in the list of lredy seleted ttriutesF
12.726 12.727 12.728 12.729

hen the ttriute ws in the list we issue wrningY this might not e the users intentionF
12.730 12.731 12.732 12.733 12.734

ifind kgerning{fel}{7 ou hve more thn one seleted the ttriute 9ldttr9wessgefrek for lnguge 5I}7 else

hen we end up here the ttriute is not seleted eforeF oD we dd it to the list of seleted ttriutes nd exeute the ssoited iEodeF
12.735 12.736 12.737 12.738 12.739 12.740 12.741 12.742 12.743 12.744

fi } fi}

edefldtemp{7 noexpndlddddlistnoexpndldknowndttris{5IEldttr}}7 ldtemp edefldtemp{5IEldttr}7 expndfterldifknowndttriexpndfter{ldtemp}ldttriutes7 {snme5Idttrdldttrendsnme}7 {dttrerr{5I}{ldttr}}7

his ommnd should only e used in the premle of doumentF


12.745

donlypremlelngugettriute newommndB{dttrerr}P{7 kgeirror{el}7 {he ttriute 5P is unknown for lnguge 5IF}7 {our ommnd will e ignoredD type `returnb to proeed}}

he error text to e issued when n unknown ttriute is seletedF


12.746 12.747 12.748 12.749

lddelredttriute

his ommnd dds the new lngugeGttriute omintion to the list of known ttriutesF
deflddelredttriute5I5P5Q{7 lddddlistldttriutes{5IE5P}7

12.750 12.751

hen it de(nes ontrol sequene to e exeuted when the ttriute is used in doumentF he result of this should e tht the mro \extras... for the urrent lnguge is extendedD otherwise the ttriute will not work s its ode is removed from memory t \begin{document}F
12.752 12.753

expndfterdefsnme5Idttrd5Pendsnme{5Q}7 }

ldifttriuteset

his internl mro hs R rgumentsF st n e used to interpret i ode sed on whether ertin ttriute ws setF his ommnd should pper inside the rgument to \AtBeginDocument euse the ttriutes re set in the doument premleD after babel is lodedF RW

he (rst rgument is the lngugeD the seond rgument the ttriute eing hekedD nd the third nd fourth rguments re the true nd flse lusesF
12.754

defldifttriuteset5I5P5Q5R{7 ifxldknowndttrisdundefined indflse else edefldtemp{noexpndind{D5IE5PD}7 {DldknowndttrisD}}7 ldtemp fi

pirst we need to (nd out if ny ttriutes were setY if not we9re doneF
12.755 12.756 12.757

he we need to hek the list of known ttriutesF


12.758 12.759 12.760 12.761

hen we9re this fr \ifin@ hs vlue inditing if the ttriute in question ws set or notF tust to e sfe the ode to e exeuted is thrown over the \fi9F
12.762 12.763 12.764 12.765 12.766 12.767

ifind ldfterelse5Q7 else ldfterfi5R7 fi }

lddddlist

his internl mro dds its seond rgument to omm seprted list in its (rst rgumentF hen the list is not de(ned yet @or emptyAD it will e initited

deflddddlist5I5P{7 ifx5Idundefined 12.770 def5I{5P}7 12.771 else 12.772 ifx5Idempty 12.773 def5I{5P}7 12.774 else 12.775 edef5I{5ID5P}7 12.776 fi 12.777 fi 12.778 }
12.768 12.769

ldifknowndttri

en internl mro to hek whether given lngugeGttriute is knownF he mro tkes R rgumentsD the lngugeGttriuteD the ttriute listD the iEode to e exeuted when the ttriute is known nd the iEode to e exeuted otherwiseF
defldifknowndttri5I5P{7 letldtempdseondoftwo dforldtempXa5Pdo{7 expndfterindexpndfter{expndfterDldtempD}{D5ID}7 ifind letldtempdfirstoftwo else fi}7

12.779

e (rst ssume the ttriute is unknownF


12.780

hen we loop over the list of known ttriutesD trying to (nd mthF
12.781 12.782 12.783

hen mth is found the de(nition of \bbl@tempa is hngedF


12.784 12.785 12.786

SH

pinlly we exeute \bbl@tempaF


12.787 12.788

ldtemp

ldlerdttris

A his mro removes ll the ttriute ode from v i9s memory t \begin{document} time @if ny is presentAF

defldlerdttris{7 ifxldttriutesdundefinedelse 12.791 dforldtempXaldttriutesdo{7 12.792 expndfterldlerdttrildtempF 12.793 }7 12.794 letldttriutesdundefined 12.795 fi 12.796 } 12.797 defldlerdttri5IE5PF{7 12.798 expndfterletsnme5Idttrd5Pendsnmedundefined} 12.799 etfeginhoument{ldlerdttris}
12.789 12.790

12.6 Support for saving macro denitions


o sve the mening of ontrol sequenes using \babel@saveD we use temporry ontrol sequenesF o sve hsh tle entries for these ontrol sequenesD we don9t use the nme of the ontrol sequene to e sved to onstrut the temporry nmeF snsted we simply use the vlue of ounterD whih is reset to zero eh time we egin to sve new vluesF his works well euse we relese the sved menings efore we egin to sve new set of ontrol sequene menings @see \selectlanguage nd \originalTeXAF
eldsvent he initiliztion of new sve yleX reset the ounter to zeroF eldeginsve 12.800 defeldeginsve{eldsventzd}

fefore it9s forgottenD llote the ounter nd initilize llF


12.801 12.802

newounteldsvent eldeginsve

eldsve

he mro \babel@save csname sves the urrent mening of the ontrol seE quene csname to \originalTeX6 F o do thisD we let the urrent mening to temporry ontrol sequeneD the restore ommnds re ppended to \originalTeX nd the ounter is inrementedF

defeldsve5I{7 expndfterletsnme eldnumereldsventendsnme 5Irelx 12.805 egingroup 12.806 toksdexpndfter{originle let5Ia}7 12.807 edefx{endgroup 12.808 defnoexpndoriginle{thetoksd expndfternoexpnd 12.809 snme eldnumereldsventendsnmerelx}}7 12.810 x 12.811 dvneeldsventdne}
12.803 12.804

eldsvevrile

he mro \babel@savevariable variable sves the vlue of the vrileF variable n e nything llowed fter the \the primitiveF
6 \originalTeX
has to be expandable, i. e. you shouldn't let it to

\relax.

SI

defeldsvevrile5I{egingroup toksdexpndfter{originle 5Ia}7 12.814 edefx{endgroup 12.815 defnoexpndoriginle{thetoksd the5Irelx}}7 12.816 x}


12.812 12.813

ldfrenhsping ldnonfrenhsping

ome lnguges need to hve \frenchspacing in e'etF ythers don9t wnt thtF he ommnd \bbl@frenchspacing swithes it on when it isn9t lredy in e'et nd \bbl@nonfrenchspacing swithes it o' if neessryF

defldfrenhsping{7 ifnumthesfodeFadm 12.819 letldnonfrenhspingrelx 12.820 else 12.821 frenhsping 12.822 letldnonfrenhspingnonfrenhsping 12.823 fi} 12.824 letldnonfrenhspingnonfrenhsping
12.817 12.818

12.7 Support for extending macros


ddto

por eh lnguge four ontrol sequenes hve to e de(ned tht ontrol the lngugeEspei( de(nitionsF o e le to dd something to these mro one they hve een de(ned the mro \addto is introduedF st tkes two rgumentsD control sequence nd iEode to e dded to the control sequence F sf the control sequence hs not een de(ned efore it is de(ned nowF

defddto5I5P{7 ifx5Idundefined 12.827 def5I{5P}7 12.828 else


12.825 12.826

he ontrol sequene ould lso expnd to \relaxD in whih se irulr de(E nition resultsF he net result is stk over)owF
12.829 12.830 12.831

ifx5Irelx def5I{5P}7 else

ytherwise the replement text for the control sequence is expnded nd stored in token registerD together with the iEode to e ddedF pinlly the control sequence is re de(nedD using the ontents of the token registerF
12.832 12.833 12.834 12.835 12.836

{toksdexpndfter{5I5P}7 xdef5I{thetoksd}}7 fi fi

12.8 Macros common to a number of languages


llowhyphens

his mro mkes hyphention possileF fsilly its de(nition is nothing more thn \nobreak \hskip 0pt plus 0pt7 F
defldtdone{I}
7 T X begins and ends a word for hyphenation at a glue node. The penalty prevents a linebreak E at this glue node.

12.837

SP

defllowhyphens{7 ifxfdenodingldtdoneelseldllowhyphensfi} 12.840 defldllowhyphens{norekhskipzdskip}


12.838 12.839

setdlowdox

he following mro is used to lower quotes to the sme level s the ommF st prepres its rgument in ox register HF

defsetdlowdox5I{setoxtwdhox{D}setoxzdhox{5I}7 dimenzdhtzd dvnedimenzd Ehttwd7 12.843 setoxzdhox{lowerdimenzd oxzd}htzdhttwd dpzddptwd}


12.841 12.842

svedsfdq

he mro \save@sf@q is used to sve nd reset the urrent spe ftorF

defsvedsfdq 5I{levevmode egingroup 12.846 edefdp{speftor thespeftor}5Idp 12.847 endgroup 12.848 }


12.844 12.845

lddis

por some lnguges the mro \bbl@disc is used to ese the insertion of disreE tionries for letters tht ehve normlly9 t rekpointF
deflddis5I5P{7 norekdisretionry{5PE}{}{5I}llowhyphens}

12.849 12.850

12.9 Making glyphs available


he (le babel.dtx8 mkes numer of glyphs ville tht either do not exist in the OT1 enoding nd hve to e fked9D or tht re not essile through T1enc.defF

12.10 Quotation marks


quotedlse

sn the T1 enoding the opening doule quote t the seline is ville s seprte hrterD essile vi \quotedblbaseF sn the OT1 enoding it is not villeD therefor we mke it ville y lowering the norml open quote hrE ter to the selineF

rovideextgommnd{quotedlse}{yI}{7 svedsfdq{setdlowdox{textquotedlrightG}7 12.853 oxzdkernEFHRemllowhyphens}}


12.851 12.852

wke sure tht when n enoding other thn OT1 or T1 is used this glyph n still e typesetF
12.854 12.855

rovideextgommndhefult{quotedlse}{7 seextymol{yI}{quotedlse}}

quotesinglse

e lso need the single quote hrter t the selineF

rovideextgommnd{quotesinglse}{yI}{7 svedsfdq{setdlowdox{textquoterightG}7 12.858 oxzdkernEFHRemllowhyphens}}


12.856 12.857

8 The

le described in this section has version number v3.8l, and was last revised on

2008/03/16.

SQ

wke sure tht when n enoding other thn OT1 or T1 is used this glyph n still e typesetF
12.859 12.860

rovideextgommndhefult{quotesinglse}{7 seextymol{yI}{quotesinglse}}

guillemotleft he guillemet hrters re not ville in OT1 enodingF hey re fkedF guillemotright 12.861 rovideextgommnd{guillemotleft}{yI}{7 12.862 ifmmode 12.863 ll 12.864 else 12.865 svedsfdq{norek 12.866 riseFPexhox{6sriptsriptstylell6}llowhyphens}7 12.867 fi} 12.868 rovideextgommnd{guillemotright}{yI}{7 12.869 ifmmode 12.870 gg 12.871 else 12.872 svedsfdq{norek 12.873 riseFPexhox{6sriptsriptstylegg6}llowhyphens}7 12.874 fi}

wke sure tht when n enoding other thn OT1 or T1 is used these glyphs n still e typesetF
rovideextgommndhefult{guillemotleft}{7 seextymol{yI}{guillemotleft}} 12.877 rovideextgommndhefult{guillemotright}{7 12.878 seextymol{yI}{guillemotright}}
12.875 12.876

guilsinglleft he single guillemets re not ville in OT1 enodingF hey re fkedF guilsinglright 12.879 rovideextgommnd{guilsinglleft}{yI}{7 12.880 ifmmode 12.881 `7 12.882 else 12.883 svedsfdq{norek 12.884 riseFPexhox{6sriptsriptstyle`6}llowhyphens}7 12.885 fi} 12.886 rovideextgommnd{guilsinglright}{yI}{7 12.887 ifmmode 12.888 b7 12.889 else 12.890 svedsfdq{norek 12.891 riseFPexhox{6sriptsriptstyleb6}llowhyphens}7 12.892 fi}

wke sure tht when n enoding other thn OT1 or T1 is used these glyphs n still e typesetF
rovideextgommndhefult{guilsinglleft}{7 seextymol{yI}{guilsinglleft}} 12.895 rovideextgommndhefult{guilsinglright}{7 12.896 seextymol{yI}{guilsinglright}}
12.893 12.894

SR

12.11 Letters
ij st

he duth lnguge uses the letter ij9F st is ville in T1 enoded fontsD ut not in the OT1 enoded fontsF herefor we fke it for the OT1 enodingF

helreextgommnd{ij}{yI}{7 llowhyphens ikernEHFHPem jllowhyphens} 12.899 helreextgommnd{st}{yI}{7 12.900 llowhyphens skernEHFHPem tllowhyphens} 12.901 helreextgommnd{ij}{I}{hrIVV} 12.902 helreextgommnd{st}{I}{hrIST}
12.897 12.898

wke sure tht when n enoding other thn OT1 or T1 is used these glyphs n still e typesetF
rovideextgommndhefult{ij}{7 seextymol{yI}{ij}} 12.905 rovideextgommndhefult{st}{7 12.906 seextymol{yI}{st}}
12.903 12.904

dj ht

he rotin lnguge needs the letters \dj nd \DJY they re ville in the T1 enodingD ut not in the OT1 enoding y defultF ome ode to onstrut these glyphs for the OT1 enoding ws mde ville to me y tipevi wrioD @stipcevic@olimp.irb.hrAF

defrrtid{hrule heightHFIex widthHFQem} defrttid{hrule heightHFIex widthHFQQem} 12.909 7 12.910 defddjd{7 12.911 setoxHhox{d}dimendahtH 12.912 dvnedimendIex 12.913 dimendFRSdimend 12.914 dimendiiexpndfterremdptthefontdimendnefontdimend 12.915 dvnedimendiiFSex 12.916 levevmoderlp{risedimendhox{kerndimendiivox{rrtid}}}} 12.917 defhhtd{7 12.918 setoxHhox{h}dimendaFSShtH 12.919 dimendiiexpndfterremdptthefontdimendnefontdimend 12.920 dvnedimendiiFISex 7 orretion for the dsh position 12.921 dvnedimendiiEFISfontdimenUfont 7 orretion for mtt font 12.922 dimenthrddexpndfterremdptthefontdimenUfontdimend 12.923 levevmoderlp{risedimendhox{kerndimendiivox{rttid}}}} 12.924 7 12.925 helreextgommnd{dj}{yI}{ddjd d} 12.926 helreextgommnd{ht}{yI}{hhtd h}
12.907 12.908

wke sure tht when n enoding other thn OT1 or T1 is used these glyphs n still e typesetF
rovideextgommndhefult{dj}{7 seextymol{yI}{dj}} 12.929 rovideextgommndhefult{ht}{7 12.930 seextymol{yI}{ht}}
12.927 12.928

por the T1 enoding \SS is de(ned nd selets spei( glyph from the fontD ut for other enodings it is not villeF herefor we mke it ville hereF
helreextgommnd{}{yI}{} rovideextgommndhefult{}{seextymol{yI}{}}

12.931 12.932

SS

12.12 Shorthands for quotation marks


horthnds re provided for numer of di'erent quottion mrksD whih mke them usle oth outside nd inside mthmodeF
glq he germn9 single quotesF grq 12.933 rovideextgommnd{glq}{yI}{7 12.934 textormth{quotesinglse}{mox{quotesinglse}}} 12.935 rovideextgommnd{glq}{I}{7 12.936 textormth{quotesinglse}{mox{quotesinglse}}} 12.937 rovideextgommndhefult{glq}{seextymol{yI}glq}

he de(nition of \grq depends on the fontenodingF ith T1 enoding no extr kerning is neededF
rovideextgommnd{grq}{I}{7 textormth{textquoteleft}{mox{textquoteleft}}} 12.940 rovideextgommnd{grq}{yI}{7 12.941 svedsfdq{kernEFHIPSem7 12.942 textormth{textquoteleft}{mox{textquoteleft}}7 12.943 kernFHUemrelx}} 12.944 rovideextgommndhefult{grq}{seextymol{yI}grq}
12.938 12.939

glqq he germn9 doule quotesF grqq 12.945 rovideextgommnd{glqq}{yI}{7 12.946 textormth{quotedlse}{mox{quotedlse}}} 12.947 rovideextgommnd{glqq}{I}{7 12.948 textormth{quotedlse}{mox{quotedlse}}} 12.949 rovideextgommndhefult{glqq}{seextymol{yI}glqq}

he de(nition of \grqq depends on the fontenodingF ith T1 enoding no extr kerning is neededF
rovideextgommnd{grqq}{I}{7 textormth{textquotedlleft}{mox{textquotedlleft}}} 12.952 rovideextgommnd{grqq}{yI}{7 12.953 svedsfdq{kernEFHUem7 12.954 textormth{textquotedlleft}{mox{textquotedlleft}}7 12.955 kernFHUemrelx}} 12.956 rovideextgommndhefult{grqq}{seextymol{yI}grqq}
12.950 12.951

flq he frenh9 single guillemetsF frq 12.957 rovideextgommnd{flq}{yI}{7 12.958 textormth{guilsinglleft}{mox{guilsinglleft}}} 12.959 rovideextgommnd{flq}{I}{7 12.960 textormth{guilsinglleft}{mox{guilsinglleft}}} 12.961 rovideextgommndhefult{flq}{seextymol{yI}flq} rovideextgommnd{frq}{yI}{7 textormth{guilsinglright}{mox{guilsinglright}}} 12.964 rovideextgommnd{frq}{I}{7 12.965 textormth{guilsinglright}{mox{guilsinglright}}} 12.966 rovideextgommndhefult{frq}{seextymol{yI}frq}
12.962 12.963

flqq he frenh9 doule guillemetsF frqq 12.967 rovideextgommnd{flqq}{yI}{7 12.968 textormth{guillemotleft}{mox{guillemotleft}}}

ST

rovideextgommnd{flqq}{I}{7 textormth{guillemotleft}{mox{guillemotleft}}} 12.971 rovideextgommndhefult{flqq}{seextymol{yI}flqq}


12.969 12.970

rovideextgommnd{frqq}{yI}{7 textormth{guillemotright}{mox{guillemotright}}} 12.974 rovideextgommnd{frqq}{I}{7 12.975 textormth{guillemotright}{mox{guillemotright}}} 12.976 rovideextgommndhefult{frqq}{seextymol{yI}frqq}


12.972 12.973

12.13 Umlauts and trema's


he ommnd \" needs to hve di'erent e'et for di'erent lngugesF por qermn for instneD the umlut9 should e positioned lower thn the defult position for pling it over the letters D oD uD eD y nd F hen pled over n eD iD i or s it n retin its norml positionF por huth the sme glyph is lwys pled in the lower positionF
umluthigh umlutlow

o e le to provide oth positions of \" we provide two ommnds to swith the positioningD the defult will e \umlauthigh @the norml positioningAF

defumluthigh{7 defldumlut55I{levevmodegroup7 12.979 expndfterentsnmefdenoding dqposendsnme 12.980 55Illowhyphensegroup}7 12.981 letldumluteldumlut} 12.982 defumlutlow{7 12.983 defldumlut{protetlowerdumlut}} 12.984 defumlutelow{7 12.985 defldumlute{protetlowerdumlut}} 12.986 umluthigh
12.977 12.978

lowerdumlut

he ommnd \lower@umlaut is used to position the \" loser the the letterF e wnt the umlut hrter loweredD nerer to the letterF o do this we need n extr dimen registerF

expndfterifxsnme dhendsnmerelx snme newdimenendsnmedh 12.989 fi


12.987 12.988

he following ode fools i9s make_accent proedure out the urrent xEheight of the font to fore nother plement of the umlut hrterF
12.990

deflowerdumlut5I{7

pirst we hve to sve the urrent xEheight of the fontD euse we9ll hnge this font dimension nd this is lwys done glollyF
12.991 12.992

levevmodegroup dh Iex7

hen we ompute the new xEheight in suh wy tht the umlut hrter is lowered to the se hrterF he vlue of .45ex depends on the METAFONT prmeters with whih the fonts were uiltF @tust try outD whih vlue will look estFA
12.993 12.994 12.995

{setoxzdhox{7 expndfterhrsnmefdenoding dqposendsnme}7 dimend EFRSexdvnedimendhtzd

SU

sf the new xEheight is too lowD it is not hngedF


12.996

ifdim Iex`dimend fontdimenSfontdimend fi}7

pinlly we ll the \accent primitiveD reset the old xEheight nd insert the se hrter in the rgumentF
12.997 12.998 12.999

expndfterentsnmefdenoding dqposendsnme fontdimenSfontdh 5I7 egroup}

por ll vowels we delre \" to e omposite ommnd whih uses \bbl@umlauta or \bbl@umlaute to position the umlut hrterF e need to e sure tht these de(nitions override the ones tht re provided when the pkE ge fontenc with option OT1 is usedF herefor these delrtions re postponed until the eginning of the doumentF
etfeginhoument{7 helreextgompositegommnd{4}{yI}{}{ldumlut{}}7 12.1002 helreextgompositegommnd{4}{yI}{e}{ldumlute{e}}7 12.1003 helreextgompositegommnd{4}{yI}{i}{ldumlute{i}}7 12.1004 helreextgompositegommnd{4}{yI}{i}{ldumlute{i}}7 12.1005 helreextgompositegommnd{4}{yI}{o}{ldumlut{o}}7 12.1006 helreextgompositegommnd{4}{yI}{u}{ldumlut{u}}7 12.1007 helreextgompositegommnd{4}{yI}{e}{ldumlut{e}}7 12.1008 helreextgompositegommnd{4}{yI}{i}{ldumlute{i}}7 12.1009 helreextgompositegommnd{4}{yI}{s}{ldumlute{s}}7 12.1010 helreextgompositegommnd{4}{yI}{y}{ldumlut{y}}7 12.1011 helreextgompositegommnd{4}{yI}{}{ldumlut{}}7 12.1012 }
12.1000 12.1001

12.14 The redenition of the style commands


A he rest of the ode in this (le n only e proessed y v iD so we hek the urrent formtF sf it is plin iD proessing should stop hereF futD euse of the need to limit the sope of the de(nition of \formatD mro tht is used lolly in the following \if sttementD this omprison is done inside groupF o prevent i from omplining out n unlosed groupD the proessing of the ommnd \endinput is deferred until fter the group is losedF his is omplished y the ommnd \aftergroupF

{defformt{lplin} ifxfmtnmeformt 12.1015 else 12.1016 defformt{vePe} 12.1017 ifxfmtnmeformt 12.1018 else 12.1019 ftergroupendinput 12.1020 fi 12.1021 fi}
12.1013 12.1014 A xow tht we9re sure tht the ode is seen y v i onlyD we hve to (nd out wht the min @primryA doument style is euse we wnt to rede(ne some A mrosF his is only neessry for releses of v i dted efore heemer IWWIF herefor this prt of the ode n optionlly e inluded in babel.def y speiE fying the docstrip option namesF 12.1022

names

SV

he stndrd styles n e distinguished y heking whether some mros re de(nedF sn tle I n overview is given of the mros tht n e used for this purposeF rtile report nd ook letter X X X oth the \chapter nd \opening mros re undeE (ned the \chapter mro is de(ned nd the \opening is unde(ned the \chapter mro is unde(ned nd the \opening is de(ned

le IX row to determine the min doument style he mros tht hve to e rede(ned for the report nd book doument styles hppen to e the smeD so there is no need to distinguish etween those two stylesF
dodstyle

pirst prmeter \doc@style is de(ned to identify the urrent doument styleF his prmeter might hve een de(ned y doument style tht lredy uses mros insted of hrdEwired textsD suh s artikel1.sty TD so the existene of \doc@style is hekedF sf this mro is unde(nedD iF eFD if the doument style is unknown nd ould therefore ontin hrdEwired textsD \doc@style is de(ned to the defult vlue H9F
\ifx\@undefined\doc@style \def\doc@style{0}%

12.1023 12.1024

his prmeter is de(ned in the following if onstrution @see tle IAX


\ifx\@undefined\opening \ifx\@undefined\chapter 12.1027 \def\doc@style{1}% 12.1028 \else 12.1029 \def\doc@style{2}% 12.1030 \fi 12.1031 \else 12.1032 \def\doc@style{3}% 12.1033 \fi% 12.1034 \fi%
12.1025 12.1026

12.14.1

Redenition of macros

xow here omes the rel workX we strt to rede(ne things nd reple hrdEwired texts y mrosF hese rede(nitions should e rried out onditionllyD in se it hs lredy een doneF por the figure nd table environments we hve in ll stylesX
12.1035 12.1036

\@ifundefined{figurename}{\def\fnum@figure{\figurename{} \thefigure}}{} \@ifundefined{tablename}{\def\fnum@table{\tablename{} \thetable}}{}

he rest of the mros hve to e treted di'erently for eh styleF hen \doc@style still hs its defult vlue nothing needs to e doneF
12.1037 12.1038

\ifcase \doc@style\relax \or

SW

his mens tht babel.def is red fter the article styleD where no \chapter nd \opening ommnds re de(ned9 F pirst we hve the \tableofcontentsD \listoffigures nd \listoftablesX
\@ifundefined{contentsname}% {\def\tableofcontents{\section*{\contentsname\@mkboth 12.1041 {\uppercase{\contentsname}}{\uppercase{\contentsname}}}% 12.1042 \@starttoc{toc}}}{}
12.1039 12.1040 12.1043

\@ifundefined{listfigurename}% {\def\listoffigures{\section*{\listfigurename\@mkboth 12.1046 {\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}% 12.1047 \@starttoc{lof}}}{}


12.1044 12.1045 12.1048

\@ifundefined{listtablename}% {\def\listoftables{\section*{\listtablename\@mkboth 12.1051 {\uppercase{\listtablename}}{\uppercase{\listtablename}}}% 12.1052 \@starttoc{lot}}}{}


12.1049 12.1050

hen the \thebibliography nd \theindex environmentsF


\@ifundefined{refname}% {\def\thebibliography#1{\section*{\refname 12.1055 \@mkboth{\uppercase{\refname}}{\uppercase{\refname}}}% 12.1056 \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}% 12.1057 \leftmargin\labelwidth 12.1058 \advance\leftmargin\labelsep 12.1059 \usecounter{enumi}}% 12.1060 \def\newblock{\hskip.11em plus.33em minus.07em}% 12.1061 \sloppy\clubpenalty4000\widowpenalty\clubpenalty 12.1062 \sfcode`\.=1000\relax}}{}
12.1053 12.1054 12.1063 12.1064 12.1065

\@ifundefined{indexname}% {\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi 12.1066 \columnseprule \z@ 12.1067 \columnsep 35pt\twocolumn[\section*{\indexname}]% 12.1068 \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% 12.1069 \thispagestyle{plain}% 12.1070 \parskip\z@ plus.3pt\parindent\z@\let\item\@idxitem}}{}

he abstract environmentX
\@ifundefined{abstractname}% {\def\abstract{\if@twocolumn 12.1073 \section*{\abstractname}% 12.1074 \else \small 12.1075 \begin{center}% 12.1076 {\bf \abstractname\vspace{-.5em}\vspace{\z@}}% 12.1077 \end{center}% 12.1078 \quotation 12.1079 \fi}}{}
12.1071 12.1072

end lst ut not lestD the mro \partX


\@ifundefined{partname}% 12.1081 {\def\@part[#1]#2{\ifnum \c@secnumdepth >\m@ne
12.1080

9A

fact that was pointed out to me by Nico Poppelier and was already used in Piet van

Oostrum's document style option

nl.

TH

12.1082 12.1083 12.1084 12.1085 12.1086 12.1087 12.1088 12.1089 12.1090 12.1091 12.1092 12.1093 12.1094 12.1095

}{} \or

\refstepcounter{part}% \addcontentsline{toc}{part}{\thepart \hspace{1em}#1}\else \addcontentsline{toc}{part}{#1}\fi {\parindent\z@ \raggedright \ifnum \c@secnumdepth >\m@ne \Large \bf \partname{} \thepart \par \nobreak \fi \huge \bf #2\markboth{}{}\par}% \nobreak \vskip 3ex\@afterheading}%

his is ll tht needs to e done for the article styleF


12.1096

he next se is formed y the two styles book nd reportF fsilly we hve to do the sme s for the article styleD exept now we must lso hnge the \chapter ommndF he tles of ontentsD (gures nd tlesX
\@ifundefined{contentsname}% {\def\tableofcontents{\@restonecolfalse 12.1099 \if@twocolumn\@restonecoltrue\onecolumn 12.1100 \fi\chapter*{\contentsname\@mkboth 12.1101 {\uppercase{\contentsname}}{\uppercase{\contentsname}}}% 12.1102 \@starttoc{toc}% 12.1103 \csname if@restonecol\endcsname\twocolumn 12.1104 \csname fi\endcsname}}{}
12.1097 12.1098 12.1105

\@ifundefined{listfigurename}% {\def\listoffigures{\@restonecolfalse 12.1108 \if@twocolumn\@restonecoltrue\onecolumn 12.1109 \fi\chapter*{\listfigurename\@mkboth 12.1110 {\uppercase{\listfigurename}}{\uppercase{\listfigurename}}}% 12.1111 \@starttoc{lof}% 12.1112 \csname if@restonecol\endcsname\twocolumn 12.1113 \csname fi\endcsname}}{}
12.1106 12.1107 12.1114

\@ifundefined{listtablename}% {\def\listoftables{\@restonecolfalse 12.1117 \if@twocolumn\@restonecoltrue\onecolumn 12.1118 \fi\chapter*{\listtablename\@mkboth 12.1119 {\uppercase{\listtablename}}{\uppercase{\listtablename}}}% 12.1120 \@starttoc{lot}% 12.1121 \csname if@restonecol\endcsname\twocolumn 12.1122 \csname fi\endcsname}}{}
12.1115 12.1116

eginD the bibliography nd index environmentsY notie tht in this se we use \bibname insted of \refname s in the de(nitions for the article styleF he reson for this is tht in the article doument style the term eferenes9 is used in the de(nition of \thebibliographyF sn the report nd book doument styles the term filiogrphy9 is usedF TI

12.1123 12.1124

\@ifundefined{bibname}% {\def\thebibliography#1{\chapter*{\bibname 12.1125 \@mkboth{\uppercase{\bibname}}{\uppercase{\bibname}}}% 12.1126 \list{[\arabic{enumi}]}{\settowidth\labelwidth{[#1]}% 12.1127 \leftmargin\labelwidth \advance\leftmargin\labelsep 12.1128 \usecounter{enumi}}% 12.1129 \def\newblock{\hskip.11em plus.33em minus.07em}% 12.1130 \sloppy\clubpenalty4000\widowpenalty\clubpenalty 12.1131 \sfcode`\.=1000\relax}}{}
12.1132 12.1133 12.1134

\@ifundefined{indexname}% {\def\theindex{\@restonecoltrue\if@twocolumn\@restonecolfalse\fi 12.1135 \columnseprule \z@ 12.1136 \columnsep 35pt\twocolumn[\@makeschapterhead{\indexname}]% 12.1137 \@mkboth{\uppercase{\indexname}}{\uppercase{\indexname}}% 12.1138 \thispagestyle{plain}% 12.1139 \parskip\z@ plus.3pt\parindent\z@ \let\item\@idxitem}}{}

rere is the abstract environmentX


\@ifundefined{abstractname}% 12.1141 {\def\abstract{\titlepage 12.1142 \null\vfil 12.1143 \begin{center}% 12.1144 {\bf \abstractname}% 12.1145 \end{center}}}{}
12.1140

end lst ut not lest the \chapterD \appendix nd \part mrosF


\@ifundefined{chaptername}{\def\@chapapp{\chaptername}}{} 12.1147 % 12.1148 \@ifundefined{appendixname}% 12.1149 {\def\appendix{\par 12.1150 \setcounter{chapter}{0}% 12.1151 \setcounter{section}{0}% 12.1152 \def\@chapapp{\appendixname}% 12.1153 \def\thechapter{\Alph{chapter}}}}{} 12.1154 % 12.1155 \@ifundefined{partname}% 12.1156 {\def\@part[#1]#2{\ifnum \c@secnumdepth >-2\relax 12.1157 \refstepcounter{part}% 12.1158 \addcontentsline{toc}{part}{\thepart 12.1159 \hspace{1em}#1}\else 12.1160 \addcontentsline{toc}{part}{#1}\fi 12.1161 \markboth{}{}% 12.1162 {\centering 12.1163 \ifnum \c@secnumdepth >-2\relax 12.1164 \huge\bf \partname{} \thepart 12.1165 \par 12.1166 \vskip 20pt \fi 12.1167 \Huge \bf 12.1168 #1\par}\@endpart}}{}%
12.1146 12.1169

\or

xow we ddress the se where babel.def is red fter the letter styleF he letter doument style de(nes the mro \opening nd some other mros

TP

tht re spei( to letterF his mens tht we hve to rede(ne other mrosD ompred to the previous two sesF pirst two mros for the mteril t the end of letterD the \cc nd \encl mrosF
\@ifundefined{ccname}% {\def\cc#1{\par\noindent 12.1172 \parbox[t]{\textwidth}% 12.1173 {\@hangfrom{\rm \ccname : }\ignorespaces #1\strut}\par}}{}
12.1170 12.1171 12.1174

\@ifundefined{enclname}% {\def\encl#1{\par\noindent 12.1177 \parbox[t]{\textwidth}% 12.1178 {\@hangfrom{\rm \enclname : }\ignorespaces #1\strut}\par}}{}


12.1175 12.1176

he lst thing we hve to do here is to rede(ne the headings pgestyleX


\@ifundefined{headtoname}% 12.1180 {\def\ps@headings{% 12.1181 \def\@oddhead{\sl \headtoname{} \ignorespaces\toname \hfil 12.1182 \@date \hfil \pagename{} \thepage}% 12.1183 \def\@oddfoot{}}}{}
12.1179

his ws the lst of the four stndrd doument stylesD so if \doc@style hs nother vlue we do nothing nd just lose the if onstrutionF
12.1184

\fi

A rere ends the ode tht n e optionlly inluded when version of v i is in use tht is dted before heemer IWWIF 12.1185 12.1186

/names /core

12.15 Cross referencing macros


A he v i ook sttesX

he key rgument is ny sequene of lettersD digitsD nd puntution symolsY upperE nd lowerse letters re regrded s di'erentF hen the ove quote should still e true when doument is typeset in lnE guge tht hs tive hrtersD speil re hs to e tken of the tegory odes of these hrters when they pper in n rgument of the ross referenE ing mrosF hen ross referening ommnd proesses its rgumentD ll tokens in this rgument should e hrter tokens with tegory letter9 or other9F he only wy to omplish this in most ses is to use the trik desried in the iook I @eppendix hD pge QVPAF he primitive \meaning pplied to token expnds to the urrent mening of this tokenF por exmpleD \meaning\A9 with \A de(ned s \def\A#1{\B}9 expnds to the hrters macro:#1->\B9 with ll tegory odes set to other9 or spe9F
ldredefine

o rede(ne ommndD we sve the old mening of the mroF hen we rede(ne it to ll the originl mro with the snitized9 rgumentF he reson why we do A it this wy is tht we don9t wnt to rede(ne the v i mros ompletely in se their de(nitions hnge @they hve hnged in the pstAF

TQ

feuse we need to rede(ne numer of ommnds we de(ne the ommnd \bbl@redefine whih tkes re of thisF st retes new ontrol sequeneD \org@...
12.1187

core | shorthands defldredefine5I{7 12.1189 edefldtemp{expndfterdgolestring5I}7 12.1190 expndfterletsnme orgdldtempendsnme5I 12.1191 expndfterdefsnmeldtempendsnme}
12.1188

his ommnd should only e used in the premle of the doumentF


12.1192

donlypremleldredefine

ldredefinedlong

his version of \babel@redefine n e used to rede(ne \long ommnds suh s \ifthenelseF

12.1193 12.1194

defldredefinedlong5I{7 edefldtemp{expndfterdgolestring5I}7 12.1195 expndfterletsnme orgdldtempendsnme5I 12.1196 expndfterlongexpndfterdefsnmeldtempendsnme} 12.1197 donlypremleldredefinedlong

ldredefineroust

por ommnds tht re rede(nedD ut whih might e roust we need slightly more intelligent mroF e roust ommnd foo is de(ned to expnd to \protect\foo F o it is neessry to hek whether \foo existsF

defldredefineroust5I{7 edefldtemp{expndfterdgolestring5I}7 12.1200 expndfterifxsnme ldtempspeendsnmerelx 12.1201 expndfterletsnme orgdldtempendsnme5I 12.1202 expndfteredefsnmeldtempendsnme{noexpndprotet 12.1203 expndfternoexpndsnmeldtempspeendsnme}7 12.1204 else 12.1205 expndfterletsnme orgdldtempexpndfterendsnme 12.1206 snmeldtempspeendsnme 12.1207 fi
12.1198 12.1199

he result of the ode ove is tht the ommnd tht is eing rede(ned is lwys roust fterwrdsF herefor ll we need to do now is de(ne \foo F
12.1208

expndfterdefsnmeldtempspeendsnme}

his ommnd should only e used in the premle of the doumentF


12.1209

donlypremleldredefineroust

newlel

he mro \label writes line with \newlabel ommnd into the .aux (le to de(ne lelsF
7ldredefinenewlel5I5P{7 7 dsfedtivestrueorgdnewlel{5I}{5P}dsfedtivesflse}

12.1210 12.1211

dnewldel

A e need to hnge the de(nition of the v iEinternl mro \@newl@belF his is needed euse we need to mke sure tht shorthnd hrters expnd to their nonEtive versionF

12.1212

defdnewldel5I5P5Q{7

pirst we open new group to keep the hnged setting of \protect lol nd then we set the @safe@actives swith to true to mke sure tht ny shorthnd tht ppers in ny of the rguments immeditely expnds to its nonEtive selfF TR

12.1213 12.1214 12.1215 12.1216 12.1217 12.1218 12.1219 12.1220 12.1221 12.1222 12.1223 12.1224

{7 dsfedtivestrue difundefined{5Id5P}7 relx {7 gdef dmultiplelels {7 dltexdwrningdnodline{here were multiplyEdefined lels}}7 dltexdwrningdnodline{vel 5P9 multiply defined}7 }7 gloldnmedef{5Id5P}{5Q}7 }7 }

dtestdef

A en internl v i mro used to test if the lels tht hve een written on the .aux (le hve hngedF st is lled y the \enddocument mroF his mro needs to e ompletely rewrittenD using \meaningF he reson for this is tht in some ses the expnsion of \#1@#2 ontins the sme hrters s the #3Y ut the A hrter odes di'erF herefor v i keeps reporting tht the lels my hve hngedF

ghekgommndBdtestdefQ{7 defreservedd{5Q}7 12.1227 expndfter ifx snme 5Id5Pendsnme reservedd 12.1228 else 12.1229 dtempswtrue 12.1230 fi}
12.1225 12.1226

xow tht we mde sure tht \@testdef still hs the sme de(nition we n rewrite itF pirst we mke the shorthnds sfe9F
12.1231 12.1232

defdtestdef 5I5P5Q{7 dsfedtivestrue

hen we use \bbl@tempa s n lis9 for the mro tht ontins the lel whih is eing hekedF
12.1233

expndfterletexpndfterldtempsnme 5Id5Pendsnme defldtemp{5Q}7 dsfedtivesflse ifxldtemprelx else edefldtemp{expndfterstripdprefixmeningldtemp}7 fi edefldtemp{expndfterstripdprefixmeningldtemp}7 ifx ldtemp ldtemp else dtempswtrue fi}

hen we de(ne \bbl@tempb just s \@newl@bel does itF


12.1234 12.1235

hen the lel is de(ned we reple the de(nition of \bbl@tempa y its meningF
12.1236 12.1237 12.1238 12.1239

e do the sme for \bbl@tempbF


12.1240

sf the lel didn9t hngeD \bbl@tempa nd \bbl@tempb should e identil mrosF


12.1241 12.1242 12.1243 12.1244

ref pgeref

he sme holds for the mro \ref tht referenes lel nd \pageref to referE ene pgeF o we rede(ne \ref nd \pagerefF hile we hnge these mrosD TS

we mke them roust s well @if they weren9t lredyA to prevent prolems if they should eome expnded t the wrong momentF
ldredefineroustref5I{7 dsfedtivestrueorgdref{5I}dsfedtivesflse} 12.1247 ldredefineroustpgeref5I{7 12.1248 dsfedtivestrueorgdpgeref{5I}dsfedtivesflse}
12.1245 12.1246

ditex

he mro used to ite from iliogrphyD \citeD uses n internl mroD \@citexF st is this internl mro tht piks up the rgument@sAD so we redeE (ne this internl mro nd leve \cite loneF he (rst rgument is used for typesettingD so the shorthnds need only e detivted in the seond rgumentF

ldredefineditex5I5P{7 dsfedtivestrueedefdtemp{5P}dsfedtivesflse 12.1251 orgdditex5I{dtemp}}


12.1249 12.1250

nfortuntelyD the pkges natbib nd cite need di'erent de(nition of \@citexFFF o egin withD natbib hs de(nition for \@citex with three rE gumentsFFF e only know tht pkge is loded when \begin{document} is exeutedD so we need to postpone the di'erent rede(nitionF
12.1252 12.1253

etfeginhoument{7 difpkgeloded{nti}{7

xotie tht we use \def here insted of \bbl@redefine euse \org@@citex is lredy de(ned nd we don9t wnt to overwrite tht de(nition @it would result in prmeter stk over)ow euse of irulr de(nitionAF
12.1254 12.1255 12.1256 12.1257

defditex5I5P5Q{7 dsfedtivestrueedefdtemp{5Q}dsfedtivesflse orgdditex5I5P{dtemp}}7 }{}}

he pkge cite hs de(nition of \@citex where the shorthnds need to e turned o' in oth rgumentsF
etfeginhoument{7 difpkgeloded{ite}{7 12.1260 defditex5I5P{7 12.1261 dsfedtivestrueorgdditex5I{5P}dsfedtivesflse}7 12.1262 }{}}
12.1258 12.1259

noite

he mro \nocite whih is used to instrut fifi to extrt united referenes from the dtseF
ldredefinenoite5I{7 dsfedtivestrueorgdnoite{5I}dsfedtivesflse}

12.1263 12.1264

iite

he mro tht is used in the .aux (le to de(ne ittion lelsF hen pkges suh s natbib or cite re not loded its seond rgument is used to typeset the ittion lelF sn tht seD this seond rgument n ontin tive hrters ut is used in n environment where \@safe@activestrue is in e'etF his swith needs to e reset inside the \hbox whih ontins the ittion lelF sn order to determine during .aux (le proessing whih de(nition of \bibcite is needed we de(ne \bibcite in suh wy tht it rede(nes itself with the proper de(nitionF
ldredefineiite{7

12.1265

TT

e ll \bbl@cite@choice to selet the proper de(nition for \bibciteF his new de(nition is then tivtedF
12.1266 12.1267

lditedhoie iite}

ldiite

he mro \bbl@bibcite holds the de(nition of \bibcite needed when neither natbib nor cite is lodedF
defldiite5I5P{7 orgdiite{5I}{dsfedtivesflse5P}} deflditedhoie{7 glolletiiteldiite difpkgeloded{nti}{glolletiiteorgdiite}{}7 difpkgeloded{ite}{glolletiiteorgdiite}{}7 glolletlditedhoierelx }

12.1268 12.1269

lditedhoie

he mro \bbl@cite@choice determines whih de(nition of \bibcite is neededF pirst we give \bibcite its defult de(nitionF

12.1270

12.1271

henD when natbib is loded we restore the originl de(nition of \bibcite F


12.1272

por cite we do the smeF


12.1273

wke sure this only hppens oneF


12.1274 12.1275

hen doument is run for the (rst timeD no .aux (le is villeD nd \bibcite will not yet e properly de(nedF sn this seD this hs to hppen efore the doument strtsF
12.1276

etfeginhoument{lditedhoie}

diitem

A yne of the two internl v i mros lled y \bibitem tht write the ittion lel on the .aux (leF

12.1277 12.1278

ldredefinediitem5I{7 dsfedtivestrueorgddiitem{5I}dsfedtivesflse}

12.16 marks
mrkright

feuse the output routine is synhronousD we must pss the urrent lnguge ttriute to the hed linesD together with the text tht is put into themF o hieve this we need to dpt the de(nition of \markright nd \markboth somewhtF
ldredefinemrkright5I{7

12.1279

pirst of ll we temporrily store the lnguge swithing ommndD using n exE pnded de(nition in order to get the urrent vlue of \languagenameF
12.1280 12.1281

edefldtemp{noexpndprotet noexpndforeignlnguge{lngugenme}}7

henD we hek whether the rgument is emptyY if it isD we just mke sure the srth token register is emptyF
12.1282 12.1283 12.1284 12.1285

defldrg{5I}7 ifxldrgdempty toksd{}7 else

TU

xextD we store the rgument to \markright in the srth token registerD together with the expnsion of \bbl@tempb @ontining the lnguge swithing ommndA s de(ned eforeF his wy these ommnds will not e expnded y using \edef lter onD nd we mke sure tht the text is typeset using the orret lnguge setE tingsF hile doing soD we mke sure tht tive hrters tht my end up in the mrk re not disled y the output routine kiking in while \@safe@activestrue is in e'etF
12.1286 12.1287 12.1288

expndftertoksdexpndfter{7 ldtemp{protetldrestoredtives5I}}7 fi edefldtemp{7

hen we de(ne temporry ontrol sequene using \edefF


12.1289

hen \bbl@tempa is exeutedD only \languagename will e expndedD euse of the wy the token register ws (lledF
12.1290 12.1291 12.1292

noexpndorgdmrkright{thetoksd}}7 ldtemp

mrkoth dmkoth

he de(nition of \markboth is equivlent to tht of \markrightD exept tht we need two token registersF he doumentlsses report nd book de(ne nd set the hedings for the pgeF hile doing so they lso store opy of \markboth in \@mkbothF herefor we need to hek whether \@mkboth hs lredy een setF sf so we neeed to do tht gin with the new de(nition of \makrbothF

ifxdmkothmrkoth defldtemp{letdmkothmrkoth} 12.1295 else 12.1296 defldtemp{} 12.1297 fi


12.1293 12.1294

xow we n strt the new de(nition of \markboth


ldredefinemrkoth5I5P{7 edefldtemp{noexpndprotet 12.1300 noexpndforeignlnguge{lngugenme}}7 12.1301 defldrg{5I}7 12.1302 ifxldrgdempty 12.1303 toksd{}7 12.1304 else 12.1305 expndftertoksdexpndfter{7 12.1306 ldtemp{protetldrestoredtives5I}}7 12.1307 fi 12.1308 defldrg{5P}7 12.1309 ifxldrgdempty 12.1310 toksV{}7 12.1311 else 12.1312 expndftertoksVexpndfter{7 12.1313 ldtemp{protetldrestoredtives5P}}7 12.1314 fi 12.1315 edefldtemp{7 12.1316 noexpndorgdmrkoth{thetoksd}{thetoksV}}7 12.1317 ldtemp 12.1318 }
12.1298 12.1299

TV

nd opy it to \@mkboth if neesryF


12.1319 12.1320

ldtemp /core | shorthands

12.17 Encoding issues (part 2)


e ve

feuse douments my use font enodings other thn one of the ltin enodingsD A we mke sure tht the logos of i nd v i lwys ome out in the right enodingF

core ldredefinee{textltin{orgde}} 12.1323 ldredefineve{textltin{orgdve}} 12.1324 /core


12.1321 12.1322

12.18 Preventing clashes with other packages


12.18.1
ifthenelse

ifthen

ometimes doument writer wnts to rete speil e'et depending on the pge ertin frgment of text ppers onF his n e hieved y the following piee of odeX
ifthenelse{isodd{pgeref{someXlel}}} {ode for odd pges} {ode for even pges}

sn order for this to work the rgument of \isodd needs to e fully expndleF ith the ove rede(nition of \pageref it is not in the se of this exmpleF o overome thtD we dd some ode to the de(nition of \ifthenelse to mke things workF he (rst thing we need to do is hek if the pkge ifthen is lodedF his should e done t \begin{document} timeF
package etfeginhoument{7 12.1327 difpkgeloded{ifthen}{7
12.1325 12.1326

hen we n rede(ne \ifthenelseX


12.1328

ldredefinedlongifthenelse5I5P5Q{7

e wnt to revert the de(nition of \pageref to its originl de(nition for the durtion of \ifthenelseD so we (rst need to store its urrent meningF
12.1329 12.1330

letldtemppgeref letpgereforgdpgeref

hen we n set the \@safe@actives swith nd ll the originl \ifthenelseF sn order to e le to use shorthnds in the seond nd third rguments of \ifthenelse the resetting of the swith and the de(nition of \pageref hppens inside those rgumentsF
12.1331 12.1332 12.1333 12.1334 12.1335

dsfedtivestrue orgdifthenelse{5I}{7 letpgerefldtemp dsfedtivesflse 5P}{7

TW

12.1336 12.1337 12.1338 12.1339

}7 }{}7

letpgerefldtemp dsfedtivesflse 5Q}7

hen the pkge wsn9t loded we do nothingF


12.1340 12.1341

12.18.2
ddvpgeref vrefpgenum ef

varioref

hen the pkge vrioref is in use we need to modify its internl ommnd \@@vpageref in order to prevent prolems when n tive hrter ends up in the rgument of \vrefF

etfeginhoument{7 difpkgeloded{vrioref}{7 12.1344 ldredefineddvpgeref5I5P5Q{7 12.1345 dsfedtivestrue 12.1346 orgdddvpgeref{5I}5P{5Q}7 12.1347 dsfedtivesflse}7
12.1342 12.1343

he sme needs to hppen for \vrefpagenumF


12.1348 12.1349 12.1350 12.1351

ldredefinevrefpgenum5I5P{7 dsfedtivestrue orgdvrefpgenum{5I}{5P}7 dsfedtivesflse}7

he pkge varioref de(nes \Ref to e roust ommnd wih upperses the (rst hrter of the referene textF sn order to e le to do tht it needs to ess the exndle form of \refF o we employ little trik hereF e rede(ne the @internlA ommnd \Ref to ll \org@ref insted of \refF he disdvntgge of this solution is tht whenever the der(nition of \Ref hngesD this de(nition needs to e updted s wellF
12.1352 12.1353 12.1354 12.1355

expndfterdefsnme ef endsnme5I{7 proteteddedefdtemp{orgdref{5I}}expndfterwkeppersedtemp} }{}7

12.18.3
hhline

hhline

helying the tivtion of the shorthnd hrters hs introdued prolem with the hhline pkgeF he reson is tht it uses the X9 hrter whih is mde tive y the frenh support in babelF herefor we need to reload the pkge when the X9 is n tive hrterF o t \begin{document} we hek whether hhline is lodedF
etfeginhoument{7 difpkgeloded{hhline}7 {expndfterifxsnme normldhrstringXendsnmerelx else

12.1356 12.1357

hen we hek whether the expnsion of \normal@char: is not equl to \relaxF


12.1358 12.1359

sn tht se we simply relod the pkgeF xote tht this hppens after the tegory ode of the dEsign hs een hnged to otherD so we need to temporrily hnge it to letter ginF UH

12.1360 12.1361 12.1362 12.1363

mketletter defdurrnme{hhline}input{hhlineFsty}mketother fi}7 {}}

12.18.4
pdfstringdefhislegommnds

hyperref

elthough numer of interworking prolems etween babel nd hyperref re tkled y hyperref itself we need to tke re of orretly hndling the shorthnd hrtersF hen they get expnded inside ookmrk wrning will pper in the log (le whih n e preventedF his is done y informing hyperref tht it should the shorthnds s de(ned on the system level rther thn t the user levelF

etfeginhoument{7 difundefined{pdfstringdefhislegommnds}7 12.1366 {}7 12.1367 {pdfstringdefhislegommnds{7 12.1368 lngugeshorthnds{system}}7 12.1369 }7 12.1370 }
12.1364 12.1365

12.18.5
pyisqxvexqeqi

General

he pkge fancyhdr trets the running hed nd fout lines somewht difE ferently s the stndrd lssesF e symptom of this is tht the ommnd \foreignlanguage whih babel dds to the mrks n end up inside the rE gument of \MakeUppercaseF o prevent unexpeted results we need to de(ne \FOREIGNLANGUAGE hereF

helreoustgommnd{pyisqxvexqeqi}I{7 lowerse{foreignlnguge{5I}}} 12.1373 /package


12.1371 12.1372

nfssdtodes

A v i9s font seletion sheme sometimes wnts to red font de(nition (les in the middle of proessing the doumentF sn order to gurd ginst ny hrters hving the wrong \catcodes it lwys lls \nfss@catcodes efore loding (leF nfortuntelyD the hrters " nd ' re not delt withF herefor we hve to dd A them until v i does tht herselfF

core | shorthands ifxnfssdtodesdundefined 12.1376 else 12.1377 ddtonfssdtodes{7 12.1378 dmkeother97 12.1379 dmkeother47 12.1380 } 12.1381 fi
12.1374 12.1375 12.1382

/core | shorthands

13
lodlolfg

Local Language Conguration

et some sites it my e neessry to dd siteEspei( tions to lnguge de(niE tion (leF his n e done y reting (le with the sme nme s the lnguge UI

de(nition (leD ut with the extension .cfgF por instne the (le norsk.cfg will e loded when the lnguge de(nition (le norsk.ldf is lodedF
13.1

core

por plinEsed formts we don9t wnt to override the de(nition of \loadlocalcfg from plain.defF
ifxlodlolfgdundefined deflodlolfg5I{7 13.4 snputsfpileixists{5IFfg} 13.5 {typeout{BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBt7 13.6 B vol onfig file 5IFfg usedt7 13.7 B}7 13.8 } 13.9 {}} 13.10 fi
13.2 13.3

ifxdunexpndledprotetdundefined defdunexpndledprotet{noexpndprotetnoexpnd} 13.13 longdef proteteddwrite5I5P5Q{7 13.14 egingroup 13.15 letthepgerelx 13.16 5P7 13.17 letprotetdunexpndledprotet 13.18 edefreservedd{write5I{5Q}}7 13.19 reservedd 13.20 endgroup 13.21 ifdnorekifvmodenorekfifi 13.22 } 13.23 fi 13.24 /core
13.11 13.12

A tust to e omptile with v i PFHW we dd few more lines of odeX

UP

14

Driver les for the documented source code

ine babel version QFR ll soure (les tht re prt of the babel system n e typeset seprtelyF fut to typeset them ll in one doumentD the (le babel.drv n e usedF sf you only wnt the informtion on how to use the babel system nd wht goodies re provided y the lngugeEspei( (lesD you n run the (le A user.drv through v i to get user guideF
driver doumentlss{ltxdo} 14.3 usepkge{urlDtIenDsupertulr} 14.4 usepkgeielndiDenglish{el} 14.5 hoxotsndex{3D9DDDFDEDXDYDcDGDDDdw} 14.6 hoxotsndex{dDdneDdmDdfterhedingDddteDdendprt} 14.7 hoxotsndex{dhngfromDdidxitemDdmkeshpterhedDdmkoth} 14.8 hoxotsndex{doddfootDdoddhedDdrestoneolflseDdrestoneoltrue} 14.9 hoxotsndex{dstrttoDdunused} 14.10 hoxotsndex{entDtive} 14.11 hoxotsndex{ddontentslineDdvneDelphDri} 14.12 hoxotsndex{selineskipDeginDegingroupDfDoxDdsenumdepth} 14.13 hoxotsndex{todeDenteringDhrDhrdefDlupenlty} 14.14 hoxotsndex{olumnsepDolumnsepruleDrrDsnme} 14.15 hoxotsndex{dyDdefDdimenDdisretionryDdivideDdpDdo} 14.16 hoxotsndex{edefDelseDdemptyDendDendgroupDendsnmeDendinput} 14.17 hoxotsndex{errhelpDerrmessgeDexpndfterDfiDfiledte} 14.18 hoxotsndex{fileversionDfmtnmeDfnumdfigureDfnumdtleDfontdimen} 14.19 hoxotsndex{gdefDglol} 14.20 hoxotsndex{hoxDhidewidthDhfilDhskipDhspeDhtDrugeDhuge} 14.21 hoxotsndex{ilignDifdtwoolumnDifseDiftDifhmodeDifmmode} 14.22 hoxotsndex{ifnumDifxDimmediteDignorespesDinputDitem} 14.23 hoxotsndex{kern} 14.24 hoxotsndex{lelsepDvrgeDlrgeDlelwidthDlodeDleftmrgin} 14.25 hoxotsndex{lineskipDlevevmodeDletDlistDllDlongDlower} 14.26 hoxotsndex{mdneDmthhrDmthentDmrkothDmonthDmultiply} 14.27 hoxotsndex{newlokDnewoxDnewountDnewdimenDnewifDnewwrite} 14.28 hoxotsndex{norekDnoexpndDnoindentDnullDnumer} 14.29 hoxotsndex{oneolumnDor} 14.30 hoxotsndex{pdDprD proxDprindentDprskipDpenlty} 14.31 hoxotsndex{protetDpsdhedings} 14.32 hoxotsndex{quottion} 14.33 hoxotsndex{rggedrightDriseDrefstepounterDrelxDrmDsetox} 14.34 hoxotsndex{setionDsetounterDsettowidthDsriptsriptstyle} 14.35 hoxotsndex{sfodeDslDsloppyDsmllDspeDspeftorDstrut} 14.36 hoxotsndex{string} 14.37 hoxotsndex{textwidthDtheDthehpterDthefigureDthepgeDtheprt} 14.38 hoxotsndex{thetleDthispgestyleDtitlepgeDtringmros} 14.39 hoxotsndex{twdDtwoolumnDtypeoutDupperseDuseounter} 14.40 hoxotsndex{voxDvfilDvskipDvspeDvss} 14.41 hoxotsndex{widowpenltyDwriteDxdefDyerDzdDzdskip}
14.1 14.2

rere \dlqq is de(ned so tht n exmple of "' n e givenF


mketletter gdefdlqq{{setoxtwdahox{D}setoxzdahox{99}7 14.44 dimenzdahtzd dvnedimenzdEhttwd 14.45 setoxzdahox{lowerdimenzdoxzd}htzdahttwd
14.42 14.43

UQ

14.46

dpzdadptwd oxzdkernEFHRem}}

he ode lines re numered within setionsD


!user \@addtoreset{CodelineNo}{section} 14.49 \renewcommand\theCodelineNo{% 14.50 \reset@font\scriptsize\thesection.\arabic{CodelineNo}}
14.47 14.48

whih should lso e visile in the indexY hene this rede(nition of mro from doc.styF
\renewcommand\codeline@wrindex[1]{\if@filesw \immediate\write\@indexfile 14.53 {\string\indexentry{#1}% 14.54 {\number\c@section.\number\c@CodelineNo}}\fi}
14.51 14.52

he glossry environment is used or the hnge logD ut its de(nition needs hnging for this doumentF
\renewenvironment{theglossary}{% \glossary@prologue% 14.57 \GlossaryParms \let\item\@idxitem \ignorespaces}% 14.58 {} 14.59 /!user 14.60 mketother
14.55 14.56

e few shorthnds used in the doumenttion


fontmnulalogoIH 7 font used for the wiepyx logoD etF 14.62 newommndBwp{{mnul wie}E{mnul pyx}} 14.63 newommndBehx{e hx} 14.64 newommndBel{textsf{el}} 14.65 newommndBfel{textsf{fel}} 14.66 newommndBmI{mox{6lngle6it5IG6rngle6}} 14.67 newommndBlngvr{m{lng}}
14.61

ome more de(nitions needed in the doumenttionF


7newommndBnoteI{textf{5I}} 14.69 newommndBnoteI{} 14.70 newommndBsl{protetslsh} 14.71 newommndBvoptI{textsf{5I}} 14.72 newommndBvenvI{textsf{5I}} 14.73 newommndBfileI{texttt{5I}} 14.74 newommndBlsI{texttt{5I}} 14.75 newommndBpkgI{texttt{5I}} 14.76 newommndBlngdeffileI{7 14.77 user \clearpage 14.78 hosnput{5I}}
14.68

hen full index should e generted unomment the line with \EnableCrossrefsF fewreD proessing my tke some timeF se \DisableCrossrefs when the index is redyF
14.79 14.80

7 inlegrossrefs hislegrossrefs

snlude the hnge logF


14.81

user \RecordChanges user \CodelineIndex

he index should use the linenumers of the odeF


14.82

UR

et everything in \MacroFont insted of \AltMacroFont


14.83

setounter{tndrdwodulehepth}{I}

por the user guide we only wnt the desription prts of ll the (lesF
14.84

+user \OnlyDescription

rere strts the doument


14.85 14.86

egin{doument} hosnput{elFdtx}

ell the lnguge de(nition (lesF


+user \clearpage 14.88 lngdeffile{esperntoFdtx} 14.89 lngdeffile{interlinguFdtx} 14.90 7 14.91 lngdeffile{duthFdtx} 14.92 lngdeffile{englishFdtx} 14.93 lngdeffile{germnFdtx} 14.94 lngdeffile{ngermnFdtx} 14.95 7 14.96 lngdeffile{retonFdtx} 14.97 lngdeffile{welshFdtx} 14.98 lngdeffile{irishFdtx} 14.99 lngdeffile{sottishFdtx} 14.100 7 14.101 lngdeffile{greekFdtx} 14.102 7 14.103 lngdeffile{frenhFdtx} 14.104 lngdeffile{itlinFdtx} 14.105 lngdeffile{ltinFdtx} 14.106 lngdeffile{portugesFdtx} 14.107 lngdeffile{spnishFdtx} 14.108 lngdeffile{tlnFdtx} 14.109 lngdeffile{gliinFdtx} 14.110 lngdeffile{squeFdtx} 14.111 lngdeffile{romninFdtx} 14.112 7 14.113 lngdeffile{dnishFdtx} 14.114 lngdeffile{ielndiFdtx} 14.115 lngdeffile{norskFdtx} 14.116 lngdeffile{swedishFdtx} 14.117 lngdeffile{sminFdtx} 14.118 7 14.119 lngdeffile{finnishFdtx} 14.120 lngdeffile{mgyrFdtx} 14.121 lngdeffile{estoninFdtx} 14.122 7 14.123 lngdeffile{lninFdtx} 14.124 lngdeffile{rotinFdtx} 14.125 lngdeffile{zehFdtx} 14.126 lngdeffile{polishFdtx} 14.127 lngdeffile{serinFdtx} 14.128 lngdeffile{slovkFdtx} 14.129 lngdeffile{sloveneFdtx} 14.130 lngdeffile{russinFdtx}
14.87

US

lngdeffile{ulgrinFdtx} lngdeffile{ukrineFdtx} 14.133 7 14.134 lngdeffile{lsorinFdtx} 14.135 lngdeffile{usorinFdtx} 14.136 lngdeffile{turkishFdtx} 14.137 7 14.138 lngdeffile{herewFdtx} 14.139 hosnput{heinpFdtx} 14.140 hosnput{herewFfdd} 14.141 hosnput{hePHWFdtx} 14.142 lngdeffile{hsFdtx} 14.143 lngdeffile{hsmFdtx} 14.144 7lngdeffile{snskritFdtx} 14.145 7lngdeffile{knndFdtx} 14.146 7lngdeffile{ngriFdtx} 14.147 7lngdeffile{tmilFdtx} 14.148 lerpge 14.149 hosnput{plinFdtx}
14.131 14.132

pinlly print the index nd hnge log @not for the user guideAF
!user \clearpage 14.152 \def\filename{index} 14.153 \PrintIndex 14.154 \clearpage 14.155 \def\filename{changes} 14.156 \PrintChanges 14.157 /!user 14.158 end{doument} 14.159 /driver
14.150 14.151

UT

15

Conclusion

A e system of doument options hs een presented tht enle the user of v i A to dpt the stndrd doument lsses of v i to the lnguge he or she prefers to useF hese options o'er the possiility of swithing etween lnguges in one doumentF he si interfe onsists of using one optionD whih is the sme for all stndrd doument lssesF sn some ses the lnguge de(nition (les provide mros tht n e useful to A plin i users s well s to v i usersF he babel system hs een implemented so tht it n e used y oth groups of usersF

16

Acknowledgements

s would like to thnk ll who volunteered s Etesters for their timeF s would like to mention tulio nhez who supplied the option (le for the pnish lnguge nd wurizio godogno who supplied the option (le for the stlin lngugeF wihel qoossens supplied ontriutions for most of the other lngugesF xio oppelier helped polish the text of the doumenttion nd supplied prts of the mros for the huth lngugeF ul kers nd erenfried pit helped (nd nd repir ugsF huring the further development of the el system s reeived muh help from fernd ihleD for whih s m grtefulF

References
I honld iF unuthD P veslie vmportD IWVTF
The T XbookD E

eddisonEesleyD IWVTF eddisonEesleyD

L T X, A document preparation SystemD E

Q uFpF reeusF Tekstwijzer, een gids voor het grasch verwerken van tekst. h itgeverij @9sEqrvenhgeD IWVVAF e huth ook on lyout design nd typogE rphyF R ruert rtlD
German T XD TUGboat E

W @IWVVA 5ID pF UH!UPF

S veslie vmportD inX ihx higestD olume VWD 5IQD IU perury IWVWF T tohnnes frmsD itor iijkhout nd xio oppelierD The AE national L T X stylesD TUGboat IH @IWVWA 5QD pF RHI!RHTF U tohim hrodD pF VU!WHF
development of

International L T X is ready to useD TUGboat E

II @IWWHA 5ID

UU

17

The Esperanto language

he (le esperanto.dtx10 de(nes ll the lngugeEspei( mros for the isE pernto lngugeF por this lnguge the hrter ^ is mde tiveF sn tle P n overview is given of its purposeF

^c ^h ^j ^u ^U ^|

gives with hyphention in the rest of the word lE lowedD this works for D gD gD qD rD tD sD D zD prevents h from eoming too tll gives & gives uD with hyphention in the rest of the word llowed gives D with hyphention in the rest of the word llowed inserts \discretionary{-}{}{}

le PX he funtions of the tive hrter for isperntoF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
17.1 17.2

code vdfsnit{espernto}ptionsespernto

hen this (le is red s n optionD iFeF y the \usepackage ommndD esperanto will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@esperanto to see whether we hve to do someE thing hereF
ifxldesperntodundefined dnoptterns{ispernto} 17.5 dddiletldesperntoHfi
17.3 17.4

he next step onsists of de(ning ommnds to swith to the ispernto lnE gugeF he reson for this is tht user might wnt to swith k nd forth etween lngugesF
ptionsespernto

ddtoptionsespernto{7 defprefenme{entu{u}prolo}7 17.8 defrefnme{gitj{}oj}7 17.9 defstrtnme{esumo}7 17.10 definme{filiogrfio}7 17.11 defhpternme{{g}pitro}7 17.12 defppendixnme{ependio}7 17.13 defontentsnme{inhvo}7 17.14 deflistfigurenme{visto de figuroj}7 17.15 deflisttlenme{visto de teloj}7 17.16 defindexnme{sndekso}7
17.6 17.7

he mro \captionsesperanto de(nes ll strings used in the four stndrd A doumentlsses provided with v iF

tribution was made by Ruiz-Altaba Marti (ruizaltb@cernvm.cern.ch).

10 The

le described in this section has version number ? and was last revised on ?. A conby Jrg Knappen (knappen@vkpmzd.kph.uni-mainz.de) was included. Code from the le

esperant.sty

UV

17.17 17.18 17.19 17.20 17.21 17.22 17.23 17.24 17.25 17.26 17.27 17.28 17.29

deffigurenme{piguro}7 deftlenme{elo}7 defprtnme{rto}7 defenlnme{eldono@jA}7 defnme{uopie l}7 defhedtonme{el}7 defpgenme{go}7 defsujetnme{emo}7 defseenme{vidu}7 uX vdF deflsonme{vidu nku{u}}7 u vdF nku{u} defproofnme{ruvo}7 defglossrynme{qlosro}7 }

dteespernto

he mro \dateesperanto rede(nes the ommnd \today to produe ispernto dtesF

defdteespernto{7 deftody{numerdy{EE}~de~ifsemonthor 17.32 jnuroor feruroor mrtoor priloor mjoor junioor 17.33 julioor u{u}gustoor septemroor oktoroor novemroor 17.34 deemrofiDspe numeryer}}
17.30 17.31

extrsespernto noextrsespernto

he mro \extrasesperanto performs ll the extr de(nitions needed for the ispernto lngugeF he mro \noextrasesperanto is used to nel the tions of \extrasesperantoF por ispernto the ^ hrter is mde tiveF his is done oneD lter on its de(nition my vryF
inititedtivedhr{}

17.35

feuse the hrter ^ is used in mth mode with quite di'erent purpose we need to dd n extr level of evlution to the de(nition of the tive ^F st heks whether mth mode is tiveY if so the shorthnd mehnism is ypssed y diret ll of \normal@char^F
ddtoextrsespernto{lngugeshorthnds{espernto}} ddtoextrsespernto{ldtivte{}} 17.38 ddtonoextrsespernto{lddetivte{}}
17.36 17.37

sn order to prevent prolems with the tive ^ we dd shorthnd on system level whih expnds to norml ^F
17.39

delredshorthnd{system}{}{snme normldhrstringendsnme}

end here re the uses of the tive ^X


delredshorthnd{espernto}{}{{}llowhyphens} delredshorthnd{espernto}{g}{{g}llowhyphens} 17.42 delredshorthnd{espernto}{g}{{g}llowhyphens} 17.43 delredshorthnd{espernto}{q}{{q}llowhyphens} 17.44 delredshorthnd{espernto}{h}{hllp{{}}llowhyphens} 17.45 delredshorthnd{espernto}{r}{{r}llowhyphens} 17.46 delredshorthnd{espernto}{j}{{j}llowhyphens} 17.47 delredshorthnd{espernto}{t}{{t}llowhyphens} 17.48 delredshorthnd{espernto}{s}{{s}llowhyphens} 17.49 delredshorthnd{espernto}{}{{}llowhyphens} 17.50 delredshorthnd{espernto}{u}{u ullowhyphens}
17.40 17.41

UW

17.51 17.52

delredshorthnd{espernto}{}{u llowhyphens} delredshorthnd{espernto}{|}{disretionry{E}{}{}llowhyphens}

isper esper

sn esperant.sty trg unppen provides the mros \esper nd \Esper tht n e used insted of \alph nd \AlphF hese mros re ville in this (le s wellF heir de(nition tkes ple in two stepsF pirst the toplevelF
defesper5I{desper{dnmeuse{d5I}}} defisper5I{disper{dnmeuse{d5I}}}

17.53 17.54

hen the seond levelF


defdesper5I{7 ifse5Ior or or or or dor eor for gor gor 17.57 hor hllp{{}}or ior jor jor kor lor mor nor oor 17.58 por ror sor sor tor uor u{u}or vor zelsedtrerrfi} 17.59 defdisper5I{7 17.60 ifse5Ior eor for gor gor hor ior por qor qor 17.61 ror ror sor tor tor uor vor wor xor yor 17.62 or or or or or or u{}or or elsedtrerrfi}
17.55 17.56

hodiu hodiun

sn esperant.sty trg unppen provides two lterntive mros for \todayD \hodiau nd \hodiaunF he seond mro produes n ustive version of the dte in isperntoF

ddtodteespernto{defhodiu{l tody}} defhodiun{l numerdy EEn~de~ifsemonthor 17.65 jnuroor feruroor mrtoor priloor mjoor junioor 17.66 julioor u{u}gustoor septemroor oktoroor novemroor 17.67 deemrofiD spe numeryer}
17.63 17.64

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
17.68 17.69

ldfdfinish{espernto} /code

VH

18

The Interlingua language

he (le interlingua.dtx11 de(nes ll the lnguge de(nition mros for the snterlingu lngugeF his (le ws ontriuted y eter uleiwegD kleiweg t letFrugFnlF snterlingu is n uxiliry lngugeD uilt from the ommon voulry of pnishGortugueseD inglishD stlin nd prenhD with some normlistion of spellingF he grmmr is very esyD more similr to inglish9s thn to neoltin lngugesF he site http://www.interlingua.com is mostly written in interlinE gu @s is http://interlingua.altervista.orgAD in se you wnt to red some smple of itF ou n hve look t the grmmr t http://www.geocities.com/linguablau he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
18.1 18.2

code vdfsnit{interlingu}{ptionsinterlingu}

hen this (le is red s n optionD iFeF y the \usepackage ommndD interlingua ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@interlingua to see whether we hve to do something hereF
ifxundefinedldinterlingu dnoptterns{snterlingu} 18.5 dddiletldinterlinguHfi
18.3 18.4

he next step onsists of de(ning ommnds to swith to @nd fromA the snE terlingu lngugeF
interlinguhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
18.6

providehyphenmins{interlingu}{twdtwd}

ptionsinterlingu

defptionsinterlingu{7 defprefenme{refio}7 18.9 defrefnme{eferentis}7 18.10 defstrtnme{ummrio}7 18.11 definme{filiogrphi}7 18.12 defhpternme{gpitulo}7 18.13 defppendixnme{eppendie}7 18.14 defontentsnme{gontento}7 18.15 deflistfigurenme{vist de figurs}7 18.16 deflisttlenme{vist de tells}7 18.17 defindexnme{sndie}7 18.18 deffigurenme{pigur}7 18.19 deftlenme{ell}7 18.20 defprtnme{rte}7 18.21 defenlnme{snluso}7 18.22 defnme{gopi}7 18.23 defhedtonme{e}7
18.7 18.8

he mro \captionsinterlingua de(nes ll strings used in the four stndrd A doumentlsses provided with v iF

11 The le described in this section has version number v1.6 and was last revised on 2005/03/30.

VI

18.24 18.25 18.26 18.27 18.28 18.29

defpgenme{gin}7 defseenme{vide}7 deflsonme{vide etim}7 defproofnme{rov}7 defglossrynme{qlossrio}7 }

dteinterlingu

he mro \dateinterlingua rede(nes the ommnd \today to produe snterE lingu dtesF

defdteinterlingu{7 deftody{le~numerdyspe de ifsemonthor 18.32 jnurioor ferurioor mrtioor prilor mioor junioor 18.33 julioor ugustoor septemreor otoreor novemreor 18.34 deemrefi 18.35 spe numeryer}}
18.30 18.31

extrsinterlingu noextrsinterlingu

he mro \extrasinterlingua will perform ll the extr de(nitions needed for the snterlingu lngugeF he mro \noextrasinterlingua is used to nel the tions of \extrasinterlinguaF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrsinterlingu{} ddtonoextrsinterlingu{}

18.36 18.37

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
18.38 18.39

ldfdfinish{interlingu} /code

VP

19

The Dutch language

he (le dutch.dtx12 de(nes ll the lngugeEspei( mros for the huth lnE guge nd the efrikns9 version13 of itF por this lnguge the hrter " is mde tiveF sn tle Q n overview is given of its purposeF yne of the resons for this is tht in the huth lnguge word with dieresis n e hyphented just efore the letter with the umlutD ut the dieresis hs to dispper if the word is roken etween the previous letter nd the ented letterF sn Q the quoting onventions for the huth lnguge re disussedF he preferred onvention is the singleEquote engloEemerin onventionD iFeF his is quote9F en lterntive is the slightly oldEfshioned huth method with initil doule quotes lowered to the selineD his is quoteD whih should e typed s  "`This is a quote"'F

"a "y "Y "| ""~ "" "` "' \-

\"a whih hyphentes s -aY lso implemented for the other lettersF puts negtive kern etween i nd j puts negtive kern etween I nd J disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF to produe hyphenhrter without the following \discretionary{}{}{}F to produe n invisile rekpoint9F lowered doule left quotes @see exmple elowAF norml doule right quotesF like the old \-D ut llowing hyphention in the rest of the wordF
le QX he extr de(nitions mde y dutch.ldf

7 hnges{duthEQFV}{IWWTGIHGHR}{mde hek dependnt on 7 s{gurrentyption}} 19.3 7 19.4 7 he mro |vdfsnit| tkes re of preventing tht this file is 19.5 7 loded more thn oneD heking the tegory ode of the 19.6 7 texttt{d} signD etF 19.7 7 hnges{duthEQFV}{IWWTGIHGQH}{xow use s{vdfsnit} to perform 19.8 7 initil heks} 19.9 7 egin{mroode} 19.10 code 19.11 vdfsnitgurrentyption{ptionsgurrentyption}
19.1 19.2

hen this (le is red s n optionD iFeF y the \usepackage ommndD dutch ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@dutch or l@afrikaans to see whether we hve to do something hereF
12 The
le described in this section has version number v3.8i, and was last revised on by Stoel Lombard (lombc@b31pc87.up.ac.za) 2005/03/30.

13 contributed

VQ

pirst we try to estlish with whih option we re eing proessedF


19.12 19.13

defldtemp{duth} ifxgurrentyptionldtemp ifxldduthundefined

sf it is dutch then we (rst hek if the huth hyphention ptterns wer lodedD
19.14

if no we issue wrning nd mke duth dilet9 of either the hyphention ptterns tht were loded in slot H or of frikns9 when it is villeF
19.15 19.16 19.17 19.18 19.19 19.20 19.21

dnoptterns{huth} ifxldfriknsundefined dddiletldduthH else dddiletldduthldfrikns fi fi

he next step onsists of de(ning ommnds to swith to @nd fromA the huth lngugeF
ptionsduth

he mro \captionsdutch de(nes ll strings used in the four stndrd doument A lsses provided with v iF
egingroup tode4tive defx{endgroup defptionsduth{7 defprefenme{oorwoord}7 defrefnme{eferenties}7 defstrtnme{menvtting}7 definme{filiogrfie}7 defhpternme{roofdstuk}7 defppendixnme{f4ylge}7 defontentsnme{snhoudsopgve}7 deflistfigurenme{v4yst vn figuren}7 deflisttlenme{v4yst vn tellen}7 defindexnme{sndex}7 deffigurenme{piguur}7 deftlenme{el}7 defprtnme{heel}7 defenlnme{f4ylge@nA}7 defnme{}7 defhedtonme{en}7 defpgenme{gin}7 defseenme{zie}7 deflsonme{zie ook}7 defproofnme{few4ys}7 defglossrynme{erklrende oordenl4yst}7 } }x

19.22 19.23 19.24 19.25 19.26 19.27 19.28 19.29 19.30 19.31 19.32 19.33 19.34 19.35 19.36 19.37 19.38 19.39 19.40 19.41 19.42 19.43 19.44 19.45 19.46 19.47 19.48

dteduth

he mro \datedutch rede(nes the ommnd \today to produe huth dtesF


defdteduth{7 deftody{numerdy~ifsemonthor

19.49 19.50

VR

19.51 19.52 19.53 19.54

jnurior ferurior mrtor prilor meior junior julior ugustusor septemeror oktoeror novemeror deemerfi spe numeryer}}

hen the option with whih this (le is eing proess ws not dutch we ssume it ws afrikaansF e perform similr hek on the vilility of the hyphention pternsF
else ifxldfriknsundefined 19.57 dnoptterns{efrikns} 19.58 ifxldduthundefined 19.59 dddiletldfriknsH 19.60 else 19.61 dddiletldfriknsldduth 19.62 fi 19.63 fi
19.55 19.56

ptionsfrikns

xow is the time to de(ne the words for efrikns9F


defptionsfrikns{7 defprefenme{oorwoord}7 defrefnme{erwysings}7 defstrtnme{mevtting}7 definme{filiogrfie}7 defhpternme{roofstuk}7 defppendixnme{fyle}7 defontentsnme{snhoudsopgwe}7 deflistfigurenme{vys vn figure}7 deflisttlenme{vys vn telle}7 defindexnme{snhoud}7 deffigurenme{piguur}7 deftlenme{el}7 defprtnme{heel}7 defenlnme{fyle@nA}7 defnme{FF}7 defhedtonme{en}7 defpgenme{fldsy}7 defseenme{sien}7 deflsonme{sien ook}7 defproofnme{fewys}7 }

19.64 19.65 19.66 19.67 19.68 19.69 19.70 19.71 19.72 19.73 19.74 19.75 19.76 19.77 19.78 19.79 19.80 19.81 19.82 19.83 19.84 19.85

dtefrikns

rere is the efrikns9 version of the dte mroF

defdtefrikns{7 deftody{numerdy~ifsemonthor 19.88 tnurieor perurieor wrtor eprilor weior tunieor 19.89 tulieor eugustusor eptemeror yktoeror xovemeror 19.90 hesemerfi 19.91 spe numeryer}} 19.92 fi
19.86 19.87

extrsduth extrsfrikns noextrsduth noextrsfrikns

he mros \extrasdutch nd \captionsafrikaans will perform ll the exE tr de(nitions needed for the huth lngugeF he mros \noextrasdutch VS

nd noextrasafrikaans is used to nel the tions of \extrasdutch nd \captionsafrikaansF por huth the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the duth group of shorthnds should e usedF
19.93

inititedtivedhr{4}

foth version of the lnguge use the sme set of shorthnd de(nitions lthoug the ij9 is not used in efriknsF
dnmedef{extrsgurrentyption}{lngugeshorthnds{duth}} expndfterddtosnme extrsgurrentyptionendsnme{7 19.96 ldtivte{4}}
19.94 19.95

he umlut9 hrter should e positioned lower on all vowels in huth textsF


expndfterddtosnme extrsgurrentyptionendsnme{7 umlutlowumlutelow} 19.99 dnmedef{noextrsgurrentyption}{7 19.100 umluthigh}
19.97 19.98

duthhyphenmins friknshyphenmins

he duth hyphention ptterns n e used with \lefthyphenmin set to P nd \righthyphenmin set to QF


providehyphenmins{gurrentyption}{twdthrdd}

19.101

dtrem

sn the huth lnguge vowels with trem re treted speillyF sf hyphention ours efore vowelEplusEtremD the trem should dispperF o e le to do this we ould (rst de(ne the hyphention rek ehviour for the (ve vowelsD oth lowerse nd upperseD in terms of \discretionaryF fut this results in lrge \ifEonstrut in the de(nition of the tive "F feuse we think user should not use " when he relly mens something like '' we hose not to distinguish etween vowels nd onsonntsF herefore we hve one mro \@trema whih spei(es the hyphention rek ehviour for ll lettersF
defdtrem5I{llowhyphensdisretionry{E}{5I}{4{5I}}llowhyphens}

19.102

xow we n de(ne the doulequote mrosX the tremsD


delredshorthnd{duth}{4}{textormth{dtrem }{ddot }} delredshorthnd{duth}{4e}{textormth{dtrem e}{ddot e}} 19.105 delredshorthnd{duth}{4i}{textormth 19.106 {llowhyphensdisretionry{E}{i}{4{i}}llowhyphens}7 19.107 {ddot imth}} 19.108 delredshorthnd{duth}{4o}{textormth{dtrem o}{ddot o}} 19.109 delredshorthnd{duth}{4u}{textormth{dtrem u}{ddot u}}
19.103 19.104

duth quotesD
delredshorthnd{duth}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 19.112 delredshorthnd{duth}{49}{7 19.113 textormth{textquotedlright}{mox{textquotedlright}}}
19.110 19.111

nd some dditionl ommndsX


19.114 19.115

delredshorthnd{duth}{4E}{norekEldllowhyphens} delredshorthnd{duth}{4~}{textormth{levevmodehox{E}}{E}}

VT

delredshorthnd{duth}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}} 19.118 delredshorthnd{duth}{44}{hskipzdskip} 19.119 delredshorthnd{duth}{4y}{textormth{ij{}}{ddot y}} 19.120 delredshorthnd{duth}{4}{textormth{st{}}{ddot }}


19.116 19.117

o enle hyphention in two wordsD written together ut seprted y slshD s in uitdrukkingGopmerking9 we de(ne the ommnd "/F
19.121 19.122

delredshorthnd{duth}{4G}{textormth {ldllowhyphensdisretionry{G}{}{G}ldllowhyphens}{}}

ell tht is left now is the rede(nition of \-F he new version of \- should indite n extr hyphention positionD while llowing other hyphention positions to e generted utomtillyF he stndrd ehviour of i in this respet is very unfortunte for lnguges suh s huth nd qermnD where long ompound words re quite norml nd ll one needs is mens to indite n extr hyphention position on top of the ones tht i n generte from the hyphention ptternsF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsveE} 19.125 expndfterddtosnme extrsgurrentyptionendsnme{7 19.126 defE{ldllowhyphensdisretionry{E}{}{}ldllowhyphens}}


19.123 19.124

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
19.127 19.128

ldfdfinishgurrentyption /code

VU

20

The English language

he (le english.dtx14 de(nes ll the lnguge de(nition mros for the inglish lnguge s well s for the emerin nd eustrlin version of this lngugeF por the eustrlin version the fritish hyphention ptterns will e usedD if villeD for the gndin vrint the emerin ptterns re seletedF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
20.1 20.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD english ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@english to see whether we hve to do something hereF e llow for the ritish english ptterns to e loded s either ritish9D or uenglish9F hen neither of those is known we try to de(ne \l@english s n lis for \l@american or \l@USenglishF
ifxldenglishdundefined ifxlduenglishdundefined 20.5 ifxldritishdundefined 20.6 ifxldmerindundefined 20.7 ifxldenglishdundefined 20.8 ifxldndindundefined 20.9 ifxldustrlindundefined 20.10 ifxldnewzelnddundefined 20.11 dnoptterns{inglish} 20.12 dddiletldenglishH 20.13 else 20.14 letldenglishldnewzelnd 20.15 fi 20.16 else 20.17 letldenglishldustrlin 20.18 fi 20.19 else 20.20 letldenglishldndin 20.21 fi 20.22 else 20.23 letldenglishldenglish 20.24 fi 20.25 else 20.26 letldenglishldmerin 20.27 fi 20.28 else 20.29 letldenglishldritish 20.30 fi 20.31 else 20.32 letldenglishlduenglish 20.33 fi 20.34 fi
20.3 20.4

14 The

le described in this section has version number v3.3o and was last revised on

2005/03/30.

VV

feuse we llow ritish9 to e used s the el option we need to mke sure tht it will e reognised y \selectlanguageF sn the ode ove we hve mde sure tht \l@english ws de(nedF xow we wnt to mke sure tht \l@british nd \l@UKenglish re de(ned s wellF hen either of them is we mke them equl to eh otherD when neither is we fll k to the defultD \l@englishF
ifxldritishdundefined ifxlduenglishdundefined 20.37 dddiletldritishldenglish 20.38 dddiletlduenglishldenglish 20.39 else 20.40 letldritishlduenglish 20.41 fi 20.42 else 20.43 letlduenglishldritish 20.44 fi
20.35 20.36

emerin9 is version of inglish9 whih n hve its own hyphention ptternsF he defult english ptterns re in ft for merin englishF e llow for the ptterns to e loded s english9 merin9 or english9F
20.45 20.46

ifxldmerindundefined ifxldenglishdundefined

hen the ptterns re not know s merin9 or english9 we dd diletF


dddiletldmerinldenglish else 20.49 letldmerinldenglish 20.50 fi 20.51 else
20.47 20.48

wke sure tht english is knownD even if the ptterns were loded s merin9F
ifxldenglishdundefined letldenglishldmerin 20.54 fi 20.55 fi
20.52 20.53

gndin9 english spelling is hyrid of fritish nd emerin spellingF elE though so fr no speil trnsltions9 hve een reported we llow this (le to e loded y the option candian s wellF
ifxldndindundefined dddiletldndinldmerin 20.58 fi
20.56 20.57

eustrlin9 nd xew elnd9 english spelling seem to e the sme s fritish spellingF elthough so fr no speil trnsltions9 hve een reported we llow this (le to e loded y the options australian nd newzealand s wellF
ifxldustrlindundefined dddiletldustrlinldritish 20.61 fi 20.62 ifxldnewzelnddundefined 20.63 dddiletldnewzelndldritish 20.64 fi
20.59 20.60

englishhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF VW

20.65

providehyphenmins{gurrentyption}{twdthrdd}

he next step onsists of de(ning ommnds to swith to @nd fromA the inE glish lngugeF
ptionsenglish

dnmedef{ptionsgurrentyption}{7 defprefenme{refe}7 20.68 defrefnme{eferenes}7 20.69 defstrtnme{estrt}7 20.70 definme{filiogrphy}7 20.71 defhpternme{ghpter}7 20.72 defppendixnme{eppendix}7 20.73 defontentsnme{gontents}7 20.74 deflistfigurenme{vist of pigures}7 20.75 deflisttlenme{vist of les}7 20.76 defindexnme{sndex}7 20.77 deffigurenme{pigure}7 20.78 deftlenme{le}7 20.79 defprtnme{rt}7 20.80 defenlnme{enl}7 20.81 defnme{}7 20.82 defhedtonme{o}7 20.83 defpgenme{ge}7 20.84 defseenme{see}7 20.85 deflsonme{see lso}7 20.86 defproofnme{roof}7 20.87 defglossrynme{qlossry}7 20.88 }
20.66 20.67

he mro \captionsenglish de(nes ll strings used in the four stndrd douE A ment lsses provided with v iF

dteenglish

sn order to de(ne \today orretly we need to know whether it should e enE glish9D ustrlin9D or merin9F e n (nd this out y heking the vlue of \CurrentOptionF

defldtemp{ritish} ifxgurrentyptionldtempdefldtemp{u}fi 20.91 defldtemp{uenglish} 20.92 ifxgurrentyptionldtempdefldtemp{u}fi 20.93 defldtemp{merin} 20.94 ifxgurrentyptionldtempdefldtemp{}fi 20.95 defldtemp{english} 20.96 ifxgurrentyptionldtempdefldtemp{}fi 20.97 defldtemp{ndin} 20.98 ifxgurrentyptionldtempdefldtemp{}fi 20.99 defldtemp{ustrlin} 20.100 ifxgurrentyptionldtempdefldtemp{e}fi 20.101 defldtemp{newzelnd} 20.102 ifxgurrentyptionldtempdefldtemp{e}fi
20.89 20.90

he mro \dateenglish rede(nes the ommnd \today to produe inglish dtesF


defldtemp{u} ifxldtempldtemp 20.105 dnmedef{dtegurrentyption}{7
20.103 20.104

WH

20.106 20.107 20.108 20.109 20.110 20.111 20.112 20.113 20.114 20.115 20.116

deftody{ifsedyor Istor Pndor Qrdor Rthor Sthor Tthor Uthor Vthor Wthor IHthor IIthor IPthor IQthor IRthor ISthor ITthor IUthor IVthor IWthor PHthor PIstor PPndor PQrdor PRthor PSthor PTthor PUthor PVthor PWthor QHthor QIstfi~ifsemonthor tnuryor peruryor wrhor eprilor wyor tuneor tulyor eugustor eptemeror ytoeror xovemeror heemerfispe numeryer}} else

dteustrlin

xowD test for ustrlin9 or merin9F he mro \dateaustralian rede(nes the ommnd \today to produe eusE trlin respF xew elnd dtesF

20.117

20.118 20.119 20.120 20.121 20.122 20.123 20.124

defldtemp{e} ifxldtempldtemp dnmedef{dtegurrentyption}{7 deftody{numerdy~ifsemonthor tnuryor peruryor wrhor eprilor wyor tuneor tulyor eugustor eptemeror ytoeror xovemeror heemerfispe numeryer}}

dtemerin

he mro \dateamerican rede(nes the ommnd \today to produe emerin dtesF

else dnmedef{dtegurrentyption}{7 20.127 deftody{ifsemonthor 20.128 tnuryor peruryor wrhor eprilor wyor tuneor 20.129 tulyor eugustor eptemeror ytoeror xovemeror 20.130 heemerfi spenumerdyD numeryer}} 20.131 fi 20.132 fi
20.125 20.126

extrsenglish noextrsenglish

he mro \extrasenglish will perform ll the extr de(nitions needed for the inglish lngugeF he mro \noextrasenglish is used to nel the tions of \extrasenglishF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
dnmedef{extrsgurrentyption}{} dnmedef{noextrsgurrentyption}{}

20.133 20.134

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
20.135 20.136

ldfdfinishgurrentyption /code

WI

21

The German language

he (le germanb.dtx15 de(nes ll the lnguge de(nition mros for the qermn lnguge s well s for the eustrin dilet of this lnguge16 F por this lnguge the hrter " is mde tiveF sn tle R n overview is given of its purposeF yne of the resons for this is tht in the qermn lnguge some hrter omintions hnge when word is roken etween the omintionF elso the vertil plement of the umlut n e ontrolled this wyF he quotes

"a "s "z "ck "ff "S "Z "| """ "~ "= "` "' "< ">

\"aD lso implemented for the other lowerse nd upperse vowelsF to produe the qermn @like \ss{}AF to produe the qermn @like \ss{}AF for ck to e hyphented s k-kF for ff to e hyphented s ff-fD this is lso impleE mented for lD mD nD pD r nd t for SS to e \uppercase{"s}F for SZ to e \uppercase{"z}F disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for ompound word mrk without rekpointF for ompound word mrk with rekpointD llowE ing hyphention in the omposing wordsF for qermn left doule quotes @looks like AF for qermn right doule quotesF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF

le RX he extr de(nitions mde y german.ldf in tle R n lso e typeset y using the ommnds in tle SF hen this (le ws red through the option germanb we mke it ehve s if german ws spei(edF
defldtemp{germn} ifxgurrentyptionldtemp 21.3 defgurrentyption{germn} 21.4 ifxldgermndundefined 21.5 dnoptterns{qermn} 21.6 dddiletldgermnH 21.7 fi 21.8 letldgermnldgermn 21.9 etfeginhoument{7 21.10 letptionsgermnptionsgermn 21.11 letdtegermndtegermn
21.1 21.2

15 The 16 This

le described in this section has version number v2.6m and was last revised on le is a re-implementation of Hubert Partl's

2008/06/01.

german.sty

version 2.5b, see [4].

WP

\glqq \grqq \glq \grq \flqq \frqq \flq \frq \dq

for qermn left doule quotes @looks like AF for qermn right doule quotes @looks like AF for qermn left single quotes @looks like DAF for qermn right single quotes @looks like AF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF for @prenhA left single quotes @similr to <AF for @prenhA right single quotes @similr to >AF the originl quotes hrter @"AF

le SX wore ommnds whih produe quotesD de(ned y german.ldf

21.12 21.13 21.14 21.15

} fi

letextrsgermnextrsgermn letnoextrsgermnnoextrsgermn

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
21.16 21.17

code vdfsnitgurrentyption{ptionsgurrentyption}

hen this (le is red s n optionD iFeFD y the \usepackage ommndD german will e n unknown9 lngugeD so we hve to mke it knownF o we hek for the existene of \l@german to see whether we hve to do something hereF
ifxldgermndundefined dnoptterns{qermn} 21.20 dddiletldgermnH 21.21 fi
21.18 21.19

por the eustrin version of these de(nitions we just dd nother lngugeF


21.22

dddiletldustrinldgermn

he next step onsists of de(ning ommnds to swith to @nd fromA the qerE mn lngugeF
ptionsgermn ptionsustrin

iither the mro \captionsgerman or the mro \captionsaustrian will de(ne A ll strings used in the four stndrd doument lsses provided with v iF

dnmedef{ptionsgurrentyption}{7 defprefenme{orwort}7 21.25 defrefnme{vitertur}7 21.26 defstrtnme{usmmenfssung}7 21.27 definme{viterturverzeihnis}7 21.28 defhpternme{upitel}7 21.29 defppendixnme{enhng}7 21.30 defontentsnme{snhltsverzeihnis}7 7 oder nurX snhlt 21.31 deflistfigurenme{eildungsverzeihnis}7 21.32 deflisttlenme{ellenverzeihnis}7 21.33 defindexnme{sndex}7 21.34 deffigurenme{eildung}7 21.35 deftlenme{elle}7 7 oderX fel 21.36 defprtnme{eil}7
21.23 21.24

WQ

21.37 21.38 21.39 21.40 21.41 21.42 21.43 21.44 21.45

defenlnme{enlge@nA}7 defnme{erteiler}7 defhedtonme{en}7 defpgenme{eite}7 defseenme{siehe}7 deflsonme{siehe uh}7 defproofnme{feweis}7 defglossrynme{qlossr}7 }

7 oderX feilge@nA 7 oderX uopien n

dtegermn

he mro \dategerman rede(nes the ommnd \today to produe qermn dtesF

defmonthdgermn{ifsemonthor tnuror peruror w4rzor eprilor wior tunior 21.48 tulior eugustor eptemeror yktoeror xovemeror hezemerfi} 21.49 defdtegermn{deftody{numerdyF~monthdgermn 21.50 spenumeryer}}
21.46 21.47

dteustrin

he mro \dateaustrian rede(nes the ommnd \today to produe eustrin version of the qermn dtesF
defdteustrin{deftody{numerdyF~ifnumIamonth t4nnerelse monthdgermnfi spenumeryer}}

21.51 21.52

extrsgermn extrsustrin noextrsgermn noextrsustrin

iither the mro \extrasgerman or the mros \extrasaustrian will perE form ll the extr de(nitions needed for the qermn lngugeF he mro \noextrasgerman is used to nel the tions of \extrasgermanF por qermn @s well s for huthA the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF

inititedtivedhr{4} dnmedef{extrsgurrentyption}{7 21.55 lngugeshorthnds{germn}} 21.56 expndfterddtosnme extrsgurrentyptionendsnme{7 21.57 ldtivte{4}}


21.53 21.54

hon9t forget to turn the shorthnds o' ginF


21.58

ddtonoextrsgermn{lddetivte{4}}

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvevrile{lodePS}7 21.61 lodePSaPS}


21.59 21.60

sn order for i to e le to hyphente qermn words whih ontin 9 @in the OT1 position ^^YA we hve to give the hrter nonzero \lccode @see eppendix rD the iookAF

he umlut ent mro \" is hnged to lower the umlut dotsF he rede(E nition is done with the help of \umlautlowF
expndfterddtosnme extrsgurrentyptionendsnme{7 eldsve4umlutlow} 21.64 dnmedef{noextrsgurrentyption}{umluthigh}
21.62 21.63

he germn hyphention ptterns n e used with \lefthyphenmin nd \righthyphenmin set to PF


21.65

providehyphenmins{gurrentyption}{twdtwd}

WR

por qermn texts we need to mke sure tht \frenchspacing is turned onF
expndfterddtosnme extrsgurrentyptionendsnme{7 ldfrenhsping} 21.68 expndfterddtosnme noextrsgurrentyptionendsnme{7 21.69 ldnonfrenhsping}
21.66 21.67

he ode ove is neessry euse we need n extr tive hrterF his hrter is then used s indited in tle RF o e le to de(ne the funtion of "D we (rst de(ne ouple of support9 mrosF
dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F

egingroup tode4IP defx{endgroup 21.72 defd{mthhr4UHIW } 21.73 defdq{4}} 21.74 x


21.70 21.71

xow we n de(ne the doulequote mrosX the umlutsD


delredshorthnd{germn}{4}{textormth{4{}llowhyphens}{ddot delredshorthnd{germn}{4o}{textormth{4{o}llowhyphens}{ddot 21.77 delredshorthnd{germn}{4u}{textormth{4{u}llowhyphens}{ddot 21.78 delredshorthnd{germn}{4e}{textormth{4{e}llowhyphens}{ddot 21.79 delredshorthnd{germn}{4y}{textormth{4{y}llowhyphens}{ddot 21.80 delredshorthnd{germn}{4}{textormth{4{}llowhyphens}{ddot
21.75 21.76

}} o}} u}} e}} y}} }}

tremsD
delredshorthnd{germn}{4e}{textormth{4{e}}{ddot e}} delredshorthnd{germn}{4i}{textormth{4{i}}{ddot i}} 21.83 delredshorthnd{germn}{4i}{textormth{4{i}}7 21.84 {ddotimth}} 21.85 delredshorthnd{germn}{4s}{textormth{4{s}}{ddot s}}
21.81 21.82

germn esEzet @shrp sAD


delredshorthnd{germn}{4s}{textormth{ss}{d{}}} delredshorthnd{germn}{4}{} 21.88 delredshorthnd{germn}{4z}{textormth{ss}{d{}}} 21.89 delredshorthnd{germn}{4}{}
21.86 21.87

germn nd frenh quotesD


delredshorthnd{germn}{4}{glqq} delredshorthnd{germn}{49}{grqq} 21.92 delredshorthnd{germn}{4`}{flqq} 21.93 delredshorthnd{germn}{4b}{frqq}
21.90 21.91

disretionry ommnds
delredshorthnd{germn}{4}{textormth{lddis delredshorthnd{germn}{4g}{textormth{lddis 21.96 delredshorthnd{germn}{4p}{textormth{lddis 21.97 delredshorthnd{germn}{4l}{textormth{lddis 21.98 delredshorthnd{germn}{4v}{textormth{lddis 21.99 delredshorthnd{germn}{4m}{textormth{lddis 21.100 delredshorthnd{germn}{4w}{textormth{lddis 21.101 delredshorthnd{germn}{4n}{textormth{lddis
21.94 21.95

k}{}} gu}{g}} p{pp}}{p}} l{ll}}{l}} v{vv}}{v}} m{mm}}{m}} w{ww}}{w}} n{nn}}{n}}

WS

delredshorthnd{germn}{4x}{textormth{lddis delredshorthnd{germn}{4p}{textormth{lddis 21.104 delredshorthnd{germn}{4}{textormth{lddis 21.105 delredshorthnd{germn}{4r}{textormth{lddis 21.106 delredshorthnd{germn}{4}{textormth{lddis 21.107 delredshorthnd{germn}{4t}{textormth{lddis 21.108 delredshorthnd{germn}{4}{textormth{lddis
21.102 21.103 21.109 21.110

x{xx}}{x}} p{pp}}{p}} {}}{}} r{rr}}{r}} {}}{}} t{tt}}{t}} {}}{}}

e need to tret "f it di'erently in order to preserve the 'EligtureF


delredshorthnd{germn}{4f}{textormth{lddisff}{f}} deflddisff{penltydw 21.111 fterssignmentldinsertff letldnextffa } 21.112 defldinsertff{7 21.113 if fldnextff 21.114 expndfterdfirstoftwoelseexpndfterdseondoftwofi 21.115 {relxdisretionry{ffE}{f}{ff}llowhyphens}{fldnextff}} 21.116 letldnextffaf

nd some dditionl ommndsX


delredshorthnd{germn}{4E}{norekEldllowhyphens} delredshorthnd{germn}{4|}{7 21.119 textormth{penltydwdisretionry{E}{}{kernFHQem}7 21.120 llowhyphens}{}} 21.121 delredshorthnd{germn}{44}{hskipzdskip} 21.122 delredshorthnd{germn}{4~}{textormth{levevmodehox{E}}{E}} 21.123 delredshorthnd{germn}{4a}{penltydwEhskipzdskip}
21.117 21.118

mdqon ell tht9s left to do now is to de(ne ouple of ommnds for resons of omptE mdqoff iility with german.styF k 21.124 defmdqon{shorthndon{4}} 21.125 defmdqoff{shorthndoff{4}} 21.126 defk{llowhyphensdisretionry{kE}{k}{k}llowhyphens}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
21.127 21.128

ldfdfinishgurrentyption /code

WT

22

The German language  new orthography

he (le ngermanb.dtx17 de(nes ll the lnguge de(nition mros for the qermn lnguge with the new orthogrphy9 introdued in eugust IWWVF his inludes lso the eustrin dilet of this lngugeF es with the trditionl9 qermn orthogrphyD the hrter " is mde tiveD nd the ommnds in tle R n e usedD exept for "ck nd "ff etFD whih re no longer requiredF he internl lnguge nmes re ngerman nd naustrianF hen this (le ws red through the option ngermanb we mke it ehve s if ngerman ws spei(edF
defldtemp{ngermn} ifxgurrentyptionldtemp 22.3 defgurrentyption{ngermn} 22.4 fi
22.1 22.2

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
22.5 22.6

code vdfsnitgurrentyption{ptionsgurrentyption}

hen this (le is red s n optionD iFeFD y the \usepackage ommndD ngerman will e n unknown9 lngugeD so we hve to mke it knownF o we hek for the existene of \l@ngerman to see whether we hve to do something hereF
ifxldngermndundefined dnoptterns{ngermn} 22.9 dddiletldngermnH 22.10 fi
22.7 22.8

por the eustrin version of these de(nitions we just dd nother lngugeF


22.11

dddiletldnustrinldngermn

he next step onsists of de(ning ommnds to swith to @nd fromA the qerE mn lngugeF
ptionsngermn ptionsnustrin

iither the mro \captionsngerman or the mro \captionsnaustrian will deE A (ne ll strings used in the four stndrd doument lsses provided with v iF

dnmedef{ptionsgurrentyption}{7 defprefenme{orwort}7 22.14 defrefnme{vitertur}7 22.15 defstrtnme{usmmenfssung}7 22.16 definme{viterturverzeihnis}7 22.17 defhpternme{upitel}7 22.18 defppendixnme{enhng}7 22.19 defontentsnme{snhltsverzeihnis}7 7 oder nurX snhlt 22.20 deflistfigurenme{eildungsverzeihnis}7 22.21 deflisttlenme{ellenverzeihnis}7 22.22 defindexnme{sndex}7 22.23 deffigurenme{eildung}7 22.24 deftlenme{elle}7 7 oderX fel 22.25 defprtnme{eil}7
22.12 22.13

17 The

le described in this section has version number v2.6n and was last revised on

2008/07/06.

WU

22.26 22.27 22.28 22.29 22.30 22.31 22.32 22.33 22.34

defenlnme{enlge@nA}7 defnme{erteiler}7 defhedtonme{en}7 defpgenme{eite}7 defseenme{siehe}7 deflsonme{siehe uh}7 defproofnme{feweis}7 defglossrynme{qlossr}7 }

7 oderX feilge@nA 7 oderX uopien n

dtengermn

he mro \datengerman rede(nes the ommnd \today to produe qermn dtesF

defmonthdngermn{ifsemonthor tnuror peruror w4rzor eprilor wior tunior 22.37 tulior eugustor eptemeror yktoeror xovemeror hezemerfi} 22.38 defdtengermn{deftody{numerdyF~monthdngermn 22.39 spenumeryer}}
22.35 22.36

dtenustrin

he mro \datenaustrian rede(nes the ommnd \today to produe eustrin version of the qermn dtesF
defdtenustrin{deftody{numerdyF~ifnumIamonth t4nnerelse monthdngermnfi spenumeryer}}

22.40 22.41

extrsngermn extrsnustrin noextrsngermn noextrsnustrin

iither the mro \extrasngerman or the mros \extrasnaustrian will perE form ll the extr de(nitions needed for the qermn lngugeF he mro \noextrasngerman is used to nel the tions of \extrasngermanF por qermn @s well s for huthA the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF

inititedtivedhr{4} dnmedef{extrsgurrentyption}{7 22.44 lngugeshorthnds{ngermn}} 22.45 expndfterddtosnme extrsgurrentyptionendsnme{7 22.46 ldtivte{4}}


22.42 22.43

hon9t forget to turn the shorthnds o' ginF


22.47

ddtonoextrsngermn{lddetivte{4}}

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvevrile{lodePS}7 22.50 lodePSaPS}


22.48 22.49

sn order for i to e le to hyphente qermn words whih ontin 9 @in the OT1 position ^^YA we hve to give the hrter nonzero \lccode @see eppendix rD the iookAF

he umlut ent mro \" is hnged to lower the umlut dotsF he rede(E nition is done with the help of \umlautlowF
expndfterddtosnme extrsgurrentyptionendsnme{7 eldsve4umlutlow} 22.53 dnmedef{noextrsgurrentyption}{umluthigh}
22.51 22.52

he urrent version of the new9 qermn hyphention ptterns @dehyphn.tex is to e used with \lefthyphenmin nd \righthyphenmin set to PF
22.54

providehyphenmins{gurrentyption}{twdtwd}

WV

por qermn texts we need to mke sure tht \frenchspacing is turned onF
expndfterddtosnme extrsgurrentyptionendsnme{7 ldfrenhsping} 22.57 expndfterddtosnme noextrsgurrentyptionendsnme{7 22.58 ldnonfrenhsping}
22.55 22.56

he ode ove is neessry euse we need n extr tive hrterF his hrter is then used s indited in tle RF o e le to de(ne the funtion of "D we (rst de(ne ouple of support9 mrosF
dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F

egingroup tode4IP defx{endgroup 22.61 defd{mthhr4UHIW } 22.62 defdq{4}} 22.63 x


22.59 22.60

xow we n de(ne the doulequote mrosX the umlutsD


delredshorthnd{ngermn}{4}{textormth{4{}llowhyphens}{ddot delredshorthnd{ngermn}{4o}{textormth{4{o}llowhyphens}{ddot 22.66 delredshorthnd{ngermn}{4u}{textormth{4{u}llowhyphens}{ddot 22.67 delredshorthnd{ngermn}{4e}{textormth{4{e}llowhyphens}{ddot 22.68 delredshorthnd{ngermn}{4y}{textormth{4{y}llowhyphens}{ddot 22.69 delredshorthnd{ngermn}{4}{textormth{4{}llowhyphens}{ddot
22.64 22.65

}} o}} u}} e}} y}} }}

tremsD
delredshorthnd{ngermn}{4e}{textormth{4{e}}{ddot e}} delredshorthnd{ngermn}{4i}{textormth{4{i}}{ddot i}} 22.72 delredshorthnd{ngermn}{4i}{textormth{4{i}}7 22.73 {ddotimth}} 22.74 delredshorthnd{ngermn}{4s}{textormth{4{s}}{ddot s}}
22.70 22.71

germn esEzet @shrp sAD


delredshorthnd{ngermn}{4s}{textormth{ss}{d{}}} delredshorthnd{ngermn}{4}{} 22.77 delredshorthnd{ngermn}{4z}{textormth{ss}{d{}}} 22.78 delredshorthnd{ngermn}{4}{}
22.75 22.76

germn nd frenh quotesD


delredshorthnd{ngermn}{4}{glqq} delredshorthnd{ngermn}{49}{grqq} 22.81 delredshorthnd{ngermn}{4`}{flqq} 22.82 delredshorthnd{ngermn}{4b}{frqq}
22.79 22.80

nd some dditionl ommndsX


delredshorthnd{ngermn}{4E}{norekEldllowhyphens} delredshorthnd{ngermn}{4|}{7 22.85 textormth{penltydwdisretionry{E}{}{kernFHQem}7 22.86 llowhyphens}{}} 22.87 delredshorthnd{ngermn}{44}{hskipzdskip} 22.88 delredshorthnd{ngermn}{4~}{textormth{levevmodehox{E}}{E}} 22.89 delredshorthnd{ngermn}{4a}{penltydwEhskipzdskip}
22.83 22.84

WW

mdqon mdqoff

ell tht9s left to do now is to de(ne ouple of ommnds for resons of omptE iility with german.styF
defmdqon{shorthndon{4}} defmdqoff{shorthndoff{4}}

22.90 22.91

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
22.92 22.93

ldfdfinishgurrentyption /code

IHH

23

The Breton language

he (le breton.dtx18 de(nes ll the lngugeEspei( mros for the freton lnE gugeF here re not relly typogrphi rules for the freton lngugeF st is lol lnguge @it9s one of the elti lngugesA whih is spoken in frittny @est of prneAF o we hve synthesis etween frenh typogrphi rules nd english typogrphi rulesF he hrters :D ;D ! nd ? re mde tive in order to get whitespe utomtilly efore these hrtersF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
23.1 23.2

code vdfsnit{reton}ptionsreton

hen this (le is red s n optionD iFeF y the \usepackage ommndD breton will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@breton to see whether we hve to do something hereF
ifxldretondundefined dnoptterns{freton} 23.5 dddiletldretonHfi
23.3 23.4

he next step onsists of de(ning ommnds to swith to the inglish lngugeF he reson for this is tht user might wnt to swith k nd forth etween lngugesF
ptionsreton

ddtoptionsreton{7 defprefenme{kskrid}7 23.8 defrefnme{hveennou}7 23.9 defstrtnme{hvierr~n}7 23.10 definme{venndurezh}7 23.11 defhpternme{ennd}7 23.12 defppendixnme{tgdenn}7 23.13 defontentsnme{olenn}7 23.14 deflistfigurenme{vistenn r pigurennou}7 23.15 deflisttlenme{vistenn n tolennou}7 23.16 defindexnme{weneger}7 23.17 deffigurenme{pigurenn}7 23.18 deftlenme{olenn}7 23.19 defprtnme{vodenn}7 23.20 defenlnme{hiellou kevret}7 23.21 defnme{iilskrid d}7 23.22 defhedtonme{evit} 23.23 defpgenme{jenn}7 23.24 defseenme{qwelout}7 23.25 deflsonme{qwelout ivez}7 23.26 defproofnme{roof}7 `EE needs trnsltion 23.27 defglossrynme{qlossry}7 `EE xeeds trnsltion 23.28 }
23.6 23.7

he mro \captionsbreton de(nes ll strings used in the four stndrd douE A ment lsses provided with v iF

18 The

le described in this section has version number v1.0h and was last revised on

2005/03/29.

IHI

dtereton

he mro \datebreton rede(nes the ommnd \today to produe freton dtesF

defdtereton{7 deftody{ifnumdyaIrelx IG6{rm tilde{n}}6else 23.31 numerdyfi spe spe vizspeifsemonthor 23.32 qenveror g9hwevreror weurzhor irelor weor wezhevenor 23.33 qouereor iostor qwengoloor rereor huor uerzufi 23.34 spenumeryer}}
23.29 23.30

extrsreton noextrsreton

he mro \extrasbreton will perform ll the extr de(nitions needed for the freton lngugeF he mro \noextrasbreton is used to nel the tions of \extrasbretonF he tegory ode of the hrters :D ;D ! nd ? is mde \active to insert little white speF

inititedtivedhr{X} inititedtivedhr{Y} 23.37 inititedtivedhr{3} 23.38 inititedtivedhr{c}


23.35 23.36

e speify tht the reton group of shorthnds should e usedF


23.39

ddtoextrsreton{lngugeshorthnds{reton}}

hese hrters re turned on9 oneD lter their de(nition my vryF


ddtoextrsreton{7 ldtivte{X}ldtivte{Y}7 23.42 ldtivte{3}ldtivte{c}}
23.40 23.41

hon9t forget to turn the shorthnds o' ginF


ddtonoextrsreton{7 lddetivte{X}lddetivte{Y}7 23.45 lddetivte{3}lddetivte{c}}
23.43 23.44

he lst thing \extrasbreton needs to do is to mke sure tht \frenchspacing is in e'etF sf this is not the se the exeution of \noextrasbreton will swith it of ginF
23.46 23.47

ddtoextrsreton{ldfrenhsping} ddtonoextrsreton{ldnonfrenhsping}

retondshdYd

e hve to redue the mount of white spe efore ;D : nd ! when the user types spe in front of these hrtersF his should only hppen outside mthmodeD hene the test with \ifmmodeF

delredshorthnd{reton}{Y}{7 ifmmode 23.50 stringYspe 23.51 elserelx


23.48 23.49

sn horizontl mode we hek for the presene of spe9 nd reple it y \thinspaceF


23.52 23.53 23.54 23.55 23.56 23.57 23.58

ifhmode ifdimlstskipbzd unskippenltydwthinspe fi fi stringYspe fi}7

IHP

retondshdXd retondshd3d

feuse these de(nitions re very similr only one is displyed in wy tht the de(nition n e esily hekedF

delredshorthnd{reton}{X}{7 ifmmodestringXspe 23.61 elserelx 23.62 ifhmode 23.63 ifdimlstskipbzdunskippenltydwthinspefi 23.64 fi 23.65 stringXspe 23.66 fi} 23.67 delredshorthnd{reton}{3}{7 23.68 ifmmodestring3spe 23.69 elserelx 23.70 ifhmode 23.71 ifdimlstskipbzdunskippenltydwthinspefi 23.72 fi 23.73 string3spe 23.74 fi}
23.59 23.60

retondshdcd

por the question mrk something di'erent hs to e doneF sn this se the mount of white spe tht reples the spe hrter depends on the dimensions of the fontF

delredshorthnd{reton}{c}{7 ifmmode 23.77 stringcspe 23.78 elserelx 23.79 ifhmode 23.80 ifdimlstskipbzd 23.81 unskip 23.82 kernfontdimenPfont 23.83 kernEIFRfontdimenQfont 23.84 fi 23.85 fi 23.86 stringcspe 23.87 fi}
23.75 23.76

ell tht is left to do now is provide the reton user with some extr utilitiesF ome de(nitions for speil hrtersF
helreextymol{t}{yI}{TR} helreextymol{t}{I}{TR} 23.90 helreextymolhefult{t}{yI} 23.91 helreextymol{oi}{yI}{WP} 23.92 helreextymol{oi}{I}{IT} 23.93 helreextymolhefult{oi}{yI} 23.94 helreextymol{ironflexe}{yI}{WR} 23.95 helreextymol{ironflexe}{I}{P} 23.96 helreextymolhefult{ironflexe}{yI} 23.97 helreextymol{tild}{yI}{IPT} 23.98 helreextymol{tild}{I}{Q} 23.99 helreextymolhefult{tild}{yI} 23.100 helreextymol{degre}{yI}{PQ} 23.101 helreextymol{degre}{I}{T} 23.102 helreextymolhefult{degre}{yI}
23.88 23.89

IHQ

he following mros re used in the rede(nition of \^ nd \" to hndle the letter iF


etfeginhoument{7 helreextgompositegommnd{}{yI}{i}{i} 23.105 helreextgompositegommnd{4}{yI}{i}{4i}}
23.103 23.104

end some more mros for numeringF


defkentn{IG6{}{rm tilde{n}}6} defeil{PG6{}{rm l}6} 23.108 defre{G6{}{rm re}6} 23.109 deftrede{Qre} 23.110 defpevre{Rre} 23.111 defvet{G6{}{rm vet}6} 23.112 defpempvet{Svet}
23.106 23.107

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
23.113 23.114

ldfdfinish{reton} /code

IHR

24

The Welsh language

he (le welsh.dtx19 de(nes ll the lnguge de(nition mros for the elsh lngugeF por this lnguge urrently no speil de(nitions re needed or villeF he mro \ldf@init tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
24.1 24.2

code vdfsnit{welsh}{ptionswelsh}

hen this (le is red s n optionD iFeF y the \usepackage ommndD welsh ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@welsh to see whether we hve to do something hereF
ifxundefinedldwelsh dnoptterns{welsh} 24.5 dddiletldwelshHfi
24.3 24.4

he next step onsists of de(ning ommnds to swith to @nd fromA the elsh lngugeF
welshhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
24.6

providehyphenmins{gurrentyption}{twdthrdd}

ptionswelsh

defptionswelsh{7 defprefenme{hgir}7 24.9 defrefnme{gyfeiridu}7 24.10 defstrtnme{grynode}7 24.11 definme{vlyfryddieth}7 24.12 defhpternme{ennod}7 24.13 defppendixnme{etodid}7 24.14 defontentsnme{gynnwys}7 24.15 deflistfigurenme{hestr hdrluniu}7 24.16 deflisttlenme{hestr hlu}7 24.17 defindexnme{wynegi}7 24.18 deffigurenme{hrlun}7 24.19 deftlenme{flen}7 24.20 defprtnme{hn}7 24.21 defenlnme{mge4edig}7 24.22 defnme{op4i u}7 24.23 defhedtonme{et}7 7 t9 on letters mening to @ personA9 24.24 7 to @ pleA9 is i9 in elsh 24.25 defpgenme{tudlen}7 24.26 defseenme{gweler}7 24.27 deflsonme{gweler hefyd}7 24.28 defproofnme{rwf}7 24.29 defglossrynme{hestr termu}7 24.30 }
24.7 24.8

he mro \captionswelsh de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

19 The

le described in this section has version number v1.0d and was last revised on

2005/03/31.

IHS

dtewelsh

he mro \datewelsh rede(nes the ommnd \today to produe welsh dtesF

defdtewelsh{7 deftody{ifnumdyaIrelx IG6{mthrm{tilde{n}}}6else 24.33 numerdyfispeifsemonthor 24.34 sonwror ghwefroror wwrthor irillor 24.35 wior wehefinor qorffennfor ewstor 24.36 wedior rydrefor hweddor hgfyrfi 24.37 spenumeryer}}
24.31 24.32

extrswelsh noextrswelsh

he mro \extraswelsh will perform ll the extr de(nitions needed for the welsh lngugeF he mro \noextraswelsh is used to nel the tions of \extraswelshF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrswelsh{} ddtonoextrswelsh{}

24.38 24.39

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
24.40 24.41

ldfdfinish{welsh} /code

IHT

25

The Irish language

he (le irish.dtx20 de(nes ll the lnguge de(nition mros for the srish lnE gugeF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
25.1 25.2

code vdfsnit{irish}ptionsirish

hen this (le is red s n optionD iFeF y the \usepackage ommndD irish ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@irish to see whether we hve to do something hereF
ifxldirishdundefined dnoptterns{irish} 25.5 dddiletldirishHfi
25.3 25.4

he next step onsists of de(ning ommnds to swith to @nd fromA the srish lngugeF
irishhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
25.6

providehyphenmins{gurrentyption}{twdthrdd}

ptionsirish

ddtoptionsirish{7 defprefenme{9emhr9}7 `EE lso 4frollh4 25.9 defrefnme{girt9{i}}7 25.10 defstrtnme{ehoimre}7 25.11 definme{vehrliost}7 25.12 defhpternme{giidil}7 25.13 defppendixnme{eguis9{i}n}7 25.14 defontentsnme{gl9r 9ehir}7 25.15 deflistfigurenme{v9er9id9{i}}7 25.16 deflisttlenme{9l9{i}}7 25.17 defindexnme{snn9es}7 25.18 deffigurenme{v9er9id}7 25.19 deftlenme{9l}7 25.20 defprtnme{guid}7 25.21 defenlnme{foi imh}7 25.22 defnme{}7 rvF 9oip huig9 25.23 defhedtonme{qo}7 25.24 defpgenme{vethnh}7 25.25 defseenme{f9eh}7 25.26 deflsonme{f9eh freisin}7 25.27 defproofnme{gruth9uns}7 25.28 defglossrynme{qlossry}7 `EE xeeds trnsltion 25.29 }
25.7 25.8

he mro \captionsirish de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

20 The

le described in this section has version number v1.0h and was last revised on

2005/03/30. A contribution was made by Marion Gunn.

IHU

dteirish

he mro \dateirish rede(nes the ommnd \today to produe srish dtesF

defdteirish{7 deftody{7 25.32 numerdyspe ifsemonthor 25.33 in9iror pehror w9rtor eire9nor 25.34 feltineor weithemhor s9uilor v9unsor 25.35 we9n p9omhiror heiredh p9omhiror 25.36 w9{i} n mhnor w9{i} n xollgfi 25.37 spe numeryer}}
25.30 25.31

extrsirish noextrsirish

he mro \extrasirish will perform ll the extr de(nitions needed for the srish lngugeF he mro \noextrasirish is used to nel the tions of \extrasirishF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrsirish{} ddtonoextrsirish{}

25.38 25.39

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
25.40 25.41

ldfdfinish{irish} /code

IHV

26

The Scottish language

he (le scottish.dtx21 de(nes ll the lnguge de(nition mros for the ottish lngugeF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
26.1 26.2

code vdfsnit{sottish}ptionssottish

hen this (le is red s n optionD iFeF y the \usepackage ommndD scottish ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@scottish to see whether we hve to do something hereF
ifxldsottishdundefined dnoptterns{sottish} 26.5 dddiletldsottishHfi
26.3 26.4

he next step onsists of de(ning ommnds to swith to @nd fromA the ottish lngugeF
ptionssottish

ddtoptionssottish{7 defprefenme{refe}7 `EE needs trnsltion 26.8 defrefnme{somridh}7 26.9 defstrtnme{fr{i}gh}7 26.10 definme{vehrihen}7 26.11 defhpternme{giideil}7 26.12 defppendixnme{ethEsgr{i}ohdh}7 26.13 defontentsnme{glrEorh}7 26.14 deflistfigurenme{viost hhelh }7 26.15 deflisttlenme{viost ghlr}7 26.16 defindexnme{glrEinnse}7 26.17 deffigurenme{helh}7 26.18 deftlenme{glr}7 26.19 defprtnme{guid}7 26.20 defenlnme{Estigh}7 26.21 defnme{lethhre gu}7 26.22 defhedtonme{gu}7 26.23 defpgenme{tFdF}7 rvF toh duilleg9 26.24 defseenme{see}7 `EE needs trnsltion 26.25 deflsonme{see lso}7 `EE needs trnsltion 26.26 defproofnme{roof}7 `EE needs trnsltion 26.27 defglossrynme{qlossry}7 `EE xeeds trnsltion 26.28 }
26.6 26.7

he mro \captionsscottish de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF

dtesottish

he mro \datescottish rede(nes the ommnd \today to produe ottish dtesF


defdtesottish{7 deftody{7
le described in this section has version number v1.0g and was last revised on

26.29 26.30

2005/03/31. A contribution was made by Fraser Grant (FRASER@CERNVM).

21 The

IHW

26.31 26.32 26.33 26.34 26.35 26.36

numerdyspe ifsemonthor m poiltehor n qerrnor m wrtor n qilenor n geitenor n tEyg mhiosor n tEsuhror vunsdlor n ultuineor n hmhror n tEmhinnor n huhlhdfi spe numeryer}}

extrssottish noextrssottish

he mro \extrasscottish will perform ll the extr de(nitions needed for the ottish lngugeF he mro \noextrasscottish is used to nel the tions of \extrasscottishF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrssottish{} ddtonoextrssottish{}

26.37 26.38

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
26.39 26.40

ldfdfinish{sottish} /code

IIH

27

The Greek language

greektext ltintext textgreek textltin textol

he (le greek.dtx22 de(nes ll the lnguge de(nition mros for the qreek lngugeD iFeFD s it used tody with only one entD nd the ttriute o o o @olutonikoA for typesetting greek text with ll entsF his seprtion rose out of the need to simplify thingsD for only very few people will e relly interested to typeset polytoni qreek textF he ommnds \greektext nd \latintext n e used to swith to greek or ltin fontsF hese re delrtionsF he ommnds \textgreek nd \textlatin oth tke one rgument whih is then typeset using the requested font enodingF he ommnd \greekol swithes to the greek outline font fmilyD while the ommnd \textol typests short text in outline fontF e numer of extr greek hrters re mde ville through the dded text ommnds \stigmaD \qoppaD \sampiD \ddigammaD \DigammaD \euroD \permillD nd \vardigammaF

27.1 Typing conventions


intering greek text n e quite di0ult euse of the mny diritil signs tht need to e dded for vrious purposesF he fonts tht re used to typeset qreek mke this lot esier y o'ering lot of ligturesF fut in order for this to workD some hrters need to e onsidered s lettersF hese hrters re <D >D ~D `D 'D " nd |F herefore their \lccode is hnged when qreek is in e'etF sn order to let \uppercase give orret resultsD the \uccode of these hrters is set to nonEexisting hrter to mke them dispperF yf ourse not ll hrters re needed when typesetting modern oo oF sn tht se we only need the ' o nd " symols whih re treted in the proper wyF

27.2 Greek numbering


he qreek lphetil numering systemD like the omn oneD is still used in everydy life for short enumertionsF nfortuntely most qreeks don9t know how to write qreek numers igger thn PH or QHF xeverthelessD in o0il editions of the lst entury nd eginning of this entury this numering system ws lso used for dtes nd numers in the rnge of severl thousndsF xowdys this numering system is primry used y the istern yrthodox ghurh nd y ertin sholrsF st is hene neessry to e le to typeset ny qreek numerl up to WWW WWWF rere re the onventionsX

here is no qreek numerl for ny numer less thn or equl to 0F xumers from 1 to 9 re denoted y letters lphD etD gmmD deltD epsilonD stigmD zetD etD thetD followed y mrk similr to the mthE emtil symol primeF @xowdys insted of letter stigm the digrph sigm tu is used for numer 6F winly euse the letter stigm is not lwys villeD so people opt to write down the (rst two letters of its nme
2005/03/30. The original author is Apostolos Syropoulos (apostolo@platon.ee.duth.gr), code from

22 The

le described in this section has version number v1.3l and was last revised on by David Kastrup

kdgreek.sty

dak@neuroinformatik.ruhr-uni-bochum.de

was used to

enhance the support for typesetting greek texts.

III

s n lterntiveF sn our implementtion we produe the letter stigmD not the digrph sigm tuFA

hedes from 10 to 90 re denoted y letters iotD kppD lmdD muD nuD xiD omikronD piD qoppD gin followed y the numeri mrkF he qopp used for this purpose hs speil zigEzg formD whih doesn9t resemle t ll the originl q9Elike qoppF rundreds from 100 to 900 re denoted y letters rhoD sigmD tuD upsilonD phiD hiD psiD omegD smpiD followed y the numeri mrkF eny numer etween 1 nd 999 is otined y group of letters denoting the hundreds dedes nd unitsD followed y numeri mrkF o denote thousnds one uses the sme methodD ut this time the mrk is pled in front of the letterD nd under the seline @it is inverted y IVH degreesAF hen group of letters denoting thousnds is followed y group of letters denoting numer under 1000D then oth mrks re usedF
greeknumerl qreeknumerl

sing these onventions one otins numers up to WWW WWWF he ommnd \greeknumeral mkes it possile to typeset qreek numerlsF here is lso n upperse version of this mroX \GreeknumeralF enother system whih ws in wide use only in ethensD ould express ny positive numerF his system is implemented in pkge athnumF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
27.1 27.2

code vdfsnitgurrentyption{ptionsgurrentyption}

hen the option polutonikogreek ws usedD rede(ne \CurrentOption to prevent prolems lter onF
27.3

gdefgurrentyption{greek}7

hen this (le is red s n optionD iFeF y the \usepackage ommndD greek ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@greek to see whether we hve to do something hereF
ifxldgreekdundefined dnoptterns{greek} 27.6 dddiletldgreekHfi
27.4 27.5

xow we delre the polutoniko lnguge ttriuteF


27.7

lddelredttriute{greek}{polutoniko}{7

his ode dds the expnsion of \extraspolutonikogreek to \extrasgreek nd hnges the de(nition of \today for qreek to produe polytoni month nmesF
27.8 27.9 27.10 27.11

expndfterddtoexpndfterextrsgreek expndfter{extrspolutonikogreek}7 letptionsgreekptionspolutonikogreek letgrdmonthgrddmonth

e need to tke some extr preutions in order not to rek older douments whih still use the old polutonikogreek optionF
27.12 27.13 27.14

letldpolutonikogreekldgreek letdtepolutonikogreekdtegreek letextrspolutonikogreekextrsgreek

IIP

27.15 27.16

letnoextrspolutonikogreeknoextrsgreek }

snputsfpileixists{lgrenFdef}{7 messge{voding the definitions for the qreek font enoding}}{7 27.19 errhelp{s n9t find the lgrenFdef file for the qreek fonts}7 27.20 errmessge{ine s do not know wht the vq enoding menst 27.21 s n9t typeset qreekFt 27.22 s stop hereD while you get suitle lgrenFdef file}ddend 27.23 }
27.17 27.18

ypesetting qreek texts implies tht speil set of fonts needs to e usedF he urrent support for greek uses the cb fonts reted y gludio feri23 F he cb fonts provide ll sorts of font combinationsF sn order to use these fonts we de(ne the vol qeek enoding @vqD see the (le greek.fddAF e mke sure A tht this enoding is known to v iD nd if it isn9t we ortF

xow we de(ne two ommnds tht o'er the possiility to swith etween qreek nd omn enodingsF
greektext

he ommnd \greektext will swith from vtin font enoding to the qreek font enodingF his ssumes tht the norml9 font enoding is vtin oneF his ommnd is declarationD for shorter piees of text the ommnd \textgreek should e usedF

helreoustgommnd{greektext}{7 fontenoding{vq}seletfont 27.26 defenodingdefult{vq}}


27.24 27.25

textgreek

his ommnd tkes n rgument whih is then typeset using the requested font enodingF sn order to void mny enoding swithes it opertes in lol sopeF
helreoustgommnd{textgreek}I{levevmode{greektext 5I}}

27.27

textol

e lst spet of the set of fonts provided with this version of support for typesetting qreek texts is tht it ontins n outline fmilyF sn order to mke it ville we de(ne the ommnd \textolF
defoutlfmily{usefont{vq}{mro}{m}{n}} helreextpontgommnd{textol}{outlfmily}

27.28 27.29

he next step onsists in de(ning ommnds to swith to @nd fromA the qreek lngugeF
greekhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
7 nnis rrlmous hs suggested this vlue providehyphenmins{gurrentyption}{dnedne}

27.30 27.31

ptionsgreek

ddtoptionsgreek{7 defprefenme{r9ologos}7 27.34 defrefnme{enfor9es}7


27.32 27.33

he mro \captionsgreek de(nes ll strings used in the four stndrd doument A lsses provided with v iF

23 Apostolos
suggestions.

Syropoulos wishes to thank him for his patience, collaboration, cooments and

IIQ

27.35 27.36 27.37 27.38 27.39 27.40 27.41 27.42 27.43 27.44 27.45 27.46 27.47 27.48 27.49 27.50 27.51 27.52 27.53 27.54

defstrtnme{er9ilhyh}7 definme{filiogrf9i}7 defhpternme{uef9lio}7 defppendixnme{r9rthm}7 defontentsnme{erieq9omen}7 deflistfigurenme{ut9logos qhm9twn}7 deflisttlenme{ut9logos in9kwn}7 defindexnme{iuret9hrio}7 deffigurenme{q9hm}7 deftlenme{9inks}7 defprtnme{w9eros}7 defenlnme{unhmm9en}7 defnme{uoinopo9ihsh}7 defhedtonme{ros}7 defpgenme{el9id}7 defseenme{l9epe}7 deflsonme{l9epe ep9ishs}7 defproofnme{ep9odeixh}7 defglossrynme{qlwss9ri}7 }

ptionspolutonikogreek

por texts written in the o o @polytoni greekA the trnsltions re the o sme s oveD ut some words re spelled di'erentlyF por now we just dd extr de(nitions to \captionsgreek in order to override the erlier de(nitionsF

letptionspolutonikogreekptionsgreek ddtoptionspolutonikogreek{7 27.57 defrefnme{benfores}7 27.58 defindexnme{i`uret9hrio}7 27.59 deffigurenme{q~hm}7 27.60 defhedtonme{ros}7 27.61 deflsonme{l9epe bep9ishs}7 27.62 defproofnme{bep9odeixh}7 27.63 }
27.55 27.56

grdmonth dtegreek

he mro \dategreek rede(nes the ommnd \today to produe greek dtesF he nme of the month is now produed y the mro \gr@month sine it is needed in the de(nition of the mro \GrtodayF

defgrdmonth{7 ifsemonthor 27.66 snour9iouor perour9iouor wrt9iouor epril9iouor 27.67 w94iouor soun9iouor soul9iouor eugo9ustouor 27.68 eptemr9iouor yktwr9iouor xoemr9iouor hekemr9ioufi} 27.69 defdtegreek{7 27.70 deftody{numerdy spe grdmonthspe numeryer}}
27.64 27.65

grddgreek defgrddmonth{7 ifsemonthor bsnour9iouor 27.73 perour9iouor wrt9iouor bepril9iouor w49iouor 27.74 bsoun9iouor bsoul9iouor ebugo9ustouor eptemr9iouor 27.75 byktwr9iouor xoemr9iouor hekemr9ioufi}
27.71 27.72

IIR

qrtody

he mro \Grtoday produes the urrent dteD only tht the month nd the dy re shown s greek numerls insted of ri s it is usully the seF

defqrtody{7 expndfterqreeknumerlexpndfter{thedy}spe 27.78 grddmonth spe 27.79 expndfterqreeknumerlexpndfter{theyer}}


27.76 27.77

extrsgreek noextrsgreek

he mro \extrasgreek will perform ll the extr de(nitions needed for the qreek lngugeF he mro \noextrasgreek is used to nel the tions of \extrasgreekF por the moment these mros swith the fontenoding used nd the de(nition of the internl mros \@alph nd \@Alph euse in qreek we do use the qreek numerlsF
ddtoextrsgreek{greektext} ddtonoextrsgreek{ltintext}

27.80 27.81

grdilldvlue

hen the rgument of \greeknumeral hs vlue outside of the eptle ounds @0 < x < 999999A wrning will e issued @nd nothing will e printedAF
defgrdilldvlue5I{7 kgerning{el}{sllegl vlue @5IA for greeknumerl}}

27.82 27.83

nwdtrue nwdflse nwdprint

hen lrge numer with three trailing zero9s is to e printed those zeros and the numeri mrk need to e disrdedF es eh digit9 is proessed y seprte mro and euse the proessing needs to e expndle we need some helper mros tht help rememer to not print the numeri mrk @\anwtonosAF he ommnd \anw@false swithes the printing of the numeri mrk o' y mking \anw@print expnd to nothingF he ommnd \anw@true @reAenles the printing of the numeri mrF hese mro9s need to e roust in order to prevent improper expnsion during writing to (les or during \uppercaseF

helreoustgommndnwdflse{7 helreoustgommndnwdprint{}} 27.86 helreoustgommndnwdtrue{7 27.87 helreoustgommndnwdprint{nwtonos}} 27.88 nwdtrue


27.84 27.85

greeknumerl

he ommnd \greeknumeral needs to e fully expndle in order to get the right informtion in uxiliry (lesF herefore we use ig \ifEonstrution to hek the vlue of the rgument nd strt the prsing t the right levelF
defgreeknumerl5I{7 ifnum5I`dnespegrdilldvlue{5I}7 else ifnum5I`IHexpndftergrdnumdinumer5I7 else ifnum5I`IHHexpndftergrdnumdiinumer5I7 else

27.89

sf the vlue is negtive or zero nothing is printed nd wrning is issuedF


27.90 27.91 27.92 27.93 27.94 27.95

e use the ville shorthnds for IFHHH @\@mA nd IHFHHH @\@MA to sve few tokensF
27.96 27.97 27.98

ifnum5I`dmexpndftergrdnumdiiinumer5I7 else ifnum5I`dwexpndftergrdnumdivnumer5I7

IIS

27.99 27.100 27.101 27.102 27.103

else ifnum5I`IHHHHHexpndftergrdnumdvnumer5I7 else ifnum5I`IHHHHHHexpndftergrdnumdvinumer5I7 else spegrdilldvlue{5I}7 fi fi fi fi fi fi fi

sf the vlue is too lrgeD nothing is printed nd wrning is issuedF


27.104 27.105 27.106 27.107 27.108 27.109 27.110 27.111 27.112

qreeknumerl

he ommnd \Greeknumeral prints upperse greek numerlsF he prsing is performed y the mro \greeknumeralF
defqreeknumerl5I{7 expndfterwkepperseexpndfter{greeknumerl{5I}}}

27.113 27.114

greekdlph greekdelph

sn the previous relese of this lnguge de(nition the ommnds \greek@aplh nd \greek@Alph were kept just for resons of omptiilityF rere gin they eome meningful mrosF hey re de(nited in wy tht even pge numering with greek numerls is possileF ine the mros \@alph nd \@Alph will lose their originl mening while the qreek option is tiveD we must sve their originl vlueF mros \@alph
letltindlphdlph letltindelphdelph

27.115 27.116

hen we de(ne the qreek versionsY the dditionl \expandafters re needed in order to mke sure the tle of ontents will e orretD eFgFD when we hve ppendixesF
27.117 27.118

defgreekdlph5I{expndftergreeknumerlexpndfter{the5I}} defgreekdelph5I{expndfterqreeknumerlexpndfter{the5I}}

xow we n set up the swithingF


ddtoextrsgreek{7 letdlphgreekdlph 27.121 letdelphgreekdelph} 27.122 ddtonoextrsgreek{7 27.123 letdlphltindlph 27.124 letdelphltindelph}
27.119 27.120

greekdromn greekdomn

problems are known to exist with the AMS document classes.


letltindromndromn letltindomndomn 27.127 defgreekdromn5I{textltin{ltindromn{5I}}} 27.128 defgreekdomn5I{textltin{ltindomn{5I}}} 27.129 ddtoextrsgreek{7
27.125 27.126

o prevent romn numerls eing typeset in greek letters we need to dopt the A internl v i ommnds \@roman nd \@RomanF Note that this may cause errors where roman ends up in a situation where it needs to be expanded;

IIT

letdromngreekdromn letdomngreekdomn} 27.132 ddtonoextrsgreek{7 27.133 letdromnltindromn 27.134 letdomnltindomn}


27.130 27.131

greekdmp ltxdmp

A he greek fonts do not ontin n mpersndD so the v i ommnd \& dosn9t give the expeted result if we do not do something out itF

letltxdmp8 defgreekdmp{textltin{ltxdmp}} 27.137 ddtoextrsgreek{let8greekdmp} 27.138 ddtonoextrsgreek{let8ltxdmp}


27.135 27.136

ht is left now is the de(nition of set of mros to produe the vrious digitsF
grdnumdi grdnumdii grdnumdiii

es there is no representtion for 0 in this system the zeros re simply disrdedF hen we hve lrge numer with three trailing zero9s lso the numeri mrk is disrdedF herefore these mros need to pss the informtion to eh other out the @nonEAtrnsltion of zeroF

defgrdnumdi5I{7 ifse5Ior or or gor dor eor stigmor zor hor jfi 27.141 ifnum5Iazdelsenwdtruefinwdprint} 27.142 defgrdnumdii5I{7 27.143 ifse5Ior ior kor lor mor nor xor oor por qoppfi 27.144 ifnum5Iazdelsenwdtruefigrdnumdi} 27.145 defgrdnumdiii5I{7 27.146 ifse5Ior ror svor tor uor for qor yor wor smpifi 27.147 ifnum5Iazdnwdflseelsenwdtruefigrdnumdii}
27.139 27.140

grdnumdiv he (rst three digits9 lwys hve the numeri mrkD exept when one is disrded grdnumdv euse it9s vlue is zeroF grdnumdvi 27.148 defgrdnumdiv5I{7 27.149 ifnum5Iazdelsektwtonosfi 27.150 ifse5Ior or or gor dor eor stigmor zor hor jfi 27.151 grdnumdiii} 27.152 defgrdnumdv5I{7 27.153 ifnum5Iazdelsektwtonosfi 27.154 ifse5Ior ior kor lor mor nor xor oor por qoppfi 27.155 grdnumdiv} 27.156 defgrdnumdvi5I{7 27.157 ktwtonos 27.158 ifse5Ior ror svor tor uor for qor yor wor smpifi 27.159 grdnumdv} greekdtilde

sn greek typesetting we need numer of hrters with more thn one entF sn the underlying fmily of fonts @the cb fontsA this is solved using unuth9s ligture mehnismF ghrters we need to hve ligtures with re the tildeD the ute nd grve ent hrtersD the rough nd smooth rethingsD the susriptD nd the doule quote hrterF sn text input the ~ is normly used to produe n unrekle speF he ommnd \~ normlly produes tilde entF por polytoni qreek we hnge the de(nition of \~ to produe the tilde hrter itselfD mking sure it hs tegory ode IPF IIU

egingroup difundefined{tivedhrstring3}{}{tode3aIPrelx} 27.162 tode~aIP 27.163 lode3a~ 27.164 lowerse{defx{endgroup 27.165 defgreekdtilde{3}}x} 27.166 ddtoextrspolutonikogreek{7 27.167 eldsve~let~greekdtilde}
27.160 27.161

sn order to get orret hyphention we need to set the lower se ode of numer of hrtersF he v9 hrter hs speil usge for the cb fontsX in ft this ligture mehnism detets the end of word nd ssures tht (nl sigm is typeset with the proper sign wih is di'erent from tht of n initil or medil sigmY the v 9fter n isolated sigm fools the ligture mehnism in order to typeset in ple of F feuse of this we mke sure its lowerse ode is not hngedF por modern greek we hve to del only with ' nd " nd so things re esyF
ddtoextrsgreek{7 eldsvevrile{lodev}lodevav7 27.170 eldsvevrile{lode9}lode9a97 27.171 eldsvevrile{lode4}lode4a4} 27.172 ddtoextrspolutonikogreek{7 27.173 eldsvevrile{lode`}lode`a`7 27.174 eldsvevrile{lodeb}lodebab7 27.175 eldsvevrile{lode~}lode~a~7 27.176 eldsvevrile{lode|}lode|a|7 27.177 eldsvevrile{lode}lodea}
27.168 27.169

end in order to get rid of ll ents nd rethings when string is \uppercased we lso hnge numer of upperse odesF
ddtoextrsgreek{7 eldsvevrile{uode4}uode4a47 27.180 eldsvevrile{uode9}uode9aISW} 77 ISW aa Wf 27.181 ddtoextrspolutonikogreek{7 27.182 eldsvevrile{uode~}uode~aISW7 27.183 eldsvevrile{uodeb}uodebaISW7 27.184 eldsvevrile{uode`}uode`aISW7 27.185 eldsvevrile{uode|}uode|a|7 27.186 eldsvevrile{uode}uodeaISW}
27.178 27.179

por this to work we mke the hrter ^^9f shorthnd tht expnds to nothingF sn order for this to work we need to mke hrter look like ^^9f in i9s eyesF he trik is to hve nother hrter nd ssign it di'erent lowerse odeF he exeute the mros needed in \lowercase environmentF sully the tile ~ hrter is used for suh purposesF fefore we do this we sve it9s originl lowerse ode to restore it one we9re doneF
dtempntalode~ lode~aISW 27.189 lowerse{7 27.190 inititedtivedhr{~}7 27.191 delredshorthnd{greek}{~}{}} 27.192 lode~adtempnt
27.187 27.188

IIV

e n lso mke the tilde hrter itself expnd to tilde with tegory ode IP to mke the typing of texts esierF
27.193 27.194

ddtoextrspolutonikogreek{lngugeshorthnds{greek}}7 delredshorthnd{greek}{~}{greekdtilde}

e now de(ne few symols whih re used in the typesetting of greek nuE merlsD s well s some other symols whih re usefullD suh s the symolD etF
helreextgommnd{nwtonos}{vq}{hr4pirelx} helreextgommnd{ktwtonos}{vq}{hr4pprelx} 27.197 helreextgommnd{qopp}{vq}{hr4IPrelx} 27.198 helreextgommnd{stigm}{vq}{hr4HTrelx} 27.199 helreextgommnd{smpi}{vq}{hr4Ifrelx} 27.200 helreextgommnd{higmm}{vq}{hr4gQrelx} 27.201 helreextgommnd{ddigmm}{vq}{hr4WQrelx} 27.202 helreextgommnd{vrdigmm}{vq}{hr4HUrelx} 27.203 helreextgommnd{euro}{vq}{hr4IVrelx} 27.204 helreextgommnd{permill}{vq}{hr4IWrelx}
27.195 27.196

ine the ~ nnot e used to produe n unrekle white spe we must rede(ne t lest the ommnds \fnum@figure nd \fnum@table so they do not produe ~ insted of white speF
27.205 27.206

7deffnumdfigure{figurenmenorekspethefigure} 7deffnumdtle{tlenmenorekspethetle}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
27.207 27.208

ldfdfinish{gurrentyption} /code

IIW

28

The French language

he (le frenchb.dtx24 D de(nes ll the lnguge de(nition mros for the prenh lngugeF gustomistion for the prenh lnguge is hieved following the ook vexique des rgles typogrphiques en usge l9smprimerie ntionle troisime dition @IWWRAD sfxEPEIIEHVIHUSEHF pirst version relesedX IFI @IWWTGHSGQIA s prt of babelEQFTetF frenchb hs een improved using helpful suggestions from mny peopleD minly from tques endrD wihel fovniD hierry fouheD nd inent tlyF hnks to ll of them3 A his new version @PFxA hs een designed to e used with v i P nd A lini formts onlyF v iEPFHW is no longer supportedF ghnges etween version IFT nd c re listed in susetion PVFR pF IPSF en extensive doumenttion is ville in prenh hereX http://daniel.flipo.free.fr/frenchb

28.1 Basic interface


sn multilingul doumentD some typogrphi rules re lnguge dependentD iFeF spes efore doule puntution9 @: ; ! ?A in prenhD others onern the generl lyout @iFeF lyout of listsD footnotesD indenttion of (rst prgrphs of setionsA nd should pply to the whole doumentF trting with version PFPD frenchb ehves di'erently ording to babel9s 25 main language de(ned s the last option t babel9s lodingF hen prenh is not babel9s min lngugeD frenchb no longer lters the glol lyout of the doument @even in prts where prenh is the urrent lngugeAX the lyout of listsD footnotesD indenttion of (rst prgrphs of setions re not ustomised y frenchbF hen prenh is loded s the lst option of babelD frenchb mkes the following hnges to the glol lyoutD both in French and in all other languages 26 X
A IF the (rst prgrph of eh setion is indented @v i onlyAY

PF the defult items in itemize environment re set to !9 insted of 9D nd ll vertil sping nd glue is deletedY it is possile to hnge !9 to something else @"9 for instneA using \frenchbsetup{}Y
A QF vertil sping in generl v i lists is shortenedY

RF footnotes re displyed  l frniseF egrding lol typogrphyD the ommnd \selectlanguage{french} swithes to the prenh lnguge27 D with the following e'etsX IF prenh hyphention ptterns re mde tiveY
24 The le described in this section has version number ? and was last revised on ?. 25 Its name is kept in \bbl@main@language. 26 For each item, hooks are provided to reset standard L T X settings or to emulate the behavior A
of former versions of

27 \selectlanguage{francais}

frenchb

(see command and

\frenchbsetup{}, section 28.2). \selectlanguage{frenchb} are kept for

backward com-

patibility but should no longer be used.

IPH

PF doule puntution9 @: ; ! ?A is mde tive28 for orret sping in prenhY QF \today prints the dte in prenhY
A RF the ption nmes re trnslted into prenh @v i onlyAY

SF the spe fter \dots is removed in prenhF ome ommnds re provided in frenchb to mke typesetting esierX IF prenh quottion mrks n e entered using the ommnds \og nd \fg A whih work in v i P nd liniD their pperne depending on wht A is ville to drw themY even if you use v i P and T1EenodingD you should refrin from entering them s <<~French quotation marks~>>X \og nd \fg provide etter horizontl spingF \og nd \fg n e used outside prenhD they typeset then inglish quotes  nd F PF e ommnd \up is provided to typeset supersripts like M\up{me} @reE vition for wdmeAD 1\up{er} @for premierAF yther ommnds re lso provided for ordinlsX \ierD \iereD \iersD \ieresD \iemeD \iemes @3\iemes prints Qes AF QF pmily nmes should e typeset in smll pitls nd never e hyphentedD the mro \bsc @oxed smll psA does thisD eFgFD Leslie~\bsc{Lamport} will produe veslie LamportF xote tht omposed nmes @suh s hupontE hurntA my now e hyphented on expliit hyphensD this di'ers from frenchb vFIFxF RF gommnds \primoD \secundoD \tertio nd \quarto print Io D Po D Qo D Ro F \FrenchEnumerate{6} prints To F SF erevitions for xumro@sA nd numro@sA @xo xos no nd nos A re otined vi the ommnds \NoD \NosD \noD \nosF TF wo ommnds re provided to typeset the symol for degrX \degre prints the rw hrter nd \degres should e used to typeset tempertures @eFgFD  20~\degres C with n unrekle speAD or for lohols9 strengths @eFgFD  45\degres with no spe in prenhAF UF sn mth mode the omm hs to e surrounded with res to void spurious spe eing inserted fter itD in deiml numers for instne @see the iook pF IQRAF he ommnd \DecimalMathComma mkes the omm e n ordinry hrter in French only @no spe ddedAY s ounterprtD if \DecimalMathComma is tiveD n expliit spe hs to e dded in lists nd intervlsX $[0,\ 1]$D $(x,\ y)$F \StandardMathComma swithes k to the stndrd ehviour of the ommF VF e ommnd \nombre ws provided in IFx versions to esily formt numers in slies of three digits seprted either y omm in inglish or with spe in prenhY \nombre is now mpped to \numprint from numprint.styD see numprint.pdf for more informtionF
28 Actually,
they are active in the whole document, only their expansions dier in French and outside French

IPI

WF frenchb hs een designed to tke dvntge of the xspace pkge if presentX dding \usepackage{xspace} in the premle will fore mros like \fgD \ierD \iemeD \dotsD F F F D to respet the spes you type fter themD for instne typing 1\ier juin9 will print Ier juin9 @no need for fored spe fter 1\ierAF

28.2 Customisation
p to version IFTD ustomistion of frenchb ws hieved y entering ommnds in frenchb.cfgF his possiility remins for omptiilityD ut should not longer be usedF ersion PFH introdues new ommnd \frenchbsetup{} using the keyval syntx whih should mke it esier to hoose mong the mny options villeF he ommnd \frenchbsetup{} is to pper in the premle only @fter loding babelAF

\frenchbsetup{ShowOptions} prints ll ville options to the .log (leD it is just ment s reminder of the list of o'ered optionsF es usul with keyval syntxD oolen options @s ShowOptionsA n e entered s ShowOptions=true or just ShowOptionsD the =true9 prt n e omittedF
he other options re listed elowF heir defult vlue is shown etween rketsD sometimes followed e *9F he *9 mens tht the defult shown pplies when frenchb is loded s the last option of babel "babel9s main language "D nd is toggled otherwiseX

StandardLayout=true [false*] fores frenchb not to interfere with the lyoutX no tion on ny kind of listsD (rst prgrphs of setions re not indented @s in inglishAD no tion on footnotesF his option reples the former ommnd \StandardLayoutF st n e used to void on)its with lsses or pkges whih ustomise lists or footnotesF GlobalLayoutFrench=false [true*] n e usedD when prenh is the min lngugeD to emulte wht prior versions of frenchb @preEPFPA didX listsD nd (rst prgrphs of setions will e displyed the stndrd wy in other lnE guges thn prenhD nd  l frnise in prenhF xote tht the lyout of footnotes is lnguge independent nywy @see elow FrenchFootnotes nd AutoSpaceFootnotesAF his option reples the former ommnd \FrenchLayoutF ReduceListSpacing=false [true*]Y frenchb normlly redues the vlues of the vertil spes used in the environment list in prenhY setting this option to false reverts to the stndrd settings of listF his option reples the former ommnd \FrenchListSpacingfalseF CompactItemize=false [true*]Y frenchb normlly suppresses ny vertil spe etween items of itemize lists in prenhY setting this option to false reverts to the stndrd settings of itemize listsF his option reples the former ommnd \FrenchItemizeSpacingfalseF StandardItemLabels=true [false*] when set to true this option stops frenchb from hnging the lels in itemize lists in prenhF

IPP

ItemLabels=\textemdashD \textbulletD \ding{43}D F F F D [\textendash*]Y when StandardItemLabels=false @the defultAD this option enles to hoose the lel used in itemize lists for ll levelsF he next three opE tions do the sme ut eh one for one level onlyF xote tht the exmple \ding{43} requires \usepackage{pifont}F ItemLabeli=\textemdashD \textbulletD \ding{43}D F F F D[\textendash*] ItemLabelii=\textemdashD \textbulletD \ding{43}D F F F D [\textendash*] ItemLabeliii=\textemdashD \textbulletD \ding{43}D F F F D [\textendash*] ItemLabeliv=\textemdashD \textbulletD \ding{43}D F F F D [\textendash*] StandardLists=true [false*] forids frenchb to ustomise ny kind of listF ho tivte the option StandardLists when using lsses or pkE ges tht ustomise lists too @enumitemD paralistD F F F A to void onE )itsF his option is just shorthnd for ReduceListSpacing=false nd CompactItemize=false nd StandardItemLabels=trueF IndentFirst=false [true*]Y frenchb normlly fores indenttion of the (rst prgrph of setionsF hen this option is set to falseD the (rst prE grph of will look the sme in prenh nd in inglish @not indentedAF FrenchFootnotes=false [true*] reverts to the stndrd lyout of footE notesF fy defult frenchb typesets leding numers s IF 9 insted of 1 9D ut hs no e'et on footnotes numered with symols @s in the \thanks ommndAF he former ommnds \StandardFootnotes nd \FrenchFootnotes re still thereD \StandardFootnotes n e useful when some footnotes re numered with letters @inside minipges for instneAF AutoSpaceFootnotes=false [true*] Y y defult frenchb dds thin spe in the running text efore the numer or symol lling the footE noteF wking this option false reverts to the stndrd setting @no spe ddedAF FrenchSuperscripts=false [true] Y then \up=\textsuperscript @opE tion dded in version PFIAF hould only e mde false to reompile older doumentsF fy defult \up now relies on \fup designed to produe etter looking supersriptsF AutoSpacePunctuation=false [true]Y in prenhD the user should input spe efore the four hrters :;!?9 ut s mny people forget out it @even mong ntive prenh writers3AD the defult ehviour of frenchb is to utomtilly dd \thinspace efore ;9 !9 ?9 nd norml @unrekleA spe efore :9 @reommended y the prenh smprimerie ntionleAF his is onvenient in most ses ut n led to ddition of spurious spes in vs or in wEhy pthsF ghoosing AutoSpacePunctuation=false will ensure tht proper spe will e dded efore :;!?9 if and only if @normlA spe hs een typed inF hose who re unsure out their typing in this re should stik to the defult option nd type \string; \string: \string! \string? insted of ; : ! ? whenever no spe should e dded efore them @mostly in vs nd wEhy pthsAF
IPQ

ThinColonSpace=true [false] hnges the norml @unrekleA spe dded efore the olon X9 to thin speD so tht the sme mount of spe is dded efore ny of the four doule puntution hrtersF he defult setting is supported y the prenh smprimerie ntionleF LowercaseSuperscripts=false [true] Y y defult frenchb inhiits the uppersing of supersripts @for instne when they re moved to pge hedE ersAF wking this option false will disle this ehviour @not reomE mendedAF PartNameFull=false [true]Y when trueD frenchb numers the title of \part{} ommnds s remire prtieD heuxime prtie nd so onF ith some lsses whih hnge the\part{} ommnd @ew nd wp lsses do soAD you will get remire prtie sD heuxime prtie ss instedY when this oursD this option should e set to falseD prt titles will then e printed s rtie sD rtie ssF og=D fg=Y when guillemets hrters re ville on the keyord @through ompose key for instneAD it is nie to use them insted of typing \og nd \fgF his option tells frenchb whih hrters re opening nd losing prenh guillemets @they depend on the input enodingAD then you n type either  guillemets D or guillemets @with or without spesAD to get properly typeset prenh quotesF his option requires inputenc to e loded with the proper enodingD it works with VEits enodings @ltinID ltinWD nsinewD pplemDF F F A nd multiEyte enodings @utfV nd utfVxAF

28.3 Hyphenation checks


yne you hve uilt your formtD good preution would e to perform some A si tests out hyphention in prenhF por v i P s suggest thisX

run the following (leD with the enoding suitle for your mhine @myencoding will e latin1 for unix mhinesD ansinew for gs running inE dowsD applemac or latin1 for wintoshsD or utf8F F F

%%% Test file for French hyphenation. \documentclass{article} \usepackage[my-encoding ]{inputenc} \usepackage[T1]{fontenc} % Use LM fonts \usepackage{lmodern} % for French \usepackage[frenchb]{babel} \begin{document} \showhyphens{signal container \'ev\'enement alg\`ebre} \showhyphens{signal container vnement algbre} \end{document}
hek the hyphentions proposed y i in your logE(leY in prenh you should get with oth UEit nd VEit enodings si-gnal contai-ner v-ne-ment al-gbreF ho not re out how ented hrters re displyed in the logE(leD wht mtters is the position of the -9 hyphen signs onlyF

IPR

sf they re ll orretD your instlltion @prolyA works (neD if one @or moreA is @reA wrongD sk lol wizrd to see wht9s going wrong nd perform the test gin @or eEmil me out wht hppensAF prequent mismthesX

you get sig-nal con-tainerD this proly mens tht the hyphention ptterns you re using re for EinglishD not for prenhY you get no hyphen t ll in v-ne-mentD this proly mens tht you re using gw fonts nd the mro \accent to produe ented hrE tersF sing VEits fonts with uiltEin ented hrters voids this kind of mismthF

Options' order ! lese rememer tht options re red in the order they pE per inside the \frenchbsetup ommndF omeone wishing tht frenchb leves the lyout of lists nd footnotes untouhed ut ring for indenttion of (rst prE grph of setions ould hoose \frenchbsetup{StandardLayout,IndentFirst} nd get the expeted lyoutF ghoosing \frenchbsetup{IndentFirst,StandardLayout} would not led to the expeted resultX option IndentFirst would e overwritten y StandardLayoutF

28.4 Changes
What's new in version 2.0?
rere is the list of ll hngesX
A A upport for v iEPFHW nd for v i P in omptiility mode hs een A droppedF his version is ment for v i P nd lin sed formts @like A bplainAF v i P formts sed on mli re no longer supported either @plenty of good VEits fonts re ville nowD so I enoding should e preferred for typesetting in prenhAF e wrning is issued when yI enoding is in use t the \begin{document}F

gustomistion should now e hndled y ommnd \frenchbsetup{}D frenchb.cfg @kept for omptiilityA should no longer e usedF ee seE tion PVFP for the list of ville optionsF gptions in (gures nd tle hve hnged in prenhX former revitions pigF nd F hve een repled y full nmes pigure nd leF sf this leds to formtting prolems in ptionsD you n dd the following two ommnds to your premle @fter loding babelA to get the former ptions \addto\captionsfrench{\def\figurename{{\scshape Fig.}}} \addto\captionsfrench{\def\tablename{{\scshape Tab.}}}F he \nombre ommnd is now provided y the numprint pkge whih hs to e loded after babel with the option autolanguage if numer formtting should depend on the urrent lngugeF he \bsc ommnd no longer uses n \hbox to stop hyphention of nmes ut \kern0pt instedF his hnge enles microtype to (ne tune the length of the rgument of \bscY s sideEe'etD ompound nmes like hupontEhurnd n now e hyphented on expliit hyphensF ou n get k to the former ehviour of \bsc y dding
IPS

\renewcommand*{\bsc}[1]{\leavevmode\hbox{\scshape #1}} to the premle of your doumentF


pootnotes re now displyed  l frnise for the whole doumentD exept with n expliit \frenchbsetup{AutoSpaceFootnotes=false,FrenchFootnotes=false}F edd this ommnd if you wnt stndrd footnotesF st is still posE sile to revert lolly to the stndrd lyout of footnotes y dding \StandardFootnotes @inside minipage environment for instneAF

What's new in version 2.1?


xew ommnd \fup to typeset etter looking supersriptsF pormer ommnd \up is now de(ned s \fupD ut n option \frenchbsetup{FrenchSuperscripts=false} is provided for kwrd omptiilityF \fup ws designed using ides from tques endrD hierry fouhe nd en pritzD thnks to them3

What's new in version 2.2?


trting with version PFPD frenchb lters the lyout of listsD footnotesD nd the indenttion of (rst prgrphs of setionsA only if prenh is the min lnguge @iFeF el9s lst lnguge optionAF he lyout is glol for the whole doumentX listsD etF look the sme in prenh nd in other lngugesD everything is typeset  l frnise if prenh is the min lngugeD otherwise frenh doesn9t hnge nything regrding listsD footnotesD nd indenttion of prgrphsF

28.5 File frenchb.cfg


frenchb.cfg is now dummy (le just kept for omptiility with previous verE sionsF
7777777777777777777777777777777777777777777777777777777777777777777777 777777777 exsxqX rs psvi ryvh xy vyxqi fi ih 777777777 28.3 77 sf you wnt to ustomise frenhD plese hy xy hk into the ode3 28.4 77 ho no put ny ode in this file eitherD plese use the new ommnd 28.5 77 frenhsetup{} with the proper options to ustomise frenhF 28.6 77 28.7 77 edd frenhsetup{howyptions} to your premle to see the list of 28.8 77 ville options ndGor red the doumenttionF 28.9 7777777777777777777777777777777777777777777777777777777777777777777777
28.1 28.2

29

TEXnical details 29.1 Initial setup


hile this (le ws red through the option frenchb we mke it ehve s if french ws spei(edF
29.1

defgurrentyption{frenh}

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
29.2

vdfsnitgurrentyptiondtefrenh

IPT

ifvee

A A xo support is provided for lte v iEPFHWX issue wrning nd exit if v iEPFHW is in useF lin is still supportedF 29.3 29.4

newififvee letldtemprelx 29.5 ifxmgnifitiondundefined 29.6 ifxdomptiilitytruedundefined 29.7 kgeirror{frenhFldf} 29.8 {veEPFHW formt is no longer supportedFwessgefrek 29.9 eorting here} 29.10 {lese upgrde to vePe3} 29.11 letldtempendinput 29.12 else 29.13 veetrue 29.14 fi 29.15 fi 29.16 ldtemp

ghek if hyphention ptterns for the prenh lnguge hve een loded in lngugeFdtY we llow for the nmes frenh9D frnis9D ndien9 or din9F he ltter two re oth nmes used in gnd for vrints of prenh tht re in use in tht ountryF
ifxldfrenhdundefined ifxldfrnisdundefined 29.19 ifxldndiendundefined 29.20 ifxlddindundefined 29.21 dnoptterns{prenh} 29.22 dddiletldfrenhH 29.23 else 29.24 letldfrenhlddin 29.25 fi 29.26 else 29.27 letldfrenhldndien 29.28 fi 29.29 else 29.30 letldfrenhldfrnis 29.31 fi 29.32 fi
29.17 29.18

xow \l@french is lwys de(nedF he internl nme for the prenh lnguge is frenchY francais nd frenchb re synonymous for frenchX (rst let oth nmes use the sme hyphention ptE ternsF vter we will hve to set lises for \captionsfrenchD \datefrenchD \extrasfrench nd \noextrasfrenchF es prenh uses the stndrd vlues of \lefthyphenmin @PA nd \righthyphenmin @QAD no speil setting is required hereF
ifxldfrnisdundefined letldfrnisldfrenh 29.35 fi 29.36 ifxldfrenhdundefined 29.37 letldfrenhldfrenh 29.38 fi
29.33 29.34

hen this lnguge de(nition (le ws loded for one of the gndin versions of prenh we need to mke sure tht suitle hyphention pttern register will e IPU

ifxldndiendundefined letldndienldfrenh 29.41 fi 29.42 ifxlddindundefined 29.43 letlddinldfrenh 29.44 fi


29.39 29.40

found y iF

his lnguge de(nition n e loded for di'erent vrints of the prenh lngugeF he key9 babel mros re only de(ned oneD using frenh9 s the lnguge nmeD ut frenchb nd francais re synonymousF
defdtefrnis{dtefrenh} defdtefrenh{dtefrenh} 29.47 defextrsfrnis{extrsfrenh} 29.48 defextrsfrenh{extrsfrenh} 29.49 defnoextrsfrnis{noextrsfrenh} 29.50 defnoextrsfrenh{noextrsfrenh}
29.45 29.46

extrsfrenh noextrsfrenh

he mro \extrasfrench will perform ll the extr de(nitions needed for the prenh lngugeF he mro \noextrasfrench is used to nel the tions of \extrasfrenchF sn prenhD hrterpostrophe is letter in expressions like l'ambulance @prenh hyphention ptterns provide entries for this kind of wordsAF his mens tht the \lccode of postrophe hs to e non null in prenh for proper hyphenE tion of those expressionsD nd hs to e reset to null when exiting prenhF
dnmedef{extrsgurrentyption}{lode9a9} dnmedef{noextrsgurrentyption}{lode9aH}

29.51 29.52

yne more thing \extrasfrench needs to do is to mke sure tht \frenchspacing is in e'etF \noextrasfrench will swith \frenchspacing o' ginF
29.53 29.54 29.55 29.56

expndfterddtosnme extrsgurrentyptionendsnme{7 ldfrenhsping} expndfterddtosnme noextrsgurrentyptionendsnme{7 ldnonfrenhsping}

29.2 Punctuation
es long s no etter solution is ville 29 D the doule puntution9 hrters @; ! ? nd :A hve to e mde \active for n utomti ontrol of the mount of spe to insert efore themF fefore doing soD we hve to sve the stndrd de(nition of \@makecaption @whih inludes two 9X9A to ompre it lter to its de(nition t the \begin{document}F
longdefhdmkeption5I5P{7 vskipoveptionskip 29.59 soxdtempox{5IX 5P}7 29.60 ifdim wddtempox bhsize 29.61 5IX 5Ppr 29.62 else 29.63 glol dminipgeflse 29.64 hdxtdhsize{hfiloxdtempoxhfil}7
29.57 29.58

29 LuaT

EX, or pdf T X might provide alternatives in the future. . . E

IPV

29.65 29.66

fi vskipelowptionskip}7

e de(ne new if9 \FBpunct@active whih will e mde flse whenever etter lterntive will e villeF he following ode mkes the four hrters ; ! ? nd : tive9 nd provides their de(nitionsF
newififpfpuntdtive pfpuntdtivetrue ifpfpuntdtive 29.69 inititedtivedhr{X} 29.70 inititedtivedhr{Y} 29.71 inititedtivedhr{3} 29.72 inititedtivedhr{c}
29.67 29.68

e (rst tune the mount of spe efore ; ! ? nd :F his should only hppen in horizontl modeD hene the test \ifhmodeF sn horizontl modeD if spe hs een typed efore Y9 we remove it nd put n unrekle \thinspace instedF sf no spe hs een typedD we dd \FDP@thinspace whih will e de(nedD up to the user9s wishesD s n utomti dded thin speD or s \@emptyF
29.73 29.74 29.75 29.76 29.77 29.78 29.79 29.80

delredshorthnd{frenh}{Y}{7 ifhmode ifdimlstskipbzd unskippenltydwthinspe else phdthinspe fi fi stringY} delredshorthnd{frenh}{3}{7 ifhmode ifdimlstskipbzd unskippenltydwthinspe else phdthinspe fi fi string3} delredshorthnd{frenh}{c}{7 ifhmode ifdimlstskipbzd unskippenltydwthinspe else phdthinspe fi fi stringc}

xow we n insert ; hrterF


29.81

he next three de(nitions re very similrF


29.82 29.83 29.84 29.85 29.86 29.87 29.88 29.89 29.90 29.91 29.92 29.93 29.94 29.95 29.96 29.97 29.98 29.99

eording to the sFxF spei(tionsD the X9 requires norml spe efore itD ut some people prefer \thinspace @just like the other threeAF e de(ne \Fcolonspace to hold the required mount of spe @user ustomisleAF
29.100

newommndB{polonspe}{spe}

IPW

29.101 29.102 29.103 29.104 29.105 29.106 29.107 29.108 29.109

delredshorthnd{frenh}{X}{7 ifhmode ifdimlstskipbzd unskippenltydwpolonspe else phdolonspe fi fi stringX}

eutopefeforeph xoeutopefeforeph

\FDP@thinspace nd \FDP@space re de(ned s unrekle spes y \AutoSpaceBeforeFDP or s \@empty y \NoAutoSpaceBeforeFDPF hefult is \AutoSpaceBeforeFDPF
defeutopefeforeph{7 defphdthinspe{penltydwthinspe}7 defphdolonspe{penltydwpolonspe}} defxoeutopefeforeph{letphdthinspedempty letphdolonspedempty} eutopefeforeph

29.110 29.111 29.112 29.113 29.114 29.115

hen the tive hrters pper in n environment where their prenh eE hviour is not wnted they should give n expeted9 resultF herefore we de(ne shorthnds t system level s wellF
29.116 29.117 29.118 29.119

delredshorthnd{system}{X}{stringX} delredshorthnd{system}{3}{string3} delredshorthnd{system}{c}{stringc} delredshorthnd{system}{Y}{stringY} ddtoextrsfrenh{7 lngugeshorthnds{frenh}7

e speify tht the prenh group of shorthnds should e usedF


29.120 29.121

hese hrters re turned on9 oneD lter their de(nition my vryF hon9t misunderstnd the following odeX they keep eing tive ll long the doumentD even when leving prenhF
29.122 29.123 29.124 29.125

} ddtonoextrsfrenh{7 29.126 lddetivte{X}lddetivte{Y}7 29.127 lddetivte{3}lddetivte{c}} 29.128 fi

ldtivte{X}ldtivte{Y}7 ldtivte{3}ldtivte{c}7

29.3 French quotation marks


og fg

he top mros for quottion mrks will e lled \og @ouvrez guillemetsA nd \fg @fermez guillemetsAF enother option for typesetting quotes in multilingul texts is to use the pkge csquotes.sty nd its ommnd \enquoteF
newommndB{og}{dempty} newommndB{fg}{dempty}

29.129 29.130

guillemotleft guillemotright

A v i users re supposed to use VEit output enodings @ID vIDF F F A to typeset prenhD those who still stik to yI should ll aeguill.sty or similr pkgeF

IQH

sn oth ses the ommnds \guillemotleft nd \guillemotright will print the prenh opening nd losing quote hrters from the output fontF por eveD \guillemotleft nd \guillemotright re de(ned y pkge xunicode.styF e will hek etfeginhoument9 tht the proper output enodings re in use @see end of setion PWFIQAF e give the following de(nitions for lin users only s @poorA fllEkD they re welome to hnge them for nything etterF
ifvee else 29.133 ifxguillemotleftdundefined 29.134 defguillemotleft{levevmoderiseHFPSex 29.135 hox{6sriptsriptstylell6}} 29.136 fi 29.137 ifxguillemotrightdundefined 29.138 defguillemotright{riseHFPSex 29.139 hox{6sriptsriptstylegg6}} 29.140 fi 29.141 letxsperelx 29.142 fi
29.131 29.132

he next step is to provide orret sping fter \guillemotleft nd eE fore \guillemotrightX spe preedes nd follows quottion mrks ut no line rek is llowed neither after the opening oneD nor before the losing oneF \FBguill@spacing whih does the spingD hs een (ne tuned y hierry fouheF prenh quotes @inluding spingA re printed y \FB@og nd \FB@fgD the expnsion of the top level ommnds \og nd \og is di'erent in nd outside prenhF e9ll try to e smrt to users of hvid grlisle9s xspace pkgeX if this pkge is loded there will e no need for {} or \ to get spe fter \fgD otherwise \xspace will e de(ned s \relax @done t the end of this (leAF
newommndB{pfguilldsping}{penltydwhskipFVfontdimenPfont plusFQfontdimenQfont 29.145 minusFVfontdimenRfont} 29.146 helreoustgommndB{pfdog}{levevmode 29.147 guillemotleftpfguilldsping} 29.148 helreoustgommndB{pfdfg}{ifdimlstskipbzdunskipfi 29.149 pfguilldspingguillemotrightxspe}
29.143 29.144

he top level de(nitions for prenh quottion mrks re swithed on nd o' through the \extrasfrench \noextrasfrench mehnismF yutside prenhD \og nd \fg will typeset stndrd inglish opening nd losing doule quotesF
ifvee defldfrenhguillemets{renewommndB{og}{pfdog}7 29.152 renewommndB{fg}{pfdfg}} 29.153 defldnonfrenhguillemets{renewommndB{og}{textquotedlleft}7 29.154 renewommndB{fg}{ifdimlstskipbzdunskipfi 29.155 textquotedlright}} 29.156 else 29.157 defldfrenhguillemets{letogpfdog 29.158 letfgpfdfg} 29.159 defldnonfrenhguillemets{defog{}7 29.160 deffg{ifdimlstskipbzdunskipfi 99}} 29.161 fi
29.150 29.151

IQI

expndfterddtosnme extrsgurrentyptionendsnme{7 ldfrenhguillemets} 29.164 expndfterddtosnme noextrsgurrentyptionendsnme{7 29.165 ldnonfrenhguillemets}


29.162 29.163

29.4 Date in French


dtefrenh

he mro \datefrench rede(nes the ommnd \today to produe prenh dtesF

dnmedef{dtegurrentyption}{7 deftody{{numerdy}ifnumIady {ier}fi spe 29.168 ifsemonth 29.169 or jnvieror f9evrieror mrsor vrilor mior juinor 29.170 juilletor outor septemreor otoreor novemreor 29.171 d9eemrefi 29.172 spe numeryer}}
29.166 29.167

29.5 Extra utilities


vet9s provide the prenh user with some extr utilitiesF
up fup

\up eses the typesetting of supersripts like Ier 9F p to version PFH of frenchb A \up ws just shortut for \textsuperscript in v i P D ut severl users omE plined tht \textsuperscript typesets supersripts too high nd too igD so we now de(ne \fup s n ttempt to produe etter looking supersriptsF \up is deE (ned s \fup ut n e rede(ned y \frenchbsetup{FrenchSuperscripts=false} s \textsuperscript for omptiility with previous versionsF hen font hs uiltEin supersriptsD the est thing to do is to just use themD otherwise \fup hs to simulte supersripts y sling nd rising ordinry lettersF ling is done using pkge scalefnt whih will e loded t the end of babel9s loding @frenchb eing n option of elD it nnot lod pkge while eing redAF

newififpfdpoormn newdimenpfdwht 29.175 ifvee 29.176 etindyfkge{equirekge{slefnt}}


29.173 29.174

\FB@up@fake holds the de(nition of fke supersriptsF he sling rtio is HFTSD rising is omputed to put the top of lower se letters @like m9A just under the top of upper se letters @like w9AD preisely IP7 downF he hosen settings look orret for most fontsD ut n e tuned y the endEuser if neessry y hnging \FBsupR nd \FBsupS ommndsF \FB@lc is de(ned s \lowercase to inhiit the uppersing of supersripts @this my hppen in pge heders with the stndrd lsses ut is wrongAY \FB@lc n e rede(ned to do nothing y option LowercaseSuperscripts=false of \frenchbsetup{}F
29.177 29.178 29.179 29.180 29.181 29.182 29.183

newommndB{pfsup}{EHFIP} newommndB{pfsup}{HFTS} newommndB{pfdl}I{lowerse{5I}} helreoustgommndB{pfdupdfke}I{7 settoheight{pfdwht}{w}7 ddtolength{pfdwht}{pfsup pfdwht}7 ddtolength{pfdwht}{Epfsup ex}7

IQP

29.184 29.185

riseox{pfdwht}{slefont{pfsup}{pfdl{5I}}}7 }

he only pkges s urrently know to tke dvntge of rel supersripts re A xltxtra used in onjuntion with eve nd ypenype fonts hving the font feture 9ertilositionauperior9 @xltxtra de(nes \realsuperscript nd \fakesuperscriptA nd A fourier @from version IFTA when ixpert topi fonts re villeF \FB@up heks whether the urrent font is ypeI ixpert9 @or ro9A font with rel supersripts or not @the ode works urrently only with fourier-1.6 ut ould work with ny ixpert ypeI font with uiltEin supersriptsD see elowAD nd deides to use rel or fke supersriptsF st works s followsX the ontent of \f@family @fmily nme of the urrent fontA is split y \FB@split into two pieesD the (rst three hrters @fut9 for pourierD ppl9 for edoe9s ltinoD F F F A stored in \FB@firstthree nd the rest stored in \FB@suffix whih is expeted to e x9 or j9 for expert fontsF
29.186 29.187 29.188 29.189 29.190 29.191 29.192

defpfdsplit5I5P5Q5Rdnil{defpfdfirstthree{5I5P5Q}7 defpfdsuffix{5R}} defpfdx{x} defpfdj{j} helreoustgommndB{pfdup}I{7 group pfdpoormntrue expndfterpfdsplitfdfmilydnil

hen \FB@up looks for .fd (le nmed t1fut-sup.fd @pourierA or t1ppl-sup.fd @ltinoAD etF supposed to de(ne the sufmily @fut-sup or ppl-supD etFA giving ess to the uiltEin supersriptsF sf the .fd (le is not found y \IfFileExistsD \FB@up flls k on fke supersriptsD otherwise \FB@suffix is heked to deide whether to use fke or rel supersriptsF
29.193 29.194 29.195 29.196 29.197 29.198 29.199 29.200 29.201 29.202

edefreservedd{lowerse{7 noexpndsfpileixists{fdenodingpfdfirstthree EsupFfd}}}7 reservedd {ifxpfdsuffixpfdx pfdpoormnflsefi ifxpfdsuffixpfdj pfdpoormnflsefi ifpfdpoormn pfdupdfke{5I}7 else pfdupdrel{5I}7 fi}7 {pfdupdfke{5I}}7 egroup}

\FB@up@real just piks up the supersripts from the sufmily @nd fores lowerE seAF
29.203 29.204

newommndB{pfdupdrel}I{group fontfmily{pfdfirstthree Esup}seletfont pfdl{5I}egroup}

\fup is now de(ned s \FB@up unless \realsuperscript is de(ned @ours with eve lling xltxtra.styAF
29.205 29.206 29.207 29.208 29.209

helreoustgommndB{fup}I{7 difundefined{relsupersript}7 {pfdup{5I}}7 {groupletfkesupersriptpfdupdfke relsupersript{pfdl{5I}}egroup}} newommndB{up}{relx}

emporry de(nition of up @rede(ned etfeginhoument9AF


29.210

IQQ

A oor mn9s de(nition of \up for linF sn v i P D \up will e de(ned s \fup or \textsuperscript lter on while proessing the options of \frenchbsetup{}F

else newommndB{up}I{levevmoderiseIexhox{sevenrm 5I}} 29.213 fi


29.211 29.212

ieme ome hndy mros for those who don9t know how to revite ordinlsX ier 29.214 defieme{up{lowerse{e}}xspe} iere 29.215 defiemes{up{lowerse{es}}xspe} 29.216 defier{up{lowerse{er}}xspe} iemes 29.217 defiers{up{lowerse{ers}}xspe} iers 29.218 defiere{up{lowerse{re}}xspe} ieres 29.219 defieres{up{lowerse{res}}xspe} xo end some more mros relying on \up for numeringD (rst two support mrosF no 29.220 newommndB{prenhinumerte}I{7 xos 29.221 5Iup{lowerse{o}}kernCFQem} 29.222 newommndB{prenhopulrinumerte}I{7 nos 29.223 5Iup{lowerse{o}}AkernCFQem} primo fprimoA yping \primo should result in 1o 9D defprimo{prenhinumerteI} defseundo{prenhinumerteP} 29.226 deftertio{prenhinumerteQ} 29.227 defqurto{prenhinumerteR}
29.224 29.225

while typing \fprimo) gives Io A F


deffprimoA{prenhopulrinumerteI} deffseundoA{prenhopulrinumerteP} 29.230 defftertioA{prenhopulrinumerteQ} 29.231 deffqurtoA{prenhopulrinumerteR}
29.228 29.229

vet9s provide four mros for the ommon revitions of xumroF


helreoustgommndB{xo}{xup{lowerse{o}}kernCFPem} 29.233 helreoustgommndB{no}{nup{lowerse{o}}kernCFPem} 29.234 helreoustgommndB{xos}{xup{lowerse{os}}kernCFPem} 29.235 helreoustgommndB{nos}{nup{lowerse{os}}kernCFPem}
29.232

es fmily nmes should e written in smll pitls nd never e hyphentedD we provide ommnd @its nme omes from foxed mll gpsA to input them esilyF xote tht this ommnd hs hnged with version P of frenchbX \kern0pt is used insted of \hbox euse \hbox would rek mirotype9s font expnsionY s @positivecA side e'etD omposed nmes @suh s hupontEhurndA n now e hyphented on expliit hyphensF sgeX Jean~\bsc{Duchemin}F

helreoustgommndB{s}I{levevmodeegingroupkernHpt sshpe 5Iendgroup} 29.238 ifveeelseletsshperelxfi


29.236 29.237

ome de(nitions for speil hrtersF e won9t de(ne \tilde s ext ymol not to on)it with the mro \tilde for mth mode nd use the nme \tild instedF xote tht \boi my not e used in mth modeD its nme in mth mode is \backslashF \degre n e essed y the ommnd \r{} for ring entF IQR

ifvee helreextymol{t}{I}{TR} 29.241 helreextymol{ironflexe}{I}{WR} 29.242 helreextymol{tild}{I}{IPT} 29.243 helreextymolhefult{t}{I} 29.244 helreextymolhefult{ironflexe}{I} 29.245 helreextymolhefult{tild}{I} 29.246 helreoustgommndB{oi}{textkslsh} 29.247 helreoustgommndB{degre}{r{}} 29.248 else 29.249 defdone{I} 29.250 ifxfdenodingdone 29.251 newommndB{degre}{hrT} 29.252 else 29.253 newommndB{degre}{hrPQ} 29.254 fi 29.255 newommndB{t}{hrTR} 29.256 newommndB{ironflexe}{hrWR} 29.257 newommndB{tild}{hrIPT} 29.258 newommndB{oi}{6kslsh6} 29.259 fi
29.239 29.240

degres

e now de(ne mro \degres for typesetting the revition for degrees9 @s in degrees gelsius9AF es the ounding ox of the hrter degree9 hs very di'erent widths in gwGig nd ostript fontsD we (x the width of the ounding ox of \degres to HFQ emD this lets the symol degree9 stik to the preeding @eFgFD 45\degresA or following hrter @eFgFD 20~\degres CAF sf the i gompnion fonts re ville @textcomp.styAD we pik up \textdegree from them insted of using emulting degrees9 from the \r{} entF ytherwise we overwrite the @poorA de(nition of \textdegree given in latin1.defD applemac.def etF @lled y inputenc.styA y our de(nition of \degresF e lso dvie the user @one onlyA to use IEenodingF

ifvee newommndB{degres}{degre} 29.262 defrningddegreedone{7 29.263 kgerning{frenhFldf}{7 29.264 hegrees would look etter in IEenodingX 29.265 wessgefrek dd protet 29.266 usepkge{textomp} to the premleF 29.267 wessgefrek hegrees used}} 29.268 etfeginhoument{expndfterifxsnme wdIendsnmerelx 29.269 helreoustgommndB{degres}{7 29.270 levevmodehox to HFQem{hssdegrehss}7 29.271 rningddegreedone 29.272 glolletrningddegreedonerelx}7 29.273 lettextdegreedegres 29.274 else 29.275 helreoustgommndB{degres}{7 29.276 hox{seextymol{I}{textdegree}}}7 29.277 fi} 29.278 else 29.279 newommndB{degres}{7 29.280 levevmodehox to HFQem{hssdegrehss}}
29.260 29.261

IQS

29.281

fi

29.6 Formatting numbers


heimlwthgomm tndrdwthgomm

es mentioned in the iook pF IQRD the omm is of type \mathpunct in mth modeX it is utomtilly followed y speF his is onvenient in lists nd intervls ut unplesnt when the omm is used s deiml seprtor in prenhX it hs to e entered s {,}F \DecimalMathComma mkes the omm e n ordinry hrter @of type \mathordA in prenh only @no spe ddedAY \StandardMathComma swithes k to the stndrd ehviour of the ommF

newountstddm newountdedm 29.284 stddmamthodeD 29.285 dedmastddm 29.286 dtempntastddm 29.287 dividedtempnt y 4IHHH 29.288 multiplydtempnt y 4IHHH 29.289 dvnededm y Edtempnt 29.290 newommndB{heimlwthgomm}{iflnguge{frenh}7 29.291 {mthodeDadedm}{}7 29.292 ddtoextrsfrenh{mthodeDadedm}} 29.293 newommndB{tndrdwthgomm}{mthodeDastddm 29.294 ddtoextrsfrenh{mthodeDastddm}} 29.295 expndfterddtosnme noextrsgurrentyptionendsnme{7 29.296 mthodeDastddm}
29.282 29.283

nomre

A he ommnd \nombre is now orrowed from numprint.sty for v i P F here is no point to mintin the former triky ode when pkge is dedited to do the sme jo nd moreF por lin sed formtsD \nombre no longer formts numersD it prints them s is nd issues wrning out the hngeF pke ommnd \nombre for lin sed formtsD wrning users of frenchb vFIFxF of the hngeF

29.297 29.298

newommndB{nomre}I{{5I}messge{7 BBB noexpndnomre no longer formts numersstring3 BBB}}7

A he next de(nitions only mke sense for v i P F vet9s lenup nd exit if the formt in lin sedF

letpfstopdhererelx defpflendondexit{letifveedundefined 29.301 letveetruedundefined 29.302 letveeflsedundefined} 29.303 ifxmgnifitiondundefined 29.304 else 29.305 defpfstopdhere{lethdmkeptionrelx 29.306 pflendondexit 29.307 ldfdquitgurrentyptionendinput} 29.308 fi 29.309 pfstopdhere
29.299 29.300 A A ht follows now is for v i P onlyF e rede(ne \nombre for v i P F e wrning is issued t the (rst ll of \nombre if \numprint is not de(nedD suggestE ing wht to doF he pkge numprint is not loded utomtilly y frenchb euse of possile options on)itF

IQT

renewommndB{nomre}I{rningdnomrenumprint{5I}} newommndB{rningdnomre}{7 29.312 difundefined{numprint}7 29.313 {kgerning{frenhFldf}{7 29.314 protetnomrespe now relies on pkge numprintFstyD 29.315 wessgefrek dd protet 29.316 usepkgeutolnguge{numprint}wessgefrek 29.317 to your premle BfterB loding elD wessgefrek 29.318 see file numprintFpdf for other optionsFwessgefrek 29.319 protetnomrespe lled}7 29.320 glolletrningdnomrerelx 29.321 glolletnumprintrelx 29.322 }{}7 29.323 }
29.310 29.311

newommndB{hinpesnprenhxumers}{7 kgerning{frenhFldf}{7 29.326 ype protetfrenhsetup{hinpesnprenhxumers} 29.327 wessgefrek gommnd protethinpesnprenhxumersspe 29.328 is no longerwessgefrek defined in frenh vFPD}}
29.324 29.325

29.7 Caption names


A he next step onsists of de(ning the prenh equivlents for the v i ption nmesF

ptionsfrenh

vet9s (rst de(ne \captionsfrench whih sets ll strings used in the four stndrd A doument lsses provided with v iF

dnmedef{ptionsgurrentyption}{7 defrefnme{9ef9erenes}7 29.331 defstrtnme{9esum9e}7 29.332 definme{filiogrphie}7 29.333 defprefenme{r9efe}7 29.334 defhpternme{ghpitre}7 29.335 defppendixnme{ennexe}7 29.336 defontentsnme{le des mtieres}7 29.337 deflistfigurenme{le des figures}7 29.338 deflisttlenme{viste des tleux}7 29.339 defindexnme{sndex}7 29.340 deffigurenme{{sshpe pigure}}7 29.341 deftlenme{{sshpe le}}7
29.329 29.330

remire prtie insted of rt sF


29.342 29.343 29.344 29.345 29.346 29.347 29.348 29.349 29.350 29.351 29.352

defprtnme{protetdppt prtie}7 defdppt{{ifsevlue{prt}or remiereor heuxiemeor roisiemeor utriemeor ginquiemeor ixiemeor eptiemeor ruitiemeor xeuviemeor hixiemeor ynziemeor houziemeor reiziemeor utorziemeor uinziemeor eiziemeor hixEseptiemeor hixEhuitiemeor hixEneuviemeor ingtiemefi}spedeftheprt{}}7 defpgenme{pge}7 defseenme{{emph{voir}}}7 deflsonme{{emph{voir ussi}}}7 defenlnme{F~tF }7

IQU

29.353 29.354 29.355 29.356 29.357

defnme{gopie }7 defhedtonme{}7 defproofnme{h9emonstrtion}7 defglossrynme{qlossire}7 }

es some users who hoose frenchb or francais s option of babelD might ustomise \captionsfrenchb or \captionsfrancais in the premleD we merge their hnges t the \begin{document} when they do soF he other vrints of prenh @ndienD dinA re de(ned y heking if the relevnt option ws used nd then dding one extr level of expnsionF
etfeginhoument{letptionsdprenhptionsfrenh difundefined{ptionsfrenh}7 29.360 {letptionsdprenhrelx}7 29.361 {letptionsdprenhptionsfrenh}7 29.362 difundefined{ptionsfrnis}7 29.363 {letptionsdprnisrelx}7 29.364 {letptionsdprnisptionsfrnis}7 29.365 defptionsfrenh{ptionsdprenh 29.366 ptionsdprnisptionsdprenh}7 29.367 defptionsfrnis{ptionsfrenh}7 29.368 defptionsfrenh{ptionsfrenh}7 29.369 iflnguge{frenh}{ptionsfrenh}{}7 29.370 } 29.371 difpkgewith{el}{ndien}{7 29.372 defptionsndien{ptionsfrenh}7 29.373 defdtendien{dtefrenh}7 29.374 defextrsndien{extrsfrenh}7 29.375 defnoextrsndien{noextrsfrenh}7 29.376 }{} 29.377 difpkgewith{el}{din}{7 29.378 defptionsdin{ptionsfrenh}7 29.379 defdtedin{dtefrenh}7 29.380 defextrsdin{extrsfrenh}7 29.381 defnoextrsdin{noextrsfrenh}7 29.382 }{}
29.358 29.359

gptioneprtor

vet9s onsider now ptions in (gures nd tlesF sn prenhD ptions in (gures nd tles should e printed with endsh @!9A insted of the stndrd X9F he stndrd de(nition of \@makecaption @eFgFD the one provided in rtileFlsD A reportFlsD ookFls whih is frozen for v i P ording to prnk wittelhAD hs een sved in \STD@makecaption efore mking X9 tive @see setion PWFPAF etfeginhoument9 we ompre it to its urrent de(nition @some lsses like komEsript lssesD ew lssesD uEthesisFlsF F F hnge itAF sf they re idenE tilD frenchb just dds hook lled \CaptionSeparator to \@makecaptionD \CaptionSeparator defults to X 9 s in the stndrd \@makecaptionD nd will e hnged to ! 9 in prenhF sf the de(nitions di'erD frenchb doesn9t overwrite the hngesD ut prints messge in the Flog (leF

defgptioneprtor{stringXspe} longdefpfdmkeption5I5P{7 29.385 vskipoveptionskip 29.386 soxdtempox{5Igptioneprtor 5P}7


29.383 29.384

IQV

ifdim wddtempox bhsize 5Igptioneprtor 5Ppr 29.389 else 29.390 glol dminipgeflse 29.391 hdxtdhsize{hfiloxdtempoxhfil}7 29.392 fi 29.393 vskipelowptionskip} 29.394 etfeginhoument{7 29.395 ifxdmkeptionhdmkeption 29.396 glolletdmkeptionpfdmkeption 29.397 else 29.398 difundefined{dmkeption}{}7 29.399 {kgerning{frenhFldf}7 29.400 {he definition of protetdmkeptionspe 29.401 hs een hngedDwessgefrek 29.402 frenh will xy ustomise itYwessgefrek reported}7 29.403 }7 29.404 fi 29.405 letpfdmkeptionrelx 29.406 lethdmkeptionrelx 29.407 } 29.408 expndfterddtosnme extrsgurrentyptionendsnme{7 29.409 defgptioneprtor{spetextendshspe}} 29.410 expndfterddtosnme noextrsgurrentyptionendsnme{7 29.411 defgptioneprtor{stringXspe}}
29.387 29.388

29.8 French lists


listpf listys

ertil sping in generl lists should e shorter in prenh texts thn the defults A provided y v iF xote tht the esy wyD just hnging vlues of vertil sping prmeters when entering prenh nd restoring them to their defults on exit would not workY s most lists re sed on \list we will de(ne vrint of \list @\listFBA to e used in prenhF he mount of vertil spe efore nd fter list is given y \topsep C \parskip @C \partopsep if the list strts new prgrphAF swryD \parskip should e dded only when the list strts new prgrphD so s sutrt \parskip from \topsep nd dd it k to \partopsepY this will normlly mke no di'erene euse \parskip9s defult vlue is HptD ut will e notiele when \parskip is not nullF \endlist is not rede(nedD ut \endlistORI is provided for the users who prefer to de(ne their own lists from the originl ommndD they n odeX \begin{listORI}{}{} \end{listORI}F

letlistyslist letendlistysendlist 29.414 defpfdlistsettings{7 29.415 setlength{itemsep}{HFRex plus HFPex minus HFPex}7 29.416 setlength{prsep}{HFRex plus HFPex minus HFPex}7 29.417 setlength{topsep}{HFVex plus HFRex minus HFRex}7 29.418 setlength{prtopsep}{HFRex plus HFPex minus HFPex}7
29.412 29.413

\parskip is of type skip9D its men vlue only @not the glue A should e sutrted from \topsep nd dded to \partopsepD so onvert \parskip to dimen9 using \@tempdimaF
IQW

29.419

dtempdimaprskip ddtolength{topsep}{Edtempdim}7 29.421 ddtolength{prtopsep}{dtempdim}}7 29.422 deflistpf5I5P{listys{5I}{pfdlistsettings 5P}}7 29.423 letendlistpfendlist


29.420

itemizepf itemizeys ldfrenhlelitems ldnonfrenhlelitems

vet9s now onsider prenh itemize listsF hey di'er from those provided y the A stndrd v i P lssesX

vertil sping etween itemsD efore nd fter the listD should e null with no glue ddedY the item lels of (rst level list should e vertilly ligned on the prE grph9s (rst hrter @iFeF t \parindent from the left mrginAY the 9 is never used in prenh itemizeElistsD long dsh !9 is preferred for ll levelsF he item lel used in prenh is stored in \FrenchLabelItem}D it deE fults to !9 nd n e hnged using \frenchbsetup{} @see setion PWFIQAF

newommndB{prenhvelstem}{textendsh} newommndB{prlelitemi}{prenhvelstem} 29.426 newommndB{prlelitemii}{prenhvelstem} 29.427 newommndB{prlelitemiii}{prenhvelstem} 29.428 newommndB{prlelitemiv}{prenhvelstem}


29.424 29.425

\bbl@frenchlabelitems sves urrent itemize lels nd hnges them to their vlue in prenhF his ode should never e exeuted twie in rowD so we need new )g tht will e set nd reset y \bbl@nonfrenchlabelitems nd \bbl@frenchlabelitemsF
newififpfdenterprenh pfdenterprenhtrue defldfrenhlelitems{7 29.431 ifpfdenterprenh 29.432 letdltiyslelitemi 29.433 letdltiiyslelitemii 29.434 letdltiiiyslelitemiii 29.435 letdltivyslelitemiv 29.436 letlelitemiprlelitemi 29.437 letlelitemiiprlelitemii 29.438 letlelitemiiiprlelitemiii 29.439 letlelitemivprlelitemiv 29.440 pfdenterprenhflse 29.441 fi 29.442 } 29.443 letitemizeysitemize 29.444 letenditemizeysenditemize 29.445 letenditemizepfenditemize 29.446 defitemizepf{7 29.447 ifnum ditemdepth bthrdddtoodeepelse 29.448 dvneditemdepthdne 29.449 edefditemitem{lelitemromnnumerltheditemdepth}7 29.450 expndfter 29.451 listys 29.452 snmeditemitemendsnme 29.453 {settowidth{lelwidth}{snmeditemitemendsnme}7 29.454 setlength{leftmrgin}{lelwidth}7
29.429 29.430

IRH

29.455 29.456 29.457 29.458 29.459 29.460 29.461 29.462 29.463 29.464

ddtolength{leftmrgin}{lelsep}7 ifnumdlistdepthaH setlength{itemindent}{prindent}7 else ddtolength{leftmrgin}{prindent}7 fi setlength{itemsep}{zd}7 setlength{prsep}{zd}7 setlength{topsep}{zd}7 setlength{prtopsep}{zd}7

\parskip is of type skip9D its men vlue only @not the glue A should e sutrted from \topsep nd dded to \partopsepD so onvert \parskip to dimen9 using \@tempdimaF
29.465 29.466 29.467 29.468

dtempdimaprskip ddtolength{topsep}{Edtempdim}7 ddtolength{prtopsep}{dtempdim}}7 fi}

he user9s hnges in lelitems re sved when leving prenh for further use when swithing k to prenhF his ode should never e exeuted twie in row @toggle with \bbl@frenchlabelitemsAF
defldnonfrenhlelitems{7 ifpfdenterprenh 29.471 else 29.472 letprlelitemilelitemi 29.473 letprlelitemiilelitemii 29.474 letprlelitemiiilelitemiii 29.475 letprlelitemivlelitemiv 29.476 letlelitemidltiys 29.477 letlelitemiidltiiys 29.478 letlelitemiiidltiiiys 29.479 letlelitemivdltivys 29.480 pfdenterprenhtrue 29.481 fi 29.482 }
29.469 29.470

29.9 French indentation of sections


ldfrenhindent ldnonfrenhindent

sn prenh the (rst prgrph of eh setion should e indentedD this is nother di'erene with EinglishF

letdifysdfterindentflse defldfrenhindent{letdfterindentflsedfterindenttrue 29.485 dfterindenttrue} 29.486 defldnonfrenhindent{letdfterindentflsedifys 29.487 dfterindentflse}


29.483 29.484

29.10 Formatting footnotes


he bigfoot pkge deeply hnges the wy footnotes re hndledF hen bigfoot is lodedD we just wrn the user tht frenchb will drop the ustomiE stion of footnotesF

IRI

he lyout of footnotes is ontrolled y two )gs \ifFBAutoSpaceFootnotes nd \ifFBFrenchFootnotes whih re set y options of \frenchbsetup{} @see setion PWFIQAF xotie tht the lyout of footnotes does not depend on the urrent lnguge @just think of two footnotes on the sme pge looking di'erent euse one ws lled in prenh prtD the other one in inglish3AF hen \ifFBAutoSpaceFootnotes is trueD \@footnotemark @whose de(nition is sved t the \begin{document} in order to inlude ny ustomistion tht pkges might hve doneA is rede(ned to dd thin spe efore the numer or symol lling footnote @ny spe typed in is removed (rstAF his hs no e'et on the lyout of the footnote itselfF
etfeginhoument{difpkgeloded{igfoot}7 {kgerning{frenhFldf}7 29.490 {igfoot pkge in useFwessgefrek 29.491 frenh will xy ustomise footnotesYwessgefrek 29.492 reported}}7 29.493 {letdfootnotemrkysdfootnotemrk 29.494 defdfootnotemrkpf{levevmodeunskipunkern 29.495 Ddfootnotemrkys}7 29.496 ifpfeutopepootnotes 29.497 letdfootnotemrkdfootnotemrkpf 29.498 fi}7 29.499 }
29.488 29.489

e then de(ne \@makefntextFBD vrint of \@makefntext whih is responsiE le for the lyout of footnotesD to mth the spei(tions of the prenh smprimerie xtionle9X footnotes will e indented y \parindentFFND numers @if nyA typeE set on the seline @insted of supersriptsA nd followed y dot nd n hlf qud speF henever symols re used to numer footnotes @s in \thanks for instneAD we swith k to the stndrd lyout @the prenh lyout of footnotes is ment for footnotes numered y eri or omn digitsAF he vlue of \parindentFFN will e rede(ned t the \begin{document}D s the mximum of \parindent nd IFSem unless it hs een set in the premle @the weird vlue IHin is just for testing whether \parindentFFN hs een set or notAF
newdimenprindentppx prindentppxaIHin 29.502 defftnssymol{dfnsymoldfootnote} 29.503 longdefdmkefntextpf5I{ifxthefootnoteftnssymol 29.504 dmkefntextys{5I}7 29.505 else 29.506 prindentaprindentppx 29.507 rulezdfootnotesep 29.508 setoxdtempoxhox{dthefnmrk}7 29.509 ifdimwddtempoxbzd 29.510 llp{dthefnmrk}FkernFSem 29.511 fi 5I 29.512 fi}7
29.500 29.501

e sve the stndrd de(nition of \@makefntext t the \begin{document}D nd then rede(ne \@makefntext ording to the vlue of )g \ifFBFrenchFootnotes @true or flseAF
29.513

etfeginhoument{difpkgeloded{igfoot}{}7

IRP

29.514 29.515 29.516 29.517 29.518 29.519 29.520 29.521 29.522 29.523 29.524 29.525 29.526 29.527

{ifdimprindentppx`IHin else prindentppxaprindent ifdimprindentppx`IFSemprindentppxaIFSemfi fi letdmkefntextysdmkefntext longdefdmkefntext5I{7 ifpfprenhpootnotes dmkefntextpf{5I}7 else dmkefntextys{5I}7 fi}7 }7

por omptiility resonsD we provide de(nitions for the ommnds deling with the lyout of footnotes in frenchb version IFTF \frenchbsetup{} @see in seE tion PWFIQA should e preferred for setting these optionsF \StandardFootnotes my still e used lolly @in minipges for instneAD tht9s why the test \ifFBFrenchFootnotes is done inside \@makefntextF
newommndB{eddhinpefeforepootnotes}{pfeutopepootnotestrue} newommndB{prenhpootnotes}{pfprenhpootnotestrue} 29.530 newommndB{tndrdpootnotes}{pfprenhpootnotesflse}
29.528 29.529

29.11 Global layout


sn multilingul doumentsD some typogrphi rules must depend on the urrent lnguge @eFgFD hyphentionD typesetting of numersD sping efore doule punE tutionF F F AD others shouldD swryD e kept glol to the doumentX espeilly the lyout of lists @see PWFVA nd footnotes @see PWFIHAD nd the indenttion of the (rst prgrph of setions @see PWFWAF prom version PFP onD if frenchb is babel9s min lnguge @iFeF lst lnguge option t babel9s lodingAD frenchb ustomises the lyout @iFeF listsD indenttion of the (rst prgrphs of setions nd footnotesA in the whole doument regrdless the urrent lngugeF yn the other hndD if frenchb is not babel9s min lngugeD it leves the lyout unhnged oth in prenh nd in other lngugesF
prenhvyout tndrdvyout

he former ommnds \FrenchLayout nd \StandardLayout re kept for omE ptiility resons ut should no longer e usedF

newommndB{prenhvyout}{7 pfqlolvyoutprenhtrue 29.533 kgerning{frenhFldf}7 29.534 {protetprenhvyoutspe is osoleteF lese usewessgefrek 29.535 protetfrenhsetup{qlolvyoutprenh} instedF}7 29.536 } 29.537 newommndB{tndrdvyout}{7 29.538 pfeduevistpingflse 29.539 pfgomptstemizeflse 29.540 pftndrdstemvelstrue 29.541 pfsndentpirstflse 29.542 pfprenhpootnotesflse 29.543 pfeutopepootnotesflse 29.544 kgerning{frenhFldf}7
29.531 29.532

IRQ

29.545 29.546 29.547 29.548

} donlypremleprenhvyout 29.549 donlypremletndrdvyout

{protettndrdvyoutspe is osoleteF lese usewessgefrek protetfrenhsetup{tndrdvyout} instedF}7

29.12 Dots. . .
pftextellipsis
A v i P 9s stndrd de(nition of \dots in textEmode is \textellipsis whih inludes \kern t the endY this spe is not wnted in some ses @efore losing re for instneA nd \kern reks hyphention of the next wordF e A de(ne \FBtextellipsis for prenh @in v i P onlyAF A he \if onstrution in the v i P de(nition of \dots doesn9t llow the use A of xspace @xspace is lwys followed y \fiAD so we use the ewEv i onE strution of \dotsY this hs to e done etfeginhoument9 not to e overwritten when amsmath.sty is loded fter babelF vI hs redy mde hrter for \textellipsisD it should e used in prenh too @pointed out y fruno oisinAF

helreextymol{pftextellipsis}{vI}{IQQ} helreextgommndhefult{pftextellipsis}{7 29.552 FkernfontdimenQfontFkernfontdimenQfontFxspe}


29.550 29.551

\Mdots@ nd \Tdots@ORI hold the de(nitions of \dots in wth nd ext modeF A hey defult to those of msmthEPFHD nd will revert to stndrd v i de(nitions etfeginhoument9D if msmth hs not een lodedF \Mdots@ doesn9t hnge when swithing fromGto prenhD while \Tdots@ is \FBtextellipsis in prenh nd \Tdots@ORI otherwiseF
newommndB{dotsdys}{dxptextellipsis} newommndB{dotsd}{dotsdys} 29.555 newommndB{wdotsd}{dxpmdotsd} 29.556 etfeginhoument{helreoustgommndB{dots}{relx 29.557 snmeifmmode welse fi dotsdendsnme}7 29.558 difundefined{dxp}{letdxprelx}{}7 29.559 difundefined{mdotsd}{letdotsdystextellipsis 29.560 letwdotsdmthellipsis}{}} 29.561 defldfrenhdots{letdotsdpftextellipsis} 29.562 defldnonfrenhdots{letdotsddotsdys} 29.563 expndfterddtosnme extrsgurrentyptionendsnme{7 29.564 ldfrenhdots} 29.565 expndfterddtosnme noextrsgurrentyptionendsnme{7 29.566 ldnonfrenhdots}
29.553 29.554

29.13 Setup options: keyval stu


e (rst de(ne olletion of onditionls with their defults @true or flseAF
newififpftndrdvyout newififpfqlolvyoutprenh 29.569 newififpfeduevistping 29.570 newififpfgomptstemize 29.571 newififpftndrdstemvels 29.572 newififpftndrdvists 29.573 newififpfsndentpirst
29.567 29.568

pftndrdvyouttrue pfqlolvyoutprenhflse pfeduevistpingflse pfgomptstemizeflse pftndrdstemvelstrue pftndrdviststrue pfsndentpirstflse

IRR

newififpfprenhpootnotes newififpfeutopepootnotes 29.576 newififpfeutopeuntution 29.577 newififpfhingolonpe 29.578 newififpfhinpesnprenhxumers 29.579 newififpfprenhupersripts 29.580 newififpfvowerseupersripts 29.581 newififpfrtxmepull 29.582 newififpfhowyptions
29.574 29.575

pfprenhpootnotesflse pfeutopepootnotesflse pfeutopeuntutiontrue pfhingolonpeflse pfhinpesnprenhxumersflse pfprenhupersriptstrue pfvowerseupersriptstrue pfrtxmepulltrue pfhowyptionsflse

he defults vlues of these )gs hve een set so tht frenchb does not hnge nything regrding the glol lyoutF \bbl@main@language @set y the lst option of elA ontrols the glol lyout of the doumentF e hek the urrent lnguge etindyfkge9 @it is \bbl@main@languageAY if it is prenhD the vlues of some )gs hve to e hnged to ensure prenh looking lyout for the whole doument @even in prts written in lnguges other thn prenhAY the endEuser will then e le to ustomise the vlues of ll these )gs with \frenchbsetup{}F
etindyfkge{7 iflnguge{frenh}{pfeduevistpingtrue 29.585 pfgomptstemizetrue 29.586 pftndrdstemvelsflse 29.587 pfsndentpirsttrue 29.588 pfprenhpootnotestrue 29.589 pfeutopepootnotestrue 29.590 pfqlolvyoutprenhtrue}7 29.591 {}7 29.592 }
29.583 29.584

frenhsetup

prom version PFH onD ll setup options re hndled y one ommnd \frenchbsetup using the keyvl syntxF vet9s now de(ne this ommnd whih reds nd sets the options to e proessed lter @t \begin{document}A y \FBprocess@optionsF st n only e lled in the premleF

newommndB{frenhsetup}I{7 setkeys{pf}{5I}7 29.595 }7 29.596 donlypremlefrenhsetup


29.593 29.594

frenchb eing n option of elD it nnot lod pkge @keyvlA while frenchb.ldf is redD so we defer the loding of keyval nd the options setup t the end of babel9s lodingF StandardLayout resets the lyout in prenh to the stndrd lyout de(ned A pr the v i lss nd pkges lodedF st dels with listsD indenttion of (rst prgrphs of setions nd footnotesF yther keysD entered after StandardLayout in \frenchbsetupD n overrule some of the StandardLayout settingsF GlobalLayoutFrench fores the lyout in prenh nd @s fr s possileA outE side prenh to meet the prenh typogrphi stndrdsF
etindyfkge{7 equirekge{keyvl}7 29.599 definedkey{pf}{tndrdvyout}true7 29.600 {snme pftndrdvyout5Iendsnme 29.601 ifpftndrdvyout 29.602 pfeduevistpingflse 29.603 pfgomptstemizeflse
29.597 29.598

IRS

29.604 29.605 29.606 29.607 29.608 29.609 29.610 29.611 29.612 29.613 29.614 29.615 29.616 29.617 29.618 29.619 29.620 29.621 29.622 29.623 29.624 29.625 29.626 29.627 29.628 29.629 29.630 29.631 29.632 29.633 29.634 29.635 29.636 29.637 29.638 29.639 29.640 29.641 29.642 29.643 29.644 29.645 29.646 29.647 29.648 29.649 29.650 29.651 29.652 29.653 29.654 29.655 29.656 29.657

pftndrdstemvelstrue pfsndentpirstflse pfprenhpootnotesflse pfeutopepootnotesflse pfqlolvyoutprenhflse else pfeduevistpingtrue pfgomptstemizetrue pftndrdstemvelsflse pfsndentpirsttrue pfprenhpootnotestrue pfeutopepootnotestrue fi}7 definedkey{pf}{qlolvyoutprenh}true7 {snme pfqlolvyoutprenh5Iendsnme ifpfqlolvyoutprenh pfeduevistpingtrue pfgomptstemizetrue pftndrdstemvelsflse pfsndentpirsttrue pfprenhpootnotestrue pfeutopepootnotestrue fi}7 definedkey{pf}{eduevistping}true7 {snme pfeduevistping5Iendsnme}7 definedkey{pf}{gomptstemize}true7 {snme pfgomptstemize5Iendsnme}7 definedkey{pf}{tndrdstemvels}true7 {snme pftndrdstemvels5Iendsnme}7 definedkey{pf}{stemvels}{7 renewommndB{prenhvelstem}{5I}}7 definedkey{pf}{stemveli}{7 renewommndB{prlelitemi}{5I}}7 definedkey{pf}{stemvelii}{7 renewommndB{prlelitemii}{5I}}7 definedkey{pf}{stemveliii}{7 renewommndB{prlelitemiii}{5I}}7 definedkey{pf}{stemveliv}{7 renewommndB{prlelitemiv}{5I}}7 definedkey{pf}{tndrdvists}true7 {snme pftndrdvists5Iendsnme ifpftndrdvists pfeduevistpingflse pfgomptstemizeflse pftndrdstemvelstrue else pfeduevistpingtrue pfgomptstemizetrue pftndrdstemvelsflse fi}7 definedkey{pf}{sndentpirst}true7 {snme pfsndentpirst5Iendsnme}7 definedkey{pf}{prenhpootnotes}true7 {snme pfprenhpootnotes5Iendsnme}7

IRT

29.658 29.659 29.660 29.661 29.662 29.663 29.664 29.665 29.666 29.667 29.668 29.669 29.670 29.671 29.672 29.673

definedkey{pf}{eutopepootnotes}true7 {snme pfeutopepootnotes5Iendsnme}7 definedkey{pf}{eutopeuntution}true7 {snme pfeutopeuntution5Iendsnme}7 definedkey{pf}{hingolonpe}true7 {snme pfhingolonpe5Iendsnme}7 definedkey{pf}{hinpesnprenhxumers}true7 {snme pfhinpesnprenhxumers5Iendsnme}7 definedkey{pf}{prenhupersripts}true7 {snme pfprenhupersripts5Iendsnme} definedkey{pf}{vowerseupersripts}true7 {snme pfvowerseupersripts5Iendsnme} definedkey{pf}{rtxmepull}true7 {snme pfrtxmepull5Iendsnme}7 definedkey{pf}{howyptions}true7 {snme pfhowyptions5Iendsnme}7

snputing prenh quotes s single characters when they re ville on the keyE ord @through ompose key for instneA is more omfortle thn typing \og nd \fgF he purpose of the following ode is to mp the prenh quote hrters to \og\ignorespaces nd {\fg} respetively when the urrent lnE guge is prenhD nd to \guillemotleft nd \guillemotright otherwise @think of qermn quotesAY thus orret unrekle spes will e dded utomtilly to prenh quotesF he quote hrters typed in depend on the input enodingD it n e singleEyte @ltinID ltinWD pplemDF F F A or multiEytes @utfEVD utfVxAF e (rst hek whether ee is used or notD if not the pkge inputenc hs to e loded efore the \begin{document} with the proper oding optionD so we hek if \DeclareInputText is de(nedF
29.674 29.675 29.676 29.677 29.678 29.679 29.680 29.681 29.682 29.683

definedkey{pf}{og}{7 newommndB{pfddog}{iflnguge{frenh}7 {pfdogignorespes}{guillemotleft}}7 expndfterifxsnme eerevisionendsnmerelx etfeginhoument{7 difundefined{helresnputext}7 {kgerning{frenhFldf}7 {yption og9 requires pkge inputenFwessgefrek}7 }7 {difundefined{uddl}7 {difundefined{helreniodeghrter}7

if \uc@dclc is unde(nedD utfVx is not lodedF F F


29.684

if \DeclareUnicodeCharacter is unde(nedD utfV is not loded eitherD we sE sume VEit hrter input enodingF kge wvienFsty @from gtuA de(nes \mule@def to mp hrters to ontrol sequenesF
29.685 29.686 29.687 29.688 29.689

{dtempnt5Irelx difundefined{muleddef}7 {helresnputext{thedtempnt}{pfddog}}7 {muleddef{II}{{pfddog}}}7 }7 {helreniodeghrter{HHef}{pfddog}}7

utfV lodedD use \DeclareUnicodeCharacterD


29.690 29.691

}7

IRU

utfVx lodedD use \uc@dclcD


29.692 29.693 29.694

}7

{uddl{IUI}{defult}{pfddog}}7 }7

ee in useD the following trik for de(ning the tive quote hrter is orrowed from inputenc.dtxF
29.695 29.696 29.697 29.698 29.699 29.700 29.701 29.702 29.703 29.704

}7

else tode5Iative group uode~5I7 upperse{7 egroup def~7 }{pfddog}7 fi

me ode for the losing quoteF


29.705 29.706 29.707 29.708 29.709 29.710 29.711 29.712 29.713 29.714 29.715 29.716 29.717 29.718 29.719 29.720 29.721 29.722 29.723 29.724 29.725 29.726 29.727 29.728 29.729 29.730 29.731 29.732 29.733 29.734 29.735 29.736

definedkey{pf}{fg}{7 newommndB{pfddfg}{iflnguge{frenh}7 {pfdfg}{guillemotright}}7 expndfterifxsnme eerevisionendsnmerelx etfeginhoument{7 difundefined{helresnputext}7 {kgerning{frenhFldf}7 {yption fg9 requires pkge inputenFwessgefrek}7 }7 {difundefined{uddl}7 {difundefined{helreniodeghrter}7 {dtempnt5Irelx difundefined{muleddef}7 {helresnputext{thedtempnt}{{pfddfg}}}7 {muleddef{PU}{{pfddfg}}}7 }7 {helreniodeghrter{HHff}{{pfddfg}}}7 }7 {uddl{IVU}{defult}{{pfddfg}}}7 }7 }7 else tode5Iative group uode~5I7 upperse{7 egroup def~7 }{{pfddfg}}7 fi }7

pfproessdoptions

\FBprocess@options proesses the optionsD it is lled once t \begin{document}F


newommndB{pfproessdoptions}{7

29.737

IRV

xothing hs to e done here for StandardLayout nd StandardLists @the inE volved )gs hve lredy een set in \frenchbsetup{} or efore @t el9s indE yfkgeAF he next three options del with the lyout of lists in prenhF ReduceListSpacing redues the vertil spes etween list items in prenh @done y hnging \list to \listFBAF hen GlobalLayoutFrench is true the sme is done outside prenhF
29.738 29.739 29.740 29.741 29.742 29.743 29.744 29.745 29.746 29.747 29.748 29.749 29.750 29.751 29.752 29.753

ifpfeduevistping ddtoextrsfrenh{letlistlistpf letendlistendlistpf}7 ddtonoextrsfrenh{ifpfqlolvyoutprenh letlistlistpf letendlistendlistpf else letlistlistys letendlistendlistys fi}7 else ddtoextrsfrenh{letlistlistys letendlistendlistys}7 ddtonoextrsfrenh{letlistlistys letendlistendlistys}7 fi

CompactItemize suppresses the vertil sping etween list items in prenh @done y hnging \itemize to \itemizeFBAF hen GlobalLayoutFrench is true the sme is done outside prenhF
29.754 29.755 29.756 29.757 29.758 29.759 29.760 29.761 29.762 29.763 29.764 29.765 29.766 29.767 29.768 29.769

ifpfgomptstemize ddtoextrsfrenh{letitemizeitemizepf letenditemizeenditemizepf}7 ddtonoextrsfrenh{ifpfqlolvyoutprenh letitemizeitemizepf letenditemizeenditemizepf else letitemizeitemizeys letenditemizeenditemizeys fi}7 else ddtoextrsfrenh{letitemizeitemizeys letenditemizeenditemizeys}7 ddtonoextrsfrenh{letitemizeitemizeys letenditemizeenditemizeys}7 fi

StandardItemLabels resets lelitems in prenh to their stndrd vlues set A y the v i lss nd pkges lodedF hen GlobalLayoutFrench is true lE elitems re identil inside nd outside prenhF
29.770 29.771 29.772 29.773 29.774 29.775 29.776

ifpftndrdstemvels ddtoextrsfrenh{ldnonfrenhlelitems}7 ddtonoextrsfrenh{ldnonfrenhlelitems}7 else ddtoextrsfrenh{ldfrenhlelitems}7 ddtonoextrsfrenh{ifpfqlolvyoutprenh ldfrenhlelitems

IRW

29.777 29.778 29.779 29.780

fi

else ldnonfrenhlelitems fi}7

IndentFirst fores the (rst prgrphs of setions to e indented just like the other ones in prenhF hen GlobalLayoutFrench is true the sme is done outside prenhF
29.781 29.782 29.783 29.784 29.785 29.786 29.787 29.788 29.789 29.790 29.791

ifpfsndentpirst ddtoextrsfrenh{ldfrenhindent}7 ddtonoextrsfrenh{ifpfqlolvyoutprenh ldfrenhindent else ldnonfrenhindent fi}7 else ddtoextrsfrenh{ldnonfrenhindent}7 ddtonoextrsfrenh{ldnonfrenhindent}7 fi

he lyout of footnotes is hndled t the \begin{document} depending on the vlues of )gs FrenchFootnotes nd AutoSpaceFootnotes @see setion PWFIHAD nothing hs to e done here for footnotesF AutoSpacePunctuation dds n unrekle spe @in prenh onlyA efore the four tive hrters @XY3cA even if none hs een typed efore themF
29.792 29.793 29.794 29.795 29.796

ifpfeutopeuntution eutopefeforeph else xoeutopefeforeph fi

ThinColonSpace hnges the norml unrekle spe typeset in prenh eE fore X9 to thin speF
29.797

ifpfhingolonperenewommndB{polonspe}{thinspe}fi

hen trueD ThinSpaceInFrenchNumbers rede(nes numprint.sty9s ommnd \npstylefrench to set \npthousandsep to \, @thinspeA insted of ~ @deE fultA F his option hs no e'et if pkge numprint.sty is not loded with autolanguage9F es old versions of numprint.sty did not de(ne \npstylefrenchD we hve to provide this ommndF
29.798 29.799 29.800 29.801 29.802 29.803 29.804 29.805 29.806 29.807 29.808 29.809 29.810 29.811 29.812

difpkgeloded{numprint}7 {ifnprtdutolnguge provideommndB{npstylefrenh}{}7 ifpfhinpesnprenhxumers renewommndBnpstylefrenh{7 npthousndsep{D}7 npdeimlsign{D}7 npprodutsign{dot}7 npunitseprtor{D}7 npdegreeseprtor{}7 npperentseprtor{nprtdunitsep}7 }7 else renewommndBnpstylefrenh{7 npthousndsep{~}7

ISH

29.813 29.814 29.815 29.816 29.817 29.818 29.819 29.820 29.821

fi npddtolnguge{frenh}{frenh}7 fi}{}7

npdeimlsign{D}7 npprodutsign{dot}7 npunitseprtor{D}7 npdegreeseprtor{}7 npperentseprtor{nprtdunitsep}7 }7

FrenchSuperscriptsX if true \up=\fupD else \up=\textsuperscriptF enyE wy \up*=\FB@up@fakeF he strEform \up*{} is provided for fonts tht lk some superior lettersX edoe tenson ro nd topi ixpert hve no g superior for instneF
29.822 29.823 29.824 29.825 29.826 29.827

ifpfprenhupersripts helreoustgommndB{up}{difstr{pfdupdfke}{fup}}7 else helreoustgommndB{up}{difstr{pfdupdfke}7 {textsupersript}}7 fi

LowercaseSuperscriptsX if true let \FB@lc e \lowercaseD else \FB@lc is rede(ned to do nothingF


29.828 29.829 29.830 29.831

ifpfvowerseupersripts else renewommndB{pfdl}I{55I}7 fi

PartNameFullX if falseD rede(ne \partnameF


29.832 29.833

ifpfrtxmepull elseddtoptionsfrenh{defprtnme{rtie}}fi

ShowOptionsX if trueD print the list of ll options to the .log (leF


29.834 29.835 29.836 29.837 29.838 29.839 29.840 29.841 29.842 29.843 29.844 29.845 29.846 29.847 29.848 29.849 29.850 29.851 29.852 29.853 29.854 29.855

ifpfhowyptions qenerirning{B }{7 B BBBB vist of possile options for frenh BBBBwessgefrek hefult vlues etween rkets when frenh is loded BveB7 wessgefrek howyptionsatrue flsewessgefrek tndrdvyoutatrue flsewessgefrek qlolvyoutprenhaflse truewessgefrek tndrdvistsatrue flsewessgefrek eduevistpingaflse truewessgefrek gomptstemizeaflse truewessgefrek tndrdstemvelsatrue flsewessgefrek stemvelsatextemdshD textulletD protetding{RQ}DFFF textendshwessgefrek stemveliatextemdshD textulletD protetding{RQ}DFFF textendshwessgefrek stemveliiatextemdshD textulletD protetding{RQ}DFFF textendshwessgefrek stemveliiiatextemdshD textulletD protetding{RQ}DFFF textendshwessgefrek stemvelivatextemdshD textulletD protetding{RQ}DFFF textendshwessgefrek

ISI

29.856 29.857 29.858 29.859 29.860 29.861 29.862 29.863 29.864 29.865 29.866 29.867 29.868 29.869 29.870

fi

sndentpirstaflse truewessgefrek prenhpootnotesaflse truewessgefrek eutopepootnotesaflse truewessgefrek eutopeuntutionaflse truewessgefrek hingolonpeatrue flsewessgefrek hinpesnprenhxumersatrue flsewessgefrek prenhupersriptsaflse truewessgefrek vowerseupersriptsaflse truewessgefrek rtxmepullaflse truewessgefrek oga `left quote hrterbD fga `right quote hrterb wessgefrek BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB wessgefrekprotetfrenhsetup{howyptions}}

et \begin{document} we sve gin the de(nitions of the list9 nd itemize9 environments nd the vlues of lelitems so tht ll hnges mde in the premle re tken into ount in lnguges other thn prenh nd in prenh with the tndrdvyout optionF e lso hve to provide n \xspace ommnd in se the xspace.sty pkge is not lodedF
etfeginhoument{7 letlistyslist 29.873 letendlistysendlist 29.874 letitemizeysitemize 29.875 letenditemizeysenditemize 29.876 letdltiyslelitemi 29.877 letdltiiyslelitemii 29.878 letdltiiiyslelitemiii 29.879 letdltivyslelitemiv 29.880 provideommndB{xspe}{relx}7
29.871 29.872

vet9s rede(ne some ommnds in hyperref9s ookmrksF


29.881 29.882 29.883 29.884 29.885 29.886 29.887 29.888 29.889 29.890 29.891 29.892 29.893 29.894 29.895 29.896 29.897 29.898 29.899 29.900

difundefined{pdfstringdefhislegommnds}{}7 {pdfstringdefhislegommnds{7 letuprelx defieme{exspe}7 defiemes{esxspe}7 defier{erxspe}7 defiers{ersxspe}7 defiere{rexspe}7 defieres{resxspe}7 defprenhinumerte5I{5Idegrespe}7 defprenhopulrinumerte5I{5IdegreAspe}7 defxo{xdegrespe}7 defno{ndegrespe}7 defxos{xdegrespe}7 defnos{ndegrespe}7 defog{guillemotleftspe}7 deffg{speguillemotright}7 letstexts letdegresdegre }}7

ISP

st is time to proess the options set with \frenchboptions{}F hen exeute eiE ther \extrasfrench nd \captionsfrench or \noextrasfrench ording to the urrent lnguge t the \begin{document} @these three ommnds re updted y \FBprocess@optionsAF
29.901 29.902

pfproessdoptions iflnguge{frenh}{extrsfrenhptionsfrenh}{noextrsfrenh}7

ome wrnings re issued when output font enodings re not properly setF ith A eveD fontspec.sty nd xunicode.sty should e lodedY with @pdfAv iD wrning is issued when yI enoding is in use t the \begin{document}F wind tht \encodingdefault is de(ned s long9D de(ning \FBOTone with \newcommand* would fil3
29.903 29.904 29.905 29.906 29.907 29.908 29.909 29.910 29.911 29.912 29.913 29.914 29.915 29.916 29.917 29.918 29.919 29.920 29.921

expndfterifxsnme eerevisionendsnmerelx egingroup newommnd{pfyone}{yI}7 ifxenodingdefultpfyone kgerning{frenhFldf}7 {yI enoding should not e used for prenhF wessgefrek edd protetusepkgeI{fonten} to the premlewessgefrek of your doumentD} fi endgroup else difundefined{helrephrter}7 {kgerning{frenhFldf}7 {edd protetusepkge{fontspe} BndBwessgefrek protetusepkge{xuniode} to the premlewessgefrek of your doumentD}}7 {}7 fi

29.14 Clean up and exit


vod frenchb.cfg @should do nothingD just for omptiilityAF
29.922

lodlolfg{frenh}

pinl leningF he mro \ldf@quit tkes re for setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF he on(g (le serhed for hs to e frenchb.cfgD nd \CurrentOption hs een set to frenh9D so \ldf@finish\CurrentOption nnot e usedX we (rst lod frenchb.cfgD then ll \ldf@quit\CurrentOptionF
29.923 29.924

pflendondexit ldfdquitgurrentyption

ISQ

30

The Italian language

he (le italian.dtx30 de(nes ll the lngugeEspei( mros for the stlin lngugeF he fetures of this lnguge de(nition (le re the followingX IF he stlin hyphention is invokedD provided tht (le ithyph.tex ws A loded when the v i P formt ws uiltY in se it ws notD red the informtion oming with your distriution of the i softwreD nd the babel doumenttionF PF he lnguge dependent (xed words to e inserted y suh ommnds s \chapterD \captionD \tableofcontentsD etF re rede(ned in ordne with the stlin typogrphil prtieF QF ine stlin n e esily hyphented nd stlin prtie llows to rek word efore the lst two lettersD hyphention prmeters hve een set ordinglyD ut very high demerit vlue hs een set in order to void word reks in the penultimte line of prgrphF pei(lly the \clubpenaltyD nd the \widowpenalty re set to rther high vlues nd \finalhyphendemerits is set to suh high vlue tht hyphention is proE hiited etween the lst two lines of prgrphF sn orer to mke it onsisE tentD lso \@clubpenalty is set to the sme vlueY tuly the ltter vlue is the reset vlue fter every setioning ommndD so tht fter the (rst setionD \clubpenalty is reset to the low defult vlueF hnks to inrio qregorio for spotting this serious ugF RF ome lnguge spei( shortuts hve een de(ned so s to llow etymologE il hyphentionD spei(lly " inserts rek point in ny word oundry tht the typesetter hoosesD provided it is not followed y nd ented letE ter @very unlikely in stlinD where ompulsory ents fll only on the lst nd ending vowel of wordD ut my tke ple with ompound words tht inlude foreign rootsAD nd "| when the desired rek point flls efore n ented letterF SF he shortut "" introdues the rised @inglishA opening doule quotesY this shortut proves its usefulness when one reminds tht the stlin keyord misses the ktik keyD nd the ktik on indows sed pltform my e otined only y pressing the Alt key while inputting the numeril ode HHWTY veryD very nnoying3 TF he shortuts "< nd "> insert the prenh guillemotsD sometimes used in stlin typogrphyY with the I font enoding the ligtures << nd >> should insert suh signs diretlyD ut not ll the virtul fonts tht lim to follow the I font enoding tully ontin the guillemotsY with the yI enoding the guillemots re not ville nd must e fked in some wyF fy using the "< nd "> shortuts @even with the I enodingA the neessry tests re performed nd in se the suitle glyphs re tken from other fonts A normlly ville with ny goodD modern v i distriutionF
2008/03/14. The original author is Maurizio Codogno, (mau@beatles.cselt.stet.it). It has been largely revised by Johannes Braams and Claudio Beccari

30 The

le described in this section has version number v1.2t and was last revised on

ISR

UF hree new spei( ommnds \unitD \pedD nd \ap re introdued so s to enle the orret omposition of tehnil mthemtis ording to the sy QIGs reommendtionsF \unit does not get rede(ned if the babel pkE ge is loded after the pkge units.sty whose homonymous ommnd plys di'erent role nd follows di'erent syntxF por this lnguge limited numer of shortuts hs een de(nedD tle TD some of whih re used to overome ertin limittions of the stlin keyordY in setion QHFQ there re other omments nd hints in order to overome some other keyord limittionsF

"

"| "" "< "> "/

inserts ompound word mrk where hyphention is leglY it llows etymologil hyphention whih is reommended for tehnil termsD hemil nmes nd the likeY it does not work if the next hrter is represented with ontrol sequene or is n ented hrterF the sme s the ove without the limittion on hrE ters represented with ontrol sequenes or ented onesF inserts open quotes F inserts open guillemotsF inserts losed guillemotsF equivlent to \slash le TX hortuts for the stlin lnguge

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
30.1 30.2

code vdfsnit{itlin}{ptionsitlin}7

hen this (le is red s n optionD iFeF y the \usepackage ommndD italian will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@italian to see whether we hve to do something hereF
ifxlditlindundefined dnoptterns{stlin}7 30.5 dddiletlditlinHfi
30.3 30.4

he next step onsists of de(ning ommnds to swith to @nd fromA the stlin lngugeF
ptionsitlin

ddtoptionsitlin{7 defprefenme{refzione}7 30.8 defrefnme{iferimenti iliogrfii}7 30.9 defstrtnme{ommrio}7 30.10 definme{filiogrfi}7 30.11 defhpternme{gpitolo}7 30.12 defppendixnme{eppendie}7
30.6 30.7

he mro \captionsitalian de(nes ll strings used in the four stndrd douE A ment lsses provided with v iF

ISS

30.13 30.14 30.15 30.16 30.17 30.18 30.19 30.20 30.21 30.22 30.23 30.24 30.25 30.26 30.27 30.28

defontentsnme{sndie}7 deflistfigurenme{ileno delle figure}7 deflisttlenme{ileno delle telle}7 defindexnme{sndie nlitio}7 deffigurenme{pigur}7 deftlenme{ell}7 defprtnme{rte}7 defenlnme{ellegti}7 defnme{e~pF~F}7 defhedtonme{er}7 defpgenme{gF}7 7 in stlin the revition is preferred defseenme{vedi}7 deflsonme{vedi nhe}7 defproofnme{himostrzione}7 defglossrynme{qlossrio}7 }7

dteitlin

he mro \dateitalian rede(nes the ommnd \today to produe stlin dtesF

defdteitlin{7 deftody{numerdy~ifsemonthor 30.31 gennioor ferioor mrzoor prileor mggioor giugnoor 30.32 luglioor gostoor settemreor ottoreor novemreor 30.33 diemrefispe numeryer}}7
30.29 30.30

itlinhyphenmins

he itlin hyphention ptterns n e used with oth \lefthyphenmin nd \righthyphenmin set to PF


providehyphenmins{gurrentyption}{twdtwd}

30.34

extrsitlin vower the hne tht lus or widows ourF noextrsitlin30.35 ddtoextrsitlin{7 30.36 eldsvevrilelupenlty 30.37 eldsvevrilewidowpenlty 30.38 eldsvevriledlupenlty 30.39 lupenltyQHHHwidowpenltyQHHHdlupenltylupenlty}7

xever ever rek word etween the lst two lines of prgrph in itlin textsF
ddtoextrsitlin{7 eldsvevrilefinlhyphendemerits 30.42 finlhyphendemeritsSHHHHHHH}7
30.40 30.41

sn order to enle the hyphention of words suh s nell9ltezz we give the ' nonEzero lower se odeF hen we do tht i (nds the following hyphention points nel-l'al-tez-za insted of noneF
ddtoextrsitlin{7 lode9a9}7 30.45 ddtonoextrsitlin{7 30.46 lode9aH}7
30.43 30.44

30.1 Support for etymological hyphenation


sn his rtile on stlin hyphention I feri pointed out tht the stlin lnE guge gets hyphented on phoneti sisD lthough etymologil hyphention IST

is llowedY this is in ontrst with wht hppens in vtinD for exmpleD where etymologil hyphention is lwys usedF ine the ptterns for oth lnguges would eome too omplited in order to ope with etymologil hyphentionD in his pper feri proposed the de(nition of n tive hrter _9 suh tht it ould insert soft disretionry hyphen t the ompound word oundryF por severl resons tht ide nd the spei( tive hrter proved to e unprtil nd ws ndonedF his prolem is so importnt with the mjority of the iuropen lngugesD tht babel from the very eginning developed the trdition of mking the " hrter tive so s to perform severl tions tht turned useful with every lngugeF yne of these tions onsisted in de(ning the shortut "| tht ws extensively used in qermn nd in mny other lnguges in order to insert disretionry hyphen suh tht hyphention would not e preluded in the rest of the word s it hppens with the stndrd i ommnd \-F wenwhile the ec fonts with the doule gork enoding @thus formerly lled the dc fontsA hve eome more or less stndrd nd re widely used y virtully ll iuropens tht write lnguges with mny speil ntionl hrtersY y so doing they void the use of the \accent primitive whih would e required with the stndrd cm fontsY with the ltter fonts the primitive ommnd \accent is suh tht hyphention eomes lmost impossileD in ny se strongly impehedF he ec fonts ontin speil hrterD nmed ompound word mrkD tht oupies position PQ in the font sheme nd my e input with the sequene ^^WF p to nowD pprentlyD this speil hrter hs never een used in prtil wy for the typesetting of lnguges rih of ompound wordsY lso it hs never een inserted in the hyphention pttern (les of ny lngugeF feri modi(ed his pttern (le ithyph.tex v4.8b for stlin so s to ontin (ve new ptterns tht involve ^^WD nd he tried to give the babel tive hrter " new shortut de(nitionD so s to llow the insertion of the ompound word mrk in the proper ple within ny word where two semnti frgments join upF ith suh fility for mrking the ompound word oundriesD etymologil hyphention eomes possile even if the ptterns know nothing out etymology @ut the typesetE ter hopefully does3AF sn stlin suh etymologil hyphention is desirle with tehnil termsD hemil nmesD nd the likeF iven this solution proved to e inonvenient on ertin xB pltformsD so feri resorted to nother pproh tht uses the babel tive hrter " nd relies on the tegory ode of the hrter tht follows "F
30.47 30.48

inititedtivedhr{4}7 ddtoextrsitlin{ldtivte{4}lngugeshorthnds{itlin}}7

itdwm

he tive hrter " is now de(ned for lnguge italian so s to perform di'erent tions in mth mode ompred to text modeY spei(lly in mth mode doule quote is inserted so s to produe doule prime signD while in text mode the temporry mro \it@next is de(ned so s to defer ny further tion until the next token tegory ode hs een testedF

delredshorthnd{itlin}{4}{7 ifmmode 30.51 defitdnext{99}7 30.52 else 30.53 defitdnext{futureletitdtempitdwm}7 30.54 fi


30.49 30.50

ISU

30.55 30.56

itdnext }7

itdwm

he \it@next servie ontrol sequene is suh tht upon its exeution temporry vrile \it@temp is mde equivlent to the next token in the input list without tully removing itF uh temporry token is then tested y the mro \it@cwm nd if it is found to e letter tokenD then it introdues ompound word seprtor ontrol sequene \it@allowhyphens whose expnsion introdues disretionry hyphen nd n unrekle speY in se the token is not letterD then it is tested ginst |12 X if so ompound word seprtor is inserted nd the | token is removedD otherwise nother test is performed so s to see if nother doule quote sign followsX in this se doule open quote mrk is insertedD otherwise two other tests re performed so s to see if guillemets hve to e insertedD otherwise nothing is doneF he doule quote shortut for inserting doule open quote sign is useful for people who re inputting stlin text y mens of n stlin keyord tht unfortuntely misses the grve or ktik keyF fy this shortut "" eomes equivlent to `` for inserting rised open high doule quotesF

defitddwm{norekdisretionry{E}{}{}norekhskipzdskip}7 defitddop5I{itdop}defitddp5I{itdp}7 30.59 helreoustgommndB{itdwm}{letitddnextrelx 30.60 iftnoexpnditdtemp 7 30.61 defitddnext{itddwm}7 30.62 else 30.63 ifnoexpnditdtemp string|7 30.64 defitddnext{itddwmdgole}7 30.65 else 30.66 ifnoexpnditdtemp string`7 30.67 defitddnext{itddop}7 30.68 else 30.69 ifnoexpnditdtemp stringb7 30.70 defitddnext{itddp}7 30.71 else 30.72 ifnoexpnditdtempstringG7 30.73 defitddnext{slshdgole}7 30.74 else 30.75 ifxitdtemp47 30.76 defitddnext{dgole}7 30.77 fi 30.78 fi 30.79 fi 30.80 fi 30.81 fi 30.82 fi 30.83 itddnext}7
30.57 30.58

fy this de(nition of " if one types macro"istruzione the possile rek points eome ma-cro-istru-zio-neD while without the " mrk they would e ma-croi-struzio-neD ording to the phoneti rules suh tht the macro pre(x is not tken s unitF e hemil nme suh s des"clor"fenir"amina"cloridrato is rekle s des-clor-fe-nir-ami-na-clo-ri-dra-to insted of de-sclor-fe-ni-ra-mi-na-... sn other lnguge desription (les shortut is de(ned so s to llow rek point without tully inserting ny hyphen signY exmples re given suh s ISV

entrdGslidY tully if one wnts to llow rekpoint fter the slshD it is A muh lerer to type \slash insted of / nd v i does everything y itselfY here the shortut "/ ws introdued to stnd for \slash so tht one n type input"/output nd llow line rek fter the slshF his shortut works only for the slshD sine in stlin suh onstruts re extremely rreF ettentionX the expnsion of " tkes ple efore the tul expnsion of yI or I ented sequenes suh s \`{a}Y therefore this etymologil hyphention fility works s it should only when the semnti word frgments do not start with n ented letterY this in stlin is lwys voidleD euse ompulsory ents fll only on the lst vowelD ut it my e neessry to mrk ompound word where one or more omponents ome from foreign lnguge nd ontin diritil mrks ording to the spelling rules of tht lngugeF sn this se the speil shorthnd "| my e used tht performs extly s " normlly doesD exept tht the | sign is removed from the token input listX kilo"|{\"o}rsted gets hyphented s ki-lo-r-stedF

30.2 Facilities required by the ISO 31/XI regulations


he sy QIGs regultions require tht units of mesure re typeset in upright font in ny irumstneD mth or textD nd tht in text mode they re seprted from the numeril indition of the mesure with n unrekle @thinA speF he ommnd \unit tht ws de(ned for hieving this gol hppened to on)it with the homonymous ommnd de(ned y the pkge units.styY we therefore need to test if tht pkge hs lredy een loded so s to void on)itsY we ssume tht if the user lods tht pkgeD sGhe wnts to use tht pkge filities nd ommnd syntxF he sme regultions require lso tht super nd susripts @pies nd pediesA re in upright fontD not in math italicsD when they represent djetives or ppositions to mthemtil or physil vriles tht do not represent ountE le or mesurle entities suh sD for exmpleD Vmax or Vrms for mximum or root men squre voltgeD ompred to Vi or VT s the iEth voltge in setD or voltge tht depends on the thermodynmi temperture T F ee P for omplete desription of the sy regultions in onnetion with typesettingF wore rrely it hppens to use supersripts tht re not mthemtil vrilesD suh s the nottion AT to denote the trnspose of mtrix AY text supersripts re useful lso s ordinls or in old fshioned revitions in text modeY for exmple the feminine ordinl 1a or the old fshioned osolete revition plli for prtelli in ompny nmes @ompre with frosF for rothers in emerin inglishAY text susripts re mostly used in logosF
unit pirst we de(ne the new @internlA ommnds \bbl@unitD \bbl@apD nd \bbl@ped p s roust onesF ped30.84 difpkgeloded{units}{}{7 30.85 helreoustgommndB{ldunit}I{7 30.86 textormth{Dmox{5I}}{Dmthrm{5I}}}7 30.87 }7 30.88 helreoustgommndB{ldp}I{7 30.89 textormth{textsupersript{5I}}{{mthrm{5I}}}}7 30.90 helreoustgommndB{ldped}I{7 30.91 textormth{6{mox{fontsizesfdsizezd 30.92 seletfont5I}}6}{mthrm{5I}}}7

ISW

hen we n use \let to de(ne the user level ommndsD ut in se the mros lredy hve di'erent mening efore entering in stlin mode typesettingD we (rst memorize their mening so s to restore them on exitF
difpkgeloded{units}{}{7 ddtoextrsitlin{7 30.95 eldsveunitletunitldunit}7 30.96 }7 30.97 ddtoextrsitlin{7 30.98 eldsvepletpldp 30.99 eldsvepedletpedldped 30.100 }7
30.93 30.94

30.3 Accents
wost of the other lnguge desription (les introdue numer of shortuts for inserting ents nd other lnguge spei( diritil mrks in more omfortE le wy ompred with the lengthy stndrd i onventionsF hen n stlin keyord is eing used on indows sed pltformD it exhiits suh limittions tht up to now no onvenient shortuts hve een developedY the reson lies in the ft tht the stlin keyord lks the grve ent @lso known s ktikAD whih is ompulsory on ll ented vowels exept the e9D utD on the oppositeD it rries the keys with ll the ented lowerse vowelsY the keyord lks lso the tie ~ @tildeA keyD while the urly res require pressing three keys simultneouslyF he est solution stlins hve found so fr is to use smrt editor tht epts shortut de(nitions suh thtD for exmpleD y striking "( one gets diretly { on the sreen nd the sme sign is sved into the .tex (leY the sme smrt editor should e ple of trnslting the ented hrters into the stndrd i sequenes when writing (le to disk @for the ske of (le portilityAD nd to trnsform the stndrd i sequenes into the orresponding signs when loding .tex (le from disk to memoryF uh smrt editors do exist nd n e downloded from the ctan rhivesF por wht onerns the missing ktik keyD whih is used lso for inputting the open quotesD it must e notied tht the shortut "" desried ove ompletely solves the prolem for double rised open quotesY ording to the trditions of prtiulr pulishing housesD sine there re no ompulsory regultions on the mtterD the prenh guillemets my e usedY in this se the I font enoding solves the prolem y mens of its uilt in ligtures << nd >>F futF F F

30.4

Caporali or French double quotes

elthough the I font enoding ligtures solve the prolemD there re some irE umstnes where even the I font enoding nnot e usedD either euse the uthorGtypesetter wnts to use the yI enodingD or euse sGhe uses font set tht does not omply ompletely with the I font enodingY some virtul fontsD for exmpleD re supposed to implement the doule gork font enoding ut tuE lly miss some glyphsY one suh virtul font set is given y the ae virtul fontsD euse they re supposed to implement suh doule font enoding simply using the cm fontsD of whih the type I ostript version exists nd is freely villeF ine guillemets @in stlin caporali A do not exist in ny cm ltin fontD their glyphs must e sustituted with something else tht pprohes themF

ITH

ine in prenh typesetting guillemets re ompulsoryD the prenh lnguge A de(nition (le resorts to lever font sustitutionY suh (le exploits the v i P font seletion mhinery so s to get the guillemets from the gyrilli fontsD euse it su0es to lolly hnge the defult enodingF here re severl sets of gyrilli fontsD ut the ones tht oey the yP font enoding re generlly distriuted with ll reent implementtions of the i softwreY they re prt of the emerin wthemtil oiety fonts nd ome oth s METAFONT soure (les nd ype I ostript .pfb (lesF he vilility of suh fonts should e gurnteed y the presene of the OT2cmr.fd font desription (leF etully the presene of this (le A does not gurntee the ompleteness of your i implementtionY should v i omplin out missing gyrilli .tfm (le @tht kind of (le tht ontins the font metri prmetersA ndGor out missing gyrilli (FmfA (lesD then your i system is incomplete nd you should downlod suh fonts from the ctan rhivesF emporrily you my issue the ommnd \LtxSymbCaporali so s to pproximte A the missing glyphs with the v i symol fontsF sn some se wrning messges re issued so s to inform the typesetter out the neessity of resorting to some poor man solutionF sn spite of these lternte fontsD we must void invoking unusul fonts if the ville enoding llows to use uilt in porliF es fr s s know @gfA the only IEenoded font fmilies tht miss the guillemets re the ei onesY we therefore (rst test if the defult enoding id the I one nd in this se if the ei fmilies re the defult onesY in order for this to work properly it is neessry to lod these optionl pkges before babelF sf the I enoding is not the defult one when the stlin lnguge is spei(edD then some sustitutions must e doneF
vtxymgporli itdop itdp

e de(ne some mros for sustituting the defult guillemetsY (rst the emultion A y mens of the v i symolsY eh one of these mro sets tully rede(nes the ontrol sequenes \it@ocap nd \it@ccap tht re the ones e'etively tivted y the shortuts "< nd ">F

defvtxymgporli{7 helreoustgommndB{itdop}{mox{7 30.103 fontenoding{}fontfmily{lsy}seletfont@kernEHFPHem@}7 30.104 ignorespes}7 30.105 helreoustgommndB{itdp}{ifdimlstskipbzdunskipfi 30.106 mox{7 30.107 fontenoding{}fontfmily{lsy}seletfontAkernEHFPHemA}}7 30.108 }7
30.101 30.102

hen the sustitution with ny spei( font tht ontins suh glyphsY it might e the gfgreek fontsD the gyrilli oneD the superEm onesD the lm onesD or ny other the user might prefer @the ode is dpted from the one tht ppers in the frenchb.ld (leY thnks to hniel plipoAF fy defult if the user did not selet the I enodingD the existene of the gfgreek fonts is testedY if they exist the guillemets re tken from this fontD nd sine its fmilies re superset of the defult gw ones nd they pply lso to typeset slides with the stndrd lss slidesF sf the gfgreek fonts re not foundD then the existene of the gyrilli ones is testedD lthough this hoie is not suited for typesetting slidesY otherwise A the poor mn solution of the v i speil symols is usedF sn ny se the user n fore the use of the gyrilli guillemets sustitution y issuing the delrtion \CyrillicCaporali just efore the \begin{document} sttementY in lterntive the user n speify with ITI

\CaporaliFrom{

encoding

}{

family

}{

opening number

}{

closing number

the enoding nd fmily of the font sGhe prefersD nd the slot numers of the opening nd losing guillemets respetivelyF por exmple if the IEenoded vtin wodern fonts re desired the spei( ommnd should e

\CaporaliFrom{T1}{lmr}{19}{20}
hese user hoies might e neessry for ssuring the orret typesetting with fonts tht ontin the required glyphs nd re ville lso in ostript form so s to use them diretly with pdflatexD for exmpleF
defgporliprom5I5P5Q5R{7 helrepontinoding{5I}{}{}7 30.111 helreextgommnd{itdop}{I}{7 30.112 {fontenoding{5I}fontfmily{5P}seletfonthr5Qignorespes}}7 30.113 helreextgommnd{itdp}{I}{ifdimlstskipbzdunskipfi7 30.114 {fontenoding{5I}fontfmily{5P}seletfonthr5R}}7 30.115 helreextgommnd{itdop}{yI}{7 30.116 {fontenoding{5I}fontfmily{5P}seletfonthr5Qignorespes}}7 30.117 helreextgommnd{itdp}{yI}{ifdimlstskipbzdunskipfi7 30.118 {fontenoding{5I}fontfmily{5P}seletfonthr5R}}}
30.109 30.110

hen we set oolen vrile nd test the defult fmilyY if suh fmily hs nme tht strts with the letters e then we hve no uilt in guillemetsY of ourse if the ei font fmily is hosen fter the babel pkge is lodedD the test does not perform s requiredF
defgetde5I5P5Q3{deflde{5I5P}}7 defdifdonednogp{expndftergetdefdfmily37 30.121 defldtemp{e}ifxldeldtempexpndfterdfirstoftwoelse 30.122 expndfterdseondoftwofi}7
30.119 30.120

e set nother ouple of oolen vriles for testing the existene of the gfgreek or the gyrilli fonts
newififdgfgreekinunown sfpileixists{lgrmrFfd}7 30.125 {dgfgreekinunowntrue}{dgfgreekinunownflse} 30.126 newififdgyrinunown 30.127 sfpileixists{otPmrFfd}7 30.128 {dgyrinunowntrue}{dgyrinunownflse}7
30.123 30.124

gfgreekgporli gyrilligporli dunogporli

xext we de(ne the mros \CBgreekCaporaliD \T@unoCaporaliD nd \CyrillicCaporaliY with the ltter one we test the loded lssD nd if it9s slides nothing gets doneF sn ny se eh one of these delrtionsD if usedD must e spei(ed in the premleF

defgfgreekgporli{diflssloded{slides}{7 sfpileixists{lgrlmssFfd}{helrepontinoding{vq}{}{}7 30.131 helreoustgommndB{itdp}7 30.132 {ifdimlstskipbzdunskipfi 30.133 {fontenoding{vq}seletfontAA}}7 30.134 helreoustgommndB{itdop}7 30.135 {{fontenoding{vq}seletfont@@}ignorespes}}7 30.136 {vtxymgporli}}7 30.137 {helrepontinoding{vq}{}{}7 30.138 helreoustgommndB{itdp}7 30.139 {ifdimlstskipbzdunskip
30.129 30.130

ITP

30.140

fi{fontenoding{vq}seletfontAA}}7 helreoustgommndB{itdop}7 30.142 {{fontenoding{vq}seletfont@@}ignorespes}}7 30.143 }7 30.144 defgyrilligporli{diflssloded{slides}{relx}7 30.145 {helrepontinoding{yP}{}{}7 30.146 helreoustgommndB{itdp}7 30.147 {ifdimlstskipbzdunskipfi 30.148 {fontenoding{yP}seletfonthrTPrelx}}7 30.149 helreoustgommndB{itdop}7 30.150 {{fontenoding{yP}seletfonthrTHrelx}ignorespes}}}7 30.151 donlypremle{gfgreekgporli}donlypremle{gyrilligporli}7 30.152 defdunogporli{helreoustgommndB{itdop}{``ignorespes}7 30.153 helreoustgommndB{itdp}{ifdimlstskipbzdunskipfibb}}7
30.141

xow we n do some rel settingY (rst we strt testing the enodingY if the enoding is I we test if the font fmily is the ei oneY if soD we further test for other possiilities
ifxfdenodingldtdone difdonednogp{7 30.156 ifdgfgreekinunown 30.157 gfgreekgporli 30.158 else 30.159 ifdgyrinunown 30.160 gyriligporli 30.161 else 30.162 vtxymgporli 30.163 fi 30.164 fi}7 30.165 {dunogporli}7
30.154 30.155

fut if the defult enoding is not the I oneD then the sustitutions must e performedF
else ifdgfgreekinunown 30.168 gfgreekgporli 30.169 else 30.170 ifdgyrinunown 30.171 gyriligporli 30.172 else 30.173 vtxymgporli 30.174 fi 30.175 fi 30.176 fi
30.166 30.167

30.5 Finishing commands


he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
30.177 30.178

ldfdfinish{itlin}7 /code

ITQ

References
I feri gFD gomputer eided ryphention for stlin nd wodern vtinD TUGboat volF IQD nF ID ppF PQEQQ @IWWPAF P feri gFD ypesetting mthemtis for siene nd tehnology ording to sy QIGsD TUGboat volF IVD nF ID ppF QWERV @IWWUAF

ITR

31

The Latin language

he (le latin.dtx31 de(nes ll the lngugeEspei( mros for the vtin lnE guge oth in modern nd medievl spellingF por this lnguge the \clubpenaltyD \widowpenalty re set to rther high vlues nd \finalhyphendemerits is set to suh high vlue tht hyphention is prohiited etween the lst two lines of prgrphF por this lnguge two styles of typesetting re implementedX regulr or modernEspelling vtinD nd medievl vtinF he medievl vtin spei( omE mnds n e tivted y mens of the lnguge ttriute medievalY the meE dievl spelling di'ers from the modern one y the systemti use of the lower se u9 lso where in modern spelling the letter v9 is usedY when typesetting with pitl lettersD on the oppositeD the letter 99 is used lso in ple of 99F wedievl spelling lso inludes the ligtures \ae @AD \oe @AD \AE @AD nd \OE @A tht re not used in modern spellingD nor were used in the lssil timesF purthermore third typesetting style withprosodicmarks is de(ned in order to use speil shortuts for inserting reves nd mrons when typesetting grmmrsD ditionriesD tehing textsD nd the likeD where prosodi mrks re importnt for the omplete informtion on the words or the versesF he shortutsD listed in tle U nd desried in setion QPD my interfere with other pkgesY therefore y defult this third style is o' nd no interferene is introduedF sf this third style is used nd interferene is experienedD there re speil ommnds for turning on nd o' the spei( short hnd ommnds of this styleF A por wht onerns babel nd typesetting with v iD the di'erenes etween the two styles of spelling revel themselves in the strings used to nme for exmple the refe tht eomes reftio or rftio respetivelyF ryphention rules re lso di'erentD ut the hyphention pttern (le lahyph.tex tkes re of oth versions of the lngugeF xeedless to sy tht suh ptterns must e loded A in the v i formt y running initex @or whtever the nme if the initilizerA on latex.ltxF he nme strings for hptersD (guresD tlesD eteterD re suggested y profF 'ell oD lssiist of the niversity of urinD stlyD to whom we ddress our wrmest thnksF he nmes suggested y urzysztof uonrd elehowskiD when di'erentD re used s the nmes for the medievl vrietyD sine he mde word nd spelling hoie more suited for this vrietyF por this lnguge some shortuts re de(ned ording to tle UY ll of them re supposed to work with oth spelling stylesD exept where the opposite is exE pliitly sttedF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
31.1 31.2

code vdfsnit{ltin}{ptionsltin}

hen this (le is red s n optionD iFeF y the \usepackage ommndD latin will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@latin to see whether we hve to do something hereF
31.3

ifxldltindundefined
le described in this section has version number v2.0k and was last revised on The original author is Claudio Beccari with contributions by Krzysztof Konrad

31 The

2008/03/21.

elechowski, (kkz@alfa.mimuw.edu.pl)

ITS

^i =a " "|

inserts the reve ent s vlid lso for the other %Y lowerse vowelsD ut it does not operte on the meE dievl ligtures nd F inserts the mron ent s Y vlid lso for the other lowerse vowelsD ut it does not operte on the medievl ligtures nd F inserts ompound word mrk where hyphention is leglY the next hrter must not e medievl ligE ture or D nor n ented letter @foreign nmesAF sme s oveD ut opertes lso when the next hrE ter is medievl ligture or n ented letterF

le UX hortuts de(ned for the vtin lngugeF he hrters ^ nd = re tive only when the lnguge ttriute withprosodicmarks hs een delredD otherwise they re disledY see setion QP for more detilsF
31.4 31.5

dnoptterns{vtin} dddiletldltinHfi

xow we delre the medieval lnguge ttriuteF


lddelredttriute{ltin}{medievl}{7 ddtoptionsltin{defprefenme{r{e}ftio}}7 31.8 defnovemer{xouemris}7 31.9 expndfterddtoexpndfterextrsltin 31.10 expndfter{extrsmedievlltin}7 31.11 }
31.6 31.7

he third typesetting style withprosodicmarks is de(ned here


lddelredttriute{ltin}{withprosodimrks}{7 expndfterddtoexpndfterextrsltin 31.14 expndfter{extrswithprosodimrks}7 31.15 }
31.12 31.13

st must e rememered tht the medieval nd the withprosodicmarks styles my e used togetherF he next step onsists of de(ning ommnds to swith to @nd fromA the vtin lnguge32 F
ptionsltin

dnmedef{ptionsltin}{7 defprefenme{reftio}7 31.18 defrefnme{gonspetus lirorum}7 31.19 defstrtnme{ummrium}7 31.20 definme{gonspetus lirorum}7 31.21 defhpternme{gput}7 31.22 defppendixnme{edditmentum}7 31.23 defontentsnme{sndex}7 31.24 deflistfigurenme{gonspetus desriptionum}7 31.25 deflisttlenme{gonspetus tulrum}7 31.26 defindexnme{sndex rerum notilium}7
31.16 31.17

he mro \captionslatin de(nes ll strings used in the four stndrd doument A lsses provided with v iF

32 Most

of these names were kindly suggested by Raaella Tabacco.

ITT

31.27 31.28 31.29 31.30 31.31 31.32 31.33 31.34 31.35 31.36 31.37 31.38

deffigurenme{hesriptio}7 deftlenme{ul}7 defprtnme{rs}7 defenlnme{edduntur}7 yr 4 edditur4 c yr simply eddFc defnme{ixemplr}7 se the reipient9s dtive defhedtonme{ignorespes}7 se the reipient9s dtive defpgenme{ghrt}7 defseenme{frF}7 deflsonme{frF}7 Fo never sw 4frF tque4 or similr forms defproofnme{hemonstrtio}7 defglossrynme{qlossrium}7 }

sn the ove de(nitions there re some points tht might hnge in the future or tht require minimum of ttention from the typesetterF IF the \enclname is trnslted y pssive verD tht literlly mens @theyA re eing ddedY if just one enlosure is joined to the doumentD the plurl pssive is not suited ny moreY nevertheless generi plurl pssive might e inorret ut suited for most irumstnesF yn the opposite edditurD the orresponding singulr pssiveD might e more orret with one enlosure nd less suited in generlX wht out the revition eddF tht works in oth sesD ut ertinly is less elegntc PF he \headtoname is empty nd goles the possile following speY in prE tie the typesetter should use the dtive of the reipient9s nmeY sine nowE dys not ll suh nmes n e trnslted into vtinD they might result indelinleF he lever use of n ppelltive y the typesetter suh s homino or homine might solve the prolemD ut the heder might get too impressiveF he typesetter must mke deision on his ownF QF he sme holds true for the opy reipient9s nme in the g (eld of \ccnameF
dteltin

he mro \datelatin rede(nes the ommnd \today to produe vtin dtesY the hoie of fked smll ps vtin numerls is ritrry nd my e hnged in the futureF por medievl ltin the spelling of xovemris9 should e NouembrisF his is tken re of y using ontrol sequene whih n e rede(ned when the ttriute medievl9 is seletedF

defdteltin{7 defnovemer{xovemris}7 31.41 deftody{7 31.42 {hekdmthfontsfontsizesfdsizezdmthdfontsflseseletfont 31.43 upperseexpndfter{romnnumerldy}}~ifsemonthor 31.44 snuriior peruriior wrtiior eprilisor wiior suniior 31.45 suliior eugustior eptemrisor ytorisor novemeror 31.46 heemrisfi 31.47 spe{upperseexpndfter{romnnumerlyer}}}}
31.39 31.40

romndte

homs wrtin idmnn @viralbus@daimi.au.dkA developed mro originlly nmed \latindate @ut to e renmed \romandate so s not to on)it with the stndrd babel onventionsA tht should ompute nd trnslte the urrent dte into dte ab urbe condita with dys numered ording to the klende nd idusY ITU

for the moment this is pleholder for homs9 mroD witing for self stnding one tht keeps lol ll the intermedite dtD ountersD etF sf he sueedsD here is the ple to dd his mroF
ltinhyphenmins

he vtin hyphention ptterns n e used with oth \lefthyphenmin nd \righthyphenmin set to PF


providehyphenmins{gurrentyption}{twdtwd}

31.48

extrsltin vower the hne tht lus or widows ourF noextrsltin31.49 ddtoextrsltin{7 31.50 eldsvevrilelupenlty 31.51 eldsvevriledlupenlty 31.52 eldsvevrilewidowpenlty 31.53 lupenltyQHHHdlupenltyQHHHwidowpenltyQHHH}

xever ever rek word etween the lst two lines of prgrph in ltin textsF
ddtoextrsltin{7 eldsvevrilefinlhyphendemerits 31.56 finlhyphendemeritsSHHHHHHH}
31.54 31.55

ith medievl vtin we need the suitle orrespondene etween upper se nd lower se uD sine in tht spelling there is only one signD nd the u shpe is the @unilA version of the pitl F iverything else is identil with vtinF
ddtoextrsmedievlltin{7 eldsvevrile{lode}7 31.59 eldsvevrile{uodeu}7 31.60 lodeau uodeua}
31.57 31.58

etvtinvigtures

e need lso the lodes for nd Y sine they oupy di'erent positions in the yI iEfontenoding ompred to the I oneD we must sve the lE nd the uodes for oth enodingsD ut we speify the new lE nd uodes seprtely s it ppers nturl not to hnge enoding while typesetting the sme lngugeF he enoding is ssumed to e set efore strting to use the vtin lngugeD so tht if vtin is the defult lngugeD the font enoding must e hosen efore requiring the babel pkge with the latin optionD in ny se efore ny \selectlanguage or \foreignlanguage ommndF ell this fuss is mde in order to llow the use of the medievl ligtures nd while typesetting with the medievl spellingY s hve my douts tht the medievl spelling should e used t ll in modern ooksD reportsD nd the likeY the unil u9 shpe of the lower se v9 nd the ove ligtures were fny styles of the opyists who were le to write fster with those rounded glyphsY with typesetting there is no question of hndling quill pennF F F ine my @gfA opinion my e wrongD s mnged to set up the instruments nd it is up to the typesetter to use them or notF
I I I I I I yI e e ei oe yi yi e

ddtoextrsmedievlltin{7 eldsvevrile{lodeeT}7 31.63 eldsvevrile{uodeeT}7 31.64 eldsvevrile{lodeT}7 31.65 eldsvevrile{lodefU}7 31.66 eldsvevrile{uodefU}7 31.67 eldsvevrile{lodedU}7 31.68 eldsvevrile{lodeI}7
31.61 31.62

ITV

eldsvevrile{uodeI}7 yI eldsvevrile{lodeId}7 yI 31.71 eldsvevrile{lodeI}7 yI 31.72 eldsvevrile{uodeI}7 yI 31.73 eldsvevrile{lodeIe}7 yI 31.74 etvtinvigtures} 31.75 provideommndetvtinvigtures{7 31.76 defdtempe{I}ifxdtempefdenoding 31.77 todeeTaII lodeeTaeT 31.78 todeTaII lodeTaeT 31.79 todefUaII lodefUafU 31.80 todedUaII lodedUafU 31.81 else 31.82 todeIaII lodeIaI 31.83 todeIdaII lodeIdaI 31.84 todeIaII lodeIaI 31.85 todeIeaII lodeIeaI 31.86 fi 31.87 letdtempedundefined 31.88 }
31.69 31.70

e ei oe yi yi

uodeeTaT 7 e 7 ei uodefUadU 7 oe 7 yi uodeIaId 7 e 7 ei @A uodeIaIe 7 oe 7 yi @A

ith the ove de(nitions we re sure tht \MakeUppercase works properly nd \MakeUppercase{C{\ae}sar} orretly yields geY orrespondingly \MakeUppercase{Heluetia} orretly yields riviseF

32

Latin shortcuts

por writing ditionries or didti texts @in modern spelling onlyA we de(ned third lnguge ttriuteD or third typesetting styleD ouple of other tive hrE ters re de(nedX ^ for mrking vowel with the reve signD nd = for mrking vowel with the mro signF lese tke notie tht neither the yI font enodingD nor the I one for most vowelsD ontin diretly the mrked vowelsD therefore hyE phention of words ontining these ents my eome prolemtiY for this reson the ove tive hrters not only introdue the required entD ut lso n unrekle zero skip tht in prtie does not introdue disretionry rekD ut llows reks in the rest of the wordF st must e remrked tht the tive hrters ^ nd = my hve other menE ings in other ontextsF por exmple the equls sign is used y the grphi exE tensions for speifying keyword options for hndling the grphi elements to e inluded in the doumentF et the sme timeD s mentioned in the previous prE grphD diritil mrking in vtin is used only for typesetting ertin kind of doumentsD suh s grmmrs nd ditionriesF st is resonle tht the reve nd mron tive hrters re swithed on nd o' t willD nd in prtiulr tht they re o' y defult if the ttriute withprosodicmarks hs not een setF
rosodiwrksyn rosodiwrksyff

e egin y dding to the norml typesetting style the de(nitions of the new ommnds \ProsodicMarksOn nd \ProsodicMarksOff tht should produe error messges when the third style is not delredX
ddtoextrsltin{defrosodiwrksyn{7 qeneriirror{@ltinAdspesdspesdspesdspes}7 32.3 {vtin lnguge errorX stringrosodiwrksynspe 32.4 is defined y setting thewessgefrek
32.1 32.2

ITW

lnguge ttriute to withprosodimrks9wessgefrek sf you ontinue you re likely to enounterwessgefrek 32.7 ftl errors tht s n9t reover}7 32.8 {ee the vtin lnguge desription in the el 32.9 doumenttion for explntion}{dehd}}} 32.10 ddtoextrsltin{letrosodiwrksyffrelx}
32.5 32.6

hen we temporrily set the ret nd the equls sign to tive hrters so tht they n reeive their de(nitionsF fut (rst we store their urrent tegory odes to restore them lter onF
dtempntatodea dtempntatode 32.13 todea tive 32.14 tode tive
32.11 32.12

xow we n dd the neessry delrtions to the mros tht re eing tivted when the vtin lnguge nd its typesetting styles re delredX
ddtoextrsltin{lngugeshorthnds{ltin}}7 ddtoextrswithprosodimrks{ldtivte{}}7 32.17 ddtoextrswithprosodimrks{ldtivte{a}}7 32.18 ddtonoextrswithprosodimrks{lddetivte{}}7 32.19 ddtonoextrswithprosodimrks{lddetivte{a}}7 32.20 ddtoextrswithprosodimrks{rosodiwrks}
32.15 32.16

rosodiwrks

xext we de(ne the de(ning mro for the tive hrters

defrosodiwrks{7 defrosodiwrksyn{tode tivetodea tive}7 32.23 defrosodiwrksyff{tode Utodea IPrelx}7


32.21 32.22

xotie tht with the ove rede(nitions of the ommnds \ProsodicMarksOn nd \ProsodicMarksOffD the opertion of the newly de(ned shortuts my e swithed on nd o' t willD so tht even if piture hs to e inserted in the doument y mens of the ommnds nd keyword options of the graphicx pkgeD it su0es to swith them o' efore invoking the piture inluding ommndD nd swithed on gin fterwrdsY orD even etterD sine the piture very likely is eing inserted within figure environmentD it su0es to swith them o' within the environmentD eing onsious tht their detivtion remins lol to the environmentF
32.24 32.25 32.26 32.27 32.28 32.29 32.30 32.31 32.32 32.33 32.34 32.35 32.36 32.37 32.38 32.39 32.40

inititedtivedhr{}7 inititedtivedhr{a}7 delredshorthnd{ltin}{}{7 textormth{u{}ldllowhyphens}{ht{}}}7 delredshorthnd{ltin}{e}{7 textormth{u{e}ldllowhyphens}{ht{e}}}7 delredshorthnd{ltin}{i}{7 textormth{u{i}ldllowhyphens}{ht{imth}}}7 delredshorthnd{ltin}{o}{7 textormth{u{o}ldllowhyphens}{ht{o}}}7 delredshorthnd{ltin}{u}{7 textormth{u{u}ldllowhyphens}{ht{u}}}7 delredshorthnd{ltin}{a}{7 textormth{a{}ldllowhyphens}{r{}}}7 delredshorthnd{ltin}{ae}{7 textormth{a{e}ldllowhyphens}{r{e}}}7

IUH

32.41 32.42 32.43 32.44 32.45 32.46 32.47

delredshorthnd{ltin}{ai}{7 textormth{a{i}ldllowhyphens}{r{imth}}}7 delredshorthnd{ltin}{ao}{7 textormth{a{o}ldllowhyphens}{r{o}}}7 delredshorthnd{ltin}{au}{7 textormth{a{u}ldllowhyphens}{r{u}}}7

xotie tht the short hnd de(nitions re given only for lower se lettersY it would not e di0ult to extend the set of de(nitions to upper se lettersD ut it ppers of very little use in view of the kind of douments where prosodi mrks re supposed to e usedF xevertheless in those rre ses when it9s required to set some upperse letters with their prosodi mrksD it is lwys possile to A use the stndrd v i ommnds suh s \u{I} for typesetting or \={A} for sD typesetting eF pinlly we restore the ret nd equls sign initil defult tegory odesF
32.48 32.49

todea dtempnt tode dtempnt

so s to void on)its with other pkges or other babel optionsF


vtinwrksyn vtinwrksyff

e de(ne two new ommnds so s to swith on nd o' the reve nd mron shortutsF
ddtoextrswithprosodimrks{letvtinwrksynrosodiwrksyn} ddtoextrswithprosodimrks{letvtinwrksyffrosodiwrksyff}

32.50 32.51

st must e understood tht y using the ove prosodi mrksD line reking is somewht impehedY sine suh prosodi mrks re used lmost exlusively in ditionriesD grmmrsD nd poems @only in shool textooksAD this shouldn9t e of ny importne for wht onerns the qulity of typesettingF

33

Etymological hyphenation

sn order to del in len wy with pre(xes nd ompound words to e divided etymologillyD the tive hrter " is given speil de(nition so s to ehve s disretionry rek with hyphention llowed fter itF wost of the ode for deling with the tive " is lredy ontined in the ore of babelD ut we re going to use it s single hrter shorthnd for vtinF
inititedtivedhr{4}7 ddtoextrsltin{ldtivte{4}7 33.3 }
33.1 33.2

e temporry mro is de(ned so s to tke di'erent tions in mth mode nd text modeX spei(lly in the former se the mro inserts doule quote s it should in mth modeD otherwise nother delyed mro omes into tionF
delredshorthnd{ltin}{4}{7 ifmmode 33.6 defltddnext{99}7 33.7 else 33.8 defltddnext{futureletltdtempltdwm}7 33.9 fi 33.10 ltddnext 33.11 }7
33.4 33.5

IUI

sn text mode the \lt@next ontrol sequene is suh tht upon its exeution temporry vrile \lt@temp is mde equivlent to the next token in the input list without tully removing itF uh temporry token is then tested y the mro \lt@cwm nd if it is found to e letter tokenD then it introdues ompound word seprtor ontrol sequene \lt@allowhyphens whose expnsion introdues disretionry hyphen nd n unrekle speY in se the token is not letterD the token is tested gin to (nd if it is the hrter |D in whih se it is goled nd disretionry rek is introduedF
defltdllowhyphens{norekdisretionry{E}{}{}norekhskipzdskip} newommndB{ltdwm}{letltdndxtrelx 33.14 iftnoexpndltdtemp 7 33.15 letltdndxtltdllowhyphens 33.16 else 33.17 ifnoexpndltdtempstring|7 33.18 defltdndxt{ltdllowhyphensdgole}7 33.19 fi 33.20 fi 33.21 ltdndxt}7
33.12 33.13

ettentionX the tegory ode omprison does not work if the temporry ontrol sequene \lt@temp hs een let equl to n impliit hrterD suh s \aeY therefore this etymologil hyphention fility does not work with medievl vtin spelling when " immeditely preedes ligtureF sn order to overome this drwk the shorthnd "| my e used in suh sesY it ehves extly s "D ut it does not test the impliit hrter ontrol sequeneF en input suh s super"|{\ae}quitas33 gets hyphented s su-per-qui-tas insted of su-pe-r-qui-tasF he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
33.22 33.23

ldfdfinish{ltin} /code

33 This

word does not exist in regular Latin, and it is used just as an example.

IUP

34

The Portuguese language

he (le portuges.dtx34 de(nes ll the lngugeEspei( mros for the orE tuguese lnguge s well s for the frsilin version of this lngugeF por this lnguge the hrter " is mde tiveF sn tle V n overview is given of its purposeF

"| """ "< "> \-

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for words tht should rek t some sign suh s entrdGslidF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF like the old \-D ut llowing hyphention in the rest of the wordF

le VX he extr de(nitions mde y portuges.ldf he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
34.1 34.2

code vdfsnitgurrentyption{ptionsgurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD portuges will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@portuges to see whether we hve to do someE thing hereF ine it is possile to lod this (le with ny of the following four options to elX portugesD portugueseD brazil nd brazilian we lso llow tht the hyphention ptterns re loded under ny of these four nmesF e just hve to (nd out whih one ws usedF
ifxldportugesdundefined ifxldportuguesedundefined 34.5 ifxldrzildundefined 34.6 ifxldrzilindundefined 34.7 dnoptterns{ortuguese} 34.8 dddiletldportugesH 34.9 else 34.10 letldportugesldrzilin 34.11 fi 34.12 else 34.13 letldportugesldrzil 34.14 fi 34.15 else 34.16 letldportugesldportuguese 34.17 fi 34.18 fi
34.3 34.4

fy now \l@portuges is de(nedF hen the lnguge de(nition (le ws loded under di'erent nme we mke sure tht the hyphention ptterns n e foundF
34 The
le described in this section has version number v1.2q and was last revised on Contributions were made by Jose Pedro Ramalhete and Arnaldo Viegas de Lima (JRAMALHE@CERNVM arnaldo@VNET.IBM.COM. or 2008/03/18.

Jose-Pedro_Ramalhete@MACMAIL)

IUQ

expndfterifxsnme ldgurrentyptionendsnmerelx expndfterletsnme ldgurrentyptionendsnmeldportuges 34.21 fi


34.19 34.20

xow we hve to deide whether this lnguge de(nition (le ws loded for ortuguese or frsilin useF his n e done y heking the ontents of \CurrentOptionF hen it doesn9t ontin either portuges9 or portuguese9 we mke \bbl@tempb emptyF
defldtemp{portuguese} ifxgurrentyptionldtemp 34.24 letldtempdempty 34.25 else 34.26 defldtemp{portuges} 34.27 ifxgurrentyptionldtemp 34.28 letldtempdempty 34.29 else 34.30 defldtemp{rzil} 34.31 fi 34.32 fi 34.33 ifxldtempdempty
34.22 34.23

he next step onsists of de(ning ommnds to swith to @nd fromA the orE tuguese lngugeF
ptionsportuges

he mro \captionsportuges de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF
dnmedef{ptionsgurrentyption}{7 defprefenme{ref9io}7 defrefnme{eferenis}7 defstrtnme{esumo}7 definme{filiogrfi}7 defhpternme{gp9{i}tulo}7 defppendixnme{ependie}7

34.34 34.35 34.36 34.37 34.38 34.39 34.40

ome disussion took ple round the orret trnsltions for le of gontents9 nd sndex9F the trnsltions di'er for ortuguese nd frsilin sed the followE ing historyX he whole issue is tht some ooks without rel index t the end misused the term ndie9 s tle of ontentsF henD wht hppens is tht some ooks pered with ndie9 t the egining nd ndie emissivo9 t the endF emissivo is redundnt word in this seD ut ws introdued to mke up the di'ereneF o in frsil people strted using umrio9 nd ndie emissivo9F sn ortugl this seems not to e very ommonD therefore we hose ndie9 insted of ndie emissivo9F
34.41 34.42 34.43 34.44 34.45 34.46 34.47 34.48

defontentsnme{gonte9udo}7 deflistfigurenme{vist de pigurs}7 deflisttlenme{vist de els}7 defindexnme{9sndie}7 deffigurenme{pigur}7 deftlenme{el}7 defprtnme{rte}7 defenlnme{enexo}7

IUR

34.49 34.50 34.51 34.52 34.53

defnme{gom 9opi }7 defhedtonme{r}7 defpgenme{9gin}7 defseenme{ver}7 deflsonme{ver tm9em}7 defproofnme{hemonstr{}~o}7 defglossrynme{qloss9rio}7 }

en lternte term for roof9 ould e rov9F


34.54 34.55 34.56

dteportuges

he mro \dateportuges rede(nes the ommnd \today to produe ortuguese dtesF

dnmedef{dtegurrentyption}{7 deftody{numerdyspe despeifsemonthor 34.59 tneiroor pevereiroor wr{}oor erilor wioor tunhoor 34.60 tulhoor egostoor etemroor yuturoor xovemroor hezemro7 34.61 fi 34.62 spe despenumeryer}} 34.63 else
34.57 34.58

por the frsilin version of these de(nitions we just dd diletF


34.64 34.65

expndfter dddiletsnme ldgurrentyptionendsnmeldportuges

ptionsrzil

he ptions re di'erent for oth versions of the lngugeD so we de(ne the mro \captionsbrazil hereF
dnmedef{ptionsgurrentyption}{7 defprefenme{ref9io}7 defrefnme{eferenis}7 defstrtnme{esumo}7 definme{eferenis filiogr9fis}7 defhpternme{gp9{i}tulo}7 defppendixnme{ependie}7 defontentsnme{um9rio}7 deflistfigurenme{vist de pigurs}7 deflisttlenme{vist de els}7 defindexnme{9sndie emissivo}7 deffigurenme{pigur}7 deftlenme{el}7 defprtnme{rte}7 defenlnme{enexo}7 defnme{g9opi pr}7 defhedtonme{r}7 defpgenme{9gin}7 defseenme{vej}7 deflsonme{vej tm9em}7 defproofnme{hemonstr{}~o}7 defglossrynme{qloss9rio}7 }

34.66 34.67 34.68 34.69 34.70 34.71 34.72 34.73 34.74 34.75 34.76 34.77 34.78 34.79 34.80 34.81 34.82 34.83 34.84 34.85 34.86 34.87 34.88

dterzil

he mro \datebrazil rede(nes the ommnd \today to produe frsilin dtesD for whih the nmes of the months re not pitlizedF

IUS

dnmedef{dtegurrentyption}{7 deftody{numerdyspe despeifsemonthor 34.91 jneiroor fevereiroor mr{}oor rilor mioor junhoor 34.92 julhoor gostoor setemroor outuroor novemroor dezemro7 34.93 fi 34.94 spe despenumeryer}} 34.95 fi
34.89 34.90

portugeshyphenmins extrsportuges noextrsportuges

et orret vlues for \lefthyphenmin nd \righthyphenminF


providehyphenmins{gurrentyption}{twdthrdd}

34.96

he mro \extrasportuges will perform ll the extr de(nitions needed for the ortuguese lngugeF he mro \noextrasportuges is used to nel the tions of \extrasportugesF por ortuguese the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the portuguese group of shorthnds should e usedF

inititedtivedhr{4} dnmedef{extrsgurrentyption}{lngugeshorthnds{portuges}} 34.99 expndfterddtosnme extrsgurrentyptionendsnme{7 34.100 ldtivte{4}}


34.97 34.98

hon9t forget to turn the shorthnds o' ginF


34.101

ddtonoextrsportuges{lddetivte{4}}

pirst we de(ne ess to the guillemets for quottionsD


delredshorthnd{portuges}{4`}{7 textormth{guillemotleft}{mox{guillemotleft}}} 34.104 delredshorthnd{portuges}{4b}{7 34.105 textormth{guillemotright}{mox{guillemotright}}}
34.102 34.103

then we de(ne two shorthnds to e le to speify hyphention rekpoints tht ehve little di'erent from \-F
34.106 34.107

delredshorthnd{portuges}{4E}{norekEldllowhyphens} delredshorthnd{portuges}{44}{hskipzdskip} delredshorthnd{portuges}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

end we wnt to hve shorthnd for disling ligtureF


34.108 34.109

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsveE} 34.112 expndfterddtosnme extrsgurrentyptionendsnme{7 34.113 defE{llowhyphensdisretionry{E}{}{}llowhyphens}}


34.110 34.111

ell tht is left now is the rede(nition of \-F he new version of \- should indite n extr hyphention positionD while llowing other hyphention positions to e generted utomtillyF he stndrd ehviour of i in this respet is very unfortunte for lnguges suh s huth nd qermnD where long ompound words re quite norml nd ll one needs is mens to indite n extr hyphention position on top of the ones tht i n generte from the hyphention ptternsF

IUT

ord e lso provide n esy wy to typeset ordinlsD oth in the mle @\ord or \roA ro nd the femle @orda or \raA formF ord 34.114 deford{6{rm o}6} r 34.115 deford{6{rm }6} 34.116 letroordletrord

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
34.117 34.118

ldfdfinishgurrentyption /code

IUU

35

The Spanish language

he (le spanish.dtx35 de(nes ll the lngugeEspei( mros for the pnish lngugeF pnish support is implemented following minly the guidelines given y tos wrtnez de ousF ou my get the the full doumenttion @more omprehensiveD ut regrettly only in pnishA y typesetting spanish.dtx diretlyF here re exmples nd some dditionl fetures doumented in the pnish version onlyF grossEreferenes in this setion point to tht doumentF

Features his style providesX


A rnsltions following the snterntionl v i onventionsD s well s \todayF

horthnds listed in le WF ixmples in susetion QFR re illustrtiveF xotie tht "~ hs speil mening in spanish di'erent to other lngugesD nd is used minly in linguisti ontextsF \frenchspacingF
In math modeD

dot followed y digit is repled y deiml ommF

pnish ordinls nd revitions with the \sptext{ text } ommnd sD for instneD 1\sptext{er}F he preeptive dot is inludedF eented @lmD mxD mnD mdA nd sped @r osD etFA funtionsF \dotlessi is provided for use in mth modeF e quoting environment nd relted pir of shorthnds << nd >>F seful for trditionl spnish multiEprgrph quotingF here is smll spe efore the perent \% signF \lsc provides lowerse smll psF @ee susetion QFIHFA illipsis is est typed s ... orD within senteneD s \...
sf spanish is the min lngugeD the ommnd \layoutspanish is dded to the min groupD modifying the stndrd lsses throughout the whole doument in the following wyX

rgrphs re set with \indentfirstF foth enumerate nd itemize re dpted to pnish rulesF foth \alph nd \Alph inlude
35 The

fter nF

ymol footmrks re oneD twoD threeD etFD sterisksF


le described in this section has version number v5.0e and was last revised on The maintainer from v4.0 on is Javier Bezos (http://www.texytipograa.com). 2008/07/06.

Previous versions were made by Julio Snchez. The English documentation has been improved by Jos Luis Rivera; thanks to him it is now a lot clearer.

IUV

'a 'n "i "u "a "o "er "ER "c "rr "y ""= "~ "" ~"/ "| "< "> << >> "? "!

eute ented F orks for eD iD oD uD too @oth lowerse nd upperseAF @upperse tooAF @upperse tooAF @upperse tooAF yrdinl numers @upperse "AD "O tooAF yrdinl IFer IFer @upperse tooAF rrD ut Er when hyphentedF en old ligture for et @like the inglish 8AF vike \-D ut llowing hyphention in the rest the wordF vike -D ut llowing hyphention in the rest the wordF he hyphen is repeted t the very eginning of the next line if the word is hyphented t this pointF vike "- ut produing no hyphen signF vike "- ut with no rek fter the hyphenF orks for enEdshes @~--A nd emEdshes @~---AF "+D "+nd "+-- re synonymousF e slsh slightly loweredD if neessryF hisle ligtures t this pointF veft guillemetsF ight guillemetsF \begin{quoting} nd \end{quoting}F @ee elowFA "` nd "' re synonymousF ypening question nd exlmtion mrks @A ligned on the selineD useful for llEps hedingsD etF

le WX ixtr de(nitions mde y (le spanish.ldf

OT1 guillemets re generted with two lasy symols insted of smll \ll nd \ggF \roman is rede(ned to write smll ps omn numerlsD sine lowerse omn numerls re disourged @see elowAF here is dot fter setion numers in titlesD hedingsD nd toF
e suset of these fetures is implemented for lin i @esile with the ommnd \input spanish.styAF wost signi(ntlyD \lscD the quoting environE mentD nd fetures provided y \layoutspanish re missingF

Customization feginning with version SFHD ustomiztion is mde following


two pthsX vi options or vi commandsY these options nd ommnds override the lyout for pnish douments t di'erent levelsX options re ment for use t the premle onlyD while ommnds my e used in the on(gurtion (le or t doument levelF qlol options ontrol the overll pperne of the doumentD nd my e set on the {babel} llD right fter lling spanishD or shortly efore the ll to IUW

fsi yptions es-noindentfirst es-nosectiondot es-nolists es-noquoting es-notilde es-nodecimaldot es-nolayout es-ucroman es-lcroman

es-minimal

es-sloppy

es-noshorthands

le IHX pnish gustomiztion yptions

{babel}D to ensure their proper loding t runtimeF husD the following lls re roughly equivlentX
usepkgeFFFDspnishDesEnosetiondotDesEnodeimldotDFFF{el} defspnishoptions{esEnosetiondotDesEnodeimldot} usepkgeFFFDspnishDFFF{el}

ome glol options re uilt upon lower level optionsD nd my e used s shorthnd for more glol ustomiztionsF le IH gives n overview of the glol options onstruted this wyF wost of these options re selfEexplntoryX A they disle the hnges mde to the si v i lyout y spanishF es-lcroman howeverD nd few othersD need it of explntionD nd they my e desried s followsX

rditionl pnish typogrphy disourges the use of lowerse omn numerlsY instedD smllps vrint is implementedF roweverD sine Makeindex seems to hoke on the ode implementing lowerse omn numerls @vi the \lsc mroAD two workrounds re implementedX the es-ucroman option onverts ll omn numerls to upperseD nd the es-lcroman option turns ll omn numerls to lowerseY the former should e preferred over the ltterF hree mros ontrol lol hnges to omn numersX \spanishscromanD \spanishucromanD nd \spanishlcromanF he es-preindex option lls the romanidx.sty pkge utomtilly to (x index entries in smllps romn formF en dditionl mroD \spanishindexchars{ encap }{ openrange }{ closerange } determines the hrters delimiting index entriesF hefults re \spanishindexchars{|}{(}{)}F he es-tilden option restores the old tilde ~ shorthnd for F his shortE hnd is however strongly depretedF he es-nolayout option disles lyout hnges in the doument when spanish is the min lngugeF hese hnges 'et enumerted nd itemE ized listsD enumertions @lpheti order exludes AD nd symoli footE notesF he es-noshorthands disles the shorthnd mehnism ompletelyX neiE ther " nor ' nor < nor > nor ~ nor . work t llF
IVH

he es-noquoting option disles the mros << nd >> lling the quoting environmentY the lterntive mros "` nd "' re still villeF he es-uppernames option mkes upperse versions of ptions for hpterD tlenmeD etF he es-tabla option hnges udro for tl in ptionsF
pinllyD the pnish S series egins the implementtion of ntionl vritions of pnish typogrphyD eginning with wexioF hus the glol options mexico nd mexico-com re dpted to prties spred in wexioD nd perhps gentrl emeriD the grienD nd some ountries in outh emeriF36 wny of the glol options re implemented vi mrosD whih my e inluded in the on(gurtion (le spanish.cfgD in the premleD fter the ll to babelD nd in the ody of the doumentF hese mros re the followingF

he mros \spanishdashitems nd \spanishsignitems hnge the vlues of itemized lists to series of dshes or n lterntive series of symolsD respetivelyF he ommnd \deactivatequoting detivtes the << nd >> shorthnds if you wnt to use < nd > in numeril omprisons nd some ewi ommndsF ou my kill the spe in sped opertors with \unspacedoperatorsF ou my kill the ents on ented opertors with \unaccentedoperatorsF he ommnd \decimalpoint resets the deiml seprtor to its defult @dotA vlueD while \spanishdecimal{ symbol } llows for n ritrry de(E nitionF \spanishplainpercent prevents the ddition of thinspe efore the perE ent sign in textsF his might e useful for prenthesized perent signs in tlesD etF he mros \spanishdatedel nd \spanishdatede ontrol the if the rtile is given in yers @del or deAF he mro \spanishreverseddate sets the dte of the formt wonth hy del erF he mro \Today gives months in upperseF he mros \spanishcaption hnge the vlue of the @no need to dd n \addtoAF
caption

utomtilly

he ommnd \spanishdeactivate{ characters } disles the shorthnd hrters listed in the rgumentF ilegile hrters re the set .'"~<>F hese shorthnd hrters my e glolly detivted for pnish dding this ommnd to \shorthandsspanishF
36 The
main dierence is that keeps it enabled; both change the

mexico disables the decimaldot mechanism, while mexico-com quoting environment, disabling the use of guillemets.

IVI

lquoti rquoti lquotii rquotii lquotiii rquotiii

4` 4b 99 9

le IIX hefult quoting signs set for the quoting environmentF

ixtrs re divided in groups ontrolled y the ommnds \textspanishD \mathspanishD \shorthandsspanish y \layoutspanishY their vlues my e nelled typing \renewcommand{ command }{}D or hnged t will @hek the pnish doumenttion or the ode for detilsAF he ommnd \spanishoperators{ operators } de(nes ommnd nmes for opertors in pnishF here is no stndrd nme for some of themD so they my e reted or hnged t willF por instneD the omE mnd \renewcommand{\spanishoperators}{arc\,ctg m\acute{i}n} reE tes ommnds for these funtionsF he ommnd \, dds thinspes t the pproprite ples for sped opertors @like \arcctg in this seAD nd the ommnd \acute{ letter } dds n ent to the letter inluded in the defE inition @thusD m\acute{i}n de(nes the ented funtion \min @mnAY plese notie tht \dotlessi is not neessryAF he ommnds \lquoti{ string } \rquoti{ string } \lquotii{ string } \rquotii{ string } \lquotiii{ string } \rquotiii{ string } set the quotE ing signs in the quoting environmentD nested from outside inF hey my e \renewed t willF hefult vlues re shown in tle IIF he ommnd \selectspanish* is osoleteX if spanish is the min lngugeD ll its fetures re ville right fter loding babelF he es-delayed option is provided to restore the previous ehvior nd mros for kwrds omptiilityF

35.1 The Code


A A his (le provides de(nition for oth v i P nd non v i P formtsF

code rovidesvnguge{spnishFldf} 35.3 PHHVGHUGHT vSFHe pnish support from the el system 35.4 vdfsnit{spnish}ptionsspnish
35.1 35.2 35.5

edefesdsvedtodes{7 todenoexpnd~athetode~ 35.8 todenoexpnd4athetode4} 35.9 tode~ative 35.10 tode4aIP


35.6 35.7 35.11

ifxundefinedldspnish dnoptterns{pnish} 35.14 dddiletldspnishH


35.12 35.13

IVP

35.15 35.16 35.17 35.18

fi defesdsdef5I{eldsve5Idef5I}

difundefined{doumentlss} {letifesdltexifflse} 35.21 {letifesdltexiftrue}


35.19 35.20

kge options for spnishF o void error messges dummy options re reted on the )y when neessryF
35.22 35.23 35.24 35.25 35.26

ifesdltex difundefined{spnishoptions}{} {ssyptionsokge{spnishoptions}{el}}

defesdgenoption5I5P5Q{7 helreyption{5I}{}7 35.29 difpkgewith{el}{5I}7 35.30 {defesd{5I}7 35.31 expndfterletexpndfteresdsnme optdelFstyendsnme 35.32 ddtoesd{D5P}7 35.33 expndfterletsnme optdelFstyendsnmeesd 35.34 etindyfkge{5Q}}7 35.35 {}}
35.27 35.28 35.36

esdgenoption{esEminiml} {esEuromnDesEnoindentfirstDesEnosetiondotDesEnolistsD7 35.39 esEnoquotingDesEnotildeDesEnodeimldot} 35.40 {spnishplinperent 35.41 letesdopertorsrelx} 35.42 esdgenoption{esEsloppy} 35.43 {esEnolyoutDesEnoshorthnds}{} 35.44 esdgenoption{esEnoshorthnds} 35.45 {esEnoquotingDesEnodeimldotDesEnotilde}{} 35.46 esdgenoption{mexio} 35.47 {mexioEomDesEnodeimldot}{} 35.48 esdgenoption{mexioEom} 35.49 {esEtlDesEnoquoting} 35.50 {deflquoti{}defrquoti{99}7 35.51 deflquotii{}defrquotii{9}7 35.52 deflquotiii{guillemotleft{}}7 35.53 defrquotiii{guillemotright{}}}
35.37 35.38 35.54

defesdifoption5I5P5Q{7 helreyption{esE5I}{}7 35.57 difpkgewith{el}{esE5I}{5P}{5Q}}7


35.55 35.56 35.58 35.59 35.60 35.61 35.62 35.63 35.64 35.65

defesdoptlyout5I5P{esdifoption{5I}{}{ddtolyoutspnish{5P}}} else defesdifoption5I5P5Q{dnmedef{spnish5I}{5P}} fi

IVQ

35.66 35.67 35.68 35.69

letesduldseondoftwo esdifoption{uppernmes}{letesduldfirstoftwo}{}

defesdtlenme{gudro} esdifoption{tl}{defesdtlenme{tl}}{} 35.72 esdifoption{udro}{defesdtlenme{gudro}}{}


35.70 35.71

gptions follow two step shemD so thtD syD \refname is de(ned s \spanishrefname whih in turn ontins the string to e printedF he (nl de(E nition of \captionsspanish is uilt elowF
defptionsspnish{7 esd{prefe}{refio}7 35.75 esd{ref}{eferenis}7 35.76 esd{strt}{esumen}7 35.77 esd{i}{filiogrf9{i}}7 35.78 esd{hpter}{gp9{i}tulo}7 35.79 esd{ppendix}{ep9{e}ndie}7 35.80 esd{listfigure}{9{s}ndie de esdul pfigurs}7 35.81 esd{listtle}{9{s}ndie de expndfteresdulesdtlenme s}7 35.82 esd{index}{9{s}ndie esdul elf9{e}tio}7 35.83 esd{figure}{pigur}7 35.84 esd{tle}{expndfterdfirstoftwoesdtlenme}7 35.85 esd{prt}{rte}7 35.86 esd{enl}{edjunto}7 35.87 esd{}{gopi }7 35.88 esd{hedto}{e}7 35.89 esd{pge}{p9{}gin}7 35.90 esd{see}{v9{e}se}7 35.91 esd{lso}{v9{e}se tmi9{e}n}7 35.92 esd{proof}{hemostri9{o}n}7 35.93 esd{glossry}{qlosrio}7 35.94 difundefined{hpter} 35.95 {esd{ontents}{9sndie}}7 35.96 {esd{ontents}{9sndie esdul qgenerl}}}
35.73 35.74 35.97

defesd5I{dnmedef{spnish5Inme}} ptionsspnish 35.100 defesd5I5P{7 35.101 defexpndfternoexpndsnme5Inmeendsnme 35.102 {expndfternoexpndsnme spnish5Inmeendsnme}} 35.103 edefptionsspnish{ptionsspnish}
35.98 35.99

xow two mros for dtes @upper nd lowerseAF


defesdmonth5I{7 35.105 expndfter5Iifsemonthor ieneroor pfereroor 35.106 wmrzoor erilor wmyoor tjunioor tjulioor egostoor 35.107 septiemreor yotureor xnoviemreor hdiiemrefi}
35.104 35.108

defesdtody5I{7 ifseesddtefmt 35.111 thedy~de esdmonth5I7 35.112 else 35.113 esdmonth5I~thedy


35.109 35.110

IVR

35.114 35.115 35.116

fi deifnumyerbIWWWesdyerlfi~theyer}

defdtespnish{7 deftody{esdtodydseondoftwo}7 35.119 defody{esdtodydfirstoftwo}} 35.120 newountesddtefmt 35.121 defspnishreverseddte{esddtefmtdne} 35.122 defspnishdtedel{defesdyerl{l}} 35.123 defspnishdtede{letesdyerldempty} 35.124 spnishdtede
35.117 35.118

he si mros to selet the lnguge in the premle or the on(g (leF se of \selectlanguage should e voided t this erly stge euse the tive hrs re not yet tiveF \selectspanish mkes them tiveF
defseletspnish{7 defseletspnish{7 35.127 defseletspnish{7 35.128 kgerning{spnish}{ixtr stringseletspnish ignored}}7 35.129 esdselet}} 35.130 donlypremleseletspnish 35.131 defesdselet{7 35.132 letesdseletdundefined 35.133 seletlnguge{spnish}}
35.125 35.126 35.134 35.135

letesdshlistdempty

snsted of joining ll the extrs diretly in \extrasspanishD we sudivide them in three further groupsF
defextrsspnish{7 textspnish 35.138 mthspnish 35.139 ifxshorthndsspnishdempty 35.140 expndfterspnishdetivteexpndfter{esdshlist}7 35.141 lngugeshorthnds{none}7 35.142 else 35.143 shorthndsspnish 35.144 fi} 35.145 defnoextrsspnish{7 35.146 ifxtextspnishdemptyelse 35.147 notextspnish 35.148 fi 35.149 ifxmthspnishdemptyelse 35.150 nomthspnish 35.151 fi 35.152 ifxshorthndsspnishdemptyelse 35.153 noshorthndsspnish 35.154 fi 35.155 snme esdrestorelistendsnme}
35.136 35.137 35.156 35.157 35.158 35.159

ddtotextspnish{esdsdefsptext{protetesdsptext}} defesdorddot{F}

IVS

he de(nition of \sptext is more elorted thn tht of \textsuperscriptF ith upperse supersript text the sriptsriptsize is usedF he mndtory dot is lredy inludedF here re two versionsD depending on the formtF
ifesdltex defesdsptext5I{7 35.162 {esdorddot 35.163 setoxzdhox{V}dimendhtzd 35.164 snme dfdsizeendsnme 35.165 edefdtemp{defnoexpnddtemp{5I}7 35.166 lowerse{defnoexpnddtemp{5I}}}dtemp 35.167 ifxdtempdtemp 35.168 fontsizesfdsizezd 35.169 seletfont 35.170 dvnedimendEIFISex 35.171 else 35.172 fontsizessfdsizezd 35.173 seletfont 35.174 dvnedimendEIFSex 35.175 fi 35.176 mthdfontsflserisedimendhox{5I}}} 35.177 else 35.178 letsptextfontrm 35.179 defesdsptext5I{7 35.180 {esdorddot 35.181 setoxzdhox{V}dimendhtzd 35.182 edefdtemp{defnoexpnddtemp{5I}7 35.183 lowerse{defnoexpnddtemp{5I}}}dtemp 35.184 ifxdtempdtemp 35.185 dvnedimendEHFUSex 35.186 risedimendhox{6sriptstylesptextfont5I6}7 35.187 else 35.188 dvnedimendEHFVex 35.189 risedimendhox{6sriptsriptstylesptextfont5I6}7 35.190 fi}} 35.191 fi
35.160 35.161

xowD lowerse smll psF pirstD we test if there re tul smll ps for the urrent fontF sf notD fked smll ps re usedF he \selectfont in \es@lsc ould seem redundntD ut it9s notF en intermedite mro llows using n optimized vrint for omn numerlsF
ifesdltex ddtotextspnish{esdsdefls{protetesdls}} 35.194 defesdls{esdxlswkeppersewkevowerse} 35.195 defesdxls5I5P5Q{7 35.196 levevmode 35.197 hox{7 35.198 sshpeseletfont 35.199 expndfterifxsnmefdenodingGfdfmilyGfdseries 35.200 GnGfdsizeexpndfterendsnme 35.201 snmeurrdfontshpeGfdsizeendsnme 35.202 snme dfdsizeendsnme 35.203 fontsizesfdsizezdseletfont 35.204 kgerning{spnish}{epling urrdfontshpe9 y
35.192 35.193

IVT

35.205 35.206 35.207 35.208 35.209 35.210

fi

wessgefrek fked smll ps}7 5I{5Q}7 else 5P{5Q}7 fi}}

he quoting environmentF his prt is not ville in linF yverriding the defult \everypar is it trikyF
35.211 35.212

newififesdlistquot

ifesdltex snme newtoksendsnmeesdquottoks 35.215 snme newountendsnmeesdquotdepth 35.216 newenvironment{quoting} 35.217 {levevmode 35.218 dvneesdquotdepthdne 35.219 snme lquotromnnumerlesdquotdepthendsnme7 35.220 ifnumesdquotdepthadne 35.221 esdlistquotflse 35.222 letesdquotpreverypr 35.223 leteverypresdquottoks 35.224 everyprexpndfter{theesdquotpr}7 35.225 esdquotpr{theeverypr 35.226 ifesdlistquotglolesdlistquotflseelseesdquotontfi}7 35.227 fi 35.228 toksdexpndfter{esdquotont}7 35.229 edefesdquotont{thetoksd 35.230 expndfternoexpnd 35.231 snme rquotromnnumerlesdquotdepthendsnme}} 35.232 {snme rquotromnnumerlesdquotdepthendsnme} 35.233 deflquoti{guillemotleft{}} 35.234 defrquoti{guillemotright{}} 35.235 deflquotii{} 35.236 defrquotii{99} 35.237 deflquotiii{} 35.238 defrquotiii{9} 35.239 letesdquotontdempty
35.213 35.214

sf there is mrgin pr inside quotingD we don9t dd the quotesF \es@listqout stores the quotes to e used efore item lelsY otherwise they ould pper fter the lelsF
ddtodmrginprreset{letesdquotontdempty} helreoustgommndesdlistquot{7 35.242 snme rquotromnnumerlesdquotdepthendsnme 35.243 glolesdlistquottrue} 35.244 fi
35.240 35.241

xowD the \frenchspacingD followed y \... nd \%F


ddtotextspnish{ldfrenhsping} ddtonotextspnish{ldnonfrenhsping} 35.247 ddtotextspnish{7 35.248 letesdsveddotF7 35.249 esdsdefF{difnexthrF{esddots}{esdsveddot}}}
35.245 35.246

IVU

defesddotsFF{levevmodehox{FFF}speftordw} defesdspperent{unskiptextormth{6mdthD6}{D}} 35.252 defspnishplinperent{letesdspperentdempty} 35.253 ddtotextspnish{7 35.254 letperentsign77 35.255 esdsdef7{esdspperentperentsign{}}}
35.250 35.251

e follow with the mth groupF st9s not esy to dd n ent to n opertorF he di0ulty is tht we must void using text @tht isD \mboxA euse we hve no ontrol on font nd sizeD nd t time we should ess \iD whih is text ommnd foridden in mth modeF \dotlessi must e onverted to upperse if neessry A in v i P F here re two versionsD depending on the formtF
35.256 35.257 35.258

ddtomthspnish{esdsdefdotlessi{protetesddotlessi}} letnomthspnishrelx

ifesdltex defesdtexti{i} 35.261 ddtodullist{dotlessiesdtexti} 35.262 fi


35.259 35.260 35.263

ifesdltex defesddotlessi{7 35.266 ifmmode 35.267 {ifnummthgroupamdne 35.268 imth 35.269 else 35.270 ountdespehr espehramdne 35.271 expndfterexpndfterexpndfter 35.272 splitdnmeexpndfterstringthetextfontmthgroupdnil 35.273 espehraountd 35.274 difundefined{fdenodingstringi}7 35.275 {edeffdenoding{stringc}}{}7 35.276 expndfterountdthesnmefdenodingstringiendsnme 35.277 dvneountd4UHHH 35.278 mthhrountd 35.279 fi}7 35.280 else 35.281 i 35.282 fi} 35.283 else 35.284 defesddotlessi{textormth{i}{mthhr4UHIH}} 35.285 fi
35.264 35.265 35.286

defentedopertors{7 defesdopd55I{ute{if i55Idotlessielse55Ifi}}} 35.289 defunentedopertors{7 35.290 defesdopd55I{55I}} 35.291 entedopertors 35.292 defspedopertors{letesdopdspD} 35.293 defunspedopertors{letesdopdspdempty} 35.294 spedopertors 35.295 ddtomthspnish{esdopertors}
35.287 35.288 35.296 35.297

ifesdltexelse

IVV

35.298 35.299

letopertordfontrm fi

he opertors re stored in \es@operatorsD whih in turn is inluded in the A mth groupF ine \operator@font is de(ned in v i P onlyD we de(ned in the plin vrintF
defesdopertors{7 esdsdefmod{nonsriptmskipEmedmuskipmkernSmu 35.302 mthin{opertordfont mesdopd od}penltyWHHmkernSmu 35.303 nonsriptmskipEmedmuskip}7 35.304 difundefined{dmsmthderr}7 35.305 {esdsdefpmod55II{llowrekmkernIVmu 35.306 @{opertordfont mesdopd od}DD55IIA}}7 35.307 {esdsdefmod55I{llowrekifddisplymkernIVmu 35.308 elsemkernIPmufi{opertordfont mesdopd od}DD55I}7 35.309 esdsdefpmod55I{pod{{opertordfont mesdopd od}7 35.310 mkernTmu55I}}}7 35.311 defesd55I {7 35.312 if55I7 emptyc ontinue 35.313 ldfterelse 35.314 esd 35.315 else 35.316 ldfterfi 35.317 {if855I7 8c finish 35.318 else 35.319 ldfterfi 35.320 egingroup 35.321 letDdempty 7 ignore when def9ing nme 35.322 letutedfirstofone 7 id 35.323 edefesd{expndfternoexpndsnme55Iendsnme}7 35.324 defD{noexpndesdopdsp}7 35.325 defute{noexpndesdopd}7 35.326 edefesd{endgroup 35.327 noexpndesdsdefexpndfternoexpndesd{7 35.328 mthop{noexpndopertordfont55I}esd}}7 35.329 esd 7 restores itself 35.330 esd 35.331 fi}7 35.332 fi}7 35.333 letesdspnishopertors 35.334 ddtoesd{ }7 35.335 letesddempty 35.336 expndfteresdesd lute{i}m lute{i}mDsup 35.337 lute{i}mDinf mute{}x ute{i}nf mute{i}n 8 7 35.338 defesd{nolimits}7 35.339 expndfteresdesd sen tg rDsen rDos rDtg 8 } 35.340 defspnishopertors{otg ose senh tgh }
35.300 35.301

xow omes the text shorthndsF hey re grouped in \shorthandsspanish nd this style performs some opertions efore the el shortnds re lledF he ims re to llow espression like $a^{x'}$ nd to detivte shorthnds y mking them of tegory otherF9 efter providing \'i shorthndD the new mros re de(nedF
35.341

helreextgompositegommnd{9}{yI}{i}{dtkludge9{i}}

IVW

35.342

defesdsetdshorthnd5I{7 expndfteredefsnme esdsvetstring5Iendsnme 35.345 {thetode5I}7 35.346 inititedtivedhr{5I}7 35.347 tode5Iasnme esdsvetstring5Iendsnmerelx 35.348 ifF5Ielse 35.349 ddtoesdrestorelist{esdrestore{5I}}7 35.350 ddtoesdselet{shorthndon{5I}}7 35.351 ddtoshorthndsspnish{esdtivte{5I}}7 35.352 ddtoesdshlist{5I}7 35.353 fi}
35.343 35.344 35.354

defesdusedshorthnd{7 ifxthepgerelx 35.357 ldfterelse 35.358 string 35.359 else 35.360 ldfterfi 35.361 {ifxprotetdunexpndledprotet 35.362 ldfterelse 35.363 noexpnd 35.364 else 35.365 ldfterfi 35.366 esdusedsh 35.367 fi}7 35.368 fi}
35.355 35.356 35.369

defesdusedsh5I{7 ifdsfedtives 35.372 ldfterelse 35.373 string5I7 35.374 else7 35.375 ldfterfi 35.376 textormth 35.377 {snme tivedhrstring5Iendsnme}7 35.378 {snme normldhrstring5Iendsnme}7 35.379 fi}
35.370 35.371 35.380

gdefesdtivte5I{7 egingroup 35.383 lode~a5I 35.384 lowerse{7 35.385 endgroup 35.386 def~{esdusedshorthnd~}}}
35.381 35.382 35.387 35.388 35.389 35.390

defspnishdetivte5I{7 dtfordtempXa5Ido{expndfteresdspdetivtedtemp}}

defesdspdetivte5I{7 ifF5I7 35.393 mthodeFaesdperioddode 35.394 else 35.395 egingroup


35.391 35.392

IWH

35.396 35.397 35.398 35.399 35.400 35.401 35.402

lode~a5I lowerse{7 endgroup expndfterletexpndfter~7 snme normldhrstring5Iendsnme}7 tode5Iasnme esdsvetstring5Iendsnmerelx fi}

\es@restore is used in the list \es@restorelistD whih in turn restores ll shorthnds s de(ned y babelF he ltter mros lso hs \es@quotingF
defesdrestore5I{7 shorthndon{5I}7 35.405 egingroup 35.406 lode~a5I 35.407 lowerse{7 35.408 endgroup 35.409 lddetivte{~}}}
35.403 35.404

o seletively de(ne the shorthnds we hve ouple of mrosD whih de(nes ertin omintion if the (rst hrter hs een tivted s shorthndF he seond one is intended for few shorthnds with n lterntive formF
defesddelre5I{7 difundefined{esdsvetexpndfterstringdfirstoftwo5I}7 35.412 {dgole}7 35.413 {delredshorthnd{spnish}{5I}}} 35.414 defesddelrelt5I5P5Q{7 35.415 esddelre{5I}{5Q}7 35.416 esddelre{5P}{5Q}}
35.410 35.411 35.417

ifesdltexelse defdtkludge5I{snmestring5Iendsnme} 35.420 fi


35.418 35.419 35.421 35.422

difundefined{dddent}{defdddent5I5P{ent5I 5P}}{}

snsted of rede(ning \'D we rede(ne the internl mro for the yI enodingF
ifesdltex defesdent5I5P5Q{7 35.425 expndfterdtextdomposite 35.426 snme yIstring5Iendsnme5Qdemptydtextdomposite 35.427 {ldllowhyphensdddent{5P}{5Q}ldllowhyphens 35.428 setoxdtempoxhox{5Q7 35.429 glolmthhrdefentdspeftorspeftor}7 35.430 speftorentdspeftor}} 35.431 else 35.432 defesdent5I5P5Q{7 35.433 ldllowhyphensdddent{5P}{5Q}ldllowhyphens 35.434 speftorsfode5Q } 35.435 fi
35.423 35.424 35.436 35.437 35.438

ddtoshorthndsspnish{lngugeshorthnds{spnish}}7 esdifoption{noshorthnds}{}{esdsetdshorthnd{4}}

e override the defult " of elD intended for germnF IWI

defesdumlut5I{7 ldllowhyphensdddent{IPU}5Ildllowhyphens 35.441 speftorsfode5I }


35.439 35.440 35.442

ddtoshorthndsspnish{7 eldsveldumlut 35.445 letldumlutesdumlut} 35.446 letnoshorthndsspnishrelx


35.443 35.444 35.447

ifesdltex ddtoshorthndsspnish{7 35.450 expndfteresdsdefsnme yIstring~endsnme{esdent~{IPT}}7 35.451 expndfteresdsdefsnme yIstring9endsnme{esdent9{IW}}} 35.452 else 35.453 ddtoshorthndsspnish{7 35.454 esdsdef~{esdent~{IPT}}7 35.455 esdsdef95I{if5Iiesdent9{IW}ielseesdent9{IW}{5I}fi}} 35.456 fi
35.448 35.449 35.457

defesdsptextdr5I5P{esdsptext{5I5P}} esddelre{4}{sptext{}} 35.460 esddelre{4e}{sptext{e}} 35.461 esddelre{4o}{sptext{o}} 35.462 esddelre{4y}{sptext{y}} 35.463 esddelre{4e}{protetesdsptextdr{e}} 35.464 esddelre{4i}{protetesdsptextdr{i}} 35.465 esddelre{4u}{4u} 35.466 esddelre{4}{4} 35.467 esddelre{4i}{4{i}} 35.468 esddelre{4s}{4s} 35.469 esddelre{4}{{}} 35.470 esddelre{4g}{{g}} 35.471 esddelre{4`}{guillemotleft{}} 35.472 esddelre{4b}{guillemotright{}} 35.473 defesdhf{hrhyphenhrfont} 35.474 esddelre{4E}{ldllowhyphensEldllowhyphens} 35.475 esddelre{4a}{ldllowhyphensesdhfhskipzdskip} 35.476 esddelre{4~} 35.477 {ldllowhyphens 35.478 disretionry{esdhf}{esdhf}{esdhf}7 35.479 ldllowhyphens} 35.480 esddelre{4r} 35.481 {ldllowhyphens 35.482 disretionry{esdhf}{}{r}7 35.483 ldllowhyphens} 35.484 esddelre{4} 35.485 {ldllowhyphens 35.486 disretionry{esdhf}{}{}7 35.487 ldllowhyphens} 35.488 esddelre{4y} 35.489 {difundefined{sleox}7 35.490 {ensuremth{tu}}7 35.491 {riseox{Iex}{sleox{EI}{resizeox{FRSem}{Iex}{P}}}}} 35.492 esddelre{44}{hskipzdskip}
35.458 35.459

IWP

esddelre{4G} {setoxzdhox{G}7 35.495 dimendhtzd 35.496 dvnedimendEIex 35.497 dvnedimenddpzd 35.498 dimendFQIdimend 35.499 dvnedimendEdpzd 35.500 ifdimdimendbHpt 35.501 kernFHIemlowerdimendoxzdkernFHQem 35.502 else 35.503 oxzd 35.504 fi} 35.505 esddelre{4c} 35.506 {setoxzdhox{c}7 35.507 levevmoderisedpzdoxzd} 35.508 esddelre{43} 35.509 {setoxzdhox{3}7 35.510 levevmoderisedpzdoxzd}
35.493 35.494 35.511

defspnishdeiml5I{defesddeiml{{5I}}} defdeimlomm{spnishdeiml{D}} 35.514 defdeimlpoint{spnishdeiml{F}} 35.515 deimlomm 35.516 esdifoption{nodeimldot}{} 35.517 {etfeginhoument{groupdfileswflse}7 35.518 esdsetdshorthnd{F}7 35.519 etfeginhoument{egroup}7 35.520 dnmedef{normldhrstringF}{7 35.521 difnexthregroup 35.522 {mthhresdperioddoderelx}7 35.523 {snme tivedhrstringFendsnme}}7 35.524 delredshorthnd{system}{F}{mthhresdperioddoderelx}7 35.525 ddtoshorthndsspnish{7 35.526 mthhrdefesdperioddodethemthodeF7 35.527 eldsvevrile{mthodeF}7 35.528 mthodeFa4VHHH 7 35.529 esdtivte{F}}7 35.530 defesd5I{esddelre{F5I}{esddeiml5I}}7 35.531 esdIesdPesdQesdResdSesdTesdUesdVesdWesdH}
35.512 35.513 35.532

esdifoption{notilde}{}{esdsetdshorthnd{~}} defdetivtetilden{7 35.535 expndfterletsnme spnishdshdstring~dndendsnmerelx 35.536 expndfterletsnme spnishdshdstring~dxdendsnmerelx} 35.537 esdifoption{tilden} 35.538 {esddelre{~n}{~n}7 35.539 esddelre{~x}{~x}} 35.540 {letdetivtetildenrelx} 35.541 esddelrelt{~E}{4C}{7 35.542 levevmode 35.543 group 35.544 letdsptokenesddshes 7 ghnges difnexthr ehviour 35.545 difnexthrE7 35.546 {esddshes}7
35.533 35.534

IWQ

{hox{esdhf}egroup}} defesddshesE{7 35.549 difnexthrE7 35.550 {ldllowhyphenshox{EEE}ldllowhyphensegroupdgole}7 35.551 {ldllowhyphenshox{EE}ldllowhyphensegroup}}


35.547 35.548 35.552

esdifoption{noquoting}7 {letesdquotingrelx 35.555 lettivtequotingrelx 35.556 letdetivtequotingrelx} 35.557 {difundefined{wvdtodes}7 35.558 {esdsetdshorthnd{`}7 35.559 esdsetdshorthnd{b}7 35.560 delredshorthnd{system}{`}{snme normldhrstring`endsnme}7 35.561 delredshorthnd{system}{b}{snme normldhrstringbendsnme}7 35.562 ddtoesdrestorelist{esdquoting}7 35.563 ddtoesdselet{esdquoting}7 35.564 ifesdltex 35.565 etfeginhoument{7 35.566 esdquoting 35.567 ifdfilesw 35.568 immeditewritedminux{stringdnmeuse{esdquoting}}7 35.569 fi}7 35.570 fi 35.571 deftivtequoting{7 35.572 shorthndon{`b}7 35.573 letesdquotingtivtequoting}7 35.574 defdetivtequoting{7 35.575 shorthndoff{`b}7 35.576 letesdquotingdetivtequoting}}{}}
35.553 35.554 35.577 35.578 35.579

esddelrelt{``}{4}{egin{quoting}} esddelrelt{bb}{49}{end{quoting}}

eute ent shorthnds re stored in mroF sf activeacute ws set s n option it9s exeutedF sf not is not deleted for possile lter use in the cfg (leF A sn non v i P formts is lwys exeutedF
egingroup tode9aIP 35.582 gdefesdtiveute{7 35.583 esdsetdshorthnd{9}7 35.584 defesd55I{esddelre{955I}{dtkludge955I}}7 35.585 esd esd eesd iesd oesd u7 35.586 esd eesd iesd sesd yesd 7 35.587 esddelre{9n}{~n}7 35.588 esddelre{9x}{~x}7 35.589 esddelre{99}{textquotedlright}7
35.580 35.581

fut spanish llows two tegory odes for 'D so oth should e tken into ount in \bbl@pr@m@sF
35.590 35.591 35.592 35.593

letesdprdmdsldprdmds defldprdmds{7 ifx9dletdtoken ldfterelse

IWR

prddds else 35.596 ldfterfi 35.597 esdprdmds 35.598 fi}7 35.599 letesdtiveuterelx} 35.600 endgroup
35.594 35.595 35.601

ifesdltex difpkgewith{el}{tiveute}{esdtiveute}{} 35.604 else 35.605 esdtiveute 35.606 fi


35.602 35.603

end the ustomiztionF fy defult these mros only store the vlues nd do nothingF
35.607 35.608 35.609

defesdenumerte5I5P5Q5R{defesdenum{{5I}{5P}{5Q}{5R}}} defesditemize5I5P5Q5R{defesditem{{5I}{5P}{5Q}{5R}}}

ifesdltex esdenumerte{IF}{A}{IA}{696} 35.612 defspnishdshitems{esditemize{EEE}{EEE}{EEE}{EEE}} 35.613 defspnishsymitems{7 35.614 esditemize 35.615 {levevmodehox to IFPex 35.616 {hssvrule height FWex width FUex depth EFPexhss}}7 35.617 {textullet}7 35.618 {6mdthir6}7 35.619 {6mdthdimond6}} 35.620 defspnishsignitems{7 35.621 esditemize{textullet}7 35.622 {6mdthir6}7 35.623 {6mdthdimond6}7 35.624 {6mdthtringleright6}} 35.625 spnishsymitems 35.626 defesdenumdef5I5P5Qdd{7 35.627 if5PI7 35.628 dnmedef{theenum5I}{ri{enum5I}}7 35.629 elseif5P7 35.630 dnmedef{theenum5I}{emph{lph{enum5I}}}7 35.631 elseif5Pe7 35.632 dnmedef{theenum5I}{elph{enum5I}}7 35.633 elseif5Pi7 35.634 dnmedef{theenum5I}{romn{enum5I}}7 35.635 elseif5Ps7 35.636 dnmedef{theenum5I}{omn{enum5I}}7 35.637 elseif5Po7 35.638 dnmedef{theenum5I}{ri{enum5I}sptext{o}}7 35.639 fifififififi 35.640 toksdexpndfter{snme theenum5Iendsnme}7 35.641 expndfteredefsnme lelenum5Iendsnme 35.642 {noexpndesdlistquotthetoksd5Q}} 35.643 defesdguillemot5I5P{7 35.644 ifmmode5I7
35.610 35.611

IWS

else svedsfdq{penltydw 35.647 levevmodehox{usefont{}{lsy}{m}{n}7 35.648 hr5P kernEHFIWemhr5P }}7 35.649 fi} 35.650 deflyoutspnish{7 35.651 letlyoutspnishdempty 35.652 helreextgommnd{guillemotleft}{yI}{esdguillemotll{RH}}7 35.653 helreextgommnd{guillemotright}{yI}{esdguillemotgg{RI}}7 35.654 defdfnsymol55I7 35.655 {ifse55IorBorBBorBBBorBBBBor 35.656 BBBBBorBBBBBBelsedtrerrfi}7 35.657 defdlph55I7 35.658 {ifse55Ior or or or dor eor for gor hor ior jor 35.659 kor lor mor nor ~nor oor por qor ror sor tor uor vor 35.660 wor xor yor zelsedtrerrfi}7 35.661 defdelph55I7 35.662 {ifse55Ior eor for gor hor ior por qor ror sor tor 35.663 uor vor wor xor ~xor yor or or or or or or or 35.664 or or or elsedtrerrfi}}
35.645 35.646 35.665

esdoptlyout{nolists}{7 defesdenumerte5I5P5Q5R{7 35.668 esdenumdef{i}5Idemptydemptydd 35.669 esdenumdef{ii}5Pdemptydemptydd 35.670 esdenumdef{iii}5Qdemptydemptydd 35.671 esdenumdef{iv}5Rdemptydemptydd}7 35.672 defesditemize5I5P5Q5R{7 35.673 deflelitemi{esdlistquot5I}7 35.674 deflelitemii{esdlistquot5P}7 35.675 deflelitemiii{esdlistquot5Q}7 35.676 deflelitemiv{esdlistquot5R}}7 35.677 defpdenumii{theenumi}7 35.678 defpdenumiii{pdenumiitheenumii}7 35.679 defpdenumiv{pdenumiiitheenumiii}7 35.680 expndfteresdenumerteesdenum 35.681 expndfteresditemizeesditem} 35.682 letesromnindexdseondoftwo 35.683 esdifoption{uromn} 35.684 {defesdromndef{7 35.685 defesromnindex55I55P{55I{upperse{55P}}}7 35.686 defdromn{domn}}} 35.687 {defesdromndef{7 35.688 defesromnindex55I55P{55I{protetesdromn{55P}}}7 35.689 defdromn55I{esdromn{numer55I}}7 35.690 defesdromn55I{esdsromn{romnnumerl55I}}7 35.691 helreoustgommndesdsromn{esdxlsuppersedfirstofone}}} 35.692 esdoptlyout{lromn}{esdromndef} 35.693 newommndspnishlromn{defdromn55I{romnnumerl55I}} 35.694 newommndspnishuromn{defdromn{domn}} 35.695 newommndspnishsromn{defdromn55I{esdromn{romnnumerl55I}}} 35.696 esdoptlyout{noindentfirst}{7 35.697 letdfterindentflsedfterindenttrue 35.698 dfterindenttrue}
35.666 35.667

IWT

esdoptlyout{nosetiondot}{7 defdsentformt5I{snme the5IendsnmeFqud}7 35.701 defnumerline5I{hdxtddtempdim{5Iif85I8elseFfihfil}}} 35.702 esdifoption{nolyout}{letlyoutspnishrelx}{} 35.703 esdifoption{sloppy}{lettextspnishrelxletmthspnishrelx}{} 35.704 esdifoption{delyed}{}{defesdlyoutspnish{lyoutspnish}} 35.705 esdifoption{preindex}{etindyfkge{equirekge{romnidx}}}{}
35.699 35.700

e need to exeute the following ode when el hs een runD in order to see if spanish is the min lngugeF
etindyfkge{7 letesdtiveutedundefined 35.708 defldtemp{spnish}7 35.709 ifxldmindlngugeldtemp 35.710 dnmeuse{esdlyoutspnish}7 35.711 ddtoesdselet{7 35.712 difstr{kgeirror{spnish}7 35.713 {yld syntxEEuse esEnolyout}7 35.714 {sf you don9t wnt hnges in lyoutwessgefrek 35.715 use the esEnolyout pkge option}}7 35.716 {}}7 35.717 etfeginhoument{lyoutspnish}7 35.718 fi 35.719 seletspnish} 35.720 fi
35.706 35.707

efter restoring the tode of ~ nd setting the miniml vlues for hyphentionD the .ldf is (nishedF
esdsvedtodes providehyphenmins{gurrentyption}{twdtwd} 35.723 ifesdltexelse 35.724 esdselet 35.725 fi 35.726 ldfdfinish{spnish} 35.727 snme tivtequotingendsnme 35.728 /code
35.721 35.722

ht9s ll in the min (leF he spanish option writes mro in the pge (eld of MakeIndex in entries with smll ps numerD nd they re rejetedF his progrm is preproessor whih moves this mro to the entry (eldF st n e lled from the min doument s pkge or with the pkge option es-preindexF
35.729 35.730 35.731

indexes mketletter

difundefined{esdidxfile} {defspnishindexhrs5I5P5Q{7 35.734 edefesdenp{expndfternoexpndsnmestring5Iendsnme}7 35.735 edefesdopenrnge{expndfternoexpndsnmestring5Pendsnme}7 35.736 edefesdlosernge{expndfternoexpndsnmestring5Qendsnme}}7 35.737 spnishindexhrs{|}{@}{A}7 35.738 ifxdoumentlssdtwolsseserror 35.739 edefesdidxfile{jonme}7 35.740 etindhoument{7
35.732 35.733

IWU

35.741 35.742 35.743 35.744 35.745 35.746 35.747 35.748 35.749 35.750 35.751 35.752

ddtoddefultsus{7 immediteloseoutdindexfile input{romnidxFsty}}}7 expndfterendinput fi}{} newountesdonverted newountesdproessed defesdsplitdfile5IF5Pdd{5I} defesdsplitdext5IF5Pdd{5P}

difundefined{esdidxfile} {typeinnswer{terhivo que onvertirt7 35.755 @extension por omision FidxAX}} 35.756 {letnsweresdidxfile}
35.753 35.754 35.757

dexpndtworgsind{F}{nswer} ifind 35.760 edefesdinputdfile{expndfteresdsplitdfilenswerdd} 35.761 edefesdinputdext{expndfteresdsplitdextnswerdd} 35.762 else 35.763 edefesdinputdfile{nswer} 35.764 defesdinputdext{idx} 35.765 fi
35.758 35.759 35.766

difundefined{esdidxfile} {typeinnswer{terhivo de destinot7 35.769 @rhivo por omisionX esdinputdfileFeixDt7 35.770 extension por omision FeixAX}} 35.771 {letnsweresdidxfile} 35.772 ifxnswerdempty 35.773 edefesdoutput{esdinputdfileFeix} 35.774 else 35.775 dexpndtworgsind{F}{nswer} 35.776 ifind 35.777 edefesdoutput{nswer} 35.778 else 35.779 edefesdoutput{nswerFeix} 35.780 fi 35.781 fi
35.767 35.768 35.782

difundefined{esdidxfile} {typeinnswer{7 35.785 tce h usdo lgun esquem espeil de ontrolest7 35.786 de wkesndex pr enpD openrnge o loserngect7 35.787 sGn @n por omisionA}} 35.788 {defnswer{n}}
35.783 35.784 35.789

if snswer typeinnswer{tgrter pr 9enp9t7 35.792 @string| por omisionA} 35.793 ifxnswerdemptyelse 35.794 edefesdenp{7
35.790 35.791

IWV

35.795

expndfternoexpndsnmeexpndfterstringnswerendsnme} fi 35.797 typeinnswer{tgrter pr 9openrnge9t7 35.798 @string@ por omisionA} 35.799 ifxnswerdemptyelse 35.800 edefesdopenrnge{7 35.801 expndfternoexpndsnmeexpndfterstringnswerendsnme} 35.802 fi 35.803 typeinnswer{tgrter pr 9losernge9t7 35.804 @stringA por omisionA} 35.805 ifxnswerdemptyelse 35.806 edefesdlosernge{7 35.807 expndfternoexpndsnmeexpndfterstringnswerendsnme} 35.808 fi 35.809 fi
35.796 35.810 35.811 35.812 35.813 35.814 35.815 35.816 35.817 35.818

newwriteesdindexfile immediteopenoutesdindexfileaesdoutput newififesdenpsulted defesdromn5I{5I} edefesdslsh{expndfterdgolestring}

defindexentry{7 egingroup 35.821 dsnitize 35.822 esdindexentry}


35.819 35.820 35.823 35.824 35.825

egingroup

tode|aIP lode|aesdenprelx tode@aIP lode@aesdopenrngerelx 35.828 todeAaIP lodeAaesdloserngerelx


35.826 35.827 35.829

lowerse{ gdefesdindexentry5I{7 35.832 endgroup 35.833 dvneesdproesseddne 35.834 esdenpsultedflse 35.835 esdrdidx5I|dd 35.836 esdidxentry}7 35.837 }
35.830 35.831 35.838

lowerse{ gdefesdidxentry5I{7 35.841 ind{esdromn}{5I}7 35.842 ifind 35.843 dvneesdonverteddne 35.844 immeditewriteesdindexfile{7 35.845 stringindexentry{esd|ifesdenpsultedesdpfi esromnindex7 35.846 {ifxesddemptyelseesdslshesdfi}}{5I}}7 35.847 else 35.848 immeditewriteesdindexfile{7
35.839 35.840

IWW

35.849 35.850 35.851 35.852

stringindexentry{esdifesdenpsulted|esdpesdfi}{5I}}7 fi}

lowerse{ gdefesdrdidx5I|5Pdd{7 35.855 defesd{5I}defesd{5P}7 35.856 ifxesddemptyelseesdenpsultedtrueesdrdet5Pfi} 35.857 }


35.853 35.854 35.858

lowerse{ gdefesdrdet5I5P|{defesdp{5I}defesd{5P}7 35.861 edefesdt{@}ifxesdtesdp 35.862 elseedefesdt{A}ifxesdtesdp 35.863 else 35.864 edefesd{esdpesd}letesdpdempty7 35.865 fifi} 35.866 }
35.859 35.860 35.867 35.868 35.869 35.870 35.871 35.872 35.873

endgroup input esdinputdfileFesdinputdext immediteloseoutesdindexfile

typeout{BBBBBBBBBBBBBBBBB} typeout{e h proesdoX esdinputdfileFesdinputdext } 35.876 typeout{vines leidsX theesdproessed} 35.877 typeout{vines onvertidsX theesdonverted} 35.878 typeout{esultdo enX esdoutput} 35.879 ifnumesdonvertedbzd 35.880 typeout{qenere el indie prtir de ese rhivo} 35.881 else 35.882 typeout{xo se h onvertido ndF e puede generr} 35.883 typeout{el Find diretmente de esdinputdfileFesdinputdext} 35.884 fi 35.885 typeout{BBBBBBBBBBBBBBBBB}
35.874 35.875 35.886 35.887 35.888 35.889 35.890

difundefined{esdsdef}{ddend}{} endinput /indexes

PHH

36

The Catalan language

he (le catalan.dtx37 de(nes ll the lngugeEspei( mro9s for the gtln lngugeF por this lnguge only the doule quote hrter @"A is mde tive y defultF sn tle IP n overview is given of the new mros de(ned nd the new menings of "F edditionlly to thtD the user n expliitly tivte the ute ent or postrophe @'A ndGor the grve ent @`A hrters y using the activeacute nd activegrave optionsF sn tht seD the de(nitions shown in tle IQ lso eome ville38 F

\l.l \lgem \up \"i "c "l "< "> ""|

gemintedEl digrph @similr to llAF \L.L produes the upperse versionF gemintedEl digrph @similr to llAF \Lgem produes the upperse versionF wro to help typing rised ordinlsD like IerF kes one rgumentF like the old \-D ut llowing hyphention in the rest of the wordF i with dieresisD llowing hyphention in the rest of the wordF lid for the following vowelsX iD u @oth lowerse nd upperseAF Eedill @AF lid for oth upperse nd lowerse F gemintedEl digrph @similr to llAF lid for oth upperse nd lowerse lF prenh left doule quotes @similr to <<AF prenh right doule quotes @similr to >>AF expliit hyphen signD llowing hyphention in the rest of the wordF disle ligture t this positionF

le IPX ixtr de(nitions mde y (le catalan.ldf @tivted y defultA

'e `a

ute ented D llowing hyphention in the rest of the wordF lid for the following vowelsX eD iD oD u @oth lowerse nd upperseAF grve ented D llowing hyphention in the rest of the wordF lid for the following vowelsX D eD o @oth lowerse nd upperseAF

le IQX ixtr de(nitions mde y (le catalan.ldf @tivted only when using the options activeacute nd activegraveA hese tive ents hrters ehve ording to their originl de(nitions
37 The
le described in this section has version number v2.2p and was last revised on note that if the acute accent character is active, it is necessary to take special care of instead of 2005/03/29.

38 Please

coding apostrophes in a way which cannot be confounded with accents. Therefore, it is necessary to type

l'{}estri

l'estri.

PHI

if not followed y one of the hrters indited in tht tleF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
36.1 36.2

code vdfsnit{tln}ptionstln

hen this (le is red s n optionD iFeF y the \usepackage ommndD catalan ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@catalan to see whether we hve to do something hereF
ifxldtlndundefined dnoptterns{gtln} 36.5 dddiletldtlnH 36.6 fi
36.3 36.4

he next step onsists of de(ning ommnds to swith to @nd fromA the gtE ln lngugeF
tlnhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
36.7

providehyphenmins{tln}{twdtwd}

ptionstln

ddtoptionstln{7 defprefenme{roleg}7 36.10 defrefnme{eferenies}7 36.11 defstrtnme{esum}7 36.12 definme{filiogrfi}7 36.13 defhpternme{gp9{i}tol}7 36.14 defppendixnme{ependix}7 36.15 defontentsnme{9sndex}7 36.16 deflistfigurenme{9sndex de figures}7 36.17 deflisttlenme{9sndex de tules}7 36.18 defindexnme{9sndex lfeti}7 36.19 deffigurenme{pigur}7 36.20 deftlenme{ul}7 36.21 defprtnme{rt}7 36.22 defenlnme{edjunt}7 36.23 defnme{gopies }7 36.24 defhedtonme{e}7 36.25 defpgenme{gin}7 36.26 defseenme{egeu}7 36.27 deflsonme{egeu tm9e}7 36.28 defproofnme{hemostri9o}7 36.29 defglossrynme{qlossri}7 36.30 }
36.8 36.9

he mro \captionscatalan de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

dtetln

he mro \datecatalan rede(nes the ommnd \today to produe gtln dtesF wonths re written in lowerse39 F
defdtetln{7
seems to be the common practice. See for example: E. Coromina, Ed. Eumo, Vic, 1993

36.31

de redacci i estil,

39 This

El 9 Nou: Manual

PHP

36.32 36.33 36.34 36.35 36.36

deftody{numerdy~ifsemonthor de generor de fereror de mr{}or d9rilor de migor de junyor de juliolor d9gostor de setemreor d9otureor de novemreor de desemrefi spe de~numeryer}}

extrstln noextrstln

he mro \extrascatalan will perform ll the extr de(nitions needed for the gtln lngugeF he mro \noextrascatalan is used to nel the tions of \extrascatalanF o improve hyphention we give the grve hrter @'A nonEzero lower se odeY when we do tht i will (nd more rekpoints in words tht ontin this hrter in its rle s postropheF

ddtoextrstln{7 lode9a9} 36.39 ddtonoextrstln{7 36.40 lode9aH}


36.37 36.38

por gtlnD some hrters re mde tive or re rede(nedF sn prtiulrD the " hrter reeives new meningY this n lso hppen for the ' hrter nd the ` hrter when the options activegrave ndGor activeacute re spei(edF
ddtoextrstln{lngugeshorthnds{tln}} inititedtivedhr{4} 36.43 ddtoextrstln{ldtivte{4}}
36.41 36.42

feuse the grve hrter is eing used in onstruts suh s \catcode``=\active it needs to hve it9s originl tegory ode when the uxiliry (le is eing redF xote tht this (le is red twieD one t the eginning of the doumentY then there is no prolemY ut the seond time it is red t the end of the doument to hek whether ny lels hngesF st9s this seond time round tht the tived grve hrter leds to error messgesF
difpkgewith{el}{tivegrve}{7 etfeginhoument{7 36.46 ifdfileswimmeditewriteduxout{todeHWTaIP}fi} 36.47 inititedtivedhr{}7 36.48 }{} 36.49 difpkgewith{el}{tivegrve}{7 36.50 ddtoextrstln{ldtivte{}}7 36.51 }{} 36.52 difpkgewith{el}{tiveute}{7 36.53 inititedtivedhr{9}7 36.54 }{} 36.55 difpkgewith{el}{tiveute}{7 36.56 ddtoextrstln{ldtivte{9}}7 36.57 }{}
36.44 36.45

xow mke sure tht the hrters tht hve een turned into shorthnfd hrE ters expnd to norml9 hrters outside the tln environmentF
ddtonoextrstln{lddetivte{4}} difpkgewith{el}{tivegrve}{7 36.60 ddtonoextrstln{lddetivte{}}}{} 36.61 difpkgewith{el}{tiveute}{7 36.62 ddtonoextrstln{lddetivte{9}}}{}
36.58 36.59

PHQ

eprt from the tive hrters some other mros get new de(nitionF herefore we store the urrent ones to e le to restore them lterF hen their urrent menings re svedD we n sfely rede(ne themF e provide new de(nitions for the ent mros when one or oth of the options activegrave or activeacute were spei(edF
ddtoextrstln{7 eldsve47 36.65 def4{protetdumlut}}7 36.66 difpkgewith{el}{tivegrve}{7 36.67 eldsve7 36.68 ddtoextrstln{def{protetdgrve}} 36.69 }{} 36.70 difpkgewith{el}{tiveute}{7 36.71 eldsve97 36.72 ddtoextrstln{def9{protetdute}} 36.73 }{}
36.63 36.64

ell the ode ove is neessry euse we need few extr tive hrtersF hese hrters re then used s indited in tles IP nd IQF
dieresis textute textgrve

he originl de(nition of \" is stored s \dieresisD euse the de(nition of \" might not e the defult plin i oneF sf the user uses PostScript fonts with the edoe font enoding the " hrter is not in the sme position s in unuth9s font enodingF sn this se \" will not e de(ned s \accent"7F 1D ut s \accent'310 #1F omething similr hppens when using fonts tht follow the gork enodingF por this reson we sve the de(nition of \" nd use tht in the de(nition of other mrosF e do likewise for \`D nd \'F

letdieresis4 difpkgewith{el}{tivegrve}{lettextgrve}{} 36.76 difpkgewith{el}{tiveute}{lettextute9}{}


36.74 36.75

dumlut dute dgrve

e hek the enoding nd if not using ID we mke the ents expnd ut enling hyphention eyond the entF sf this is the seD not ll rek positions will e found in words tht ontin entsD ut this is limittion in iF en unsolved prolem here is tht the enoding n hnge t ny timeF he de(nitions elow re mde in suh wy tht hnge etween two PSTEhr enodings re supportedD ut hnges etween IPVEhr nd PSTEhr enoding re not properly supportedF e hek if I is in useF sf notD we will give wrning nd proeed rede(ning the ent mros so tht i t lest (nds the reks tht re not too lose to the entF he wrning will only e printed to the log (leF

ifxhelreponthpedundefined wlog{rningX ou re using n old ve} 36.79 wlog{ome word reks will not e foundF} 36.80 defdumlut5I{llowhyphensdieresis{5I}llowhyphens} 36.81 difpkgewith{el}{tiveute}{7 36.82 defdute5I{llowhyphenstextute{5I}llowhyphens}}{} 36.83 difpkgewith{el}{tivegrve}{7 36.84 defdgrve5I{llowhyphenstextgrve{5I}llowhyphens}}{} 36.85 else 36.86 ifxfdenodingldtdone 36.87 letdumlutdieresis 36.88 difpkgewith{el}{tiveute}{7
36.77 36.78

PHR

letdutetextute}{} difpkgewith{el}{tivegrve}{7 36.91 letdgrvetextgrve}{} 36.92 else 36.93 wlog{rningX ou re using enoding fdenodingspe 36.94 insted of IF} 36.95 wlog{ome word reks will not e foundF} 36.96 defdumlut5I{llowhyphensdieresis{5I}llowhyphens} 36.97 difpkgewith{el}{tiveute}{7 36.98 defdute5I{llowhyphenstextute{5I}llowhyphens}}{} 36.99 difpkgewith{el}{tivegrve}{7 36.100 defdgrve5I{llowhyphenstextgrve{5I}llowhyphens}}{} 36.101 fi 36.102 fi
36.89 36.90

sf the user setup hs extended fontsD the perguson mros re required to e de(nedF e hek for their existne ndD if de(nedD expnd to whtever they re de(ned toF por instneD \'a would hek for the existne of \@ac@a mroF st is ssumed to expnd to the ode of the ented letterF sf it is not de(nedD we ssume tht no extended odes re ville nd expnd to the originl de(nition ut enling hyphention eyond the entF his is s est s we n doF st is etter if you hve extended fonts or wvEi euse the hyphention lgorithm n work on the whole wordF he following mros re diretly derived from wvEiF40 xow we n de(ne our shorthndsX the dieresis nd el gemind supportD
delredshorthnd{tln}{4i}{textormth{dumluti}{ddotimth}} delredshorthnd{tln}{4l}{lgem{}} 36.105 delredshorthnd{tln}{4u}{textormth{dumlut u}{ddot u}} 36.106 delredshorthnd{tln}{4s}{textormth{dumlut s}{ddot s}} 36.107 delredshorthnd{tln}{4v}{vgem{}} 36.108 delredshorthnd{tln}{4}{textormth{dumlut }{ddot }}
36.103 36.104

edilleD
36.109 36.110

delredshorthnd{tln}{4}{textormth{ }{{prime} }} delredshorthnd{tln}{4g}{textormth{ g}{{prime} g}}

frenh9 quote hrtersD


delredshorthnd{tln}{4`}{7 textormth{guillemotleft}{mox{guillemotleft}}} 36.113 delredshorthnd{tln}{4b}{7 36.114 textormth{guillemotright}{mox{guillemotright}}}
36.111 36.112

grve entsD
difpkgewith{el}{tivegrve}{7 delredshorthnd{tln}{}{textormth{dgrve }{grve }} 36.117 delredshorthnd{tln}{e}{textormth{dgrve e}{grve e}} 36.118 delredshorthnd{tln}{o}{textormth{dgrve o}{grve o}}
36.115 36.116

40 A

problem is perceived here with these macros when used in a multilingual environment

where extended hyphenation patterns are available for some but not all languages. Assume that no extended patterns exist at some site for French and that too. In that case,

'e

french.sty would adopt this scheme

in French would produce the combined accented letter, but hyphenation

around it would be suppressed. Both language options would need an independent method to know whether they have extended patterns available. The precise impact of this problem and the possible solutions are under study.

PHS

36.119 36.120 36.121 36.122 36.123

delredshorthnd{tln}{e}{textormth{dgrve e}{grve e}} delredshorthnd{tln}{i}{textormth{dgrve i}{grve i}} delredshorthnd{tln}{y}{textormth{dgrve y}{grve y}} delredshorthnd{tln}{}{textquotedlleft}799 }{}

ute entsD
difpkgewith{el}{tiveute}{7 delredshorthnd{tln}{9}{textormth{dute }{{prime} }} 36.126 delredshorthnd{tln}{9e}{textormth{dute e}{{prime} e}} 36.127 delredshorthnd{tln}{9i}{textormth{dutei{}}{{prime} i}} 36.128 delredshorthnd{tln}{9o}{textormth{dute o}{{prime} o}} 36.129 delredshorthnd{tln}{9u}{textormth{dute u}{{prime} u}} 36.130 delredshorthnd{tln}{9e}{textormth{dute e}{{prime} e}} 36.131 delredshorthnd{tln}{9i}{textormth{dute i}{{prime} i}} 36.132 delredshorthnd{tln}{9s}{textormth{dute s}{{prime} s}} 36.133 delredshorthnd{tln}{9y}{textormth{dute y}{{prime} y}} 36.134 delredshorthnd{tln}{9}{textormth{dute }{{prime} }} 36.135 delredshorthnd{tln}{9|}{7 36.136 textormth{snme normldhrstring9endsnme}{{prime}}}
36.124 36.125

the ute entD


36.137 36.138 36.139

delredshorthnd{tln}{99}{7 textormth{textquotedlright}{spgroupprimds9}} }{}

nd (nllyD some support de(nitions


delredshorthnd{tln}{4E}{norekEldllowhyphens} delredshorthnd{tln}{4|}{7 36.142 textormth{norekdisretionry{E}{}{kernFHQem}7 36.143 llowhyphens}{}}
36.140 36.141

ell tht is left now is the rede(nition of \-F he new version of \- should inE dite n extr hyphention positionD while llowing other hyphention positions to e generted utomtillyF he stndrd ehviour of i in this respet is unfortunte for gtln ut not s muh s for huth or qermnD where long ompound words re quite norml nd ll one needs is mens to indite n extr hyphention position on top of the ones tht i n generte from the hyphention ptternsF roweverD the verge length of words in gtln mkes this desirle nd so it is kept hereF

ddtoextrstln{7 eldsve{E}7 36.146 defE{ldllowhyphensdisretionry{E}{}{}ldllowhyphens}}


36.144 36.145

lgem vgem

rere we de(ne mro for typing the tln el gemind @geminted lAF he mros \lgem nd \Lgem hve een hosen for its lowerse nd upperse repreE senttionD respetively41 F he ode used in the tul mro used is omintion of the one proposed y peruglio nd puster42 nd the proposl43 from liente presented t the i sers
41 The 42 G. 43 G.
macro names

\ll

and

\LL

were not taken because of the fact that

\ll

is already used

in mathematical mode.

Valiente and R. Fuster, Typesetting Catalan Texts with T X, TUGboat (3), 1993. E Valiente, Modern Catalan Typographical Conventions, TUGboat (3), 1995.

16

14

PHT

qroup ennul weeting in IWWSF his lst proposl hs not een fully implemented due to its limittion to gw fontsF
newdimenleftllkern newdimenrightllkern newdimenriselldim deflgem{7 36.149 ifmmode 36.150 snme normldhrstring4endsnme l7 36.151 else 36.152 leftllkernaHptrightllkernaHptriselldimaHpt7 36.153 setoxHhox{l}setoxIhox{lG}setoxPhox{F}7 36.154 dvneriselldim y thefontdimenSthefont 36.155 dvneriselldim y EhtP7 36.156 leftllkernaEFPSwdH7 36.157 dvneleftllkern y wdI7 36.158 dvneleftllkern y EwdH7 36.159 rightllkernaEFPSwdH7 36.160 dvnerightllkern y EwdI7 36.161 dvnerightllkern y wdH7 36.162 llowhyphensdisretionry{lE}{l}7 36.163 {hox{l}kernleftllkernriseriselldimhox{F}7 36.164 kernrightllkernhox{l}}llowhyphens 36.165 fi 36.166 } 36.167 defvgem{7 36.168 ifmmode 36.169 snme normldhrstring4endsnme v7 36.170 else 36.171 leftllkernaHptrightllkernaHptriselldimaHpt7 36.172 setoxHhox{v}setoxIhox{vG}setoxPhox{F}7 36.173 dvneriselldim y FShtH7 36.174 dvneriselldim y EFShtP7 36.175 leftllkernaEFIPSwdH7 36.176 dvneleftllkern y wdI7 36.177 dvneleftllkern y EwdH7 36.178 rightllkernaEwdH7 36.179 dividerightllkern y T7 36.180 dvnerightllkern y EwdI7 36.181 dvnerightllkern y wdH7 36.182 llowhyphensdisretionry{vE}{v}7 36.183 {hox{v}kernleftllkernriseriselldimhox{F}7 36.184 kernrightllkernhox{v}}llowhyphens 36.185 fi 36.186 }
36.147 36.148

lFl vFv

st seems to e the most nturl wy of entering the el gemind to use the sequenes \l.l nd \L.LF hese re not relly mro9s y themselves ut the mros \l nd \L with delimited rgumentsF herefor we de(ne two mros tht hek if the next hrter is periodF sf not the polish l will e typesetD otherwise el gemind will e typeset nd the next two tokens will e eten9F

etfeginhoument{7 letlslshl 36.189 letvslshv 36.190 helreoustgommndl{difnexthrFldllslsh}


36.187 36.188

PHU

helreoustgommndv{difnexthrFldvvslsh}} defldl5I5P{lgem} 36.193 defldv5I5P{vgem}


36.191 36.192

up

e mro for typesetting things like Ier s proposed y ymon eroul44 F


helreoustgommndB{up}I{textsupersript{5I}}

36.194

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
36.195 36.196

ldfdfinish{tln} /code

44 This

macro has been borrowed from francais.dtx

PHV

37

This le

his (le de(nes ll the lngugeEspei( mros for the qliin lngugeF he (le gliinFdtx ws trnslted in tnury PHHU y tvier eF wgi from spnishFdtxF st ws given the version numer RFQD sed on the version for spnishFdtx t those timesD tht ws RFPF he originl uthor from vRFH to RFP ws tvier fezosF revious versions were written y tulio nhezF s deided to mke tabula rasa of ll \changes logsF ynly hnges from spnish RFP to gliin RFQ nd therefter re doumentedF he hnge history for the originl spnishFdtx n e found in tht (leF

38

The Galcian language

gustumiztion is mde following minly the ooks on the sujet y tos wrtnez de ous nd os peix gidF fy typesetting galician.dtx diretly you will get the full doumenttion @regrettly is in qliin onlyD ut it is pretty longAF eferenes in this prt refers to tht doumentF here re severl ditionl fetures doumented in the qliin version onlyF his style providesX
A rnsltions following the snterntionl v i onventionsD s well s \todayF

horthnds listed in le IRF ixmples in susetion QFR re illustrtiveF xote tht "~ hs speil mening in galician di'erent to other lngugesD nd is used minly in linguisti ontextsF \deactivatetilden detivtes the ~n nd ~N shorthndsF
In math mode

dot followed y digit is repled y deiml ommF

qliins ordinls nd evitions with \sptext sD for instneD 1\sptext{o}F he preeptive dot is inludedF eented funtionsX lmD mxD mnD mdF ou my glolly omit the ents with \unaccentedoperatorsF ped funtionsX r osD etF ou my gloE lly kill tht spe with \unspacedoperatorsF \dotlessi is provided for use in mth modeF e quoting environment nd relted pir of shorthnds << nd >>F he ommnd \deactivatequoting detivtes these shorthnd in se you wnt to use < nd > in some ew ommnds nd numeril omprisonsF he ommnd \selectgalician selets the galician lnguge shorthndsF @sntended for the premleFA \frenchspacing is usedF \dots is rede(nedF st is now equl to typing tree points in row @it preserves the spe followingAF here is smll spe efore \%F \msc provides lowerse smll psF @ee susetion QFIHFA
PHW
and

its

'a 'n ~n "u "i "a "rr ""= "~ "" ~"/ "| << >> "< ">

ute ented F elso forX eD iD oD u @oth lowerse nd upperseAF @lso upperseAF @lso upperseAF hepretedF @lso upperseAF @lso upperseAF yrdinl numers @lso "AD "oD "OAF rrD ut Er when hyphented vike \-D ut llowing hyphention in the rest the wordF vike -D ut llowing hyphention in the rest the wordF he hyphen is repeted t the very eginning of the next line if the word is hyphented t this pointF vike "- ut produing no hyphen signF vike - ut with no rek fter the hyphenF elso forX enEdshes @~--A nd emEdshes @~---AF e slsh slightly loweredD if neessryF disle ligtures t this pointF veft guillemetsF ight guillemetsF \begin{quoting}F @ee textFA \end{quoting}F @ee textFA

le IRX ixtr de(nitions mde y (le galician.ldf tust in se galician is the min lngugeD the group \layoutgalician is tivtedD whih modi(es the stndrd lsses through the whole doument @it nnot e detivtedA in the following wyX

foth enumerate nd itemize re dpted to qliin rulesF foth \alph nd \Alph inlude

fter nF

ymol footmrks re oneD twoD threeD etFD sterissF OT1 guillemets re generted with two lasy symols insted of smll \ll nd \ggF \roman is rede(ned to write smll ps romn numerlsD sine lowerse romn numerls re not llowedF roweverD MakeIndex rejets entries onE tining pges in tht formtF he .idx (le must e preproessed if the doument hs this kind of entries with the provided romanidx.tex tool" just i it nd follow the instrutionsF here is dot fter setion numers in titles nd toF
his group is ignored if you write \selectgalician* in the premleF ome dditionl ommnds re provided to e used in the galician.cfg (leX

ith \gl@activeacute ute ents re lwys tiveD overriding the deE fult babel ehviourF
PIH

\gl@enumerate sets the lels to e used y enumerateF he sme pplies to \gl@itemize nd itemizeF \gl@operators stores the opertor ommndsF ell of them re neled with
letgldopertorsrelx

he ommnds \deactivatequotingD \deactivatetilden nd \selectgalician my e used in this (leD tooF e suset of these ommnds is provided for use in lin i @with \input galician.styAF

38.1 The Code


A A his (le provides de(nition for oth v i P nd non v i P formtsF sdentify the ldf (leF

code rovidesvnguge{gliinFldf} 38.3 PHHVGHUGHT vRFQ qliin support from the el system
38.1 38.2

vdfsnit{gliin}ptionsgliin ifxundefinedldgliin 38.6 dnoptterns{qliin} 38.7 dddiletldgliinH 38.8 fi


38.4 38.5

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF hen this (le is red s n optionD iFeF y the \usepackage ommndD galician will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@galician to see whether we hve to do something hereF

edefgldsvedtodes{7 todenoexpnd~athetode~ 38.11 todenoexpnd4athetode4} 38.12 tode~ative 38.13 tode4aIP 38.14 longdefglddelyed5Ithen5Pelse5Qfi{7 38.15 5I7 38.16 expndfterdfirstoftwo 38.17 else 38.18 expndfterdseondoftwo 38.19 fi 38.20 {5P}{5Q}}
38.9 38.10

e de(ne some tools whih will e used in tht style (leX @IA we mke sure tht ~ is tiveD @PA \gl@delayed delys the expnsion of the ode in onditionls @in ftD quite similr to \bbl@afterfiAF

glddelyed expndfterifxsnme doumentlssendsnmerelxthen 38.23 letifesdveeifflse 38.24 else


38.21 38.22

A wo tests re introduedF he (rst one tells us if the formt is v i P D nd the seond one if the formt is lin or ny otherF sf oth re flseD the formt is A v iPFHWF

PII

letifesdveeiftrue fi 38.27 glddelyed 38.28 expndfterifxsnme newenvironmentendsnmerelxthen 38.29 letifesdpliniftrue 38.30 else 38.31 letifesdplinifflse 38.32 fi
38.25 38.26

ddtoptionsgliin{7 38.34 defprefenme{refio}7 38.35 defrefnme{eferenis}7 38.36 defstrtnme{esumo}7 38.37 definme{filiogrf9{i}}7 38.38 defhpternme{gp9{i}tulo}7 38.39 defppendixnme{ep9endie}7 38.40 deflistfigurenme{9sndie de figurs}7 38.41 deflisttlenme{9sndie de dros}7 38.42 defindexnme{9sndie lf9etio}7 38.43 deffigurenme{pigur}7 38.44 deftlenme{gdro}7 38.45 defprtnme{rte}7 38.46 defenlnme{edxunto}7 38.47 defnme{gopi }7 38.48 defhedtonme{e}7 38.49 defpgenme{9xin}7 38.50 defseenme{v9exse}7 38.51 deflsonme{v9exse tm9en}7 38.52 defproofnme{hemostri9on}7 38.53 defglossrynme{qlosrio}}
38.33 38.54

rnsltions for ptionsF

expndfterifxsnme hpterendsnmerelx ddtoptionsgliin{defontentsnme{9sndie}} 38.57 else 38.58 ddtoptionsgliin{defontentsnme{9sndie xerl}} 38.59 fi


38.55 38.56

defdtegliin{7 38.61 deftody{thedy~de ifsemonthor xneiroor fereiroor 38.62 mrzoor rilor mioor xu~noor xulloor gostoor 38.63 setemroor outuroor novemroor deemrofi 38.64 ifnumyerbIWWWgldyerlelse defi~theyer}} 38.65 defgliindtedo{defgldyerl{do}} 38.66 defgliindtede{defgldyerl{de}} 38.67 gliindtedo
38.60

end the dteF

defseletgliin{7 defseletgliin{7 38.70 defseletgliin{7 38.71 kgerning{gliin}{ixtr stringseletgliin ignored}}7 38.72 gldselet}}
38.68 38.69

he si mros to selet the lngugeD in the premle or the on(g (leF se of \selectlanguage should e voided t this erly stge euse the tive hrs re not yet tiveF \selectgalician mkes them tiveF

PIP

38.73 38.74 38.75

donlypremleseletgliin

defgldselet{7 letgldseletdundefined 38.78 seletlnguge{gliin}7 38.79 tode4tivetode~ative}


38.76 38.77

defextrsgliin{7 textgliin 38.82 mthgliin 38.83 ifxshorthndsgliindempty 38.84 gliindetivte{F49~`b}7 38.85 lngugeshorthnds{none}7 38.86 else 38.87 shorthndsgliin 38.88 fi} 38.89 defnoextrsgliin{7 38.90 ifxtextgliindemptyelse 38.91 notextgliin 38.92 fi 38.93 ifxmthgliindemptyelse 38.94 nomthgliin 38.95 fi 38.96 ifxshorthndsgliindemptyelse 38.97 noshorthndsgliin 38.98 fi 38.99 gldreviveshorthnds}
38.80 38.81

snsted of joining ll the extrs diretly in \extrasgalicianD we sudivide them in three further groupsF

ddtotextgliin{7 38.101 eldsvesptext 38.102 defsptext{protetgldsptext}}


38.100

end the (rst of these suEgroups is de(nedF

ifesdvee 7`````` newommndgldsptextI{7 38.105 {Fsetoxzdhox{V}dimendhtzd 38.106 snme dfdsizeendsnme 38.107 edefdtemp{defnoexpnddtemp{5I}7 38.108 lowerse{defnoexpnddtemp{5I}}}dtemp 38.109 ifxdtempdtemp 38.110 fontsizesfdsizezd 38.111 seletfont 38.112 dvnedimendEIFISex 38.113 else 38.114 fontsizessfdsizezd 38.115 seletfont 38.116 dvnedimendEIFSex 38.117 fi 38.118 mthdfontsflserisedimendhox{5I}}} 38.119 else 7``````
38.103 38.104

he de(nition of \sptext is more elorted thn tht of \textsuperscriptF ith upperse supersript text the sriptsriptsize is usedF he mndtory dot is lredy inludedF here re two versionsD depending on the formtF

PIQ

letsptextfontrm newommndgldsptextI{7 38.122 {Fsetoxzdhox{V}dimendhtzd 38.123 edefdtemp{defnoexpnddtemp{5I}7 38.124 lowerse{defnoexpnddtemp{5I}}}dtemp 38.125 ifxdtempdtemp 38.126 dvnedimendEHFUSex 38.127 risedimendhox{6sriptstylesptextfont5I6}7 38.128 else 38.129 dvnedimendEHFVex 38.130 risedimendhox{6sriptsriptstylesptextfont5I6}7 38.131 fi}} 38.132 fi 7``````
38.120 38.121

ifesdvee 7`````` ddtotextgliin{7 38.135 eldsvels 38.136 defls{protetgldls} 38.137 eldsvems 38.138 defms{protetgldms}}
38.133 38.134 38.139 38.140 38.141 38.142 38.143 38.144

xowD lowerse smll psF pirstD we test if there re tul smll ps for the urrent fontF sf notD fked smll ps re usedF \msc tries slightly lrger fontF tvier fF wroteX he \selectfont in \gl@lsc ould seem redundntD ut it9s notF s nnot see how it n9t e redundnt @it is the lst thing exeuted y \scshapeAD ut s keep itF

defglddms{expndfterdtempdimfdsize pt dividedtempdim y PHH multiplydtemp edeffdsize{stripdptdtempdim}seletfont} defgldms{letglddodmsglddmsls} letglddodmsrelx

defgldls5I{7 levevmode 38.147 hox{glddodmssshpeseletfont 38.148 expndfterifxsnmefdenodingGfdfmilyGfdseries 38.149 GnGfdsizeexpndfterendsnme 38.150 snmeurrdfontshpeGfdsizeendsnme 38.151 snme dfdsizeendsnme 38.152 fontsizesfdsizezdseletfont 38.153 kgesnfo{gliin}{epling undefined s fontwessgefrek 38.154 shpe y fked smll ps}7 38.155 wkepperse{5I}7 38.156 else 38.157 wkevowerse{5I}7 38.158 fi}letglddodmsrelx} 38.159 fi 7``````
38.145 38.146

he quoting environmentF his prt is not ville in linD hene the testF yverriding the defult \everypar is it trikyF
38.160 38.161

newififgldlistquot

ifesdplinelse 7`````` snme newtoksendsnmegldquottoks 38.164 snme newountendsnmegldquotdepth


38.162 38.163 38.165

PIR

38.166 38.167 38.168 38.169 38.170 38.171 38.172 38.173 38.174 38.175 38.176 38.177 38.178 38.179 38.180 38.181 38.182 38.183 38.184 38.185 38.186 38.187 38.188 38.189 38.190 38.191 38.192 38.193 38.194

ifxquotingdundefineddefnext{letnextrelxnewenvironment} elsedefnext{kgesnfo{gliin}{edefining quoting}letnextrelxrenewenvironm fi next{quoting} {levevmode dvnegldquotdepthI snme lquotromnnumerlgldquotdepthendsnme7 ifnumgldquotdepthadne gldlistquotflse letgldquotpreverypr leteveryprgldquottoks everyprexpndfter{thegldquotpr}7 gldquotpr{theeverypr ifgldlistquotglolgldlistquotflseelsegldquotontfi}7 fi toksdexpndfter{gldquotont}7 edefgldquotont{thetoksd expndfternoexpnd snme rquotromnnumerlgldquotdepthendsnme}} {snme rquotromnnumerlgldquotdepthendsnme} deflquoti{guillemotleft{}} defrquoti{guillemotright{}} deflquotii{} defrquotii{99} deflquotiii{} defrquotiii{9} letgldquotontdempty

sf there is mrgin pr inside quotingD we don9t dd the quotesF \gl@listqout stores the quotes to e used efore item lelsY otherwise they ould pper fter the lelsF
38.195 38.196

ddtodmrginprreset{letgldquotontdempty}

defgldlistquot{7 snme rquotromnnumerlgldquotdepthendsnme 38.199 glolgldlistquottrue} 38.200 fi 7``````


38.197 38.198

xowD the \frenchspacingD followed y \...dots nd \% snsted of rede(ning \ldots nd \cdotsD we rede(ne \ldotp nd \cdotpD so tht this is omptile with msmthF sn ve we lso rede(ne \textellipsisD nd for plin or other we rede(ne \dotsF
38.201 38.202 38.203

ddtotextgliin{ldfrenhsping} ddtonotextgliin{ldnonfrenhsping}

mthhrdefglddota4HPHI ifesdvee 7`````` 38.206 ddtotextgliin{7 38.207 eldsvetextellipsis 38.208 eldsveldotp 38.209 eldsvedotp7 38.210 deftextellipsis{hox{FFF}speftorsfodeF{} }7 38.211 mthhrdefldotpa4HIQe7
38.204 38.205

PIS

mthhrdefdotpa4HPHI7 } 38.214 else 7`````` 38.215 ddtotextgliin{7 38.216 eldsvedots 38.217 eldsveldotp 38.218 eldsvedotp 38.219 mthhrdefldotpa4HIQe7 38.220 mthhrdefdotpa4HPHI7 38.221 defdots{ifmmodeldotselseFFFspeftorsfodeF{} fi}7 38.222 } 38.223 fi 7``````
38.212 38.213 38.224

ifesdvee 7`````` ddtotextgliin{7 38.227 letperentsign77 38.228 eldsve77 38.229 def7{unskipDperentsign{}}} 38.230 else 38.231 ddtotextgliin{7 38.232 letperentsign77 38.233 eldsve77 38.234 def7{unskipifmmodeDelse6mdthD6fiperentsign{}}} 38.235 fi
38.225 38.226

ddtomthgliin{7 eldsvedotlessi 38.238 defdotlessi{protetglddotlessi}}


38.236 38.237 38.239 38.240 38.241

e follow with the mth groupF st9s not esy to dd n ent in n opertorF he di0ulty is tht we must void using text @tht isD \mboxA euse we hve no ontrol on font nd sizeD nd t time we should ess \iD whih is text ommnd foridden in mth modeF \dotlessi must e onverted to upperse if neessry A in v i P F here re two versionsD depending on the formtF

letnomthgliinrelx 77 nusedD ut lled

ifesdvee 7`````` defgldtexti{i} 38.244 ddtodullist{dotlessigldtexti} 38.245 fi 7``````


38.242 38.243 38.246

ifesdvee 7`````` defglddotlessi{7 38.249 ifmmode 38.250 {ifnummthgroupamdne 38.251 imth 38.252 else 38.253 ountdespehr espehramdne 38.254 expndfterexpndfterexpndfter 38.255 splitdnmeexpndfterstringthetextfontmthgroupdnil 38.256 espehraountd 38.257 difundefined{fdenodingstringi}7 38.258 {edeffdenoding{stringc}}{}7 38.259 expndfterountdthesnmefdenodingstringiendsnme
38.247 38.248

PIT

dvneountd4UHHH mthhrountd 38.262 fi}7 38.263 else 38.264 i 38.265 fi} 38.266 else 7`````` 38.267 defglddotlessi{7 38.268 ifmmode 38.269 mthhr4UHIH 38.270 else 38.271 i 38.272 fi} 38.273 fi 7``````
38.260 38.261

defentedopertors{7 38.275 defgldopd55I{ute{55I}}7 38.276 defgldopdi{ute{dotlessi}}} 38.277 defunentedopertors{7 38.278 defgldopd55I{55I}7 38.279 defgldopdi{i}} 38.280 entedopertors
38.274 38.281 38.282 38.283

he swithes for ents nd spes in mthF

defspedopertors{letgldopdspD} defunspedopertors{letgldopdspdempty} 38.284 unspedopertors

he opertors re stored in \gl@operatorsD whih in turn is inluded in the A mth groupF ine \operator@font is de(ned in v i P onlyD we need to de(ne them in the plin vrintF
38.285 38.286 38.287

ddtomthgliin{7 gldopertors}

ifesdveeelse 7`````` letopertordfontrm 38.290 defdempty{} 38.291 fi 7``````


38.288 38.289 38.292

defgldopertors{7 eldsvelim deflim{mthop{opertordfont lprotetgldopdi m}}7 38.295 eldsvelimsup deflimsup{mthop{opertordfont lgldopdi mDsup}}7 38.296 eldsveliminf defliminf{mthop{opertordfont lgldopdi mDinf}}7 38.297 eldsvemx defmx{mthop{opertordfont mgldopd x}}7 38.298 eldsveinf definf{mthop{opertordfont protetgldopdi nf}}7 38.299 eldsvemin defmin{mthop{opertordfont mprotetgldopdi n}}7 38.300 eldsvemod 38.301 defmod{7 38.302 nonsriptmskipEmedmuskipmkernSmu7 38.303 mthin{opertordfont mgldopd od}penltyWHHmkernSmu7 38.304 nonsriptmskipEmedmuskip}7 38.305 eldsvepmod 38.306 defpmod55I{7 38.307 llowrekmkernIVmu@{opertordfont mgldopd od}DD55IA}7 38.308 defgld55I {7
38.293 38.294

PIU

38.309 38.310 38.311 38.312 38.313 38.314 38.315 38.316 38.317 38.318 38.319 38.320 38.321 38.322 38.323 38.324 38.325 38.326 38.327 38.328 38.329 38.330 38.331 38.332 38.333 38.334 38.335 38.336 38.337 38.338 38.339 38.340 38.341 38.342 38.343 38.344

glddelyed if55Ithen 7 is it emptyc do nothing nd ontinue gld else glddelyed if855Ithen 7 is it 8c do nothing nd finish else egingroup letDdempty 7 D is ignored when def9ing the mro nme letutedfirstofone 7 sme edefgld{expndfternoexpndsnme55Iendsnme}7 defD{noexpndgldopdsp}7 defute5555I{7 if i5555I7 noexpndgldopdi else noexpndgldopd5555I7 fi}7 edefgld{endgroup noexpndeldsveexpndfternoexpndgld defexpndfternoexpndgld{7 mthop{noexpndopertordfont55I}nolimits}}7 gld 7 st restores itself gld fi fi}7 letgldgliinopertors ddtogld{ }7 expndftergldgld sen tx ose rDsen rDos rDtx senh 8 7D will e set to gld 7 eldsvesin letsinsen eldsversin letrsinrsen eldsvesinh letsinhsenh

defgliinopertors{otx txh}

xow omes the text shorthndsF hey re grouped in \shorthandsgalician nd this style performs some opertions efore the el shortnds re lledF he gols re to llow espression like $a^{x'}$ nd to detivte the shorthnds mking them of tegory other9F efter providing \'i shorthndD the new mros re de(nedF
38.345 38.346

helreextgompositegommnd{9}{yI}{i}{dtkludge9{i}}

defgldsetdshorthnd5I{7 expndfteredefsnme gldsvetstring5Iendsnme 38.349 {thetode5I}7 38.350 inititedtivedhr{5I}7 38.351 tode5Iasnme gldsvetstring5Iendsnmerelx 38.352 expndfterletsnme gldmthstring5Iexpndfterendsnme 38.353 snme normldhrstring5Iendsnme}
38.347 38.348 38.354 38.355 38.356

defgldusedshorthnd{7 glddelyed

PIV

38.357 38.358 38.359 38.360 38.361 38.362 38.363 38.364 38.365 38.366 38.367 38.368 38.369 38.370

ifxthepgerelxthen string else{7 glddelyed ifxprotetdunexpndledprotetthen noexpnd else gldusedsh fi}7 fi} defgldtextdsh5I{snme tivedhrstring5Iendsnme} defgldmthdsh5I{snme gldmthstring5Iendsnme}

defgldusedsh{7 glddelyed 38.373 ifdsfedtivesthen 38.374 string 38.375 else{7 38.376 glddelyed 38.377 ifmmodethen 38.378 gldmthdsh 38.379 else 38.380 gldtextdsh 38.381 fi}7 38.382 fi}
38.371 38.372 38.383

gdefgldtivte5I{7 egingroup 38.386 lode~a5I 38.387 lowerse{7 38.388 endgroup 38.389 def~{gldusedshorthnd~}}}
38.384 38.385 38.390 38.391 38.392 38.393

defgliindetivte5I{7 dtfordtempXa5Ido{expndftergldspdetivtedtemp}}

defgldspdetivte5I{7 ifF5I7 38.396 mthodeFagldperioddode 38.397 else 38.398 egingroup 38.399 lode~a5I 38.400 lowerse{7 38.401 endgroup 38.402 expndfterletexpndfter~7 38.403 snme normldhrstring5Iendsnme}7 38.404 tode5Isnme gldsvetstring5Iendsnmerelx 38.405 fi}
38.394 38.395 38.406

defgldreviveshorthnds{7 gldrestore{4}gldrestore{~}7 38.409 gldrestore{`}gldrestore{b}7 38.410 gldquoting}


38.407 38.408

PIW

38.411

defgldrestore5I{7 tode5Iative 38.414 egingroup 38.415 lode~a5I 38.416 lowerse{7 38.417 endgroup 38.418 lddetivte{~}}}
38.412 38.413

egingroup tode9aIP 38.421 lode~a9 lode9a9 38.422 lowerse{7 38.423 gdefldprdmds{7 38.424 glddelyed 38.425 ifx~dletdtokenthen 38.426 prddds 38.427 else 38.428 {glddelyed 38.429 ifx9dletdtokenthen 38.430 prddds 38.431 else 38.432 {glddelyed 38.433 ifxdletdtokenthen 38.434 prdddt 38.435 else 38.436 egroup 38.437 fi}7 38.438 fi}7 38.439 fi}} 38.440 endgroup
38.419 38.420 38.441 38.442

fut galician llows two tegory odes for 'D so oth should e tken into ount in \bbl@pr@m@sF

expndfterifxsnme dtkludgeendsnmerelx letgldtk 38.443 else 38.444 letgldtkdtkludge 38.445 fi


38.446

ifesdvee 7`````` defdtkludge5I{expndftergldtkstring5I} 38.449 letdtkludge 38.450 elseifesdplin 7`````` 38.451 defdtkludge5I{snmestring5Iendsnme} 38.452 else 7`````` 38.453 defdtkludge5I{snme string5Iendsnme} 38.454 fifi 7``````
38.447 38.448 38.455

expndfterifxsnme dddentendsnmerelx defdddent5I5P{ent5I 5P} 38.458 fi


38.456 38.457

ifesdvee 7`````` 38.460 defgldent5I5P5Q{7


38.459

snsted of rede(ning \'D we rede(ne the internl mro for the yI enodingF

PPH

expndfterdtextdomposite snme yIstring5Iendsnme5Qdemptydtextdomposite 38.463 {ldllowhyphensdddent{5P}{5Q}ldllowhyphens 38.464 setoxdtempoxhox{5Q7 38.465 glolmthhrdefentdspeftorspeftor}7 38.466 speftorentdspeftor}} 38.467 else 7`````` 38.468 defgldent5I5P5Q{7 38.469 ldllowhyphensdddent{5P}{5Q}ldllowhyphens 38.470 speftorsfode5Q } 38.471 fi 7``````
38.461 38.462

he shorthnds re tivted in the ux (leF xowD we egin the shorthnds groupF


38.472 38.473

ddtoshorthndsgliin{lngugeshorthnds{gliin}} letnoshorthndsgliinrelx

defgliindeiml5I{defglddeiml{{5I}}} 38.475 defdeimlomm{gliindeiml{D}} 38.476 defdeimlpoint{gliindeiml{F}} 38.477 deimlomm


38.474 38.478 38.479 38.480

pirstD deiml ommF

gldsetdshorthnd{F}

dnmedef{gldmthstringF}{7 difnexthregroup 38.483 {mthhrgldperioddoderelx}7 38.484 {gldtextdshF}}


38.481 38.482 38.485 38.486 38.487 38.488

delredshorthnd{system}{F}{mthhrgldperioddoderelx}

ddtoshorthndsgliin{7 mthhrdefgldperioddodethemthodeF7 38.489 eldsvevrile{mthodeF}7 38.490 mthodeFa4VHHH 7 38.491 gldtivte{F}}


38.492

etfeginhoument{7 todeFaIP 38.495 ifdfilesw 38.496 immeditewritedminux{7 38.497 stringtodestringFaIP}7 38.498 fi}
38.493 38.494 38.499

delredshorthnd{gliin}{FI}{glddeimlI} delredshorthnd{gliin}{FP}{glddeimlP} 38.502 delredshorthnd{gliin}{FQ}{glddeimlQ} 38.503 delredshorthnd{gliin}{FR}{glddeimlR} 38.504 delredshorthnd{gliin}{FS}{glddeimlS} 38.505 delredshorthnd{gliin}{FT}{glddeimlT} 38.506 delredshorthnd{gliin}{FU}{glddeimlU} 38.507 delredshorthnd{gliin}{FV}{glddeimlV} 38.508 delredshorthnd{gliin}{FW}{glddeimlW} 38.509 delredshorthnd{gliin}{FH}{glddeimlH}
38.500 38.501

xow ents nd tools PPI

gldsetdshorthnd{4} defgldumlut5I{7 38.512 ldllowhyphensdddent{IPU}5Ildllowhyphens 38.513 speftorsfode5I }


38.510 38.511

ifesdvee 7`````` 38.515 ddtoshorthndsgliin{7 38.516 gldtivte{4}7 38.517 gldtivte{~}7 38.518 eldsveldumlut 38.519 letldumlutgldumlut 38.520 expndftereldsvesnme yIstring~endsnme 38.521 expndfterdefsnme yIstring~endsnme{gldent~{IPT}}7 38.522 expndftereldsvesnme yIstring9endsnme 38.523 expndfterdefsnme yIstring9endsnme{gldent9{IW}}} 38.524 else 7`````` 38.525 ddtoshorthndsgliin{7 38.526 gldtivte{4}7 38.527 gldtivte{~}7 38.528 eldsveldumlut 38.529 letldumlutgldumlut 38.530 eldsve~7 38.531 def~{gldent~{IPT}}7 38.532 eldsve97 38.533 def95I{if5Iigldent9{IW}ielsegldent9{IW}{5I}fi}} 38.534 fi 7``````
38.514

e override the defult " of elD intended for germnF

delredshorthnd{gliin}{4}{protetgldsptext{}} delredshorthnd{gliin}{4e}{protetgldsptext{e}} 38.537 delredshorthnd{gliin}{4o}{protetgldsptext{o}} 38.538 delredshorthnd{gliin}{4y}{protetgldsptext{y}}


38.535 38.536 38.539

delredshorthnd{gliin}{4u}{4u} delredshorthnd{gliin}{4}{4} 38.542 delredshorthnd{gliin}{4i}{4i} 38.543 delredshorthnd{gliin}{4s}{4s}


38.540 38.541 38.544

delredshorthnd{gliin}{4`}{egin{quoting}} delredshorthnd{gliin}{4b}{end{quoting}} 38.547 delredshorthnd{gliin}{4E}{ldllowhyphensEldllowhyphens} 38.548 delredshorthnd{gliin}{4a}7 38.549 {ldllowhyphenshrhyphenhrfonthskipzdskip} 38.550 delredshorthnd{gliin}{4~} 38.551 {ldllowhyphensdisretionry{hrhyphenhrfont}7 38.552 {hrhyphenhrfont}{hrhyphenhrfont}ldllowhyphens} 38.553 delredshorthnd{gliin}{4r} 38.554 {ldllowhyphensdisretionry{hrhyphenhrfont}7 38.555 {}{r}ldllowhyphens} 38.556 delredshorthnd{gliin}{4} 38.557 {ldllowhyphensdisretionry{hrhyphenhrfont}7 38.558 {}{}ldllowhyphens} 38.559 delredshorthnd{gliin}{44}{hskipzdskip} 38.560 delredshorthnd{gliin}{4G} 38.561 {setoxzdhox{G}7
38.545 38.546

PPP

dimendhtzd dvnedimendEIex 38.564 dvnedimenddpzd 38.565 dimendFQIdimend 38.566 dvnedimendEdpzd 38.567 ifdimdimendbHpt 38.568 kernFHIemlowerdimendoxzdkernFHQem 38.569 else 38.570 oxzd 38.571 fi} 38.572 delredshorthnd{gliin}{4c} 38.573 {setoxzdhox{c}7 38.574 levevmoderisedpzdoxzd} 38.575 delredshorthnd{gliin}{43} 38.576 {setoxzdhox{3}7 38.577 levevmoderisedpzdoxzd}
38.562 38.563 38.578

gldsetdshorthnd{~} delredshorthnd{gliin}{~n}{~n} 38.581 delredshorthnd{gliin}{~x}{~x} 38.582 delredshorthnd{gliin}{~E}{7 38.583 levevmode 38.584 group 38.585 letdsptokenglddshes 7 his ssigntion hnges the 38.586 difnexthrE7 difnexthr ehviour 38.587 {glddshes}7 38.588 {hox{hrhyphenhrfont}egroup}} 38.589 defglddshesE{7 38.590 difnexthrE7 38.591 {ldllowhyphenshox{EEE}ldllowhyphensegroupdgole}7 38.592 {ldllowhyphenshox{EE}ldllowhyphensegroup}}
38.579 38.580 38.593

defdetivtetilden{7 expndfterletsnme gliindshdstring~dndendsnmerelx 38.596 expndfterletsnme gliindshdstring~dxdendsnmerelx}


38.594 38.595

expndfterifxsnme wvdtodesendsnmerelx 38.598 ddtogldselet{7 38.599 tode`tivetodebative 38.600 gldquoting}


38.597 38.601 38.602 38.603 38.604 38.605 38.606 38.607 38.608 38.609 38.610 38.611 38.612 38.613

he shorthnds for quotingF

gldsetdshorthnd{`} gldsetdshorthnd{b} delredshorthnd{system}{`}{snme normldhrstring`endsnme} delredshorthnd{system}{b}{snme normldhrstringbendsnme} ddtoshorthndsgliin{7 gldtivte{`}7 gldtivte{b}} ifesdvee 7`````` etfeginhoument{7 gldquoting

PPQ

38.614 38.615 38.616 38.617 38.618 38.619 38.620 38.621 38.622 38.623 38.624 38.625

ifdfilesw immeditewritedminux{stringgldquoting}7 fi}7 fi 7`````` deftivtequoting{7 todebative tode`ative letgldquotingtivtequoting} defdetivtequoting{7 todebaIP tode`aIP letgldquotingdetivtequoting}

delredshorthnd{gliin}{``}{guillemotleft{}} delredshorthnd{gliin}{bb}{guillemotright{}} 38.628 fi


38.626 38.627 38.629

letgldquotingrelx letdetivtequotingrelx 38.632 lettivtequotingrelx


38.630 38.631

defgldtiveute{7 gldsetdshorthnd{9}7 38.635 ddtoshorthndsgliin{gldtivte{9}}7 38.636 ddtogldreviveshorthnds{gldrestore{9}}7 38.637 ddtogldselet{tode9ative}7 38.638 delredshorthnd{gliin}{9}{dtkludge9}7 38.639 delredshorthnd{gliin}{9e}{dtkludge9e}7 38.640 delredshorthnd{gliin}{9e}{dtkludge9e}7 38.641 delredshorthnd{gliin}{9i}{dtkludge9i}7 38.642 delredshorthnd{gliin}{9i}{dtkludge9i}7 38.643 delredshorthnd{gliin}{9s}{dtkludge9s}7 38.644 delredshorthnd{gliin}{9o}{dtkludge9o}7 38.645 delredshorthnd{gliin}{9y}{dtkludge9y}7 38.646 delredshorthnd{gliin}{9u}{dtkludge9u}7 38.647 delredshorthnd{gliin}{9}{dtkludge9}7 38.648 delredshorthnd{gliin}{9n}{~n}7 38.649 delredshorthnd{gliin}{9x}{~x}7 38.650 delredshorthnd{gliin}{99}{textquotedlright}7 38.651 letgldtiveuterelx}
38.633 38.634 38.652 38.653 38.654

he ute ents re stored in mroF sf activeacute ws set s n option it9s exeutedF sf not is not deleted for possile lter use in the cfg (leF sn non A v i P formts is lwys exeutedF

ifesdvee 7`````` difpkgewith{el}{tiveute}{gldtiveute}{} 38.655 else 7`````` 38.656 gldtiveute 38.657 fi 7``````7

end the ustomiztionF fy defult these mros only store the vlues nd do nothingF
38.658 38.659 38.660 38.661

defgldenumerte5I5P5Q5R{7 defgldenum{{5I}{5P}{5Q}{5R}}} defglditemize5I5P5Q5R{7

PPR

38.662

defglditem{{5I}{5P}{5Q}{5R}}}

he prt formerly in the .lld (le omes hereF st performs lyout dpttion A of v i to orthodox qliin rulesF
38.663 38.664

ifesdvee

7``````

gldenumerte{IF}{A}{IA}{696} defgliindshitems{glditemize{EEE}{EEE}{EEE}{EEE}} 38.667 defgliinsymitems{7 38.668 glditemize 38.669 {levevmodehox to IFPex 38.670 {hssvrule height FWex width FUex depth EFPexhss}}7 38.671 {textullet}7 38.672 {6mdthir6}7 38.673 {6mdthdimond6}} 38.674 defgliinsignitems{7 38.675 glditemize 38.676 {textullet}7 38.677 {6mdthir6}7 38.678 {6mdthdimond6}7 38.679 {6mdthtringleright6}} 38.680 gliinsymitems
38.665 38.666 38.681

defgldenumdef5I5P5Qdd{7 if5PI7 38.684 dnmedef{theenum5I}{ri{enum5I}}7 38.685 elseif5P7 38.686 dnmedef{theenum5I}{emph{lph{enum5I}}}7 38.687 elseif5Pe7 38.688 dnmedef{theenum5I}{elph{enum5I}}7 38.689 elseif5Pi7 38.690 dnmedef{theenum5I}{romn{enum5I}}7 38.691 elseif5Ps7 38.692 dnmedef{theenum5I}{omn{enum5I}}7 38.693 elseif5Po7 38.694 dnmedef{theenum5I}{ri{enum5I}protetgldsptext{o}}7 38.695 fifififififi 38.696 toksdexpndfter{snme theenum5Iendsnme} 38.697 expndfteredefsnme lelenum5Iendsnme 38.698 {noexpndgldlistquotthetoksd5Q}}
38.682 38.683 38.699

ddtolyoutgliin{7 defgldenumerte55I55P55Q55R{7 38.702 gldenumdef{i}55Idemptydemptydd 38.703 gldenumdef{ii}55Pdemptydemptydd 38.704 gldenumdef{iii}55Qdemptydemptydd 38.705 gldenumdef{iv}55Rdemptydemptydd}7 38.706 defglditemize55I55P55Q55R{7 38.707 deflelitemi{gldlistquot55I}7 38.708 deflelitemii{gldlistquot55P}7 38.709 deflelitemiii{gldlistquot55Q}7 38.710 deflelitemiv{gldlistquot55R}}7 38.711 defpdenumii{theenumi}7 38.712 defpdenumiii{theenumitheenumii}7 38.713 defpdenumiv{pdenumiiitheenumiii}7
38.700 38.701

PPS

38.714 38.715 38.716 38.717 38.718 38.719 38.720 38.721 38.722 38.723 38.724 38.725 38.726 38.727 38.728 38.729 38.730 38.731 38.732 38.733 38.734 38.735 38.736 38.737 38.738 38.739 38.740 38.741 38.742 38.743 38.744 38.745 38.746 38.747

expndftergldenumertegldenum expndfterglditemizeglditem helreextgommnd{guillemotleft}{yI}{7 ifmmodell else svedsfdq{penltydw levevmodehox{usefont{}{lsy}{m}{n}7 hrRH kernEHFIWemhrRH }}7 fi}7 helreextgommnd{guillemotright}{yI}{7 ifmmodegg else svedsfdq{penltydw levevmodehox{usefont{}{lsy}{m}{n}7 hrRI kernEHFIWemhrRI }}7 fi}7 defdfnsymol55I7 {ifse55IorBorBBorBBBorBBBBor BBBBBorBBBBBBelsedtrerrfi}7 defdlph55I7 {ifse55Ior or or or dor eor for gor hor ior lor mor nor ~nor oor por qor ror sor tor uor vor xor zelsedtrerrfi}7 defdelph55I7 {ifse55Ior eor for gor hor ior por qor ror sor vor wor xor ~xor yor or or or or or or or or elsedtrerrfi}7 letdfterindentflsedfterindenttrue dfterindenttrue defdsentformt55I{snme the55IendsnmeFqud}7 defnumerline55I{hdxtddtempdim{55Iif855I8elseFfihfil}}7 defdromn55I{protetgldromn{numer55I}}7 defgldromn55I{protetgldms{romnnumerl55I}}7 defglromnindex55I55P{55I{protetgldms{55P}}}}

etindyfkge{7 letgldtiveutedundefined 38.750 defldtemp{gliin}7 38.751 ifxldmindlngugeldtemp 38.752 etfeginhoument{lyoutgliin}7 38.753 ddtogldselet{7 38.754 difstr{letlyoutgliinrelx}7 38.755 {lyoutgliinletlyoutgliinrelx}}7 38.756 fi 38.757 seletgliin}
38.748 38.749 38.758 38.759

e need to exeute the following ode when el hs een runD in order to see if galician is the min lngugeF

fi

7``````

efter restoring the tode of ~ nd setting the miniml vlues for hyphentionD the .ldf is (nishedF
38.760 38.761 38.762

gldsvedtodes

providehyphenmins{gurrentyption}{twdtwd}

PPT

38.763

ifesdvee 7`````` ldfdfinish{gliin} 38.766 else 7`````` 38.767 gldselet 38.768 ldfdfinish{gliin} 38.769 snme tivtequotingendsnme 38.770 fi 7``````
38.764 38.765 38.771 38.772

/code

ht9s ll in the min (leF xow the (le with custom-bib mrosF
bblbst deflnd{e} 38.775 defleditors{diretores} defleds{dirsFd} 38.776 defleditor{diretor} defled{dirFd} 38.777 defledy{dirixido por} 38.778 defledition{edii9on} defledn{edFd} 38.779 defletl{e outros} 38.780 deflvolume{volumen} deflvol{volFd} 38.781 deflof{de} 38.782 deflnumer{n9umero} deflno{nsptext{o}} 38.783 deflin{en} 38.784 deflpges{p9xins} deflpp{p9xsFd} 38.785 deflpge{p9xin} deflp{p9xFd} 38.786 deflhpter{p9itulo} deflhp{pFd} 38.787 defltehreport{informe t9enio} 38.788 defltehrep{infFd t9eFd} 38.789 deflmthesis{proxeto de fin de rreir} 38.790 deflphdthesis{tesis doutorl} 38.791 deflfirst {primeir} deflfirsto {Isptext{}} 38.792 deflseond{segund} deflseondo{Psptext{}} 38.793 deflthird {tereir} deflthirdo {Qsptext{}} 38.794 deflfourth{urt} deflfourtho{Rsptext{}} 38.795 deflfifth {quint} deflfiftho {Ssptext{}} 38.796 deflth{sptext{}} 38.797 letlstlth letlndlth letlrdlth 38.798 defljn{xneiro} deflfe{fereiro} deflmr{mrzo} 38.799 deflpr{ril} deflmy{mio} defljun{xu~no} 38.800 defljul{xullo} deflug{gosto} deflsep{setemro} 38.801 deflot{outuro}deflnov{novemro}deflde{deemro} 38.802 /bblbst
38.773 38.774

he galician option writes mro in the pge (eld of MakeIndex in entries with medium ps numerD nd they re rejetedF his progrm is preproessor whih moves this mro to the entry (eldF
38.803 38.804 38.805 38.806 38.807 38.808

indexgl mketletter

newountgldonverted newountgldproessed

defgldenp{|} defgldopenrnge{@} 38.811 defgldlosernge{A}


38.809 38.810

PPU

38.812 38.813 38.814 38.815 38.816 38.817 38.818

defgldsplitdfile5IF5Pdd{5I} defgldsplitdext5IF5Pdd{5P} typeinnswer{terhivo que onvertirt7 @extension por omision FidxAX}

dexpndtworgsind{F}{nswer} ifind 38.821 edefgldinputdfile{expndftergldsplitdfilenswerdd} 38.822 edefgldinputdext{expndftergldsplitdextnswerdd} 38.823 else 38.824 edefgldinputdfile{nswer} 38.825 defgldinputdext{idx} 38.826 fi
38.819 38.820 38.827

typeinnswer{terquivo de destinot7 @rquivo por omisionX gldinputdfileFeixDt7 38.830 extension por omision FeixAX} 38.831 ifxnswerdempty 38.832 edefgldoutput{gldinputdfileFeix} 38.833 else 38.834 dexpndtworgsind{F}{nswer} 38.835 ifind 38.836 edefgldoutput{nswer} 38.837 else 38.838 edefgldoutput{nswerFeix} 38.839 fi 38.840 fi
38.828 38.829 38.841

typeinnswer{7 tcsouse lgun esquem espeil de ontrolest7 38.844 de wkesndex pr enpD openrnge ou loserngect7 38.845 sGn @n por omisionA}
38.842 38.843 38.846

if snswer typeinnswer{tgrter pr 9enp9t7 38.849 @string| por omisionA} 38.850 ifxnswerdemptyelse 38.851 edefgldenp{7 38.852 expndfternoexpndsnmeexpndfterstringnswerendsnme} 38.853 fi 38.854 typeinnswer{tgrter pr 9openrnge9t7 38.855 @string@ por omisionA} 38.856 ifxnswerdemptyelse 38.857 edefgldopenrnge{7 38.858 expndfternoexpndsnmeexpndfterstringnswerendsnme} 38.859 fi 38.860 typeinnswer{tgrter pr 9losernge9t7 38.861 @stringA por omisionA} 38.862 ifxnswerdemptyelse 38.863 edefgldlosernge{7 38.864 expndfternoexpndsnmeexpndfterstringnswerendsnme} 38.865 fi
38.847 38.848

PPV

38.866 38.867 38.868 38.869 38.870 38.871 38.872 38.873 38.874 38.875

fi newwritegldindexfile immediteopenoutgldindexfileagldoutput newififgldenpsulted defgldromn5I{romnnumerl5I } edefgldslsh{expndfterdgolestring}

defindexentry{7 egingroup 38.878 dsnitize 38.879 gldindexentry}


38.876 38.877 38.880 38.881 38.882

egingroup

tode|aIP lode|agldenprelx tode@aIP lode@agldopenrngerelx 38.885 todeAaIP lodeAagldloserngerelx


38.883 38.884 38.886

lowerse{ gdefgldindexentry5I{7 38.889 endgroup 38.890 dvnegldproesseddne 38.891 gldenpsultedflse 38.892 gldrdidx5I|dd 38.893 gldidxentry}7 38.894 }
38.887 38.888 38.895

lowerse{ gdefgldidxentry5I{7 38.898 ind{gldromn}{5I}7 38.899 ifind 38.900 dvnegldonverteddne 38.901 immeditewritegldindexfile{7 38.902 stringindexentry{gld|ifgldenpsultedgldpfi glromnindex7 38.903 {ifxglddemptyelsegldslshgldfi}}{5I}}7 38.904 else 38.905 immeditewritegldindexfile{7 38.906 stringindexentry{gldifgldenpsulted|gldpgldfi}{5I}}7 38.907 fi} 38.908 }
38.896 38.897 38.909

lowerse{ gdefgldrdidx5I|5Pdd{7 38.912 defgld{5I}defgld{5P}7 38.913 ifxglddemptyelsegldenpsultedtruegldrdet5Pfi} 38.914 }


38.910 38.911 38.915

lowerse{ gdefgldrdet5I5P|{defgldp{5I}defgld{5P}7 38.918 edefgldt{@}ifxgldtgldp 38.919 elseedefgldt{A}ifxgldtgldp


38.916 38.917

PPW

38.920 38.921 38.922 38.923 38.924 38.925 38.926 38.927 38.928 38.929 38.930

else edefgld{gldpgld}letgldpdempty7 fifi}

endgroup input gldinputdfileFgldinputdext immediteloseoutgldindexfile

typeout{BBBBBBBBBBBBBBBBB} typeout{proesouseX gldinputdfileFgldinputdext } 38.933 typeout{vi9ns lidsX thegldproessed} 38.934 typeout{vi9ns onvertidsX thegldonverted} 38.935 typeout{esultdo enX gldoutput} 38.936 ifnumgldonvertedbzd 38.937 typeout{enere o 9indie prtir deste rquivo} 38.938 else 38.939 typeout{xon se relizou ning9un tipo de onversi9on} 38.940 typeout{9odese xenerr o rquivo diretmentet7 38.941 de gldinputdfileFgldinputdext} 38.942 fi 38.943 typeout{BBBBBBBBBBBBBBBBB} 38.944 ddend 38.945 /indexgl
38.931 38.932

PQH

39

The Basque language

he (le basque.dtx45 de(nes ll the lnguge de(nition mro9s for the fsque lngugeF por this lnguge the hrters ~ nd " re mde tiveF sn tle IS n overview is given of their purposeF hese tive ent hrters ehve ording

"| "\"< "> ~n

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like the old \-D ut llowing hyphention in the rest of the wordF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF n with tildeF orks for upperse tooF

le ISX he extr de(nitions mde y basque.ldf to their originl de(nitions if not followed y one of the hrters indited in tht tleF his option inludes support for working with extendedD VEit fontsD if villeF upport is sed on providing n pproprite de(nition for the ent mros on A entry to the fsque lngugeF his is utomtilly done y v i P or xpPF sf I enoding is hosenD nd provided tht dequte hyphention ptterns46 re A villeF he esiest wy to use the new enoding with v i P is to lod the pkge t1enc with \usepackageF his must e done efore loding babelF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
39.1 39.2

code vdfsnit{sque}ptionssque

hen this (le is red s n optionD iFeF y the \usepackage ommndD basque ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@basque to see whether we hve to do something hereF
ifxldsquedundefined dnoptterns{fsque} 39.5 dddiletldsqueH 39.6 fi
39.3 39.4

he next step onsists of de(ning ommnds to swith to @nd fromA the fsque lngugeF
ptionssque

ddtoptionssque{7 defprefenme{ritzurre}7 39.9 defrefnme{irreferentzik}7


39.7 39.8

he mro \captionsbasque de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

le by Julio Snchez, (jsanchez@gmv.es).

The original author is Juan M. Aguirregabiria, (wtpagagj@lg.ehu.es) and is based on the Spanish

45 The le described in this section has version number v1.0f and was last revised on 2005/03/29.

46 One

source for such patterns is the archive at

mous FTP or in

tp.lc.ehu.es http://tp.lc.ehu.es/jma/basque.html

that can be accessed by anony-

PQI

39.10 39.11 39.12 39.13 39.14 39.15 39.16 39.17 39.18 39.19 39.20 39.21 39.22 39.23 39.24 39.25 39.26 39.27 39.28 39.29

defstrtnme{vurpen}7 definme{filiogrfi}7 defhpternme{upitulu}7 defppendixnme{irnskin}7 defontentsnme{qien eurkiide}7 deflistfigurenme{srudien errend}7 deflisttlenme{ulen errend}7 defindexnme{uontzeptuen eurkiide}7 deffigurenme{srudi}7 deftlenme{ul}7 defprtnme{etl}7 defenlnme{irntsi}7 defnme{uopi}7 defhedtonme{xori}7 defpgenme{yrri}7 defseenme{skusi}7 deflsonme{skusiD hler}7 defproofnme{progpen}7 defglossrynme{qlosrio}7 }7

dtesque

he mro \datebasque rede(nes the ommnd \today to produe fsque

defdtesque{7 deftody{numeryerFekospeifsemonthor 39.32 urtrrilrenor otsilrenor mrtxorenor pirilrenor 39.33 mitzrenor ekinrenor uztilrenor uzturenor 39.34 irilrenor urrirenor zrorenor 39.35 endurenfi~numerdy}}
39.30 39.31

extrssque noextrssque

he mro \extrasbasque will perform ll the extr de(nitions needed for the fsque lngugeF he mro \noextrasbasque is used to nel the tions of \extrasbasqueF por fsqueD some hrters re mde tive or re rede(nedF sn prtiulrD the " hrter nd the ~ hrter reeive new meningsF herefore these hrters hve to e treted s speil9 hrtersF

ddtoextrssque{lngugeshorthnds{sque}} inititedtivedhr{4} 39.38 inititedtivedhr{~} 39.39 ddtoextrssque{7 39.40 ldtivte{4}7 39.41 ldtivte{~}}
39.36 39.37

hon9t forget to turn the shorthnds o' ginF


39.42 39.43

ddtonoextrssque{ lddetivte{4}lddetivte{~}}

eprt from the tive hrters some other mros get new de(nitionF herefore we store the urrent one to e le to restore them lterF
ddtoextrssque{7 eldsve47 39.46 eldsve~7 39.47 def4{protetdumlut}7 39.48 def~{protetdtilde}}
39.44 39.45

squehyphenmins

fsque hyphention uses \lefthyphenmin nd \righthyphenmin oth set to PF


providehyphenmins{gurrentyption}{twdtwd}

39.49

PQP

dieresi texttilde

he originl de(nition of \" is stored s \dieresiaD euse the we do not know wht is its de(nitionD sine it depends on the enoding we re using or on speil mros tht the user might hve lodedF he expnsion of the mro might use the i \accent primitive using some prtiulr ent tht the font provides or might hek if omined ent exists in the fontF hese two ses hppen with respetively yI nd I enodingsF por this reson we sve the de(nition of \" nd use tht in the de(nition of other mrosF e do likewise for \' nd \~F he present oding of this option (le is inorret in tht it n rek when the enoding hngesF e do not use \tilde s the mro nme euse it is lredy de(ned s \mathaccentF
letdieresi4 lettexttilde~

39.50 39.51

dumlut dtilde

e hek the enoding nd if not using ID we mke the ents expnd ut enling hyphention eyond the entF sf this is the seD not ll rek positions will e found in words tht ontin entsD ut this is limittion in iF en unsolved prolem here is tht the enoding n hnge t ny timeF he de(nitions elow re mde in suh wy tht hnge etween two PSTEhr enodings re supportedD ut hnges etween IPVEhr nd PSTEhr enoding re not properly supportedF e hek if I is in useF sf notD we will give wrning nd proeed rede(ning the ent mros so tht i t lest (nds the reks tht re not too lose to the entF he wrning will only e printed to the log (leF

ifxhelreponthpedundefined wlog{rningX ou re using n old ve} 39.54 wlog{ome word reks will not e foundF} 39.55 defdumlut5I{llowhyphensdieresi{5I}llowhyphens} 39.56 defdtilde5I{llowhyphenstexttilde{5I}llowhyphens} 39.57 else 39.58 edefldnext{I} 39.59 ifxfdenodingldnext 39.60 letdumlutdieresi 39.61 letdtildetexttilde 39.62 else 39.63 wlog{rningX ou re using enoding fdenodingspe 39.64 insted of IF} 39.65 wlog{ome word reks will not e foundF} 39.66 defdumlut5I{llowhyphensdieresi{5I}llowhyphens} 39.67 defdtilde5I{llowhyphenstexttilde{5I}llowhyphens} 39.68 fi 39.69 fi
39.52 39.53

xow we n de(ne our shorthndsX the frenh quotesD


delredshorthnd{sque}{4`}{7 39.71 textormth{guillemotleft}{mox{guillemotleft}}} 39.72 delredshorthnd{sque}{4b}{7 39.73 textormth{guillemotright}{mox{guillemotright}}}
39.70

ordinls47 D
39.74 39.75

delredshorthnd{sque}{99}{7 textormth{textquotedlright}{spgroupprimds9}}
code for the ordinals was taken from the answer provided by Raymond Chen

(raymond@math.berkeley.edu) to a question by Joseph Gil (yogi@cs.ubc.ca) in

47 The

comp.text.tex.

PQQ

tildesD
39.76 39.77

delredshorthnd{sque}{~n}{textormth{~n}{dtilde n}} delredshorthnd{sque}{~x}{textormth{~x}{dtilde x}}

nd some dditionl ommndsF he shorthnd "- should e used in ples where word ontins n explitit hyphention hrterF eording to the edemy of the fsque lngugeD when word rek ours t n expliit hyphen it must pper both t the end of the (rst line and t the eginning of the seond lineF
delredshorthnd{sque}{4E}{7 norekdisretionry{E}{E}{E}ldllowhyphens} 39.80 delredshorthnd{sque}{4|}{7 39.81 textormth{norekdisretionry{E}{}{kernFHQem}7 39.82 llowhyphens}{}}
39.78 39.79

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
39.83 39.84

ldfdfinish{sque} /code

PQR

40

The Romanian language

he (le romanian.dtx48 de(nes ll the lngugeEspei( mros for the omnin lngugeF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
40.1 40.2

code vdfsnit{romnin}ptionsromnin

hen this (le is red s n optionD iFeF y the \usepackage ommndD romanian will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@romanian to see whether we hve to do someE thing hereF
ifxldromnindundefined dnoptterns{omnin} 40.5 dddiletldromninHfi
40.3 40.4

he next step onsists of de(ning ommnds to swith to @nd fromA the oE mnin lngugeF
ptionsromnin

ls ddtoptionsromnin{7 40.8 defprefenme{ref{t}u{}}7 40.9 defrefnme{filiogrfie}7 40.10 defstrtnme{ezumt}7 40.11 definme{filiogrfie}7 40.12 defhpternme{gpitolul}7 40.13 defppendixnme{enex}7 40.14 defontentsnme{guprins}7 40.15 deflistfigurenme{vistu{} de figuri}7 40.16 deflisttlenme{vistu{} de tele}7 40.17 defindexnme{qlosr}7 40.18 deffigurenme{pigur}7 7 su ln{s} 40.19 deftlenme{el}7 40.20 defprtnme{rte}7 40.21 defenlnme{enexu{}}7 7 su enexe 40.22 defnme{gopie}7 40.23 defhedtonme{entru}7 40.24 defpgenme{gin}7 40.25 defseenme{ezi}7 40.26 deflsonme{ezi de semene}7 40.27 defproofnme{hemonstr{t}ie} 7 40.28 defglossrynme{qlosr}7 40.29 }7
40.6 40.7

he mro \captionsromanian de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF

dteromnin

he mro \dateromanian rede(nes the ommnd \today to produe omnin dtesF


defdteromnin{7
48 The le described in this section has version number v1.2l and was last revised on 2005/03/31.

40.30

A contribution was made by Umstatter Horst (hhu@cernvm.cern.ch).

PQS

40.31 40.32 40.33 40.34 40.35

deftody{numerdy~ifsemonthor inurieor ferurieor mrtieor prilieor mior iunieor iulieor ugustor septemrieor otomrieor noiemrieor deemriefi spe numeryer}}

extrsromnin noextrsromnin

he mro \extrasromanian will perform ll the extr de(nitions needed for the omnin lngugeF he mro \noextrasromanian is used to nel the tions of \extrasromanian por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrsromnin{} ddtonoextrsromnin{}

40.36 40.37

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
40.38 40.39

ldfdfinish{romnin} /code

PQT

41

The Danish language

he (le danish.dtx49 de(nes ll the lnguge de(nition mros for the hnish lngugeF por this lnguge the hrter " is mde tiveF sn tle IT n overview is given of its purposeF

"| """ "` "' "< "> \-

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for words tht should rek t some sign suh s entrdGslidF lowered doule left quotes @looks like A norml doule right quotes for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF like the old \-D ut llowing hyphention in the rest of the wordF

le ITX he extr de(nitions mde y danish.ldf he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
41.1 41.2

code vdfsnit{dnish}ptionsdnish

hen this (le is red s n optionD iFeF y the \usepackage ommndD danish will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@danish to see whether we hve to do something hereF
ifxlddnishdundefined dnoptterns{hnish} 41.5 dddiletlddnishHfi
41.3 41.4

englishhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
41.6

providehyphenmins{gurrentyption}{twdtwd}

he next step onsists of de(ning ommnds to swith to @nd fromA the hnish lngugeF
ptionsdnish

ddtoptionsdnish{7 defprefenme{porord}7 41.9 defrefnme{vittertur}7 41.10 defstrtnme{esum9e}7 41.11 definme{vittertur}7 41.12 defhpternme{upitel}7 41.13 defppendixnme{filg}7 41.14 defontentsnme{sndhold}7
41.7 41.8

he mro \captionsdanish de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

2008/07/06. A contribution was made by Henning Larsen (larsen@cernvm.cern.ch)

49 The

le described in this section has version number v1.3q and was last revised on

PQU

41.15 41.16 41.17 41.18 41.19 41.20 41.21 41.22 41.23 41.24 41.25 41.26 41.27 41.28 41.29

deflistfigurenme{pigurer}7 deflisttlenme{eller}7 defindexnme{sndeks}7 deffigurenme{pigur}7 deftlenme{el}7 defprtnme{hel}7 defenlnme{edlgt}7 defnme{uopi til}7 or uopi sendt til defhedtonme{il}7 in letter defpgenme{ide}7 defseenme{e}7 deflsonme{e ogs{}}7 defproofnme{fevis}7 defglossrynme{qloseliste}7 }7

dtednish

he mro \datedanish rede(nes the ommnd \today to produe hnish dtesF

defdtednish{7 deftody{numerdyF~ifsemonthor 41.32 jnuror feruror mrtsor prilor mjor junior 41.33 julior ugustor septemeror oktoeror novemeror deemerfi 41.34 spenumeryer}}
41.30 41.31

extrsdnish noextrsdnish

he mro \extrasdanish will perform ll the extr de(nitions needed for the hnish lngugeF he mro \noextrasdanish is used to nel the tions of \extrasdanishF hnish typesetting requires \frenchspacing to e in e'etF
ddtoextrsdnish{ldfrenhsping} ddtonoextrsdnish{ldnonfrenhsping}

41.35 41.36

por hnish the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the dnish group of shorthnds should e usedF
inititedtivedhr{4} ddtoextrsdnish{lngugeshorthnds{dnish}} 41.39 ddtoextrsdnish{ldtivte{4}}
41.37 41.38

hon9t forget to turn the shorthnds o' ginF


41.40

ddtonoextrsdnish{lddetivte{4}}

pirst we de(ne ess to the low opening doule quote nd guillemets for quottionsD
delredshorthnd{dnish}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 41.43 delredshorthnd{dnish}{49}{7 41.44 textormth{textquotedlleft}{mox{textquotedlleft}}} 41.45 delredshorthnd{dnish}{4`}{7 41.46 textormth{guillemotleft}{mox{guillemotleft}}} 41.47 delredshorthnd{dnish}{4b}{7 41.48 textormth{guillemotright}{mox{guillemotright}}}
41.41 41.42

PQV

then we de(ne ommnds to e le to speify hyphention rekpoints tht ehve little di'erent from \-F
delredshorthnd{dnish}{4E}{norekEldllowhyphens} delredshorthnd{dnish}{44}{hskipzdskip} 41.51 delredshorthnd{dnish}{4~}{textormth{levevmodehox{E}}{E}} 41.52 delredshorthnd{dnish}{4a}{norekEhskipzdskip}
41.49 41.50

end we wnt to hve shorthnd for disling ligtureF


41.53 41.54

delredshorthnd{dnish}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

o enle hyphention in two wordsD written together ut seprted y slshD s in uitdrukkingGopmerking9 we de(ne the ommnd "/F
41.55 41.56

delredshorthnd{duth}{4G}{textormth {ldllowhyphensdisretionry{G}{}{G}ldllowhyphens}{}}

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsveE} 41.59 expndfterddtosnme extrsgurrentyptionendsnme{7 41.60 defE{ldllowhyphensdisretionry{E}{}{}ldllowhyphens}}


41.57 41.58

ell tht is left now is the rede(nition of \-F he new version of \- should indite n extr hyphention positionD while llowing other hyphention positions to e generted utomtillyF he stndrd ehviour of i in this respet is very unfortunte for lnguges suh s huth nd qermnD where long ompound words re quite norml nd ll one needs is mens to indite n extr hyphention position on top of the ones tht i n generte from the hyphention ptternsF

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
41.61 41.62

ldfdfinish{dnish} /code

PQW

42

The Icelandic language

42.1 Overview
he (le iceland.dtx50 de(nes ll the lnguge de(nition mros for the selndi lnguge gustomiztion for the selndi lnguge ws mde following severl o0il nd semio0il pulitions PD QD ID TD SF hese pulitions do not lwys gree nd we indite those instnesF por this lnguge the hrter " is mde tiveF sn tle IU n overview is given of its purposeF he shorthnds in tle IU n lso e typeset y using the

"| """ "~ "= "` "' "> "< "o "O " " "e "E " " \tala \grada \gradur \upp

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for ompound word mrk without rekpointF for ompound word mrk with rekpointD llowE ing hyphention in the omposing wordsF for selndi left doule quotes @looks like AF for selndi right doule quotesF for selndi frenh9 left doule quotes @similr to >>AF for selndi frenh9 right doule quotes @similr to <<AF  for old selndi o for old selndi y   for old selndi for old selndi   for old selndi e  for old selndi i  for old selndi  for old selndi for typesetting numers for the degree9 symol for degrees9D eFgF S g for textsupersript

le IUX he shorthnds nd extr de(nitions mde y icelandic.ldf ommnds in tle IVF

References
I elingiF
50 The
Reglur um frgang ingskjala og prentun umrnaD

IWVVF

P euglsing um greinrmerkjsetninguF tjFt fD nrF IQQGIWURD IWURF


le described in this section has version number ? and was last revised on ?.

PRH

\ilqq \irqq \ilq \irq \iflqq \ifrqq \ifrq \iflq \dq \oob \Oob \ooob \OOob \eob \Eob \eeob \EEob

for selndi left doule quotes @looks like AF for selndi right doule quotes @looks like AF for selndi left single quotes @looks like DAF for selndi right single quotes @looks like AF for selndi frenh9 left doule quotes @similr to >>AF for selndi frenh9 right doule quotes @similr to <<AF for selndi frenh9 right single quotes @similr to <AF for selndi frenh9 left single quotes @similr to >AF the originl quotes hrter @"AF  for old selndi o for old selndi y   for old selndi for old selndi   for old selndi e  for old selndi i  for old selndi  for old selndi

le IVX gommnds whih produe quotes nd old selndi diritisD de(ned y icelandic.ldf

Q euglsing um reyting uglsingu nrF IQPGIWUR um slensk stfsetninguF tjFt fD nrF PTIGIWUUD IWUUF R iinr rugenD editorF tionD IWUPF
First Grammatical TreatiseF

vongmnD vondonD P ediE


Forstaall FS

S tlr slnds og pgr upplsingtkniD eykjvkF 130:1997D IWWUF T tlr slndsF


SI - kerD

P editionD IWWRF

42.2 TEXnical details


hen this (le ws red through the option icelandic we mke it ehve s if icelandic ws spei(edF
defldtemp{ielndi} ifxgurrentyptionldtemp 42.3 defgurrentyption{ielndi} 42.4 fi
42.1 42.2

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
42.5 42.6

code vdfsnitgurrentyption{ptionsgurrentyption}

hen this (le is red s n optionD iFeFD y the \usepackage ommndD icelandic will e n unknown9 lngugeD so we hve to mke it knownF o we PRI

hek for the existene of \l@icelandic to see whether we hve to do something hereF
ifxldielndidundefined dnoptterns{selndi} 42.9 dddiletldielndiH 42.10 fi
42.7 42.8

ifdwodi

newififdwodi dwoditrue defdpsd{fi} 42.13 ifxdomptiilitytruedundefined 42.14 dwodiflse defdpsd{relx} 42.15 else 42.16 ifdomptiility dwodiflse fi 42.17 dpsd
42.11 42.12

A e will need new if9 X \if@Two@E is true if nd only if v i P is running not in omptiility modeF st is used in the de(nitions of the ommnd \tala nd \uppF he de(nition is somewht omplitedD due to the ft tht \if@compatibility A is not reognized s \if in v iEPFHW sed formtsF

extrsielndi noextrsielndi

he mro \extrasicelandic will perform ll the extr de(nitions needed for the selndi lngugeF he mro \noextrasicelandic is used to nel the tions of \extrasicelandicF por selndi the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF

inititedtivedhr{4} dnmedef{extrsgurrentyption}{7 42.20 lngugeshorthnds{ielndi}} 42.21 expndfterddtosnme extrsgurrentyptionendsnme{7 42.22 ldtivte{4}}


42.18 42.19

hon9t forget to turn the shorthnds o' ginF


42.23

ddtonoextrsielndi{lddetivte{4}}

he ielndi hyphention ptterns n e used with \lefthyphenmin nd \righthyphenmin set to PF


42.24

providehyphenmins{gurrentyption}{twdtwd}

he ode ove is neessry euse we need n extr tive hrterF his hrter is then used s indited in tle IVF o e le to de(ne the funtion of "D we (rst de(ne ouple of support9 mrosF

42.3 Captionnames and date


A he next step onsists of de(ning the selndi equivlents for the v i ptionE nmesF

ptionsielndi

dnmedef{ptionsgurrentyption}{7 defprefenme{porm9{}li}7 42.27 defrefnme{reimildir}7 42.28 defstrtnme{9{}tdr9{}ttur}7


42.25 42.26

he mro \captionsicelandic will de(ne ll strings used used in the four stnE A drd doument lsses provided with v iF

PRP

42.29 42.30 42.31 42.32 42.33 42.34 42.35 42.36 42.37 42.38 42.39 42.40 42.41 42.42 42.43 42.44 42.45 42.46 42.47

definme{reimildir}7 defhpternme{ufli}7 defppendixnme{i{dh}uki}7 defontentsnme{ifnisyfirlit}7 deflistfigurenme{wyndskr9{}}7 deflisttlenme{4{o}fluskr9{}}7 defindexnme{etri{dh}isor{dh}skr9{}}7 deffigurenme{wynd}7 deftlenme{fl}7 defprtnme{rluti}7 defenlnme{rj9{}lgt}7 defnme{mrit}7 defhedtonme{ilX}7 in letter defpgenme{fl{dh}s9{i}{dh}}7 defseenme{j9{}}7 deflsonme{j9{} einnig}7 defproofnme{4{o}nnun}7 defglossrynme{yr{dh}listi}7 }

dteielndi

he mro \dateicelandic rede(nes the ommnd \today to produe selndi dtesF

defdteielndi{7 deftody{numerdyF~ifsemonthor 42.50 jn9{u}ror fer9{u}ror mrsor pr9{i}lor m9{i}or 42.51 j9{u}n9{i}or j9{u}l9{i}or 9{}g9{u}stor septemeror 42.52 okt9{o}eror n9{o}vemeror desemerfi 42.53 spenumeryer}}
42.48 42.49

42.4 Icelandic quotation marks


dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F

egingroup tode4IP defx{endgroup 42.56 defd{mthhr4UHIW } 42.57 defdq{4}} 42.58 x


42.54 42.55

xow we n de(ne the ielndi nd ielndi frenh9 quotesF he ielndi frenh9 guillemets re the reverse of frenh guillemetsF e de(ne single ielndi frenh9 quotes for omptiilityF horthnds re provided for numer of di'erent quottion mrksD whih mke them usele oth outside nd inside mthmodeF
letilqgrq letirqgrq 42.61 letiflqfrq 42.62 letifrqflq 42.63 letilqqglqq 42.64 letirqqgrqq 42.65 letiflqqfrqq 42.66 letifrqqflqq
42.59 42.60 42.67

delredshorthnd{ielndi}{4}{glqq}

PRQ

delredshorthnd{ielndi}{49}{grqq} delredshorthnd{ielndi}{4b}{frqq} 42.70 delredshorthnd{ielndi}{4`}{flqq}


42.68 42.69

nd some dditionl ommndsX


delredshorthnd{ielndi}{4E}{norekEldllowhyphens} delredshorthnd{ielndi}{4|}{7 42.73 textormth{norekdisretionry{E}{}{kernFHQem}7 42.74 ldllowhyphens}{}} 42.75 delredshorthnd{ielndi}{44}{hskipzdskip} 42.76 delredshorthnd{ielndi}{4~}{textormth{levevmodehox{E}}{E}} 42.77 delredshorthnd{ielndi}{4a}{norekEhskipzdskip}
42.71 42.72

42.5 Old Icelandic


sn old selndi some letters hve speil diritil mrksD desried for exmple in First Grammatical Treatise RD SF e provide these in the T1 enoding with the ogonek9F he ogonek is pled with the letters o9D nd y9D 9 nd 9D e9 nd i9D nd 9 nd 9F horthnds re provided for these s wellF he following ode y veszek rolenderski lifted from polish.dtx is designed to position the diritis orretly for every font in every sizeF hese mros need few extr dimension vrilesF
newdimenpldleft newdimenplddown 42.80 newdimenpldright 42.81 newdimenpldtemp
42.78 42.79

so

he mro \sob is used to put the ogonek9 in the right pleF

defso5I5P5Q5R5S{7prmetersX letter nd frtions hlDhoDvlDvo setoxHhox{5I}setoxIhox{k{}}setoxPhox{p}7 42.84 pldrighta5PwdH dvnepldright yE5QwdI 42.85 plddowna5ShtI dvneplddown yE5RhtH 42.86 pldleftapldright dvnepldleft ywdI 42.87 pldtempaEplddown dvnepldtemp ydpP dpIapldtemp 42.88 levevmode 42.89 kernpldrightlowerplddownoxIkernEpldleft 5I}
42.82 42.83

oo yo42.90 helreextgommnd{oo}{I}{so {o}{FVS}{H}{FHR}{H}} ooo42.91 helreextgommnd{yo}{I}{so {y}{FU}{H}{H}{H}} yyo42.92 helreextgommnd{ooo}{I}{so {}{FVS}{H}{FHR}{H}} eo42.93 helreextgommnd{yyo}{I}{so {}{FU}{H}{H}{H}} io42.94 helreextgommnd{eo}{I}{so {e}{I}{H}{FHR}{H}} eeo42.95 helreextgommnd{io}{I}{so {i}{I}{H}{FHR}{H}} iio42.96 helreextgommnd{eeo}{I}{so {}{I}{H}{FHR}{H}} 42.97 helreextgommnd{iio}{I}{so {}{I}{H}{FHR}{H}} delredshorthnd{ielndi}{4o}{oo} delredshorthnd{ielndi}{4y}{yo} 42.100 delredshorthnd{ielndi}{4}{ooo} 42.101 delredshorthnd{ielndi}{4}{yyo} 42.102 delredshorthnd{ielndi}{4e}{eo} 42.103 delredshorthnd{ielndi}{4i}{io}
42.98 42.99

PRR

42.104 42.105

delredshorthnd{ielndi}{4}{eeo} delredshorthnd{ielndi}{4}{iio}

42.6 Formatting numbers


his setion is lifted from frenchb.dtx y hF plipoF sn inglish the deiml prt strts with point nd thousnds should e seprted y ommX n pproximtion of 1000 should e inputed s $3{,}141.592{,}653$ in mthE mode nd s 3,141.592,653 in textF sn selndi the deiml prt strts with omm nd thousnds should e seprted y spe I or y period SY we hve the speF he ove pE proximtion of 1000 should e inputed s $3\;141{,}592\;653$ in mthEmode nd s something like 3~141,592~653 in textF fres re mndtory round the omm in mthEmodeD the reson is mentioned in the iook pF IQRX the omm is of type \mathpunct @thus normlly followed y speA while the point is of type \mathord @no spe ddedAF hierry fouhe suggested tht seond type of ommD of type \mathord would e useful in mthEmodeD nd proposed to introdue ommnd @nmed \decimalsep in this pkgeAD the expnsion of whih would depend on the urrent lngugeF inent tly suggested ommnd \nombre to onveniently typeset numersX inputting \nombre{3141,592653} either in text or in mthEmode will formt this numer properly ording to the urrent lnguge @selndi or nonEselndiAF e use \nombre to de(ne ommnd \tala in selndiF \tala epts n optionl rgument whih hppens to e useful with the extension dolumn9D it spei(es the deiml seprtor used in the source code X \newcolumntype{d}{D{,}{\decimalsep}{-1}} \begin{tabular}{d}\hline 3,14 \\ \tala[,]{123,4567} \\ \tala[,]{9876,543}\\\hline \end{tabular} will print olumn of numers ligned on the deiml point @omm or point depending on the urrent lngugeAD eh slie of Q digits eing seprted y spe or omm ording to the urrent lngugeF
deimlsep thousndsep

e need internl de(nitionD vlid in oth text nd mthEmodeD for the omm @\@comma@A nd nother one for the unrekle (xed length spe @no glueA used in selndi @\f@thousandsepAF he ommnds \decimalsep nd \thousandsep get defult de(nitions @for the inglish lngugeA when icelandic is lodedY these de(nitions will e updted when the urrent lnguge is swithed to or from selndiF

mthhrdefmdomma4HIQf defdommd{ifmmodemdommelseDfi} deffdthousndsep{ifmmodemskipSFSmuelsepenltydwkernFQemfi} 42.108 newommnd{deimlsep}{F} newommnd{thousndsep}{dommd} 42.109 expndfterddtosnme extrsgurrentyptionendsnme{7 42.110 defdeimlsep{dommd}7 42.111 defthousndsep{fdthousndsep}} 42.112 expndfterddtosnme noextrsgurrentyptionendsnme{7 42.113 defdeimlsep{F}7 42.114 defthousndsep{dommd}}
42.106 42.107

PRS

tl

he deiml seprtor used when inputing numer with \tala has to be a \tala splits the inputed numer into two prtsX wht omes efore the (rst omm will e formtted y \@integerpart while the rest @if not emptyA will e formtted y \@decimalpartF foth prtsD one formtted seprtely will e merged together with etween themD either the deiml seprtor \decimalsep A or @in v i P only A the optionl rgument of \talaF
commaF

ifdwodi newommnd{tl}Pdeimlsep{7 42.117 defddeimlsep{5I}dtl5PdemptyDdemptyDdnil} 42.118 else 42.119 newommnd{tl}I{7 42.120 defddeimlsep{deimlsep}dtl5IdemptyDdemptyDdnil} 42.121 fi 42.122 defdtl5ID5PD5Qdnil{7 42.123 ifxdempty5P7 42.124 dintegerprt{5I}7 42.125 else 42.126 dintegerprt{5I}ddeimlsepddeimlprt{5P}7 42.127 fi}
42.115 42.116

he esiest it is the deiml prtX e ttempt to red the (rst four digits of the deiml prtD if it hs less thn R digitsD we just hve to print themD otherwise \thousandsep hs to e ppended fter the third digitD nd the lgorithm is pplied reursively to the rest of the deiml prtF
defddeimlprt5I{dddeimlprt5Idemptydemptydempty} defdddeimlprt5I5P5Q5R{5I5P5Q7 42.130 ifxdempty5R7 42.131 else 42.132 thousndsepexpndfterdddeimlprtexpndfter5R7 42.133 fi}
42.128 42.129

pormtting the integer prt is more di0ult euse the slies of Q digits strt from the bottom while the numer is red from the top3 his @trikyA ode is orrowed from hvid grlisle9s ommFstyF
defdintegerprt5I{ddintegerprt{}5Idemptydemptydempty} defddintegerprt5I5P5Q5R{7 42.136 ifxdempty5P7 42.137 dddthousndsep5Irelx 42.138 else 42.139 ifxdempty5Q7 42.140 dddthousndsepdemptydempty5I5Prelx 42.141 else 42.142 ifxdempty5R7 42.143 dddthousndsepdempty5I5P5Qrelx 42.144 else 42.145 ddintegerprtfterfi{5I5P5Q5R}7 42.146 fi 42.147 fi 42.148 fi} 42.149 defddintegerprtfterfi5Ifififi{fififiddintegerprt{5I}} 42.150 defdddthousndsep5I5P5Q5R{5I5P5Q7 42.151 if5Rrelx 42.152 else
42.134 42.135

PRT

42.153 42.154

thousndsepexpndfterdddthousndsepexpndfter5R7 fi}

42.7 Extra utilities


e now provide the selndi user with some extr utilitiesF
upp uppdsize

\upp is for typesetting supersriptsF \upp relies on


he internl mro \upp@size holds the size t whih the supersript will e typesetF he reson for this is tht we hve to speify it di'erently for di'erent formtsF

ifxsevenrmdundefined ifxdptsizedundefined 42.157 letuppdsizesmll 42.158 else 42.159 ifxseletfontdundefined


42.155 42.156 A sn this se the formt is the originl v iEPFHWX 42.160 42.161 42.162 42.163 42.164

ifsedptsize letuppdsizeixptor letuppdsizexptor letuppdsizexipt fi

hen \selectfont is de(ned we proly hve xp villeX


else ifsedptsize 42.167 defuppdsize{fontsizedixpt{IHpt}seletfont}or 42.168 defuppdsize{fontsizedxpt{IIpt}seletfont}or 42.169 defuppdsize{fontsizedxipt{IPpt}seletfont} 42.170 fi 42.171 fi 42.172 fi 42.173 else
42.165 42.166

sf we end up here it must e plin sed i formtD soX


42.174 42.175

fi

letuppdsizesevenrm

A A xow we n de(ne \uppF hen v i P runs in omptiility mode @v iEPFHW emultionAD \textsuperscript is lso de(nedD ut does no good joD so we give two di'erent de(nitions for \upp using \if@Two@EF

ifdwodi helreoustgommndB{upp}I{textsupersript{5I}} 42.178 else 42.179 helreoustgommndB{upp}I{7 42.180 levevmoderiseIexhox{uppdsize5I}} 42.181 fi


42.176 42.177

ome de(nitions for speil hrtersF \grada needs speil tretmentX it is \char6 in IEenoding nd \char23 in yIEenodingF
ifxfmtnmeveepmtxme helreextymol{grd}{I}{T} 42.184 helreextymol{grd}{yI}{PQ}
42.182 42.183

PRU

else defdone{I} 42.187 ifxfdenodingdone 42.188 newommnd{grd}{hrT} 42.189 else 42.190 newommnd{grd}{hrPQ} 42.191 fi 42.192 fi
42.185 42.186

grdur

wro for typesetting the revition for degrees9 @s in degrees gelsius9AF es the ounding ox of the hrter degree9 hs very di'erent widths in gwGhg nd ostript fontsD we (x the width of the ounding ox of \gradur to HFQ emD this lets the symol degree9 stik to the preeding @eFgFD 45\gradurA or following hrter @eFgFD 20~\gradur CAF
helreoustgommndB{grdur}{7 levevmodehox to HFQem{hssgrdhss}}

42.193 42.194

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
42.195 42.196

ldfdfinishgurrentyption /code

PRV

43

The Norwegian language

he (le norsk.dtx51 de(nes ll the lnguge de(nition mros for the xorwegin lnguge s well s for n lterntive vrint nynorsk9 of this lngugeF por this lnguge the hrter " is mde tiveF sn tle IW n overview is given of its purposeF

"ff "ee "-

"| "" "~ "= "< ">

for ff to e hyphented s ff-fD this is lso implemented for D dD fD gD lD mD nD pD rD sD nd tF @o"ppussingA ryphente "ee s \'e-eF @komit"eenA n expliit hyphen signD llowing hyphention in the omposing wordsF se this for ompound words when the hyphention ptterns fil to hyphente properlyF @alpin"-anleggA vike "-D ut inserts HFHQem speF se it if the ompound point is spnned y ligtureF @hoff"|intrigerA vike "-D ut produing no hyphen signF @i""g\aa{}rA vike -D ut llows no hyphention t llF @E"~cupA vike -D ut llowing hyphention in the omposing wordsF @marksistisk"=leninistiskA for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF le IWX he extr de(nitions mde y norsk.sty

une ulevelnd distriutes xorwegin ditionry for ispell @SUHHHH wordsAF st n e found t http://www.uio.no/~runekl/dictionary.htmlF his ditionry supports the spellings spi"sslede for spisslede9 @hyphented spissEsledeA nd other suh wordsD nd lso suggest the spelling spi"sslede for spisslede9 nd spissslede9F he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
43.1 43.2

code vdfsnitgurrentyption{ptionsgurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD norsk will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@norsk to see whether we hve to do something hereF
ifxldnorskdundefined dnoptterns{xorsk} 43.5 dddiletldnorskHfi
43.3 43.4

norskhyphenmins

ome sets of xorwegin hyphention ptterns n e used with \lefthyphenmin set to I nd \righthyphenmin set to PD ut the most ommon set nohyph.tex n9tF o we use \lefthyphenmin=2 y defultF
43.6

providehyphenmins{gurrentyption}{twdtwd}
le described in this section has version number v2.0h and was last revised on

Holme (HOLMEA@CERNVM); the `nynorsk' variant has been supplied by Per Steinar Iversen

2005/03/30. Contributions were made by Haavard Helstrup (HAAVARD@CERNVM) and Alv Kjetil and Terje Engeset Petterst (TERJEEP@VSFYS1.FI.UIB.NO); the short-

51 The

iversen@vxcern.cern.ch)

hand denitions were provided by Rune Kleveland (runekl@math.uio.no).

PRW

xow we hve to deide whih version of the ptions should e mde villeF his n e done y heking the ontents of \CurrentOptionF
43.7 43.8

defldtemp{norsk} ifxgurrentyptionldtemp

he next step onsists of de(ning ommnds to swith to @nd fromA the xorE wegin lngugeF
ptionsnorsk

defptionsnorsk{7 defprefenme{porord}7 43.11 defrefnme{efernser}7 43.12 defstrtnme{mmendrg}7 43.13 definme{filiogrfi}7 or 43.14 7 or 43.15 defhpternme{upittel}7 43.16 defppendixnme{illegg}7 or 43.17 defontentsnme{snnhold}7 43.18 deflistfigurenme{pigurer}7 or 43.19 deflisttlenme{eller}7 or 43.20 defindexnme{egister}7 43.21 deffigurenme{pigur}7 43.22 deftlenme{ell}7 43.23 defprtnme{hel}7 43.24 defenlnme{edlegg}7 43.25 defnme{uopi sendt}7 43.26 defhedtonme{il}7 in letter 43.27 defpgenme{ide}7 43.28 defseenme{e}7 43.29 deflsonme{e ogs{}}7 43.30 defproofnme{fevis}7 43.31 defglossrynme{yrdliste}7 43.32 } 43.33 else
43.9 43.10

he mro \captionsnorsk de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

vitterturoversikt vittertur or efernser eppendiks pigurliste elliste

por the nynorsk9 version of these de(nitions we just dd diletF


43.34

dddiletldnynorskldnorsk

ptionsnynorsk

he mro \captionsnynorsk de(nes ll strings used in the four stndrd douE A mentlsses provided with v iD ut using di'erent spelling thn in the omE mnd \captionsnorskF
defptionsnynorsk{7 defprefenme{porord}7 defrefnme{efernsr}7 defstrtnme{mndrg}7 definme{vittertur}7 7 defhpternme{upittel}7 defppendixnme{illegg}7 defontentsnme{snnhld}7 deflistfigurenme{pigurr}7 deflisttlenme{ellr}7 defindexnme{egister}7

43.35 43.36 43.37 43.38 43.39 43.40 43.41 43.42 43.43 43.44 43.45 43.46

or vitterturoversyn or efernsr or eppendiks or pigurliste or elliste

PSH

43.47 43.48 43.49 43.50 43.51 43.52 43.53 43.54 43.55 43.56 43.57 43.58 43.59

fi

deffigurenme{pigur}7 deftlenme{ell}7 defprtnme{hel}7 defenlnme{edlegg}7 defnme{uopi til}7 defhedtonme{il}7 in letter defpgenme{ide}7 defseenme{j{}}7 deflsonme{j{} {o}g}7 defproofnme{fevis}7 defglossrynme{yrdliste}7 }

dtenorsk

he mro \datenorsk rede(nes the ommnd \today to produe xorwegin dtesF

dnmedef{dtegurrentyption}{7 deftody{numerdyF~ifsemonthor 43.62 jnuror feruror mrsor prilor mior junior 43.63 julior ugustor septemeror oktoeror novemeror desemer 43.64 fi 43.65 spenumeryer}}
43.60 43.61

extrsnorsk extrsnynorsk

he mro \extrasnorsk will perform ll the extr de(nitions needed for the xorwegin lngugeF he mro \noextrasnorsk is used to nel the tions of \extrasnorskF xorwegin typesetting requires \frencspacing to e in e'etF
dnmedef{extrsgurrentyption}{ldfrenhsping} dnmedef{noextrsgurrentyption}{ldnonfrenhsping}

43.66 43.67

por xorsk the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF
inititedtivedhr{4} expndfterddtosnme extrsgurrentyptionendsnme{7 43.70 lngugeshorthnds{norsk}} 43.71 expndfterddtosnme extrsgurrentyptionendsnme{7 43.72 ldtivte{4}}
43.68 43.69

hon9t forget to turn the shorthnds o' ginF


43.73 43.74

expndfterddtosnme noextrsgurrentyptionendsnme{7 lddetivte{4}}

he ode ove is neessry euse we need to de(ne numer of shorthnd ommndsF hese shrthnd ommnds re then used s indited in tle IWF o e le to de(ne the funtion of "D we (rst de(ne ouple of support9 mrosF
dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F

egingroup tode4IP defx{endgroup 43.77 defd{mthhr4UHIW } 43.78 defdq{4}} 43.79 x


43.75 43.76

PSI

xow we n de(ne the disretionry shorthnd ommndsF he numer of words where suh hyphention is required is for eh hrter R
43.80 43.81

d R

f IS

g Q

k RQ

l QH

n V

p IP

r I

s QQ

t QS

tken from list of VQHHH ispellErootsF


delredshorthnd{norsk}{4}{textormth{lddis delredshorthnd{norsk}{4f}{textormth{lddis 43.82 delredshorthnd{norsk}{4d}{textormth{lddis 43.83 delredshorthnd{norsk}{4h}{textormth{lddis 43.84 delredshorthnd{norsk}{4e}{textormth{lddis 43.85 delredshorthnd{norsk}{4i}{textormth{lddis 43.86 delredshorthnd{norsk}{4p}{textormth{lddis 43.87 delredshorthnd{norsk}{4g}{textormth{lddis 43.88 delredshorthnd{norsk}{4q}{textormth{lddis 43.89 delredshorthnd{norsk}{4k}{textormth{lddis 43.90 delredshorthnd{norsk}{4u}{textormth{lddis 43.91 delredshorthnd{norsk}{4l}{textormth{lddis 43.92 delredshorthnd{norsk}{4v}{textormth{lddis 43.93 delredshorthnd{norsk}{4n}{textormth{lddis 43.94 delredshorthnd{norsk}{4x}{textormth{lddis 43.95 delredshorthnd{norsk}{4p}{textormth{lddis 43.96 delredshorthnd{norsk}{4}{textormth{lddis 43.97 delredshorthnd{norsk}{4r}{textormth{lddis 43.98 delredshorthnd{norsk}{4}{textormth{lddis 43.99 delredshorthnd{norsk}{4s}{textormth{lddis 43.100 delredshorthnd{norsk}{4}{textormth{lddis 43.101 delredshorthnd{norsk}{4t}{textormth{lddis 43.102 delredshorthnd{norsk}{4}{textormth{lddis
43.103 43.104

{}}{}} f{ff}}{f}} d{dd}}{d}} h{hh}}{h}} e{9e}}{}} i{9i}}{}} p{pp}}{p}} g{gg}}{g}} q{qq}}{q}} k{kk}}{k}} u{uu}}{u}} l{ll}}{l}} v{vv}}{v}} n{nn}}{n}} x{xx}}{x}} p{pp}}{p}} {}}{}} r{rr}}{r}} {}}{}} s{ss}}{s}} {}}{}} t{tt}}{t}} {}}{}}

e need to tret "f it di'erently in order to preserve the 'EligtureF


delredshorthnd{norsk}{4f}{textormth{lddisff}{f}} deflddisff{penltydw 43.105 fterssignmentldinsertff letldnextffa } 43.106 defldinsertff{7 43.107 if fldnextff 43.108 expndfterdfirstoftwoelseexpndfterdseondoftwofi 43.109 {relxdisretionry{ffE}{f}{ff}llowhyphens}{fldnextff}} 43.110 letldnextffaf

e now de(ne the prenh doule quotes nd some ommnds onerning hyphenE tionX
delredshorthnd{norsk}{4`}{flqq} delredshorthnd{norsk}{4b}{frqq} 43.113 delredshorthnd{norsk}{4E}{penltydwEldllowhyphens} 43.114 delredshorthnd{norsk}{4|}{7 43.115 textormth{penltydwdisretionry{E}{}{kernFHQem}7 43.116 llowhyphens}{}} 43.117 delredshorthnd{norsk}{44}{hskipzdskip} 43.118 delredshorthnd{norsk}{4~}{textormth{levevmodehox{E}}{E}} 43.119 delredshorthnd{norsk}{4a}{penltydwEhskipzdskip}
43.111 43.112

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF PSP

43.120 43.121

ldfdfinishgurrentyption /code

PSQ

44

The Swedish language

he (le swedish.dtx52 de(nes ll the lngugeEspei( mros for the wedish lngugeF his (le hs orrowed hevily from finnish.dtx nd germanb.dtxF por this lnguge the hrter " is mde tiveF sn tle PH n overview is given of its purposeF he vertil plement of the 4umlut4 in some letters n e ontrolled this wyF

"a "wD "W "ff

"| """ "~ "= \-

qives D lso implemented for "AD "o nd "OF gives nd F for ff to e hyphented s ff-fF sed for omE pound wordsD suh s stra"ffngeD whih should e hyphented s straff-fngeF his is lso impleE mented for D dD fD gD lD mD nD pD rD sD nd tF disle ligture t this positionF his should e used for ompound wordsD suh s  stra"ffinrttningD whih should not hve the ligture 0F n expliit hyphen signD llowing hyphention in the rest of the wordD suh s eF gF in x"-xelnF like "-D ut produing no hyphen sign @for words tht should rek t some sign suh s och/""ellerAF for n expliit hyphen without rekpointY useful for expressions suh s P"~Q vekor where no lineE rek is desirleF n expliit hyphen sign llowing susequent hyphenE tionD for expressions suh s studieidrg oh ElnF like the old \-D ut llowing hyphention in the rest of the wordF

le PHX he extr de(nitions mde y swedish.sty wo vritions for formtting of dtes re ddedF \datesymd mkes \today output dtes formtted s EwwEhhD whih is ommonly used in weden todyF \datesdmy formts the dte s hGw D whih is lso very ommon in wedenF hese ommnds should e issued fter \begindocumentF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
44.1 44.2

code vdfsnit{swedish}ptionsswedish

hen this (le is red s n optionD iFeF y the \usepackage ommndD swedish will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@swedish to see whether we hve to do something hereF
44.3 44.4

ifxldswedishdundefined dnoptterns{wedish}
le described in this section has version number v2.3d and was last revised on Contributions were made by Sten Hellman (HELLMAN@CERNVM.CERN.CH) and Erik

52 The

2005/03/31.

sthols (erik_osthols@yahoo.com).

PSR

44.5

dddiletldswedishHfi

he next step onsists of de(ning ommnds to swith to the wedish lngugeF he reson for this is tht user might wnt to swith k nd forth etween lngugesF
ptionsswedish

ddtoptionsswedish{7 defprefenme{p4orord}7 44.8 defrefnme{eferenser}7 44.9 defstrtnme{mmnfttning}7 44.10 definme{vitterturf4ortekning}7 44.11 defhpternme{upitel}7 44.12 defppendixnme{filg}7 44.13 defontentsnme{snnehsnme endsnme ll}7 44.14 deflistfigurenme{pigurer}7 44.15 deflisttlenme{eller}7 44.16 defindexnme{kregister}7 44.17 deffigurenme{pigur}7 44.18 deftlenme{ell}7 44.19 defprtnme{hel}7
44.6 44.7 44.20 44.21 44.22 44.23 44.24

he mro \captionsswedish de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

defenlnme{filF}7 defnme{uopi f4or k4nnedom}7 defhedtonme{ill}7 in letter defpgenme{id}7 defseenme{se}7 deflsonme{se 4ven}7 defproofnme{fevis}7 defglossrynme{yrdlist}7 }7

44.25

44.26 44.27 44.28

dteswedish

he mro \dateswedish rede(nes the ommnd \today to produe wedish dtesF

defdteswedish{7 deftody{7 44.31 numerdy~ifsemonthor 44.32 jnurior ferurior mrsor prilor mjor junior 44.33 julior ugustior septemeror oktoeror novemeror 44.34 deemerfi 44.35 spenumeryer}}
44.29 44.30

dtesymd

he mro \datesymd rede(nes the ommnd \today to produe dtes in the formt EwwEhhD ommon in wedenF

defdtesymd{7 deftody{numeryerEtwoddigitsmonthEtwoddigitsdy}7 44.38 }


44.36 44.37

dtesdmy

he mro \datesdmy rede(nes the ommnd \today to produe wedish dtes in the formt hhGww D lso ommon in wedenF

defdtesdmy{7 deftody{numerdyGnumermonthspenumeryer}7 44.41 }


44.39 44.40

PSS

swedishhyphenmins

he swedish hyphention ptterns n e used with \lefthyphenmin set to P nd \righthyphenmin set to PF


providehyphenmins{swedish}{twdtwd}

44.42

extrsswedish noextrsswedish

he mro \extrasswedish performs ll the extr de(nitions needed for the wedish lngugeF he mro \noextrasswedish is used to nel the tions of \extrasswedishF por wedish texts \frenchspacing should e in e'etF e mke sure this is the se nd reset it if neessryF
ddtoextrsswedish{ldfrenhsping} ddtonoextrsswedish{ldnonfrenhsping}

44.43 44.44

por wedish the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF
inititedtivedhr{4} ddtoextrsswedish{lngugeshorthnds{swedish}} 44.47 ddtoextrsswedish{ldtivte{4}}
44.45 44.46

hon9t forget to turn the shorthnds o' ginF


44.48

ddtonoextrsswedish{lddetivte{4}}

he umlut ent mro \" is hnged to lower the umlut dotsF he rede(E nition is done with the help of \umlautlowF
44.49 44.50

ddtoextrsswedish{eldsve4umlutlow} ddtonoextrsswedish{umluthigh}

he ode ove is neessry euse we need n extr tive hrterF his hrter is then used s indited in tle PHF o e le to de(ne the funtion of "D we (rst de(ne ouple of support9 mrosF
dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F

egingroup tode4IP defx{endgroup 44.53 defd{mthhr4UHIW } 44.54 defdq{4}} 44.55 x


44.51 44.52

xow we n de(ne the doulequote mrosX the umluts nd F


delredshorthnd{swedish}{4w}{textormth{{}llowhyphens}{ddot delredshorthnd{swedish}{4}{textormth{4{}llowhyphens}{ddot 44.58 delredshorthnd{swedish}{4o}{textormth{4{o}llowhyphens}{ddot 44.59 delredshorthnd{swedish}{4}{textormth{{ee}llowhyphens}{ddot 44.60 delredshorthnd{swedish}{4e}{textormth{4{e}llowhyphens}{ddot 44.61 delredshorthnd{swedish}{4y}{textormth{4{y}llowhyphens}{ddot
44.56 44.57

w}} }} o}} }} e}} y}}

disretionry ommnds
delredshorthnd{swedish}{4}{textormth{lddis delredshorthnd{swedish}{4f}{textormth{lddis 44.64 delredshorthnd{swedish}{4d}{textormth{lddis 44.65 delredshorthnd{swedish}{4h}{textormth{lddis 44.66 delredshorthnd{swedish}{4f}{textormth{lddis
44.62 44.63

{}}{}} f{ff}}{f}} d{dd}}{d}} h{hh}}{h}} f{ff}}{f}}

PST

delredshorthnd{swedish}{4p}{textormth{lddis delredshorthnd{swedish}{4g}{textormth{lddis 44.69 delredshorthnd{swedish}{4q}{textormth{lddis 44.70 delredshorthnd{swedish}{4l}{textormth{lddis 44.71 delredshorthnd{swedish}{4v}{textormth{lddis 44.72 delredshorthnd{swedish}{4m}{textormth{lddis 44.73 delredshorthnd{swedish}{4w}{textormth{lddis 44.74 delredshorthnd{swedish}{4n}{textormth{lddis 44.75 delredshorthnd{swedish}{4x}{textormth{lddis 44.76 delredshorthnd{swedish}{4p}{textormth{lddis 44.77 delredshorthnd{swedish}{4}{textormth{lddis 44.78 delredshorthnd{swedish}{4r}{textormth{lddis 44.79 delredshorthnd{swedish}{4}{textormth{lddis 44.80 delredshorthnd{swedish}{4s}{textormth{lddis 44.81 delredshorthnd{swedish}{4}{textormth{lddis 44.82 delredshorthnd{swedish}{4t}{textormth{lddis 44.83 delredshorthnd{swedish}{4}{textormth{lddis
44.67 44.68

p{pp}}{p}} g{gg}}{g}} q{qq}}{q}} l{ll}}{l}} v{vv}}{v}} m{mm}}{m}} w{ww}}{w}} n{nn}}{n}} x{xx}}{x}} p{pp}}{p}} {}}{}} r{rr}}{r}} {}}{}} s{ss}}{s}} {}}{}} t{tt}}{t}} {}}{}}

nd some dditionl ommndsX


delredshorthnd{swedish}{4E}{norekEldllowhyphens} delredshorthnd{swedish}{4|}{7 44.86 textormth{norekdisretionry{E}{}{kernFHQem}7 44.87 ldllowhyphens}{}} 44.88 delredshorthnd{swedish}{44}{hskipzdskip} 44.89 delredshorthnd{swedish}{4~}{7 44.90 textormth{levevmodehox{E}ldllowhyphens}{E}} 44.91 delredshorthnd{swedish}{4a}{hox{E}llowhyphens}
44.84 44.85

ddtoextrsswedish{eldsveE} ddtoextrsswedish{defE{llowhyphens 44.94 disretionry{E}{}{}llowhyphens}}


44.92 44.93

ede(nition of \-F he new version of \- should indite n extr hyphention positionD while llowing other hyphention positions to e generted utomtillyF he stndrd ehviour of i in this respet is very unfortunte for lnguges suh s huthD pinnishD qermn nd wedishD where long ompound words re quite norml nd ll one needs is mens to indite n extr hyphention position on top of the ones tht i n generte from the hyphention ptternsF

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
44.95 44.96

ldfdfinish{swedish} /code

PSU

45

The North Sami language

he (le samin.dtx53 de(nes ll the lnguge de(nition mros for the xorth mi lngugeF everl mi diletsGlnguges re spoken in pinlndD xorwyD weden nd on the uol eninsul @ussiAF he lphets di'erD so there will eventully e need for more .dtx (les for eFgF vule nd outh miF rene the nme samin.dtx @nd not sami.dtx or the likeA in the xorth mi seF here re urrently no hyphention ptterns ville for the xorth mi lngugeD ut you might onsider using the ptterns for pinnish @fi8hyph.texAD xorwegin @nohyph.texA or wedish @sehyph.texAF edd line for the samin A lnguge to the language.dat (leD nd reuild the v i formt (leF ee the A doumenttion for your v i distriutionF A e note on writing xorth mi in v iX he s enoding nd ig fonts do not inlude the sr yui letterD whih you will need workround forF wy suggestion is to ple the lines \newcommand{\tx}{\mbox{t\hspace{-.35em}-}} \newcommand{\txx}{\mbox{T\hspace{-.5em}-}} in the premle of your doumentsF hey de(ne the ommnds \txx{} for vesx gesev vii sr yui nd \tx{} for vesx wevv vii sr yuiF

45.1 The code of


45.1 45.2

samin.dtx

he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
code vdfsnit{smin}{ptionssmin}

hen this (le is red s n optionD iFeF y the \usepackage ommndD samin ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@samin to see whether we hve to do something hereF
ifxundefinedldsmin dnoptterns{min} 45.5 dddiletldsminHfi
45.3 45.4

he next step onsists of de(ning ommnds to swith to @nd fromA the xorth mi lngugeF
sminhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
45.6

providehyphenmins{smin}{twdtwd}

ptionssmin

defptionssmin{7 defprefenme{yvds9tni}7 45.9 defrefnme{v gujuhust}7 45.10 defstrtnme{v gohkk9igessu}7


45.7 45.8

he mro \captionssamin de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

53 The

le described in this section has version number v1.0c and was last revised on It was written by Regnor Jernsletten, (Regnor.Jernsletten@sami.uit.no) or

2004/02/20.

(Regnor.Jernsletten@eunet.no).

PSV

45.11 45.12 45.13 45.14 45.15 45.16 45.17 45.18 45.19 45.20 45.21 45.22 45.23 45.24 45.25 45.26 45.27 45.28 45.29

}7

definme{qirjj9lv svuoht}7 defhpternme{upihttl}7 defppendixnme{v guovus}7 defontentsnme{isdollu}7 deflistfigurenme{qovvost}7 deflisttlenme{ellt}7 defindexnme{egisttr}7 deffigurenme{qovus}7 deftlenme{ell}7 defprtnme{yssi}7 defenlnme{wielddus}7 defnme{uopi s9ddejuvvon}7 defhedtonme{uost9iv9ldi}7 defpgenme{iidu}7 defseenme{gehv }7 deflsonme{gehv midd9i}7 defproofnme{huodj{}v stus}7 defglossrynme{9tnelistu}7

dtesmin

he mro \datesamin rede(nes the ommnd \today to produe xorth mi dtesF

defdtesmin{7 deftody{ifsemonthor 45.32 odj{}dj{}jgem9nuor 45.33 guovvm9nuor 45.34 njukv m9nuor 45.35 uong{}om9nuor 45.36 miessem9nuor 45.37 gessem9nuor 45.38 suoidnem9nuor 45.39 orgem9nuor 45.40 v kv m9nuor 45.41 golggotm9nuor 45.42 sk9mm9nuor 45.43 juovlm9nufi 45.44 spenumerdyF~Fspenumeryer}7 45.45 }7
45.30 45.31

extrssmin noextrssmin

he mro \extrassamin will perform ll the extr de(nitions needed for the xorth mi lngugeF he mro \noextrassamin is used to nel the tions of \extrassaminF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrssmin{} ddtonoextrssmin{}

45.46 45.47

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
45.48 45.49

ldfdfinish{smin} /code

PSW

46

The Finnish language

he (le finnish.dtx54 de(nes ll the lnguge de(nition mros for the pinnish lngugeF por this lnguge the hrter " is mde tiveF sn tle PI n overview is given of its purposeF

"| ""= "" "` "' "< "> \-

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF n expliit hyphen sign for expressions suh s pkstekpit j ErkutF like "-D ut produing no hyphen sign @for words tht should rek t some sign suh s entrdGslidF lowered doule left quotes @looks like A norml doule right quotes for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF like the old \-D ut llowing hyphention in the rest of the wordF

le PIX he extr de(nitions mde y finnish.ldf he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
46.1 46.2

code vdfsnit{finnish}ptionsfinnish

hen this (le is red s n optionD iFeF y the \usepackage ommndD finnish will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@finnish to see whether we hve to do something hereF
ifxldfinnishdundefined dnoptterns{pinnish} 46.5 dddiletldfinnishHfi
46.3 46.4

he next step onsists of de(ning ommnds to swith to the pinnish lngugeF he reson for this is tht user might wnt to swith k nd forth etween lngugesF
ptionsfinnish

ddtoptionsfinnish{7 defprefenme{isipuhe}7 46.8 defrefnme{iitteet}7 46.9 defstrtnme{iivistelm4} 46.10 definme{uirjllisuutt}7 46.11 defhpternme{vuku}7 46.12 defppendixnme{viite}7
46.6 46.7

he mro \captionsfinnish de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

54 The

le described in this section has version number v1.3q and was last revised on A contribution was made by Mikko KANERVA (KANERVA@CERNVM) and Keranen

2007/10/20.

Reino (KERANEN@CERNVM).

PTH

46.13 46.14 46.15 46.16 46.17 46.18 46.19 46.20 46.21 46.22 46.23 46.24 46.25 46.26 46.27 46.28

defontentsnme{is4lt4o}7 deflistfigurenme{uuvt}7 deflisttlenme{ulukot}7 defindexnme{rkemisto}7 deffigurenme{uuv}7 deftlenme{ulukko}7 defprtnme{ys}7 defenlnme{viitteet}7 defnme{tkelu}7 defhedtonme{stnottj}7 defpgenme{ivu}7 defseenme{ktso}7 deflsonme{ktso my4os}7 defproofnme{odistus}7 defglossrynme{nsto}7 }7

GB gould e 4is4llys4 s well BG

dtefinnish

he mro \datefinnish rede(nes the ommnd \today to produe pinnish dtesF

defdtefinnish{7 deftody{numerdyF~ifsemonthor 46.31 tmmikuutor helmikuutor mliskuutor huhtikuutor 46.32 toukokuutor kes4kuutor hein4kuutor elokuutor 46.33 syyskuutor lokkuutor mrrskuutor joulukuutfi 46.34 spenumeryer}}
46.29 46.30

extrsfinnish noextrsfinnish

pinnish hs mny long words @some of them ompoundD some notAF por this reson hyphention is very often the only solution in line rekingF por this reson the vlues of \hyphenpenaltyD \exhyphenpenalty nd \doublehyphendemerits should e deresedF @sn one of the mnuls of style wtti intl notied prgrph with ten linesD eight of whih ended in hyphen3A wtti intl notied tht with these hnges i hndles pinnish very wellD lthough sometimes the vlues of \tolerance nd \emergencystretch must e inresedF roweverD s don9t think hnging these vlues in finnish.ldf is pproE priteD s the looseness of the font @nd the line widthA 'et the orret hoie of these prmetersF

ddtoextrsfinnish{7 eldsvevrilehyphenpenltyhyphenpenltyaQH7 46.37 eldsvevrileexhyphenpenltyexhyphenpenltyaQH7 46.38 eldsvevriledoulehyphendemeritsdoulehyphendemeritsaSHHH7 46.39 eldsvevrilefinlhyphendemeritsfinlhyphendemeritsaSHHH7 46.40 } 46.41 ddtonoextrsfinnish{}
46.35 46.36

enother thing \extrasfinnish needs to do is to ensure tht \frenchspacing is in e'etF sf this is not the se the exeution of \noextrasfinnish will swith it of ginF
46.42 46.43

ddtoextrsfinnish{ldfrenhsping} ddtonoextrsfinnish{ldnonfrenhsping}

por pinnish the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the (nnish group of shorthnds should e usedF PTI

46.44 46.45

inititedtivedhr{4} ddtoextrsfinnish{lngugeshorthnds{finnish}} ddtoextrsfinnish{ldtivte{4}} ddtonoextrsfinnish{lddetivte{4}}


all

hon9t forget to turn the shorthnds o' ginF


46.46 46.47

he umlut9 hrter should e positioned lower on textsF


46.48 46.49

vowels in pinnish

ddtoextrsfinnish{umlutlowumlutelow} ddtonoextrsfinnish{umluthigh}

pirst we de(ne ess to the low opening doule quote nd guillemets for quottionsD
delredshorthnd{finnish}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 46.52 delredshorthnd{finnish}{49}{7 46.53 textormth{textquotedlright}{mox{textquotedlright}}} 46.54 delredshorthnd{finnish}{4`}{7 46.55 textormth{guillemotleft}{mox{guillemotleft}}} 46.56 delredshorthnd{finnish}{4b}{7 46.57 textormth{guillemotright}{mox{guillemotright}}}
46.50 46.51

then we de(ne two shorthnds to e le to speify hyphention rekpoints tht ehve little di'erent from \-F
delredshorthnd{finnish}{4E}{norekEldllowhyphens} delredshorthnd{finnish}{44}{hskipzdskip} 46.60 delredshorthnd{finnish}{4a}{hox{E}ldllowhyphens}
46.58 46.59

end we wnt to hve shorthnd for disling ligtureF


46.61 46.62

delredshorthnd{finnish}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

ell tht is left now is the rede(nition of \-F he new version of \- should inE dite n extr hyphention positionD while llowing other hyphention positions to e generted utomtillyF he stndrd ehviour of i in this respet is very unfortunte for lnguges suh s huthD pinnish nd qermnD where long ompound words re quite norml nd ll one needs is mens to indite n extr hyphention position on top of the ones tht i n generte from the hyphention ptternsF

ddtoextrsfinnish{eldsveE} ddtoextrsfinnish{defE{ldllowhyphens 46.65 disretionry{E}{}{}ldllowhyphens}}


46.63 46.64

finishhyphenmins

he (nnish hyphention ptterns n e used with \lefthyphenmin set to P nd \righthyphenmin set to PF


providehyphenmins{gurrentyption}{twdtwd}

46.66

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
46.67 46.68

ldfdfinish{finnish} /code

PTP

47

The Hungarian language

he (le option magyar.dtx de(nes ll the lnguge de(nition mros for the rungrin lngugeF he babel support for the rungrin lnguge until (le version IFQi ws essenE tilly hnging the inglish doument elements to rungrin onesD ut euse of the di'erenes etween these too lnguges this ws tully unusle @rt s9 ws trnsferred to sz s9 whih is not usle insted of sF rsz9AF o enhne the typesetting filities for rungrin the following should e onsideredX

sn rungrin douments there is period fter the prtD setionD susetion etF numersF sn the prtD hpterD ppendix nme the numer @or letterA goes efore the nmeD so rt s9 trnsltes to sF rsz9F he sme is true with ptions @le PFI9 goes to PFIF tlzt9AF here is period fter the ption nme insted of olonF @le PFIX9 goes to PFIF tlztF9A here is period t the end of the title in runEin hed @when afterskip<0 in \@startsectionAF peil hyphention rules must e pplied for the soElled long doule onE sonnts @sD sszDF F F AF he opening quottion mrk is like the qermn one @the losing is the sme s in inglishAF sn rungrin (gureD tleD etF referening de(nite rtile is lso inorE portedF he rungrin de(nite rtiles ehve like the inglish inde(nite ones @Gn9AF 9 is used for words eginning with onsonnt nd z9 goes for vowelF ine some numers egin with vowel some others with onsonnt some ommnds should e provided for utomti de(nite rtile genertionF
ntil (le version IFQi55 the speil typesetting rules of the rungrin lnguge mentioned ove were not tken into onsidertionF his version @vIFRjA56 enles babel to typeset goodElooking9 rungrin textsF he \ontoday ommnd works like \today ut produes slightly di'erent dte formt used in expressions suh s on perury IHth9F he ommnds \Az#1 nd \az#1 write the orret de(nite rtile for the rE gument nd the rgument itself @seprted with ~AF he strEforms @\Az* nd \az*A produe the rtile onlyF \Azr#1 nd \azr#1 tret the rgument s lel so expnd it then write the de(nite rtile for \r@#1D nonErekle spe then the lel expnsionF he strEforms do not print the lel expnsionF \Azr(#1 nd \azr(#1 re used for eqution referening with the syntx \azr(label )F here re two lises \Aref nd \aref for \Azr nd \azrD respetivelyF
Koppnyi (attila@cernvm.cern.ch), rpd Br (JZP1104@HUSZEG11.bitnet), Istvn Hamecz (hami@ursus.bke.hu) and Dezs Horvth (horvath@pisa.infn.it).

ontody ez

ezr

eref

55 That

le was last revised on 1996/12/23 with a contribution by the next authors: Attila

(wettl@math.bme.hu) and an idea from David Carlisle (david@dcarlisle.demon.co.uk).

56 It was written by Jzsef Brces (jozsi@docs4.mht.bme.hu) with some help from Ferenc Wettl

PTQ

shortut ``

`cD `dD `gD `lD `nD `sD `tD `zD

`C `D `G `L `N `S `T `Z

explntion sme s \glqq in babelD or \quotedblbase in I @openE ing quottion mrkD like A s is hyphented s sEs ddz is hyphented s dzEdz ggy is hyphented s gyEgy lly is hyphented s lyEly nny is hyphented s nyEny ssz is hyphented s szEsz tty is hyphented s tyEty zzs is hyphented s zsEzs

exmple ``id\'ezet''idzet99

lo`ccsanlosEsn e`ddz\"unkedzEdznk po`ggy\'aszpogyEgysz Kod\'a`llyaluodlyElyl me`nnyeimenyEnyei vi`sszaviszEsz po`ttyanpotyEtyn ri`zzselrizsEzsel

le PPX he shortuts de(ned in magyar.ldf

ezp

epgeref

ez

eite

huring the preprtion of doument it is not known in generlD if the ode a~\ref{label }9 or the ode az~\ref{label }9 is the grmmtilly orret oneF riting \aref{label }9 insted of the previous ones solves the prolemF \Azp#1 nd \azp#1 lso tret the rgument s lel ut use the lel9s pge for de(nite rtile determintionF here re strEforms giving only the de(nite rtile without the pge numerF here re lises \Apageref nd \apageref for \Azp nd \azpD respeE tivelyF he ode \apageref{label } is equivlent either to a~\pageref{label } or to az~\pageref{label }F \Azc nd \azc work like the \cite ommnd ut @of ourseA they insert the de(nite rtileF here n e severl omm seprted ite lels nd in tht se the de(nite rtile is given for the (rst oneF hey ept \cite9s optionl rgumentF here re strEforms giving the de(nite rtile onlyF here re lises \Acite nd \acite for \Azc nd \azcD respetivelyF por this lnguge the hrter ` is mde tiveF le PP shows the shortutsF he min reson for the tivtion of the ` hrter is to hndle the speil hyphention of the long doule onsonntsF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
47.1 47.2

code vdfsnit{mgyr}{ptiongurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD magyar will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@magyar or \l@hungarian to see whether we hve to do something hereF
ifxldmgyrdundefined ifxldhungrindundefined 47.5 dnoptterns{wgyr} 47.6 dddiletldmgyrH 47.7 else 47.8 letldmgyrldhungrin 47.9 fi 47.10 fi
47.3 47.4

PTR

he sttement ove mkes sure tht \l@magyar is lwys de(nedY if \l@hungarian is still unde(ned we mke it equl to \l@magyarF
ifxldhungrindundefined letldhungrinldmgyr 47.13 fi
47.11 47.12

he next step onsists of de(ning ommnds to swith to @nd fromA the runE grin lngugeF
ptionsmgyr

he mro \captionsmagyar de(nes ll strings used in the four stndrd douE A ment lsses provided with v iF
dnmedef{ptionsgurrentyption}{7 defprefenme{ilr osz9o}7

47.14 47.15

por the list of referenes t the end of n rtile we hve hoie etween two wordsD eferenik9 @ rungrin version of the inglish wordA nd rivtkozsok9F he ltter seems to e in more widespred useF
47.16

defrefnme{rivtkoz9sok}7

sf you hve doument with summry insted of n strt you might wnt to reple the word uivont9 with sszefogll9F
47.17

defstrtnme{uivont}7

he rungrin version of filiogrphy9 is filiogr(9D ut more nturl word to use is srodlomjegyzk9F


47.18 47.19 47.20 47.21 47.22 47.23 47.24 47.25 47.26 47.27 47.28 47.29 47.30 47.31 47.32 47.33

definme{srodlomjegyz9ek}7 defhpternme{fejezet}7 defppendixnme{p4uggel9ek}7 defontentsnme{rtlomjegyz9ek}7 deflistfigurenme{9er9k jegyz9eke}7 deflisttlenme{9l9ztok jegyz9eke}7 defindexnme{9rgymutt9o}7 deffigurenme{9r}7 deftlenme{t9l9zt}7 defprtnme{r9esz}7 defenlnme{well9eklet}7 defnme{u4orlev9elEE9i mzettek}7 defhedtonme{g9i mzett}7 defpgenme{oldl}7 defseenme{l9sd}7 deflsonme{l9sd m9eg}7

fesides the rungrin word for roofD fizonyts9 we n lso nme gorollry @uvetkezmnyAD heorem @telA nd vemm @vemmAF
47.34 47.35 47.36

defproofnme{fizony9i t9s}7 defglossrynme{z9ojegyz9ek}7 }7

dtemgyr

he mro \datemagyar rede(nes the ommnd \today to produe rungrin dtesF

dnmedef{dtegurrentyption}{7 deftody{7 47.39 numeryerFnorekspeifsemonthor 47.40 jnu9ror feru9ror m9riusor 47.41 9prilisor m9jusor j9uniusor
47.37 47.38

PTS

47.42 47.43 47.44

j9uliusor ugusztusor szeptemeror okt9oeror novemeror deemerfi spenumerdyF}}

ondtemgyr

he mro \ondatemagyar produes rungrin dtes whih hve the mening on this day 9F st does not rede(ne the ommnd \todayF

dnmedef{ondtegurrentyption}{7 numeryerFnorekspeifsemonthor 47.47 jnu9ror feru9ror m9riusor 47.48 9prilisor m9jusor j9uniusor 47.49 j9uliusor ugusztusor szeptemeror 47.50 okt9oeror novemeror deemerfi 47.51 speifsedyor 47.52 IEj9enor PE9nor QE9nor RE9enor SE9enor 47.53 TE9nor UE9enor VE9nor WE9enor IHE9enor 47.54 IIE9enor IPE9enor IQE9nor IRE9enor ISE9enor 47.55 ITE9nor IUE9enor IVE9nor IWE9enor PHE9nor 47.56 PIE9enor PPE9enor PQE9nor PRE9enor PSE9enor 47.57 PTE9nor PUE9enor PVE9nor PWE9enor QHE9nor 47.58 QIE9enfi}
47.45 47.46

extrsmgyr noextrsmgyr

he mro \extrasmagyar will perform ll the extr de(nitions needed for the rungrin lngugeF he mro \noextrasmagyar is used to nel the tions of \extrasmagyarF

dnmedef{extrsgurrentyption}{7 expndfterletexpndfterontody 47.61 snme ondtegurrentyptionendsnme} 47.62 dnmedef{noextrsgurrentyption}{letontodydundefined}


47.59 47.60

xow we rede(ne some ommnds inluded into latex.ltxF he originl form of ommnd is lwys sved with \babel@save nd the hnges re dded to \extrasmagyarF his ensures tht the rungrin version of mro is live only if the rungrin lnguge is tiveF
fnumdfigure fnumdtle

sn (gure nd tle ptions the order of the (gureGtle numer nd \figurename G\tablename must e hngedF o hieve this \fnum@figure nd \fnum@table re rede(ned nd dded to \extrasmagyarF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvefnumdfigure 47.65 deffnumdfigure{thefigureFnorekspefigurenme}} 47.66 expndfterddtosnme extrsgurrentyptionendsnme{7 47.67 eldsvefnumdtle 47.68 deffnumdtle{thetleFnorekspetlenme}}
47.63 47.64

dmkeption

he olon in (gureGtle ption must e repled y dot y rede(ning \@makecaptionF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedmkeption 47.71 defdmkeption5I5P{7 47.72 vskipoveptionskip 47.73 soxdtempox{5IF 5P}7 47.74 ifdim wddtempox bhsize 47.75 {5IF 5Psnme prendsnme}
47.69 47.70

PTT

47.76 47.77 47.78 47.79 47.80

else glol dminipgeflse hdxtdhsize{hfiloxdtempoxhfil}7 fi vskipelowptionskip}}

dption

here should e dot fter the (gureGtle numer in lofGlotD so \@caption is rede(nedF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedption 47.83 longdefdption5I5P5Q{7 47.84 snme prendsnme 47.85 ddontentsline{snme extd5Iendsnme}{5I}7 47.86 {protetnumerline{snme the5IendsnmeF}{ignorespes 5P}}7 47.87 egingroup 47.88 dproxrestore 47.89 ifdminipge 47.90 dsetminipge 47.91 fi 47.92 normlsize 47.93 dmkeption{snme fnumd5Iendsnme}7 47.94 {ignorespes 5Q}snme prendsnme 47.95 endgroup}}
47.81 47.82

dsentformt

sn order to hve dot fter the setion numer \@seccntformat is rede(nedF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedsentformt 47.98 defdsentformt5I{snme the5IendsnmeFqud}}


47.96 47.97

dset

elsD \@sect must lso e rede(ned to hve tht dot in to tooF yn the other hndD we inlude dot fter runEin hedF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedset 47.101 defdset5I5P5Q5R5S5T5U5V{7 47.102 ifnum 5Pbdsenumdepth 47.103 letdsvsedempty 47.104 else 47.105 refstepounter{5I}7 47.106 proteteddedefdsvse{dsentformt{5I}relx}7 47.107 fi 47.108 dtempskip 5Srelx 47.109 ifdim dtempskipbzd 47.110 egingroup 47.111 5T{7 47.112 dhngfrom{hskip 5Qrelxdsvse}7 47.113 interlinepenlty dw 5Vddpr}7 47.114 endgroup 47.115 snme 5Imrkendsnme{5U}7 47.116 ddontentsline{to}{5I}{7 47.117 ifnum 5Pbdsenumdepth else 47.118 protetnumerline{snme the5IendsnmeF}7 47.119 fi 47.120 5U}7 47.121 else
47.99 47.100

PTU

47.122 47.123 47.124 47.125 47.126 47.127 47.128 47.129 47.130 47.131 47.132

defdsvsehd{7 5T{hskip 5Qrelx dsvse 5VF}7 snme 5Imrkendsnme{5U}7 ddontentsline{to}{5I}{7 ifnum 5Pbdsenumdepth else protetnumerline{snme the5IendsnmeF}7 fi 5U}}7 fi dxset{5S}}}

dsset

sn order to hve tht dot fter runEin hed when the str form of the setioning ommnds is usedD we hve to rede(ne \@ssectF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedsset 47.135 defdsset5I5P5Q5R5S{7 47.136 dtempskip 5Qrelx 47.137 ifdim dtempskipbzd 47.138 egingroup 47.139 5R{7 47.140 dhngfrom{hskip 5I}7 47.141 interlinepenlty dw 5Sddpr}7 47.142 endgroup 47.143 else 47.144 defdsvsehd{5R{hskip 5Irelx 5SF}}7 47.145 fi 47.146 dxset{5Q}}}
47.133 47.134

degintheorem doprgegintheorem

yrder hnging nd dot insertion in theorem y rede(ning \@begintheorem nd \@opargbegintheoremF

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedegintheorem 47.149 defdegintheorem5I5P{trivlist 47.150 itemhskip lelsep{fseries 5PF 5IF}itshpe}7 47.151 eldsvedoprgegintheorem 47.152 defdoprgegintheorem5I5P5Q{trivlist 47.153 itemhskip lelsep{fseries 5PF 5I @5QAF}itshpe}}
47.147 47.148

he next step is to rede(ne some mros inluded into the lss (lesF st is determined whih lss (le is loded then the originl form of the mro is sved nd the hnges re dded to \extrasmagyarF pirst we hek if the book.cls is lodedF
47.154

diflssloded{ook}{7

psdhedings

he look of the hedings is hngedX we hve to insert some dots nd hnge the order of hpter numer nd \chapternameF
expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvepsdhedings} expndfterddtosnme extrsgurrentyptionendsnme{7 ifdtwoside defpsdhedings{7 letdoddfootdemptyletdevenfootdempty

47.155 47.156 47.157 47.158 47.159 47.160

PTV

47.161 47.162 47.163 47.164 47.165 47.166 47.167 47.168 47.169 47.170 47.171 47.172 47.173 47.174 47.175 47.176 47.177 47.178 47.179 47.180 47.181 47.182 47.183 47.184 47.185 47.186 47.187 47.188 47.189 47.190 47.191

defdevenhed{thepgehfilslshpeleftmrk}7 defdoddhed{{slshperightmrk}hfilthepge}7 letdmkothmrkoth defhptermrk55I{7 mrkoth {wkepperse{7 ifnum dsenumdepth bmdne ifdminmtter thehpterF dhpppF 7 fi fi 55I}}{}}7 defsetionmrk55I{7 mrkright {wkepperse{7 ifnum dsenumdepth bzd thesetionF 7 fi 55I}}}}7 else defpsdhedings{7 letdoddfootdempty defdoddhed{{slshperightmrk}hfilthepge}7 letdmkothmrkoth defhptermrk55I{7 mrkright {wkepperse{7 ifnum dsenumdepth bmdne ifdminmtter thehpterF dhpppF 7 fi fi 55I}}}}7 fi}

dprt

et the eginning of prt we need egF sF rsz9 insted of rt s9 @in to tooAF o hieve this \@part is rede(nedF
expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedprt defdprt5I5P{7 ifnum dsenumdepth bEPrelx refstepounter{prt}7 ddontentsline{to}{prt}{theprtFhspe{Iem}5I}7 else ddontentsline{to}{prt}{5I}7 fi mrkoth{}{}7 {entering interlinepenlty dw normlfont ifnum dsenumdepth bEPrelx hugefseries theprtFnorekspeprtnme snme prendsnme vskip PHpd fi ruge fseries 5Psnme prendsnme}7 dendprt}}

47.192 47.193 47.194 47.195 47.196 47.197 47.198 47.199 47.200 47.201 47.202 47.203 47.204 47.205 47.206 47.207 47.208 47.209 47.210 47.211

PTW

dhpter

he sme hnges re mde to hpterF pirst the sreen typeout nd the to re hnged y rede(ning \@chapterF
expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedhpter defdhpter5I5P{ifnum dsenumdepth bmdne ifdminmtter refstepounter{hpter}7 typeout{thehpterFspedhpppF}7 ddontentsline{to}{hpter}7 {protetnumerline{thehpterF}5I}7 else ddontentsline{to}{hpter}{5I}7 fi else ddontentsline{to}{hpter}{5I}7 fi hptermrk{5I}7 ddtoontents{lof}{protetddvspe{IHpd}}7 ddtoontents{lot}{protetddvspe{IHpd}}7 ifdtwoolumn dtopnewpgedmkehpterhed{5P}7 else dmkehpterhed{5P}7 dfterheding fi}} expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedmkehpterhed defdmkehpterhed5I{7 vspeB{SHpd}7 {prindent zd rggedright normlfont ifnum dsenumdepth bmdne ifdminmtter hugefseries thehpterFnorekspedhppp{} snme prendsnmenorek vskip PHpd fi fi interlinepenltydw ruge fseries 5Isnme prendsnmenorek vskip RHpd }}}7 }{}

47.212 47.213 47.214 47.215 47.216 47.217 47.218 47.219 47.220 47.221 47.222 47.223 47.224 47.225 47.226 47.227 47.228 47.229 47.230 47.231 47.232 47.233 47.234

dmkehpterhed

hen the look of the hpterEstrt is modi(ed y rede(ning \@makechapterheadF

47.235 47.236 47.237 47.238 47.239 47.240 47.241 47.242 47.243 47.244 47.245 47.246 47.247 47.248 47.249 47.250

his the end of the ook lss modi(tionF


47.251

xow we hek if report.cls is lodedF


47.252

diflssloded{report}{7 expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvepsdhedings} expndfterddtosnme extrsgurrentyptionendsnme{7

psdhedings

pirst the hedings re modi(ed just in se of the ook lssF

47.253 47.254 47.255

PUH

47.256 47.257 47.258 47.259 47.260 47.261 47.262 47.263 47.264 47.265 47.266 47.267 47.268 47.269 47.270 47.271 47.272 47.273 47.274 47.275 47.276 47.277 47.278 47.279 47.280 47.281 47.282 47.283 47.284 47.285

ifdtwoside defpsdhedings{7 letdoddfootdemptyletdevenfootdempty defdevenhed{thepgehfilslshpeleftmrk}7 defdoddhed{{slshperightmrk}hfilthepge}7 letdmkothmrkoth defhptermrk55I{7 mrkoth {wkepperse{7 ifnum dsenumdepth bmdne thehpterF dhpppF 7 fi 55I}}{}}7 defsetionmrk55I{7 mrkright {wkepperse{7 ifnum dsenumdepth bzd thesetionF 7 fi 55I}}}}7 else defpsdhedings{7 letdoddfootdempty defdoddhed{{slshperightmrk}hfilthepge}7 letdmkothmrkoth defhptermrk55I{7 mrkright {wkepperse{7 ifnum dsenumdepth bmdne thehpterF dhpppF 7 fi 55I}}}}7 fi} expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvedhpter defdhpter5I5P{ifnum dsenumdepth bmdne refstepounter{hpter}7 typeout{thehpterFspedhpppF}7 ddontentsline{to}{hpter}7 {protetnumerline{thehpterF}5I}7 else ddontentsline{to}{hpter}{5I}7 fi hptermrk{5I}7 ddtoontents{lof}{protetddvspe{IHpd}}7 ddtoontents{lot}{protetddvspe{IHpd}}7 ifdtwoolumn dtopnewpgedmkehpterhed{5P}7 else dmkehpterhed{5P}7 dfterheding fi}} expndfterddtosnme extrsgurrentyptionendsnme{7

dhpter

ghpterEstrt modi(tion with \@chapter

47.286 47.287 47.288 47.289 47.290 47.291 47.292 47.293 47.294 47.295 47.296 47.297 47.298 47.299 47.300 47.301 47.302 47.303 47.304

dmkehpterhed

nd \@makechapterheadF

47.305

PUI

47.306 47.307 47.308 47.309 47.310 47.311 47.312 47.313 47.314 47.315 47.316 47.317 47.318

eldsvedmkehpterhed defdmkehpterhed5I{7 vspeB{SHpd}7 {prindent zd rggedright normlfont ifnum dsenumdepth bmdne hugefseries thehpterFnorekspedhppp{} snme prendsnmenorek vskip PHpd fi interlinepenltydw ruge fseries 5Isnme prendsnmenorek vskip RHpd }}}7 }{}

ind of report lss modi(tionF


47.319

gheking if article.cls is lodedF


47.320

diflssloded{rtile}{7 expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvepsdhedings} expndfterddtosnme extrsgurrentyptionendsnme{7 ifdtwoside defpsdhedings{7 letdoddfootdemptyletdevenfootdempty defdevenhed{thepgehfilslshpeleftmrk}7 defdoddhed{{slshperightmrk}hfilthepge}7 letdmkothmrkoth defsetionmrk55I{7 mrkoth {wkepperse{7 ifnum dsenumdepth bzd thesetionFqud fi 55I}}{}}7 defsusetionmrk55I{7 mrkright {7 ifnum dsenumdepth bdne thesusetionFqud fi 55I}}}7 else defpsdhedings{7 letdoddfootdempty defdoddhed{{slshperightmrk}hfilthepge}7 letdmkothmrkoth defsetionmrk55I{7 mrkright {wkepperse{7 ifnum dsenumdepth bmdne thesetionFqud fi 55I}}}}7 fi}7

psdhedings

ghnging hedings y rede(ning \ps@headingsF

47.321 47.322 47.323 47.324 47.325 47.326 47.327 47.328 47.329 47.330 47.331 47.332 47.333 47.334 47.335 47.336 47.337 47.338 47.339 47.340 47.341 47.342 47.343 47.344 47.345 47.346 47.347 47.348 47.349 47.350 47.351 47.352 47.353

PUP

xo more neessry hnges spei( to the rtile lssF


47.354

}{}

end now this is the turn of letter.clsF


47.355

diflssloded{letter}{7 expndfterddtosnme extrsgurrentyptionendsnme{7 eldsvepsdhedings} expndfterddtosnme extrsgurrentyptionendsnme{7 ifdtwoside defpsdhedings{7 letdoddfootdemptyletdevenfootdempty defdoddhed{slshpehedtonme{X} ignorespestonme hfil ddte hfil thepgeFnorekspepgenme}7 letdevenheddoddhed} else defpsdhedings{7 letdoddfootdempty defdoddhed{slshpehedtonme{X} ignorespestonme hfil ddte hfil thepgeFnorekspepgenme}} fi}7 }{}

psdhedings

sn the hedings the pge numer must e followed y dot nd then \pagenameF

47.356 47.357 47.358 47.359 47.360 47.361 47.362 47.363 47.364 47.365 47.366 47.367 47.368 47.369 47.370 47.371 47.372

ind of letter lssF


47.373 A efter mking the hnges to the v i mros we de(ne some new ones to hndle the prolem with de(nite rtilesF

\az is userElevel ommnd whih deides if the next hrter is strF \@az is lled for \az* nd \az@ for \azF
defz{difstr{dz}{zd}} defez{edifstr{dz}{zd}}

47.374

ez zd

\Az is used t the eginning of senteneF ytherwise it ehves the sme s \azF \az@ is lled if there is no str fter \az or \AzF st lls \@az nd writes #1 seprting with nonErekle speF
defzd5I{dz{5I}norekspe5I}

47.375

47.376

dz

his mro lls \hun@tempadef to remove the ents from the rgument then lls \@@az tht determines if z9 should e written fter Ge @written y \azG\AzAF

defdz5I{7 hundtempdef{relx}{relx}{5I}7 47.379 edefdtemp{noexpndddzdtemphox3}7 47.380 dtemp}


47.377 47.378

hundtempdef

he mro \hun@tempadef hs three tsksX

eent removlF eented letters onfuse \@@azD the min de(nite rtile determintor mroD so they must e hnged to their nonEented ounE terprtsF peil letters must lso e hngedD egF oF
PUQ

vels must e expndedF o hndle omn numerls orretlyD ommnds strting with \hun@ re de(ned for lels ontining omn numers with the omn numerls repled y their eri representtionF his mro n hek if there is \hun@ ommndF
here re three rgumentsX IF he primry ommnd tht should e expnded if it existsF his is usully the \hun@ ommnd for lelF PF he seondry ommnd whih is used if the (rst one is \relaxF his is A usully the originl v i ommnd for lelF QF his is used if the (rst two is \relaxF por this one no expnsion is rried out ut the ents re still removed nd speil letters re hngedF
defhundtempdef5I5P5Q{7 egingroup 47.383 defdsfedtivesflse{}7 47.384 defsetox 55I{}7 to get rid of ents nd speil letters 47.385 defhox 55I{}7 47.386 defent 55I 55P{55P}7 47.387 defdddent 55I55P{55P}7 47.388 defdtextdompositedx 55I55P{55P}7 47.389 defi{i}defj{j}7 47.390 defe{}defei{e}defoe{o}defyi{y}7 47.391 defss{s}defv{v}7 47.392 defd{}def{}def{}deft{}7 47.393 expndfterifxsnme 5Iendsnmerelx 47.394 expndfterifxsnme 5Pendsnmerelx 47.395 xdefdtemp{5Q}7 47.396 else 47.397 xdefdtemp{snme 5Pendsnme}7 47.398 fi 47.399 else 47.400 xdefdtemp{snme 5Iendsnme}7 47.401 fi 47.402 endgroup}
47.381 47.382

he following mros re used to determine the de(nite rtile for lel9s expnsionF
ref eref zr ezr

\aref is n lis for \azrF


defref{zr} deferef{ezr} defzr{difstr{dzr}{zrd}} defezr{edifstr{dzr}{zrd}}

47.403

\Aref is n lis for \AzrF \azr lls \@azr if the next hrter is strD otherwise it lls \azr@F \Azr is the sme s \azr exept tht it writes e9 insted of 9F

47.404

47.405

47.406

PUR

zrd

\azr@ deides if the next hrter is ( nd in tht se it lls \azr@@@ whih writes n extr ( for eqution refereningF ytherwise \azr@@ is lledF
defzrd{difnexthr @{zrddd}{zrdd}} defzrdd5I{dzr{5I}noreksperef{5I}}

47.407

zrdd zrddd

glls \@azr then writes the lel9s expnsion preeded y nonErekle speF me s \azr@@ ut inserts ( etween the nonErekle spe nd the lel expnsionF
defzrddd@5I{dzr{5I}norekspe@ref{5I}}
A glls \hun@tempadef to hoose etween the lel9s \hun@ or originl v i omE mnd nd to expnd it with ent removl nd speil letter sustitutionF hen lls \@@azD the ore mro of de(nite rtile hndlingF

47.408

47.409

dzr

defdzr5I{7 hundtempdef{hundrd5I}{rd5I}{}7 47.412 ifxdtempempty 47.413 else 47.414 edefdtemp{noexpndddzexpndfterdfirstoftwodtemphox3}7 47.415 dtemp 47.416 fi 47.417 }
47.410 47.411

he following ommnds re used to generte the de(nite rtile for the pge numer of lelF
pgeref epgeref zp ezp zpd dzp

\apageref is n lis for \azpF


defpgeref{zp} defepgeref{ezp} defzp{difstr{dzp}{zpd}} defezp{edifstr{dzp}{zpd}} defzpd5I{dzp{5I}norekspepgeref{5I}}

47.418

\Apageref is n lis for \AzpF


gheks if the next hrter is * nd lls \@azp or \azp@F me s \azp exept tht it writes e9 insted of 9F glls \@azp then writes the lel9s pge preeded y nonErekle speF glls \hun@tempadef then tkes the lel9s pge nd psses it to \@@azF

47.419

47.420

47.421

47.422

defdzp5I{7 hundtempdef{hundrd5I}{rd5I}{}7 47.425 ifxdtempempty 47.426 else 47.427 edefdtemp{noexpndddzexpndfterdseondoftwodtemphox3}7 47.428 dtemp 47.429 fi 47.430 }
47.423 47.424

he following mros re used to give the de(nite rtile to ittionsF PUS

ite eite z ez zd zdd

his is n lis for \azcF


defite{z} defeite{ez} defz{difstr{dz}{zd}} defez{edifstr{dz}{zd}} defzd{difnexthr {zdd}{zdd}}

47.431

his is n lis for \AzcF gheks if the next hrter is str nd lls \@azc or \azc@F me s \azc ut used t the eginning of sentenesF sf there is no str we ept n optionl rgumentD just like the \cite ommndF pirst lls \@azc then \citeF

47.432

47.433

47.434

47.435

defzdd5I5P{7 dz{5P}norekspedefdtemp{5I}7 47.438 ifxdtempdemptyite{5P}elseite5I{5P}fi}


47.436 47.437

dz ddz

his is n uxiliry mro to get the (rst ite lel from ommEseprted listF
defdz5I{ddz5IDhox3}

47.439

his one uses only the (rst rgumentD tht is the (rst element of the ommE seprted list of ite lelsF glls \hun@tempadef to expnd the ite lel with ent removl nd speil letter replementF hen \@@azD the ore mroD is lledF

defddz5ID5Phox5Q3{7 hundtempdef{hundd5I}{d5I}{}7 47.442 ifxdtempempty 47.443 else 47.444 edefdtemp{noexpndddzdtemphox3}7 47.445 dtemp 47.446 fi}
47.440 47.441

hundnumerdlehgth

his mro is used to ount the numer of digits in its rgument until nonEdigit hrter is found or the end of the rgument is rehedF st must e lled s \hun@number@lehgtharg \hbox\hbox! nd \count@ must e zeroedF st is lled y \@@azF

defhundnumerdlehgth5I5Phox5Q3{7 iftnoexpnd5II7 47.449 ifnumexpndftersnme5IendsnmebRU 47.450 ifnumexpndftersnme5Iendsnme`SV 47.451 dvneountd y dne 47.452 hundnumerdlehgth5Phoxhox3fififi}
47.447 47.448

hundlphdlehgth

his is used to ount the numer of letters until nonEletter is found or the end of the rgument is rehedF st must e lled s \hun@alph@lehgtharg \hbox\hbox! nd \count@ must e set to zeroF st is lled y \@@az@stringF

defhundlphdlehgth5I5Phox5Q3{7 iftnoexpnd5Ie7 47.455 dvneountd y dne 47.456 hundlphdlehgth5Phoxhox3fi}


47.453 47.454

PUT

ddzdstring

his mro is lled y \@@az if the rgument egins with letterF he tsk of \@@az@string is to determine if the rgument strts with vowel nd in tht se \let\@tempa\@tempbF efter heking if the (rst letter is eD iD sD yD or D \hun@alph@lehgth is lled to determine the length of the rgumentF sf it gives I @tht is the rgument is singleEletter one or the seond hrter is not letterA then the letters vD wD xD D D D nd re lso onsidered s vowel sine their rungrin pronouned nme strts with vowelF

defddzdstring5I5P{7 ifx5Ie7 47.459 letdtempdtemp 47.460 elseifx5Ii7 47.461 letdtempdtemp 47.462 elseifx5Is7 47.463 letdtempdtemp 47.464 elseifx5Iy7 47.465 letdtempdtemp 47.466 elseifx5I7 47.467 letdtempdtemp 47.468 fififififi 47.469 ifxdtempdtemp 47.470 else 47.471 ountdzd 47.472 hundlphdlehgth5I5Phoxhox37 47.473 ifnumountdadne 47.474 ifx5Ip7 47.475 letdtempdtemp 47.476 elseifx5Iv7 47.477 letdtempdtemp 47.478 elseifx5Iw7 47.479 letdtempdtemp 47.480 elseifx5Ix7 47.481 letdtempdtemp 47.482 elseifx5I7 47.483 letdtempdtemp 47.484 elseifx5I7 47.485 letdtempdtemp 47.486 elseifx5I7 47.487 letdtempdtemp 47.488 elseifx5I7 47.489 letdtempdtemp 47.490 fifififififififi 47.491 fi 47.492 fi}
47.457 47.458

ddz

his mro is the ore of de(nite rtile hndlingF st determines if the rgument needs z9 or 9 de(nite rtile y setting \@tempa to z9 or \@emptyF st sets \@tempa to z9 if

the (rst hrter of the rgument is SY or the (rst hrter of the rgument is I nd the length of the number (mod 3) = 1 @one!egyD thousnd!ezerD million!egymilliDF F F AY or the (rst hrter of the rgument is D eD eD iD iD sD oD yD uD or Y or
PUU

the (rst hrter of the rgument is lD vD mD wD nD xD rD D sD D xD D yD or nd the length of the rgument is I or the seond hrter is nonEletterF
et the end it lls \@tempaD tht isD it either typesets z9 or nothingF
defddz5I5Phox5Q3{7 letdtempdempty 47.495 defdtemp{z}7 47.496 upperse{7 47.497 ifxS5I7 47.498 letdtempdtemp 47.499 elseifxI5I7 47.500 ountddne 47.501 hundnumerdlehgth5Phoxhox37 47.502 loop 47.503 ifnumountdbthrdd 47.504 dvneountdEthrdd 47.505 repet 47.506 ifnumountdadne 47.507 letdtempdtemp 47.508 fi 47.509 else 47.510 ddzdstring{5I}{5P}7 47.511 fifi 47.512 }7 47.513 dtemp}
47.493 47.494

refstepounter

\refstepcounter must e rede(ned in order to keep \@currentlabel unexE pndedF his is neessry to enle the \label ommnd to write \hunnewlabel ommnd to the ux (le with the omn numerls sustituted y their eri representtionsF yf ourseD the originl de(nition of \refstepcounter is sved nd restored if the rungrin lnguge is swithed o'F

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsverefstepounter 47.516 defrefstepounter5I{stepounter{5I}7 47.517 defdurrentlel{snme pd5Iendsnmesnme the5Iendsnme}}7 47.518 }
47.514 47.515

lel

\label is rede(ned to write nother line into the ux (leX \hunnewlabel{ }{ } where the omn numerls re repled their eri representtionsF he originl de(nition of \label is sved into \old@label nd it is lso lled y \labelF yn leving the rungrin typesetting mode \label9s originl is restored sine it is dded to \noextrasmagyarF

expndfterddtosnme extrsgurrentyptionendsnme{7 letolddlellel 47.521 deflel5I{dsphk 47.522 olddlel{5I}7 47.523 egingroup 47.524 letromnnumerlnumer 47.525 defdromn55I{numer 55I}7 47.526 defdomn55I{numer 55I}7 47.527 {toksHa{noexpndnoexpndnoexpndnumer}7 47.528 defnumer55I{thetoksH 55I}xdeftempd{thepge}}7 47.529 edefdtemp55I{noexpndproteteddwriteduxout{}7
47.519 47.520

PUV

47.530 47.531 47.532 47.533 47.534 47.535 47.536

} expndfterddtosnme noextrsgurrentyptionendsnme{7 47.537 letlelolddlel 47.538 } hunnewlel

{noexpndstringnoexpndhunnewlel {55I}{{durrentlel}{tempd}}}}7 dtemp{5I}7 endgroup desphk}7

pinllyD \hunnewlabel is de(nedF st heks if the lel9s expnsion @#2A di'ers from tht one given in the \newlabel ommndF sf yes @tht isD the lel onE tins some omn numerlsAD it de(nes the mro \hun@r@labelD otherwise it does nothingF

defhunnewlel5I5P{7 defdtemp{5P}7 47.541 expndfterifxsnme rd5Iendsnmedtemp 47.542 relx7 messge{xo need for defX 5I}7 47.543 else 47.544 glolexpndfterletsnme hundrd5Iendsnmedtemp7 47.545 fi 47.546 }
47.539 47.540

por rungrin the ` hrter is mde tiveF


etfeginhoument{7 ifdfileswimmeditewriteduxout{todeHWTaIP}fi} 47.549 inititedtivedhr{} 47.550 expndfterddtosnme extrsgurrentyptionendsnme{7 47.551 lngugeshorthnds{mgyr}7 47.552 ldtivte{}} 47.553 expndfterddtosnme noextrsgurrentyptionendsnme{7 47.554 lddetivte{}}
47.547 47.548

he hrter sequene `` is delred s shorthnd in order to produe the opening quottion sign pproprite for rungrinF
47.555

delredshorthnd{mgyr}{}{glqq}

sn rungrin there re some long doule onsonnts whih must e hyphented speillyF por ll these long doule onsonnts @exept dzzsD tht is extremely veryEvery rreA shortut is de(nedF
delredshorthnd{mgyr}{}{textormth{lddis{}{s}}{}} delredshorthnd{mgyr}{g}{textormth{lddis{g}{g}}{g}} 47.558 delredshorthnd{mgyr}{d}{textormth{lddis{d}{dz}}{d}} 47.559 delredshorthnd{mgyr}{h}{textormth{lddis{h}{h}}{h}} 47.560 delredshorthnd{mgyr}{g}{textormth{lddis{g}{gy}}{g}} 47.561 delredshorthnd{mgyr}{q}{textormth{lddis{q}{q}}{q}} 47.562 delredshorthnd{mgyr}{l}{textormth{lddis{l}{ly}}{l}} 47.563 delredshorthnd{mgyr}{v}{textormth{lddis{v}{v}}{v}} 47.564 delredshorthnd{mgyr}{n}{textormth{lddis{n}{ny}}{n}} 47.565 delredshorthnd{mgyr}{x}{textormth{lddis{x}{x}}{x}} 47.566 delredshorthnd{mgyr}{s}{textormth{lddis{s}{sz}}{s}} 47.567 delredshorthnd{mgyr}{}{textormth{lddis{}{}}{}} 47.568 delredshorthnd{mgyr}{t}{textormth{lddis{t}{ty}}{t}} 47.569 delredshorthnd{mgyr}{}{textormth{lddis{}{}}{}}
47.556 47.557

PUW

47.570 47.571

delredshorthnd{mgyr}{z}{textormth{lddis{z}{zs}}{z}} delredshorthnd{mgyr}{}{textormth{lddis{}{}}{}}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
47.572 47.573

ldfdfinishgurrentyption /code

PVH

48

The Estonian language

he (le estonian.dtx57 de(nes the lnguge de(nition mro9s for the istonin lngugeF his (le ws written s prt of the qwv projetD nd orrows hevily from the babel qermn nd pnish lnguge (les germanb.ldf nd spanish.ldfF istonin hs the sme umluts s qermn @D D AD ut in ddition to thisD we hve lso D nd two reent hrters nd D so we need t lest two tive hrtersF e shll use " nd ~ to type istonin ents on egss keyords @in the UEit hrter worldAF heir use is given in tle PQF hese tive ent

~o "a "o "u ~s ~z "| "\"` "' "< ">

\~oD @nd upperseAY \"aD @nd upperseAY \"oD @nd upperseAY \"uD @nd upperseAY \v sD @nd upperseAY \v zD @nd upperseAY disle ligture t this positionY n expliit hyphen signD llowing hyphention in the rest of the wordY like the old \-D ut llowing hyphention in the rest of the wordY for istonin low left doule quotes @sme s qerE mnAY for istonin right doule quotesY for prenh left doule quotes @lso rther populrA for prenh right doule quotesF

le PQX he extr de(nitions mde y estonian.ldf hrters ehve ording to their originl de(nitions if not followed y one of the hrters indited in tht tleY the originl quote hrter n e typed using the mro \dqF e support lso the I output enoding @nd gorkEenoded text inputAF ou n hoose the I enoding y the ommnd \usepackage[T1]{fontenc}F his pkge must e loded efore babelF es the stndrd istonin hyphention (le eehyph.tex is in the gork enodingD hoosing this enoding will give you etter hyphentionF es mentioned in the pnish style (leD it my hppen tht some pkges fil @usully in \messageAF sn this se you should hnge the order of the \usepackage delrtions or the order of the style options in \documentclassF

48.1 Implementation
he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
48.1

code
le described in this section has version number v1.0h and was last revised on

2005/03/30. The original author is Enn Saar, (saar@aai.ee).

57 The

PVI

48.2

vdfsnit{estonin}ptionsestonin

sf istonin is not inluded in the formt (le @does not hve hyphention ptE ternsAD we shll use inglish hyphentionF
ifxldestonindundefined dnoptterns{istonin} 48.5 dddiletldestoninH 48.6 fi
48.3 48.4

xow ome the ommnds to swith to @nd fromA istoninF


ptionsestonin

he mro \captionsestonian de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF
48.7 48.8

ddtoptionsestonin{7 defprefenme{issejuhtus}7 48.9 defrefnme{iited}7 48.10 definme{uirjndus}7 48.11 defppendixnme{vis}7 48.12 defontentsnme{isukord}7 48.13 deflistfigurenme{toonised}7 48.14 deflisttlenme{elid}7 48.15 defindexnme{sndeks}7 48.16 deffigurenme{toonis}7 48.17 deftlenme{el}7 48.18 defprtnme{ys}7 48.19 defenlnme{vis@dA}7 48.20 defnme{uoopi@dA}7 48.21 defhedtonme{}7 48.22 defpgenme{vkF}7 48.23 defseenme{vtF}7 48.24 deflsonme{vtF k}7 48.25 defproofnme{uorrektuur}7 48.26 defglossrynme{qlossry}7 `EE xeeds trnsltion 48.27 }

hese ptions ontin ented hrtersF


egingroup tode4tive 48.29 defx{endgroup 48.30 ddtoptionsestonin{7 48.31 defstrtnme{uokkuv~ote}7 48.32 defhpternme{et4ukk}}} 48.33 x
48.28

dteestonin

he mro \dateestonian rede(nes the ommnd \today to produe istonin dtesF

egingroup tode4tive defx{endgroup 48.36 defmonthdestonin{ifsemonthor 48.37 jnuror veeruror m4rtsor prillor mior juunior 48.38 juulior ugustor septemeror oktooeror novemeror 48.39 detsemerfi}} 48.40 x 48.41 defdteestonin{7 48.42 deftody{numerdyFspemonthdestonin 48.43 spenumeryerFspe F}}
48.34 48.35

PVP

extrsestonin noextrsestonin

he mro \extrasestonian will perform ll the extr de(nitions needed for istoninF he mro \noextrasestonian is used to nel the tions of \extrasestonianF por istoninD " is mde tive nd hs to e treted s speil9 @~ is tive lredyAF

inititedtivedhr{4} inititedtivedhr{~} 48.46 ddtoextrsestonin{lngugeshorthnds{estonin}} 48.47 ddtoextrsestonin{ldtivte{4}ldtivte{~}}


48.44 48.45

tore the originl mrosD nd rede(ne entsF


48.48

ddtoextrsestonin{eldsve4umlutloweldsve~tildelow}

istonin does not use extr spes fter sentenesF


48.49 48.50

ddtoextrsestonin{ldfrenhsping} ddtonoextrsestonin{ldnonfrenhsping} providehyphenmins{gurrentyption}{twdtwd}

estoninhyphenmins

por istoninD \lefthyphenmin nd \righthyphenmin re oth PF

48.51

tildelow he stndrd i ents re too high for istonin typogrphyD we hve to lower gentilde them @following the babel qermn styleAF por detiled explntion see the (le newtilde glyphs.dtxF newhek48.52 deftildelow{def~{protetgentilde}} defgentilde5I{if5Ionewtilde{5I}elseif5Iynewtilde{5I}7 elsenewhek{5I}7 48.55 fifi} 48.56 defnewtilde5I{levevmodellowhyphens 48.57 {dh Iex7 48.58 {setoxzdhox{hrIPT}dimend EFRSexdvnedimendhtzd 48.59 ifdim Iex`dimend fontdimenSfontdimend fi}7 48.60 entIPTfontdimenSfontdh 5I}llowhyphens} 48.61 defnewhek5I{levevmodellowhyphens 48.62 {dh Iex7 48.63 {setoxzdhox{hrPH}dimend EFRSexdvnedimendhtzd 48.64 ifdim Iex`dimend fontdimenSfontdimend fi}7 48.65 entPHfontdimenSfontdh 5I}llowhyphens}
48.53 48.54

e sve the doule quote hrter in \dqD nd tilde in \tilD nd store the originl de(nitions of \" nd \~ s \dieresis nd \texttildeF
egingroup tode4IP edefx{endgroup 48.68 defnoexpnddq{4} 48.69 defnoexpndtil{~}} 48.70 x 48.71 letdieresis4 48.72 lettexttilde~
48.66 48.67

his prt follows losely spanish.ldfF e hek the enoding nd if it is ID we hve to tell i out our rede(ned entsF
ifxfdenodingldtdone letdumlutdieresis 48.75 letdtildetexttilde
48.73 48.74

PVQ

48.76 48.77 48.78 48.79 48.80 48.81 48.82 48.83

helreextgomposite{~}{I}{s}{IUV} helreextgomposite{~}{I}{}{IRT} helreextgomposite{~}{I}{z}{IVT} helreextgomposite{~}{I}{}{ISR} helreextgomposite{4}{I}{9}{IU} helreextgomposite{4}{I}{}{IV} helreextgomposite{4}{I}{`}{IW} helreextgomposite{4}{I}{b}{PH}

sf the enoding di'ers from ID we expnd the entsD enling hyphention eyond the entF sn this se i will not (nd ll possile reksD nd we hve to wrn peopleF
else wlog{rningX ryphention would work etter for the I enodingF} 48.86 letdumlutnewumlut 48.87 letdtildegentilde 48.88 fi
48.84 48.85

xow we de(ne the shorthndsF


delredshorthnd{estonin}{4}{textormth{4{}}{ddot delredshorthnd{estonin}{4e}{textormth{4{e}}{ddot 48.91 delredshorthnd{estonin}{4o}{textormth{4{o}}{ddot 48.92 delredshorthnd{estonin}{4y}{textormth{4{y}}{ddot 48.93 delredshorthnd{estonin}{4u}{textormth{4{u}}{ddot 48.94 delredshorthnd{estonin}{4}{textormth{4{}}{ddot
48.89 48.90

}} e}} o}} y}} u}} }}

germn nd frenh quotesD


delredshorthnd{estonin}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 48.97 delredshorthnd{estonin}{49}{7 48.98 textormth{textquotedlleft}{mox{textquotedlleft}}} 48.99 delredshorthnd{estonin}{4`}{7 48.100 textormth{guillemotleft}{mox{guillemotleft}}} 48.101 delredshorthnd{estonin}{4b}{7 48.102 textormth{guillemotright}{mox{guillemotright}}}
48.95 48.96

delredshorthnd{estonin}{~o}{textormth{dtilde delredshorthnd{estonin}{~y}{textormth{dtilde 48.105 delredshorthnd{estonin}{~s}{textormth{dtilde 48.106 delredshorthnd{estonin}{~}{textormth{dtilde 48.107 delredshorthnd{estonin}{~z}{textormth{dtilde 48.108 delredshorthnd{estonin}{~}{textormth{dtilde
48.103 48.104

o}{tilde y}{tilde s}{hek }{hek z}{hek }{hek

o}} y}} s}} }} z}} }}

nd some dditionl ommndsX


delredshorthnd{estonin}{4E}{norekEldllowhyphens} delredshorthnd{estonin}{4|}{7 48.111 textormth{norekdisretionry{E}{}{kernFHQem}7 48.112 llowhyphens}{}} 48.113 delredshorthnd{estonin}{44}{dq} 48.114 delredshorthnd{estonin}{~~}{til}
48.109 48.110

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
48.115 48.116

ldfdfinish{estonin} /code

PVR

49

The Albanian language

he (le albanian.dtx58 de(nes ll the lnguge de(nition mros for the elE nin lngugeF elnin is written in ltin sriptD ut it hs QT lettersD W whih re diletters @dhD gjD llD njD rrD shD thD xhD zhAD nd two extr speil hrtersF por this lnguge the hrter " is mde tiveF sn tle PR n overview is given of its purposeF

"c ""| "" "` "' "< ">

\"cD lso implemented for the upperse n expliit hyphen signD llowing hyphention in the rest of the wordF disle ligture t this position like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for elnin left doule quotes @looks like AF for elnin right doule quotesF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF

le PRX he extr de(nitions mde y albanian.ldf eprt from de(ning shorthnds we need to mke sure tht the (rst prgrph of eh setion is intendedF purthermore the following new mth opertors re de(ned @\tgD \ctgD \arctgD \arcctgD \shD \chD \thD \cthD \arshD \archD \arthD \arcthD \ProbD \ExpectD \VarianceAF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
49.1 49.2

code vdfsnit{lnin}ptionslnin

hen this (le is red s n optionD iFeF y the \usepackage ommndD albanian will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@albanian to see whether we hve to do someE thing hereF
ifxldlnindundefined dnoptterns{elnin} 49.5 dddiletldlninHfi
49.3 49.4

he next step onsists of de(ning ommnds to swith to @nd fromA the elE nin lngugeF
ptionslnin

ddtoptionslnin{7 defprefenme{rtheni}7 49.8 defrefnme{eferent}7 49.9 defstrtnme{4ermledhj}7 49.10 definme{filiogrfi}7 49.11 defhpternme{upitulli}7
49.6 49.7

he mro \captionsalbanian de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF

58 The le described in this section has version number v1.0c and was last revised on 2007/10/20

PVS

49.12 49.13 49.14 49.15 49.16 49.17 49.18 49.19 49.20 49.21 49.22 49.23 49.24 49.25 49.26 49.27 49.28

defppendixnme{htes}7 defontentsnme{4ermjt}7 deflistfigurenme{pigurt}7 deflisttlenme{elt}7 defindexnme{sndeksi}7 deffigurenme{pigur}7 deftlenme{el}7 defprtnme{jes}7 defenlnme{vidhj}7 defnme{uopj}7 defhedtonme{4er}7 defpgenme{pqe}7 defseenme{shiko}7 deflsonme{shiko dhe}7 defproofnme{4ertetim}7 defglossrynme{4erhsj e pjl4eve}7 }7

dtelnin

he mro \datealbanian rede(nes the ommnd \today to produe elnin dtesF

defdtelnin{7 deftody{numerdy~ifsemonthor 49.31 tnror hkurtor wrsor rillor wjor 49.32 ershoror uorrikor qushtor httoror etoror x4entoror 49.33 hhjetorfi spe numeryer}}
49.29 49.30

extrslnin noextrslnin

he mro \extrasalbanian will perform ll the extr de(nitions needed for the elnin lngugeF he mro \noextrasalbanian is used to nel the tions of \extrasalbanianF por elnin the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the lnin group of shorthnds should e usedF

inititedtivedhr{4} ddtoextrslnin{lngugeshorthnds{lnin}} 49.36 ddtoextrslnin{ldtivte{4}}


49.34 49.35

hon9t forget to turn the shorthnds o' ginF


49.37

ddtonoextrslnin{lddetivte{4}} }{hek e}{hek g}{hek i}{hek }} e}} g}} i}}

pirst we de(ne shorthnds to filitte the ourene of letters suh s F


delredshorthnd{lnin}{4}{textormth{v delredshorthnd{lnin}{4e}{textormth{v 49.40 delredshorthnd{lnin}{4g}{textormth{v 49.41 delredshorthnd{lnin}{4i}{textormth{v
49.38 49.39

hen we de(ne ess to two forms of quottion mrksD similr to the germn nd frenh quottion mrksF
delredshorthnd{lnin}{4}{7 textormth{quotedlse{}}{mox{quotedlse}}} 49.44 delredshorthnd{lnin}{49}{7 49.45 textormth{textquotedlleft{}}{mox{textquotedlleft}}} 49.46 delredshorthnd{lnin}{4`}{7 49.47 textormth{guillemotleft{}}{mox{guillemotleft}}}
49.42 49.43

PVT

49.48 49.49

delredshorthnd{lnin}{4b}{7 textormth{guillemotright{}}{mox{guillemotright}}}

then we de(ne two shorthnds to e le to speify hyphention rekpoints tht ehve little di'erent from \-F
49.50 49.51

delredshorthnd{lnin}{4E}{norekEldllowhyphens} delredshorthnd{lnin}{44}{hskipzdskip} delredshorthnd{lnin}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

end we wnt to hve shorthnd for disling ligtureF


49.52 49.53

ldfrenhindent ldnonfrenhindent

ifxfmtnme plin else letdifysdfterindentflse 49.56 defldfrenhindent{letdfterindentflsedfterindenttrue 49.57 dfterindenttrue} 49.58 defldnonfrenhindent{letdfterindentflsedifys 49.59 dfterindentflse} 49.60 ddtoextrslnin{ldfrenhindent} 49.61 ddtonoextrslnin{ldnonfrenhindent} 49.62 fi
49.54 49.55

sn lnin the (rst prgrph of eh setion should e indentedF edd this ode A only in v iF

mthlnin

ome mth funtions in elnin mth ooks hve other nmesX eFgF sinh in elnin is written s sh etF o we de(ne numer of new mth opertorsF

defsh{mthop{opertordfont sh}nolimits} 7 sme s sinh defh{mthop{opertordfont h}nolimits} 7 sme s osh 49.65 defth{mthop{opertordfont th}nolimits} 7 sme s tnh 49.66 defth{mthop{opertordfont th}nolimits} 7 sme s oth 49.67 defrsh{mthop{opertordfont rsh}nolimits} 49.68 defrh{mthop{opertordfont rh}nolimits} 49.69 defrth{mthop{opertordfont rth}nolimits} 49.70 defrth{mthop{opertordfont rth}nolimits} 49.71 deftg{mthop{opertordfont tg}nolimits} 7 sme s tn 49.72 deftg{mthop{opertordfont tg}nolimits} 7 sme s ot 49.73 defrtg{mthop{opertordfont rtg}nolimits} 7 sme s rtn 49.74 defrtg{mthop{opertordfont rtg}nolimits} 49.75 defro{mthop{mthsf hskipHpt}nolimits} 49.76 defixpet{mthop{mthsf ihskipHpt}nolimits} 49.77 defrine{mthop{mthsf hhskipHpt}nolimits}
49.63 49.64

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
49.78 49.79

ldfdfinish{lnin} /code

PVU

50

The Croatian language

he (le croatian.dtx59 de(nes ll the lnguge de(nition mros for the grotin lngugeF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
50.1 50.2

code vdfsnit{rotin}ptionsrotin

hen this (le is red s n optionD iFeF y the \usepackage ommndD croatian will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@croatian to see whether we hve to do someE thing hereF
ifxldrotindundefined dnoptterns{grotin} 50.5 dddiletldrotinHfi
50.3 50.4

he next step onsists of de(ning ommnds to swith to @nd fromA the groE tin lngugeF
ptionsrotin

ddtoptionsrotin{7 defprefenme{redgovor}7 50.8 defrefnme{vitertur}7 50.9 defstrtnme{v{z}etk}7 50.10 definme{filiogrfij}7 50.11 defhpternme{oglvlje}7 50.12 defppendixnme{hodtk}7 50.13 defontentsnme{drv{z}j}7 50.14 deflistfigurenme{opis slik}7 50.15 deflisttlenme{opis tli}7 50.16 defindexnme{sndeks}7 50.17 deffigurenme{lik}7 50.18 deftlenme{li}7 50.19 defprtnme{hio}7 50.20 defenlnme{rilozi}7 50.21 defnme{uopije}7 50.22 defhedtonme{rim}7 50.23 defpgenme{trni}7 50.24 defseenme{idjeti}7 50.25 deflsonme{idjeti i}7 50.26 defproofnme{hokz}7 50.27 defglossrynme{uzlo}7 50.28 }7
50.6 50.7

he mro \captionscroatian de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF

dterotin

he mro \datecroatian rede(nes the ommnd \today to produe grotin dtesF


defdterotin{7 deftody{numerdyF~ifsemonthor

50.29 50.30

A contribution was made by Alan Pai (paica@cernvm.cern.ch).

59 The le described in this section has version number v1.3l and was last revised on 2005/03/29.

PVV

50.31 50.32 50.33

sijev{}njor veljv{}eor ov{z}ujkor trvnjor svinjor lipnjor srpnjor kolovozor rujnor listopdor studenogor prosinfi spe numeryerF}}

extrsrotin noextrsrotin

he mro \extrascroatian will perform ll the extr de(nitions needed for the grotin lngugeF he mro \noextrascroatian is used to nel the tions of \extrascroatianF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
ddtoextrsrotin{} ddtonoextrsrotin{}

50.34 50.35

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
50.36 50.37

ldfdfinish{rotin} /code

PVW

51

The Czech Language

he (le czech.dtx60 de(nes ll the lnguge de(nition mros for the gzeh A lngugeF st is ment s replement of CSv iD the mostEwidely used stndrd A for typesetting gzeh douments in v iF

51.1 Usage
por this lnguge \frenchspacing is setF edditionllyD two mros re de(ned \q nd \w for esy ess to two ents re de(nedF he ommnd \q is used with the letters @tD dD lD nd LA nd dds ' to them to simulte hook9 tht should e thereF he result looks like t he ommnd 9F \w is used to put the ringEent whih ppers in ngstrm over the letters u nd UF

51.2 Compatibility
A qret re hs een tken to ensure kwrd omptiility with CSv iF sn prtiulrD douments whih lod this (le with \usepackage{czech} should proE due identil output with no modi(tions to the soureF edditionllyD ll the A CSv i options re reognizedX

IL2, T1, OT1 hese options set the defult font enodingF lese note tht their use is depretedF ou should use the fontenc pkge to selet font enodingF split, nosplit hese options ontrol whether hyphented words re utomtilly split ording to gzeh typesetting rulesF ith the split option jeEli is hyphented s jeEGEliF he nosplit option disles this ehviorF he use of this option is strongly disourgedD s it reks too mny ommon things"hyphens nnot e used in lelsD negtive rguments to i primitives will not work in horizontl mode @use \minus s workroundAD nd there re few other peulirities with using this modeF nocaptions A his option ws used in CSv i to set up gzehGlovk typesetting rulesD ut leve the originl ptions nd dtesF he reommended wy to hieve this is to use inglish s the min lnguge of the doument nd use the environment otherlanguage* for gzeh textF olduv here re two version of \uvF he older one llows the use of \verb inside the quotes ut reks ny respetive kerning with the quotes @like tht in CS fontsAF he newer one honors the kerning in the font ut does not llow \verb inside the quotesF
2008/07/06. It was rewritten by Petr Tesak (babel@tesarici.cz).

60 The

le described in this section has version number v3.1a and was last revised on

PWH

A he new version is used y defult in v i P nd the old version is used with plin iF ou my use olduv to override the defult in A v i P F

cstex

his option ws used to inlude the ommnds \csprimeson nd \csprimesoffF ine these ommnds re lwys inluded nowD it hs een removed nd the empty de(nition lsts for omptiilityF

51.3 Implementation
he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
51.1 51.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD czech might e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@czech to see whether we hve to do something hereF
ifxldzehdundefined dnoptterns{gzeh} 51.5 dddiletldzehHfi
51.3 51.4

e need to de(ne these mros erly in the proessF


defsdiltwd{svP} newififsdsplithyphens 51.8 sdsplithyphensflse
51.6 51.7 A sf fel is not lodedD we provide omptiility with CSv iF roweverD if mro \@ifpackageloaded is not de(nedD we ssume to e loded from plin nd provide omptiility with splinF yf ourseD this does not work well with A A v i PFHWD ut s dout nyone will ever wnt to use this (le with v i PFHWF

ifxdifpkgelodeddundefined letsdomptdplinrelx 51.11 messge{splin omptiility mode} 51.12 else 51.13 difpkgeloded{el}{}{7 51.14 letsdomptdltexrelx 51.15 messge{sltex omptiility mode}} 51.16 fi 51.17 ifxsdomptdltexrelx 51.18 rovideskge{zeh}PHHVGHUGHT vQFI ge gzeh style
51.9 51.10 A helre CSv i options @see lso the desriptions on pge PWHAF 51.19 51.20 51.21 51.22 51.23 51.24 51.25 51.26

helreyption{svP}{defenodingdefult{svP}} helreyption {I}{defenodingdefult {I}} helreyption{yI}{defenodingdefult{yI}} helreyption{nosplit}{sdsplithyphensflse} helreyption{split}{sdsplithyphenstrue} helreyption{noptions}{letsdnoptionsarelx} helreyption{olduv}{letsdolduvarelx} helreyption{stex}{relx}

PWI

wke IL2 enoding the defultF his n e overriden with the other font enoding optionsF
51.27

ixeuteyptions{sdiltwd}

xowD proess the userEsupplied optionsF


51.28

roessyptions

A tndrd v i P does not inlude the svP enoding in the formtF he A enoding n e loded lter using the fonten pkgeD ut CSv i inluded svP A y defultF his mens existing douments for CSv i do not lod tht pkgeD so lod the enoding ourselves in omptiility modeF 51.29 51.30 51.31

ifxenodingdefultsdiltwd input ilPenFdef fi

estore the de(nition of \CurrentOptionD loered y proessing the optionsF


51.32 51.33

defgurrentyption{zeh} fi

he next step onsists of de(ning ommnds to swith to @nd fromA the gzeh lngugeF
ptionszeh

he mro \captionsczech de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

dnmedef{ptionsgurrentyption}{7 defprefenme{v{r}edmluv}7 51.36 defrefnme{eferene}7 51.37 defstrtnme{estrkt}7 51.38 definme{vitertur}7 51.39 defhpternme{upitol}7 51.40 defppendixnme{v{r}9{i}loh}7 51.41 defontentsnme{ysh}7 51.42 deflistfigurenme{eznm or9zkr{u}}7 51.43 deflisttlenme{eznm tulek}7 51.44 defindexnme{ejstv{r}9{i}k}7 51.45 deffigurenme{yr9zek}7 51.46 deftlenme{ulk}7 51.47 defprtnme{v{g}9st}7 51.48 defenlnme{v{r}9{i}loh}7 51.49 defnme{x vv{e}dom9{i}}7 51.50 defhedtonme{uomu}7 51.51 defpgenme{trn}7 51.52 defseenme{viz}7 51.53 deflsonme{viz tk9e}7 51.54 defproofnme{hr{u}kz}7 51.55 defglossrynme{lovn9{i}k}7 51.56 }7
51.34 51.35

dtezeh

he mro \dateczech rede(nes the ommnd \today to produe gzeh dtesF A CSv i llows line rek etween the dy nd the monthF roweverD this ehvior hs een greed upon to e d thing y the se miling list in heemer PHHS nd hs not een doptedF
dnmedef{dtegurrentyption}{7 deftody{numerdyF~ifsemonthor lednor 9unoror

51.57 51.58

PWP

51.59 51.60 51.61

v{r}eznor dunor kvv{e}tnor v{}ervnor v{}erveneor srpnor z9v{r}9ior v{r}9{i}jnor listopduor prosinefi spenumeryer}}

extrszeh noextrszeh

he mro \extrasczech will perform ll the extr de(nitions needed for the gzeh lngugeF he mro \noextrasczech is used to nel the tions of \extrasczechF his mens sving the mening of two oneEletter ontrol sequenes efore de(ning themF por gzeh texts \frenchspacing should e in e'etF vnguge group for shorthnds is lso set hereF

expndfterddtosnme extrsgurrentyptionendsnme{7 ldfrenhsping 51.64 lngugeshorthnds{zeh}} 51.65 expndfterddtosnme noextrsgurrentyptionendsnme{7 51.66 ldnonfrenhsping}
51.62 51.63

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsveqletqv 51.69 eldsvewletwr}


51.67 51.68

sq dq

e sve the originl single nd doule quote hrters in \sq nd \dq to mke them ville lterF

egingrouptode4aIPtode9aIP defx{endgroup 51.72 defsq{9} 51.73 defdq{4}} 51.74 x


51.70 51.71

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF
51.75

providehyphenmins{gurrentyption}{twdthrdd}

A v i9s norml \v ent ples ron over the letter tht follows it @AF his is o not wht we wnt for the letters dD tD l nd vY for those the ent should hnge shpeF his is heived y the followingF

etfeginhoument{7 helreextgompositegommnd{v}{yI}{t}{7 51.78 tkernEFPQemriseFPRexhox{9}} 51.79 helreextgompositegommnd{v}{yI}{d}{7 51.80 dkernEFIQemriseFPRexhox{9}} 51.81 helreextgompositegommnd{v}{yI}{l}{lron{}} 51.82 helreextgompositegommnd{v}{yI}{v}{vron{}}}
51.76 51.77

lron vron

por the letters l nd L we wnt to disinguish etween norml fonts nd monosped fontsF

deflron{7 setoxHhox{w}setoxtwdhox{i}7 51.85 ifdimwdHbwdtwdrelx 51.86 lkernEFIQemriseFPRexhox{9}kernEFIIem7 51.87 else 51.88 lriseFRSexhox tozd{kernEFQSem 9hss}7 51.89 fi} 51.90 defvron{7
51.83 51.84

PWQ

51.91 51.92 51.93 51.94 51.95 51.96

setoxHhox{w}setoxtwdhox{i}7 ifdimwdHbwdtwdrelx vriseFPRexhox tozd{kernEFPVem9hss}7 else vriseFRSexhox tozd{kernEFRHem 9hss}7 fi}

A snitilize tive quotesF CSv i provides wy of onverting inglishEstyle quotes into gzehEstyle onesF foth single nd doule quotes re 'etedD iFeF ``text'' is onverted to something like ,,text`` nd `text' is onverted to ,text`F his onversion n e swithed on nd o' with \csprimeson nd \csprimesoffF61 hese quotes present vrious troulesD eFgF the kerning is rokenD postrophes re onverted to losing single quoteD some primitives re roken @most notly the \catcode`\ char syntx will not work ny moreAD nd writing them to .aux (les nnot e hndled orretlyF por these resonsD these ommnds re only A ville in CSv i omptiility modeF

ifxsdomptdltexrelx letsdltxprimdsprimds 51.99 defsprimeson{7 51.100 todetive tode9tive letprimdsldprimds} 51.101 defsprimesoff{7 51.102 todeIP tode9IP letprimdssdltxprimds} 51.103 egingrouptodetive 51.104 defx{endgroup 51.105 def{futureletsdnextsdopenquote} 51.106 defsdopenquote{7 51.107 ifxsdnext expndftersdopendq 51.108 else expndfterlq 51.109 fi}7 51.110 }x 51.111 egingrouptode9tive 51.112 defx{endgroup 51.113 def9{textormth{futureletsdnextsdlosequote} 51.114 {groupprimds}} 51.115 defsdlosequote{7 51.116 ifx9sdnext expndftersdlosedq 51.117 else expndfterrq 51.118 fi}7 51.119 }x 51.120 defsdopendq{lqqletsdnexta } 51.121 defsdlosedq{rqqletsdnexta }
51.97 51.98

he wy s reommend for typesetting quotes in gzeh douments is to use shorthnds similr to those used in qermnF
else inititedtivedhr{4} 51.124 expndfterddtosnme extrsgurrentyptionendsnme{7 51.125 ldtivte{4}} 51.126 expndfterddtosnme noextrsgurrentyptionendsnme{7 51.127 lddetivte{4}}
51.122 51.123

61 By

the way, the names of these macros are misleading, because the handling of primes in

math mode is rather marginal, the most important thing being the handling of quotes. . .

PWR

delredshorthnd{zeh}{4}{lqq} delredshorthnd{zeh}{49}{rqq} 51.130 delredshorthnd{zeh}{4`}{flqq} 51.131 delredshorthnd{zeh}{4b}{frqq} 51.132 delredshorthnd{zeh}{4a}{sdsplithyphen} 51.133 fi


51.128 51.129

lqq

his is the g opening quoteD whih is similr to the qermn quote @\glqqA ut the kerning is di'erentF por the yI enodingD the quote is onstruted from the right doule quote @iFeF the ypening quotes hrterA y moving it down to the seline nd shifting it to the rightD or to the left if itli orretion is positiveF por ID the qermn ypening quotes is usedF st is moved to the right nd the totl width is enlrgedF his is done in n ttempt to minimize the di'erene etween the yI nd I versionsF

rovideextgommnd{lqq}{yI}{7 setdlowdox{textquotedlright}7 51.136 setoxdneahox{lG}dimendneawddne 51.137 setoxdneahox{l}dvnedimendneEwddne 51.138 levevmode 51.139 ifdimdimendnebzdkernEFIemoxzdkernFIem 51.140 elsekernFIemoxzdkernEFIemfillowhyphens} 51.141 rovideextgommnd{lqq}{I} 51.142 {kernFIemquotedlsekernEFHISVemrelx} 51.143 rovideextgommndhefult{lqq}{seextymol{yI}lqq}
51.134 51.135

rqq

por yID the g losing quote is silly the sme s \grqqD only the \textormath mro is not usedD euse s fr s s knowD \grqq does not work in mth mode nywyF por ID the hrter is slightly wider nd shifted to the right to mth its yI ounterprtF

rovideextgommnd{rqq}{yI} {svedsfdq{norekkernEFHUemtextquotedlleftkernFHUem}} 51.146 rovideextgommnd{rqq}{I} 51.147 {svedsfdq{norekkernFHTemtextquotedlleftkernFHPRem}} 51.148 rovideextgommndhefult{rqq}{seextymol{yI}rqq}


51.144 51.145

lq ingle g quotes re similr to doule quotes @see the disussion oveAF rq 51.149 rovideextgommnd{lq}{yI} {setdlowdox{textquoteright}oxzdkernFHRemllowhyphens} rovideextgommnd{lq}{I} 51.152 {quotesinglsekernEFHRPVemrelx} 51.153 rovideextgommndhefult{lq}{seextymol{yI}lq} 51.154 rovideextgommnd{rq}{yI} 51.155 {svedsfdq{norektextquoteleftkernFIUem}} 51.156 rovideextgommnd{rq}{I} 51.157 {svedsfdq{norektextquoteleftkernFIUem}} 51.158 rovideextgommndhefult{rq}{seextymol{yI}rq}
51.150 51.151

uv

here re two versions of \uvF he older one opens group nd uses \aftergroup to typeset the losing quotesF his version llows using \verb inside the quotesD euse the enlosed text is not pssed s n rgumentD ut unfortuntely it reks PWS

ifxsdomptdplindundefinedelseletsdolduvarelxfi ifxsdolduvdundefined 51.161 helreoustgommnduvI{{levevmodelqq5Irqq}} 51.162 else 51.163 helreoustgommnduv{groupftergrouplosequotes 51.164 levevmodelqqletsdnexta} 51.165 deflosequotes{unskiprqqrelx} 51.166 fi
51.159 51.160

ny kerning with the quotesF elthough the kerning with the opening quote ould e (xedD the kerning with the losing quote nnotF he newer version is de(ned s ommnd with one prmeterF st preserves kerning ut sine the quoted text is pssed s n rgumentD it nnot ontin \verbF heide whih version of \uv should e usedF por ske of omptiilityD we use A the older version with plin i nd the newer version with v i P F

sdwordlen

helre ounter to hold the length of the word fter the hyphenF
newountsdwordlen

51.167

sdhyphen tore the originl hyphen in mroF hitto for the ligturesF sdendsh 51.168 egingrouptodeEIP sdemdsh 51.169 defx{endgroup 51.170 defsdhyphen{E} 51.171 defsdendsh{EE} 51.172 defsdemdsh{EEE} sdoxhyphen

rovide nonErekle hyphen to e used when ompound word is too short to e splitD iFeF the seond prt is shorter thn \righthyphenminF
defsdoxhyphen{hox{E}}

51.173

sdsplithyphen

he mro \cs@splithyphen inserts split hyphenD while llowing oth prts of the ompound word to e hyphented t other ples tooF

defsdsplithyphen{kernzd disretionry{E}{hrhyphenhrthefont}{E}norekhskipzd} 51.176 }x


51.174 51.175

o minimize the e'ets of tivting the hyphen hrterD the tive de(nition expnds to the nonEtive hrter in ll ses where hyphention nnot ourD iFeF if not typesetting @hek \protectAD not in horizontl modeD or in inner horizontl modeF

inititedtivedhr{E} delredshorthnd{zeh}{E}{7 51.179 ifxprotetdtypesetdprotet 51.180 ifhmode 51.181 ifinner 51.182 ldfterelseldfterelseldfterelsesdhyphen 51.183 else 51.184 ldfterfildfterelseldfterelsesdfirsthyphen 51.185 fi 51.186 else 51.187 ldfterfildfterelsesdhyphen
51.177 51.178

PWT

51.188 51.189 51.190 51.191

fi else ldfterfisdhyphen fi}

sdfirsthyphen sdfirsthyphdn sdseondhyphen sdseondhyphdn

sf we enounter hyphenD hek whether it is followed y seond or third hyphen nd if soD insert the orresponding ligtureF sf we don9t (nd hyphenD the token found will e pled in \cs@token for further nlysisD nd it will lso sty in the inputF

egingrouptodeEtive defx{endgroup 51.194 defsdfirsthyphen{futureletsdtokensdfirsthyphdn} 51.195 defsdfirsthyphdn{7 51.196 ifx Esdtoken 51.197 ldfterelsesdseondhyphen 51.198 else 51.199 ldfterfisdhekhyphen 51.200 fi} 51.201 defsdseondhyphen 55I{7 51.202 futureletsdtokensdseondhyphdn} 51.203 defsdseondhyphdn{7 51.204 ifx Esdtoken 51.205 ldfterelsesdemdshdgole 51.206 else 51.207 ldfterfisdendsh 51.208 fi} 51.209 }x
51.192 51.193

sdhekhyphen

ghek tht hyphention is enledD nd if soD strt nlyzing the rest of the wordD iFeF initilize \cs@word nd \cs@wordlen nd strt proessing input with \cs@scanwordF

defsdhekhyphen{7 ifnumexpndfterhyphenhrthefontaE 51.212 defsdword{}sdwordlenzd 51.213 ldfterelsesdsnword 51.214 else 51.215 sdhyphen 51.216 fi}
51.210 51.211

sdsnword sdontinuesn sdgettoken sdgettdken

ih token is (rst nlyzed with \cs@scanwordD whih expnds the token nd psses the (rst token of the result to \cs@gett@kenF sf the expnded token is not identil to the unexpnded oneD presume tht it might e expnded further nd pss it k to \cs@scanword until you get n unexpndle tokenF hen nlyze it in \cs@examinetokenF he \cs@continuescan mro does the sme thing s \cs@scanwordD ut it does not require the (rst token to e in \cs@token lredyF

defsdsnword{letsdlsttokena sdtokenexpndftersdgettoken} defsdontinuesn{letsdlsttokendundefinedexpndftersdgettoken} 51.219 defsdgettoken{futureletsdtokensdgettdken} 51.220 defsdgettdken{7 51.221 ifxsdtokensdlsttoken defsdnext{sdexminetoken}7 51.222 else defsdnext{sdsnword}7 51.223 fi sdnext}
51.217 51.218

PWU

sdexminetoken

ixmine the token in \cs@tokenX

sf it is letter @tode IIA or other @tode IPAD dd it to \cs@word with \cs@addparamF sf it is the \char primitiveD dd it with \cs@expandcharF sf the token strts or ends groupD ignore it with \cs@ignoretokenF ytherwise nlyze the mening of the token with \cs@checkchardef to detet primitives de(ned with \chardefF
defsdexminetoken{7 ift esdtoken 51.226 defsdnext{sdddprm}7 51.227 elseift Hsdtoken 51.228 defsdnext{sdddprm}7 51.229 elseifxhrsdtoken 51.230 defsdnext{fterssignmentsdexpndhrletsdtokena }7 51.231 elseifxgroupsdtoken 51.232 defsdnext{sdignoretokengroup}7 51.233 elseifxegroupsdtoken 51.234 defsdnext{sdignoretokenegroup}7 51.235 elseifxegingroupsdtoken 51.236 defsdnext{sdignoretokenegingroup}7 51.237 elseifxendgroupsdtoken 51.238 defsdnext{sdignoretokenendgroup}7 51.239 else 51.240 defsdnext{expndfterexpndfterexpndftersdhekhrdef 51.241 expndftermeningexpndftersdtokenstringhrend}7 51.242 fififififififisdnext}
51.224 51.225

sdhekhrdef

ghek the mening of token nd if it is primitive de(ned with \chardefD pss it to \\@examinechar s if it were \char sequeneF ytherwiseD there re no more word hrtersD so do the (nl tions in \cs@nosplitF

expndfterdefexpndftersdhekhrdef expndfter5expndfterIstringhr5Pend{7 51.245 defsdtoken{5I}7 51.246 ifxsdtokendempty 51.247 defsdnext{fterssignmentsdexminehrletsdtokena }7 51.248 else 51.249 defsdnext{sdnosplit}7 51.250 fi sdnext}
51.243 51.244

sdignoretoken

edd token to \cs@word ut do not updte the \cs@wordlen ounterF his is minly useful for group strting nd ending primitivesD whih need to e preservedD ut do not 'et the word oundryF

defsdignoretoken5I{7 edefsdword{sdword5I}7 51.253 fterssignmentsdontinuesnletsdtokena }


51.251 51.252

sdddprm

edd token to \cs@word nd hek its lodeF xote tht this mro n only e used for tokens whih n e pssed s prmeterF

PWV

defsdddprm5I{7 edefsdword{sdword5I}7 51.256 sdhekode{lode5I}}


51.254 51.255

sdexpndhr sdexminehr

edd \char sequene to \cs@word nd hek its lodeF he hrode is (rst prsed in \cs@expandchar nd then the resulting \chardefEde(ned sequene is nlyzed in \cs@examinecharF

defsdexpndhr{fterssignmentsdexminehrhrdefsdtokena} defsdexminehr{7 51.259 edefsdword{sdwordhrthesdtokenspe}7 51.260 sdhekode{lodesdtoken}}


51.257 51.258

sdhekode

ghek the lode of hrterF sf it is zeroD it does not ount to the urrent wordD so (nish it with \cs@nosplitF ytherwise updte the \cs@wordlen ounter nd go on snning the word with \cs@continuescanF hen enough hrters re gthered in \cs@word to llow word rekD insert the split hyphen nd (nishF

defsdhekode5I{7 ifnumHa5I 51.263 defsdnext{sdnosplit}7 51.264 else 51.265 dvnesdwordlendne 51.266 ifnumrighthyphenminbthesdwordlen 51.267 defsdnext{sdontinuesn}7 51.268 else 51.269 sdsplithyphen 51.270 defsdnext{sdword}7 51.271 fi 51.272 fi sdnext}
51.261 51.262

sdnosplit sdhyphen

snsert nonErekle hyphen followed y the sved wordF


defsdnosplit{sdoxhyphensdword}

51.273

he \minus sequene n e used where the tive hyphen does not workD eFgF in rguments to i primitives in outer horizontl modeF
letminussdhyphen

51.274

stndrdhyphens splithyphens

hese mros ontrol whether split hyphens re llowed in gzeh ndGor lovk textsF ou my use them in ny lngugeD ut the split hyphen is only tivted for gzeh nd lovkF
defstndrdhyphens{sdsplithyphensflsesddetivtehyphens} defsplithyphens{sdsplithyphenstruesdtivtehyphens}

51.275 51.276

sdsplitttr

xow we delre the split lnguge ttriuteF his is similr to the split pkge option of sltexD ut it only 'ets gzehD not lovkF

defsdsplitttr{eldsveifsdsplithyphenssplithyphens} lddelredttriute{zeh}{split}{7 51.279 ddtoextrszeh{sdsplitttr}}


51.277 51.278

sdtivtehyphens sddetivtehyphens

hese mros re de(ned s \relax y defult to prevent tivtingGdetivting the hyphen hrterF hey re rede(ned when the lnguge is swithed to gzehGlovkF et tht moment the hyphen is lso tivted if split hyphens were requested with \splithyphensF PWW

hen the lnguge is deEtivtedD deEtivte the hyphen nd restore the ogus de(nitions of these mrosF
letsdtivtehyphensrelx letsddetivtehyphensrelx 51.282 expndfterddtosnme extrsgurrentyptionendsnme{7 51.283 defsdtivtehyphens{ldtivte{E}}7 51.284 defsddetivtehyphens{lddetivte{E}}7 51.285 ifsdsplithyphenssdtivtehyphensfi} 51.286 expndfterddtosnme noextrsgurrentyptionendsnme{7 51.287 sddetivtehyphens 51.288 letsdtivtehyphensrelx 51.289 letsddetivtehyphensrelx}
51.280 51.281

sdlooseness looseness

yne of the most ommon situtions where n tive hyphen will not work properly is the \looseness primitiveF ghnge its de(nition so tht it detivtes the hyphen if neededF

letsdloosenesslooseness deflooseness{7 51.292 ifsdsplithyphens 51.293 sddetivtehyphensfterssignmentsdtivtehyphens fi 51.294 sdlooseness}


51.290 51.291

sdseletlnguge sdmindlnguge

peifying the nocaptions option mens tht ptions nd dtes re not redeE (ned y defultD ut they n e swithed on lter with \captionsczech ndGor \dateczechF e mimi this ehvior y rede(ning \selectlanguageF his mro is lled one t the eginning of the doument to set the min lnguge of the doumentF sf this is \cs@main@languageD it disles the mros for setting ptions nd dteF sn ny seD it restores the originl de(nition of \selectlanguage nd expnds itF he de(nition of \selectlanguage n e shred etween gzeh nd lovkY the tul lnguge is stored in \cs@main@languageF

ifxsdnoptionsdundefinedelse edefsdmindlnguge{gurrentyption} 51.297 ifxsdorigseletdundefined 51.298 letsdorigseletaseletlnguge 51.299 defseletlnguge{7 51.300 letseletlngugesdorigselet 51.301 ifxldmindlngugesdmindlnguge 51.302 expndftersdseletlnguge 51.303 else 51.304 expndfterseletlnguge 51.305 fi} 51.306 defsdseletlnguge{7 51.307 sdtempdisle{ptions}7 51.308 sdtempdisle{dte}7 51.309 seletlnguge}
51.295 51.296

sdtempdisle

\cs@tempdisable disles lnguge setup mro temporrilyD iFeF the mro with the nme of #1 \bbl@main@language just restores the originl de(nition nd purges the sved mro from memoryF
defsdtempdisle5I{7

51.310

QHH

51.311 51.312 51.313 51.314 51.315 51.316 51.317 51.318 51.319 51.320

defdtemp{sd5I}7 defdtemp{5Ildmindlnguge}7 expndfterexpndfterexpndfterlet expndfter snmeexpndfter dtemp expndfterendsnme snme dtemp endsnme expndfteredefsnme dtemp endsnme{7 let expndfternoexpnd snme dtemp endsnme expndfternoexpnd snme dtemp endsnme let expndfternoexpndsnme dtemp endsnme noexpnddundefined}}

hese mros re not neededD one the initiliztion is overF


donlypremlesdmindlnguge donlypremlesdorigselet 51.323 donlypremlesdseletlnguge 51.324 donlypremlesdtempdisle 51.325 fi 51.326 fi
51.321 51.322

he enoding of mthemtil fonts should e hnged to svPF his llows to use ented letter in some font fmiliesF fesidesD douments do not use gw fonts if there re equivlents in gEfontsD so there is no need to hve oth itmps of gwEfont nd gEfontF \@font@warning nd \@font@info re temporrily rede(ned to void nnoyE ing font wrningsF
ifxsdomptdplindundefined ifxsdhekdendundefinedelse 51.329 defsdhekden{ 51.330 ifxenodingdefultsdiltwd 51.331 letsdwrndfontdwrning letdfontdwrningdgole 51.332 letsdinfodfontdinfo letdfontdinfodgole 51.333 etymolpont{opertors}{norml}{sdiltwd}{mr}{m}{n} 51.334 etymolpont{opertors}{old}{sdiltwd}{mr}{x}{n} 51.335 etwthelphetmthf{norml}{sdiltwd}{mr}{x}{n} 51.336 etwthelphetmthit{norml}{sdiltwd}{mr}{m}{it} 51.337 etwthelphetmthrm{norml}{sdiltwd}{mr}{m}{n} 51.338 etwthelphetmthsf{norml}{sdiltwd}{mss}{m}{n} 51.339 etwthelphetmthtt{norml}{sdiltwd}{mtt}{m}{n} 51.340 etwthelphetmthf{old}{sdiltwd}{mr}{x}{n} 51.341 etwthelphetmthit{old}{sdiltwd}{mr}{x}{it} 51.342 etwthelphetmthrm{old}{sdiltwd}{mr}{x}{n} 51.343 etwthelphetmthsf{old}{sdiltwd}{mss}{x}{n} 51.344 etwthelphetmthtt{old}{sdiltwd}{mtt}{m}{n} 51.345 letdfontdwrningsdwrn letsdwrndundefined 51.346 letdfontdinfosdinfo letsdinfodundefined 51.347 fi 51.348 letsdhekdendundefined} 51.349 etfeginhoument{sdhekden} 51.350 fi 51.351 fi
51.327 51.328

sdundoiltwd

A he thing is tht v i P ore only supports the I enoding nd does not other hnging the uGlGsfodes when enoding is swithedF X@ roweverD the svP

QHI

enoding does hnge these odesD so if enoding is swithed k from svPD we A must lso undo the e'et of this hnge to e omptile with v i P F yuD this is not the rightTM solution ut it worksF gheers to etr ylkF
defsdundoiltwd{7 uodeISVaPHV lodeISVaISV 51.354 sfodeISWaIHHH 51.355 uodeITSaIQQ lodeITSaITS 51.356 uodeITWaIQU lodeITWaITW 51.357 uodeIUIaIQW lodeIUIaIUI 51.358 uodeIURaIRP lodeIURaIUR 51.359 uodeIVIaIRW 51.360 uodeIVSaISQ 51.361 uodeIVUaISS 51.362 uodeIWHaH lodeIWHaH 51.363 uodePSRaPPP lodePSRaPSR 51.364 uodePSSaPPQ lodePSSaPSS
51.352 51.353

sfodeISVaIHHH sfodeITSaIHHH sfodeITWaIHHH sfodeIUIaIHHH sfodeIURaIHHH

sfodePSRaIHHH sfodePSSaIHHH}

ddendupdte

A ede(ne the v i P internl funtion \@@enc@update to hnge the enodings orretlyF

ifxsdendupdtedundefined ifxddendupdtedundefinedelse 51.367 letsdendupdteddendupdte 51.368 defddendupdte{ifxfdenodingsdiltwdsdundoiltwdfi 51.369 sdendupdte 51.370 expndfterifnumsnme ldlngugenmeendsnmeathelnguge 51.371 expndfterifx 51.372 snme ldlngugenmeXfdenodingendsnmerelx 51.373 else 51.374 expndfterexpndfterexpndfterlet 51.375 expndftersnme 51.376 expndfter lexpndfter dexpndfterlngugenme 51.377 expndfterendsnmesnme ldlngugenmeXfdenodingendsnme 51.378 fi 51.379 lngugeasnme ldlngugenmeendsnmerelx 51.380 fi} 51.381 fifi
51.365 51.366

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
51.382 51.383

ldfdfinishgurrentyption /code

QHP

52

The Polish language

he (le polish.dtx62 de(nes ll the lngugeEspei( mros for the olish lnE gugeF por this lnguge the hrter " is mde tiveF sn tle PS n overview is given of its purposeF

"a "A "e "E "c "l "L "r "R "z "Z "| """ "` "' "< ">

or \aobD for tiledE @like A  or \AobD for tiledEe @like eA  or \eobD for tiledEe @like eA  or \EobD for tiledEi @like iA  or \'cD for ented @like AD sme with upperse letters nd nDoDs or \lpb{}D for l with stroke @like A or \Lpb{}D for v with stroke @like A or \zkb{}D for pointed z @like AD fF pronounition or \Zkb{}D for pointed @like A or \'zD for ented z or \'ZD for ented disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for qermn left doule quotes @looks like AF for qermn right doule quotesF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF

le PSX he extr de(nitions mde y polish.sty he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
52.1 52.2

code vdfsnit{polish}ptionspolish

hen this (le is red s n optionD iFeF y the \usepackage ommndD polish ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@polish to see whether we hve to do something hereF
ifxldpolishdundefined dnoptterns{olish} 52.5 dddiletldpolishHfi
52.3 52.4

he next step onsists of de(ning ommnds to swith to @nd fromA the olish lngugeF
ptionspolish

he mro \captionspolish de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF
52.6

ddtoptionspolish{7

62 The le described in this section has version number v1.2l and was last revised on 2005/03/31.

QHQ

52.7 52.8 52.9 52.10 52.11 52.12 52.13 52.14 52.15 52.16 52.17 52.18 52.19 52.20 52.21 52.22 52.23 52.24 52.25 52.26 52.27 52.28

defprefenme{rzedmow}7 defrefnme{vitertur}7 defstrtnme{treszzenie}7 definme{filiogrfi}7 defhpternme{ozdzil}7 defppendixnme{hodtek}7 defontentsnme{pis tre9si}7 deflistfigurenme{pis rysunk9ow}7 deflisttlenme{pis tli}7 defindexnme{sndeks}7 deffigurenme{ysunek}7 deftlenme{li}7 defprtnme{gzeo{}9s9}7 defenlnme{lo{}znik}7 defnme{uopieX}7 defhedtonme{ho}7 defpgenme{tron}7 defseenme{or9ownj}7 deflsonme{or9ownj tkFze}7 defproofnme{how9od}7 defglossrynme{qlossry}7 `EE xeeds trnsltion

dtepolish

he mro \datepolish rede(nes the ommnd \today to produe olish dtesF

defdtepolish{7 deftody{numerdy~ifsemonthor 52.31 styznior lutegoor mror kwietnior mjor zerwor lipor 52.32 sierpnior wrze9snior p9zdziernikor listopdor grudnifi 52.33 spenumeryer}7 52.34 }
52.29 52.30

extrspolish noextrspolish

he mro \extraspolish will perform ll the extr de(nitions needed for the olish lngugeF he mro \noextraspolish is used to nel the tions of \extraspolishF por olish the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the polish group of shorthnds should e usedF

inititedtivedhr{4} ddtoextrspolish{lngugeshorthnds{polish}} 52.37 ddtoextrspolish{ldtivte{4}}


52.35 52.36

hon9t forget to turn the shorthnds o' ginF


52.38

ddtonoextrspolish{lddetivte{4}}

he ode ove is neessry euse we need n extr tive hrterF his hrter is then used s indited in tle PSF sf you hve prolems t the end of word with linerekD use the other version without hyphention triksF ome e wizrd my produe etter solution with forsting nother token to deide whether the hrter fter the doule quote is the lst in wordF ho it nd let us knowF

QHR

sn olish texts some letters get speil diritil mrksF veszek rolenderski designed the following ode to position the diritis orretly for every font in every sizeF hese mros need few extr dimension vrilesF
newdimenpldleft newdimenplddown 52.41 newdimenpldright 52.42 newdimenpldtemp
52.39 52.40

so

he mro \sob is used to put the ogonek9 in the right pleF

defso5I5P5Q5R5S{7prmetersX letter nd frtions hlDhoDvlDvo setoxHhox{5I}setoxIhox{6mthhr9RSR6}setoxPhox{p}7 52.45 pldrighta5PwdH dvnepldright yE5QwdI 52.46 plddowna5ShtI dvneplddown yE5RhtH 52.47 pldleftapldright dvnepldleft ywdI 52.48 pldtempaEplddown dvnepldtemp ydpP dpIapldtemp 52.49 levevmode 52.50 kernpldrightlowerplddownoxIkernEpldleft 5I}
52.43 52.44

o he ogonek is pled with the letters 9D e9D e9D nd i9F eo52.51 helreextgommnd{o}{yI}{so {FTT}{FPH}{H}{FWH}} eo52.52 helreextgommnd{eo}{yI}{so e{FVH}{FSH}{H}{FWH}} io52.53 helreextgommnd{eo}{yI}{so e{FSH}{FQS}{H}{FWQ}} 52.54 helreextgommnd{io}{yI}{so i{FTH}{FQS}{H}{FWH}}

por the 9new9 T1 enoding we n provide simpler de(nitionsF


helreextgommnd{o}{I}{k helreextgommnd{eo}{I}{k 52.57 helreextgommnd{eo}{I}{k 52.58 helreextgommnd{io}{I}{k
52.55 52.56 52.59 52.60

} e} e} i}

gonstrut the hrters y defult from the yI enodingF


rovideextgommndhefult{o}{seextymol{yI}{o}} rovideextgommndhefult{eo}{seextymol{yI}{eo}} 52.61 rovideextgommndhefult{eo}{seextymol{yI}{eo}} 52.62 rovideextgommndhefult{io}{seextymol{yI}{io}} sp

he mro \spb is used to put the poprzezk9 in the right pleF

defsp5I5P5Q5R5S{7 setoxHhox{5I}setoxIhox{hr9HPQ}7 52.65 pldrighta5PwdH dvnepldright yE5QwdI 52.66 plddowna5ShtI dvneplddown yE5RhtH 52.67 pldleftapldright dvnepldleft ywdI 52.68 htIaplddown dpIaEplddown 52.69 levevmode 52.70 kernpldrightlowerplddownoxIkernEpldleft 5I}
52.63 52.64

sk

he mro \skb is used to put the kropk9 in the right pleF

defsk5I5P5Q5R5S{7 setoxHhox{5I}setoxIhox{hr9HST}7 52.73 pldrighta5PwdH dvnepldright yE5QwdI 52.74 plddowna5ShtI dvneplddown yE5RhtH 52.75 pldleftapldright dvnepldleft ywdI 52.76 levevmode 52.77 kernpldrightlowerplddownoxIkernEpldleft 5I}
52.71 52.72

QHS

textpl

por the poprzezk9 nd the kropk9 in text fonts we don9t need ny speil odingD ut we n @lmostA use wht is lredy villeF

deftextpl{7 deflp{plll}7 52.80 defvp{pvvv}7 52.81 defzk{Fz}7 52.82 defk{F}}


52.78 52.79

snitilly we ssume tht typesetting is done with text fontsF


52.83 52.84 52.85

textpl

letlllal letvvvav defplll{lll} 52.86 defpvvv{vvv} telepl

fut for the teletype9 font in yI9 enoding we hve to tke some speil tionsD involving the mros de(ned oveF
l{FRS}{FS}{FR}{FV}}7 v{FPQ}{FS}{FR}{FV}}7 z{FS}{FS}{IFP}{H}}7 {FS}{FS}{IFI}{H}}}

deftelepl{7 deflp{sp 52.89 defvp{sp 52.90 defzk{sk 52.91 defk{sk


52.87 52.88

ifxseletfontdundefined ifxprmdundefined ddtorm{textpl}else 52.94 ifxpitdundefined ddtoit{textpl}else 52.95 ifxpfdundefined ddtof{textpl}else 52.96 ifxpsldundefined ddtosl{textpl}else 52.97 ifxpsfdundefined else 52.98 ifxpsdundefined else 52.99 ifxpttdundefined ddtott{telepl}else 52.100 else
52.92 52.93 A hen \selectfont exists we ssume v i P F 52.101 52.102

o tivte these odes the font hnging ommnds s they re de(ned in A v i re modi(edF he sme is done for plin i9s font hnging ommndsF hen \selectfont is unde(ned the urrent formt is spposed to e either A plin @sedA or v i PFHWF
ddtoprm{textpl}fi ddtopit{textpl}fi ddtopf{textpl}fi ddtopsl{textpl}fi ddtopsf{textpl}fi ddtops{textpl}fi ddtoptt{telepl}fi

expndfterddtosnme seletfont endsnme{7 snmefdenoding dplendsnme} 52.103 fi

gurrently we support the yI nd I enodingsF por I we don9t hve to mke di'erene etween typewriter fonts nd other fontsD they ll hve the sme glyphsF
52.104

expndfterletsnme Idplendsnmetextpl

por yI we need to hek the urrent font fmilyD stored in \f@familyF nE fortuntely we need hk s \ttdefault is de(ned s \long mroD while \f@family is notF
expndfterdefsnme yIdplendsnme{7 longedefurrdfmily{fdfmily}7 52.107 ifxurrdfmilyttdefult 52.108 telepl 52.109 else 52.110 textpl 52.111 fi}
52.105 52.106

QHT

dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F

egingroup tode4IP defx{endgroup 52.114 defdq{4}} 52.115 x


52.112 52.113

xow we n de(ne the doulequote mros for diritisD


delredshorthnd{polish}{4}{textormth{o}{ddot delredshorthnd{polish}{4e}{textormth{eo}{ddot 52.118 delredshorthnd{polish}{4}{textormth{9}{ute 52.119 delredshorthnd{polish}{4g}{textormth{9g}{ute 52.120 delredshorthnd{polish}{4e}{textormth{eo}{ddot 52.121 delredshorthnd{polish}{4i}{textormth{io}{ddot 52.122 delredshorthnd{polish}{4l}{textormth{lp}{ddot 52.123 delredshorthnd{polish}{4v}{textormth{vp}{ddot 52.124 delredshorthnd{polish}{4n}{textormth{9n}{ute 52.125 delredshorthnd{polish}{4x}{textormth{9x}{ute 52.126 delredshorthnd{polish}{4o}{textormth{9o}{ute 52.127 delredshorthnd{polish}{4y}{textormth{9y}{ute 52.128 delredshorthnd{polish}{4s}{textormth{9s}{ute 52.129 delredshorthnd{polish}{4}{textormth{9}{ute
52.116 52.117

}} e}} }} g}} e}} i}} l}} v}} n}} x}} o}} y}} s}} }}

polishrz polishzx

he ommnd \polishrz de(nes the shorthnds "rD "z nd "x to produe pointed zD ented z nd "xF his is the defult s these shorthnds were de(ned y this lnguge de(nition (le for quite some timeF
r}}7 }}7 z}}7 }}7

newommndB{polishrz}{7 delredshorthnd{polish}{4r}{textormth{zk}{ddot 52.132 delredshorthnd{polish}{4}{textormth{k}{ddot 52.133 delredshorthnd{polish}{4z}{textormth{9z}{ute 52.134 delredshorthnd{polish}{4}{textormth{9}{ute 52.135 delredshorthnd{polish}{4x}{dq x}7 52.136 delredshorthnd{polish}{4}{dq }7 52.137 } 52.138 polishrz
52.130 52.131

he ommnd \polishzx swithes to di'erent set of shorthndsD "zD "x nd "r to produe pointed zD ented z nd "rY di'erent shorthnd nottion lso in useF
newommndB{polishzx}{7 delredshorthnd{polish}{4z}{textormth{zk}{ddot 52.141 delredshorthnd{polish}{4}{textormth{k}{ddot 52.142 delredshorthnd{polish}{4x}{textormth{9z}{ute 52.143 delredshorthnd{polish}{4}{textormth{9}{ute 52.144 delredshorthnd{polish}{4r}{dq r}7 52.145 delredshorthnd{polish}{4}{dq }7 52.146 }
52.139 52.140

z}}7 }}7 x}}7 }}7

hen we de(ne ess to two forms of quottion mrksD similr to the germn nd frenh quottion mrksF
delredshorthnd{polish}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 52.149 delredshorthnd{polish}{49}{7
52.147 52.148

QHU

textormth{textquotedlright}{mox{textquotedlright}}} delredshorthnd{polish}{4`}{7 52.152 textormth{guillemotleft}{mox{guillemotleft}}} 52.153 delredshorthnd{polish}{4b}{7 52.154 textormth{guillemotright}{mox{guillemotright}}}


52.150 52.151

then we de(ne two shorthnds to e le to speify hyphention rekpoints tht ehvew little di'erent from \-F
52.155 52.156

delredshorthnd{polish}{4E}{norekEldllowhyphens} delredshorthnd{polish}{44}{hskipzdskip} delredshorthnd{polish}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

end we wnt to hve shorthnd for disling ligtureF


52.157 52.158

mdqon mdqoff

ell tht9s left to do now is to de(ne ouple of ommnds for resons of omptE iility with polish.texF
defmdqon{shorthndon{4}} defmdqoff{shorthndoff{4}}

52.159 52.160

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
52.161 52.162

ldfdfinish{polish} /code

QHV

53

The Serbocroatian language

he (le serbian.dtx63 de(nes ll the lnguge de(nition mros for the erin lngugeD typeset in ltin sriptF sn future version support for typesetting in yrilli sript my e ddedF por this lnguge the hrter " is mde tiveF sn tle PT n overview is given of its purposeF yne of the resons for this is tht in the erin lnguge some speil hrters re usedF

"c "d ""| "" "` "' "< ">

\"cD lso implemented for the lowerse nd upperE se s nd zF \djD lso implemented for "D n expliit hyphen signD llowing hyphention in the rest of the wordF disle ligture t this position like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for erin left doule quotes @looks like AF for erin right doule quotesF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF

le PTX he extr de(nitions mde y serbian.ldf eprt from de(ning shorthnds we need to mke sure tht the (rst prgrph of eh setion is intendedF purthermore the following new mth opertors re de(ned @\tgD \ctgD \arctgD \arcctgD \shD \chD \thD \cthD \arshD \archD \arthD \arcthD \ProbD \ExpectD \VarianceAF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
53.1 53.2

code vdfsnit{serin}ptionsserin

hen this (le is red s n optionD iFeF y the \usepackage ommndD serbian will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@serbian to see whether we hve to do something hereF
ifxldserindundefined dnoptterns{erin} 53.5 dddiletldserinHfi
53.3 53.4

he next step onsists of de(ning ommnds to swith to @nd fromA the erE orotin lngugeF
ptionsserin

ddtoptionsserin{7 defprefenme{redgovor}7 53.8 defrefnme{vitertur}7


53.6 53.7

he mro \captionsserbian de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

2005/03/31. A contribution was made by Dejan Muhamedagi (dejan@yunix.com).

63 The

le described in this section has version number v1.0d and was last revised on

QHW

53.9 53.10 53.11 53.12 53.13 53.14 53.15 53.16 53.17 53.18 53.19 53.20 53.21 53.22 53.23 53.24 53.25 53.26 53.27 53.28

defstrtnme{v{z}etk}7 definme{filiogrfij}7 defhpternme{qlv}7 defppendixnme{hodtk}7 defontentsnme{drv{z}j}7 deflistfigurenme{like}7 deflisttlenme{ele}7 defindexnme{sndeks}7 deffigurenme{lik}7 deftlenme{el}7 defprtnme{heo}7 defenlnme{rilozi}7 defnme{uopije}7 defhedtonme{rim}7 defpgenme{trn}7 defseenme{idi}7 deflsonme{idi tkodj e}7 defproofnme{hokz}7 defglossrynme{qlossry}7 `EE xeeds trnsltion }7

dteserin

he mro \dateserbian rede(nes the ommnd \today to produe erorotE in dtesF

defdteserin{7 deftody{numerdy F~ifsemonthor 53.31 jnuror feruror mrtor prilor mjor 53.32 junior julior vgustor septemror oktoror novemror 53.33 deemrfi spe numeryer}}
53.29 53.30

extrsserin noextrsserin

he mro \extrasserbian will perform ll the extr de(nitions needed for the erorotin lngugeF he mro \noextrasserbian is used to nel the E tions of \extrasserbianF por erin the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the serin group of shorthnds should e usedF

inititedtivedhr{4} ddtoextrsserin{lngugeshorthnds{serin}} 53.36 ddtoextrsserin{ldtivte{4}}


53.34 53.35

hon9t forget to turn the shorthnds o' ginF


53.37

ddtonoextrsserin{lddetivte{4}} }} s}} z}} g}} }} }}

pirst we de(ne shorthnds to filitte the ourene of letters suh s F


delredshorthnd{serin}{4}{textormth{v }{hek delredshorthnd{serin}{4d}{textormth{dj}{dj}}77 53.40 delredshorthnd{serin}{4s}{textormth{v s}{hek 53.41 delredshorthnd{serin}{4z}{textormth{v z}{hek 53.42 delredshorthnd{serin}{4g}{textormth{v g}{hek 53.43 delredshorthnd{serin}{4h}{textormth{ht}{ht}}77 53.44 delredshorthnd{serin}{4}{textormth{v }{hek 53.45 delredshorthnd{serin}{4}{textormth{v }{hek
53.38 53.39

QIH

hen we de(ne ess to two forms of quottion mrksD similr to the germn nd frenh quottion mrksF
delredshorthnd{serin}{4}{7 textormth{quotedlse{}}{mox{quotedlse}}} 53.48 delredshorthnd{serin}{49}{7 53.49 textormth{textquotedlleft{}}{mox{textquotedlleft}}} 53.50 delredshorthnd{serin}{4`}{7 53.51 textormth{guillemotleft{}}{mox{guillemotleft}}} 53.52 delredshorthnd{serin}{4b}{7 53.53 textormth{guillemotright{}}{mox{guillemotright}}}
53.46 53.47

then we de(ne two shorthnds to e le to speify hyphention rekpoints tht ehve little di'erent from \-F
53.54 53.55

delredshorthnd{serin}{4E}{norekEldllowhyphens} delredshorthnd{serin}{44}{hskipzdskip} delredshorthnd{serin}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

end we wnt to hve shorthnd for disling ligtureF


53.56 53.57

ldfrenhindent ldnonfrenhindent

ifxfmtnme plin else letdifysdfterindentflse 53.60 defldfrenhindent{letdfterindentflsedfterindenttrue 53.61 dfterindenttrue} 53.62 defldnonfrenhindent{letdfterindentflsedifys 53.63 dfterindentflse} 53.64 ddtoextrsserin{ldfrenhindent} 53.65 ddtonoextrsserin{ldnonfrenhindent} 53.66 fi
53.58 53.59

sn erin the (rst prgrph of eh setion should e indentedF edd this ode A only in v iF

mthserin

ome mth funtions in erin mth ooks hve other nmesX eFgF sinh in erin is written s sh etF o we de(ne numer of new mth opertorsF

defsh{mthop{opertordfont sh}nolimits} 7 sme s sinh defh{mthop{opertordfont h}nolimits} 7 sme s osh 53.69 defth{mthop{opertordfont th}nolimits} 7 sme s tnh 53.70 defth{mthop{opertordfont th}nolimits} 7 sme s oth 53.71 defrsh{mthop{opertordfont rsh}nolimits} 53.72 defrh{mthop{opertordfont rh}nolimits} 53.73 defrth{mthop{opertordfont rth}nolimits} 53.74 defrth{mthop{opertordfont rth}nolimits} 53.75 deftg{mthop{opertordfont tg}nolimits} 7 sme s tn 53.76 deftg{mthop{opertordfont tg}nolimits} 7 sme s ot 53.77 defrtg{mthop{opertordfont rtg}nolimits} 7 sme s rtn 53.78 defrtg{mthop{opertordfont rtg}nolimits} 53.79 defro{mthop{mthsf hskipHpt}nolimits} 53.80 defixpet{mthop{mthsf ihskipHpt}nolimits} 53.81 defrine{mthop{mthsf hhskipHpt}nolimits}
53.67 53.68

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
53.82 53.83

ldfdfinish{serin} /code

QII

54

The Slovak language

he (le slovak.dtx64 de(nes ll the lngugeEspei( mros for the lovk lnE gugeF por this lnguge the mro \q is de(nedF st ws used with the letters @tD dD lD nd LA nd dds ' to them to simulte hook9 tht should e thereF he result looks like t ine the the I font enoding hs the orresponding hrters it 9F is mpped to \vF herefore we reommend using I font enodingF sf you don9t wnt to use this enodingD pleseD feel free to rede(ne \q in your (leF s think el will honour this ;-)F por this lnguge the hrters "D ' nd ^ re mde tiveF sn tle PU n overview is given of its purposeF elso the vertil plement of the umlut n e ontrolled this wyF

"a ^d ^c ^o 'a "| """ "~ "= "` "' "< ">

\"aD lso implemented for the other lowerse nd upperse vowelsF \q dD lso implemented for lD t nd vF \v cD lso implemented for gD hD xD nD D nd zF \^oD lso implemented for yF \'aD lso implemented for the other lowerse nd upperse lD rD y nd vowelsF disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for ompound word mrk without rekpointF for ompound word mrk with rekpointD llowE ing hyphention in the omposing wordsF for qermn left doule quotes @looks like AF for qermn right doule quotesF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF

le PUX he extr de(nitions mde y slovak.ldf he quotes in tle PU n lso e typeset y using the ommnds in tle PVF

54.1 Compatibility
A qret re hs een tken to ensure kwrd omptiility with CSv iF sn prE tiulrD douments whih lod this (le with \usepackage{slovak} should produe A identil output with no modi(tions to the soureF edditionllyD ll the CSv i options re reognizedX

64 The

le described in this section has version number v3.1a and was last revised on

2008/07/06.

(babel@tesarici.cz).

ed by Tobias Schlemmer (Tobias.Schlemmer@web.de). It was then rewritten by Petr Tesak

It was originally written by Jana Chlebikova (chlebik@euromath.dk) and modi-

QIP

\glqq \grqq \glq \grq \flqq \frqq \flq \frq \dq \sq

for qermn left doule quotes @looks like AF for qermn right doule quotes @looks like AF for qermn left single quotes @looks like DAF for qermn right single quotes @looks like AF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF for @prenhA left single quotes @similr to <AF for @prenhA right single quotes @similr to >AF the originl quotes hrter @"AF the originl single quote @'AF

le PVX wore ommnds whih produe quotesD de(ned y slovak.ldf

IL2, T1, OT1 hese options set the defult font enodingF lese note tht their use is depretedF ou should use the fontenc pkge to selet font enodingF split, nosplit hese options ontrol whether hyphented words re utomtilly split ording to lovk typesetting rulesF ith the split option jeEli is hyphented s jeEGEliF he nosplit option disles this ehviorF he use of this option is strongly disourgedD s it reks too mny ommon things"hyphens nnot e used in lelsD negtive rguments to i primitives will not work in horizontl mode @use \minus s workroundAD nd there re few other peulirities with using this modeF nocaptions A his option ws used in CSv i to set up gzehGlovk typesetting rulesD ut leve the originl ptions nd dtesF he reommended wy to hieve this is to use inglish s the min lnguge of the doument nd use the environment otherlanguage* for gzeh textF olduv here re two version of \uvF he older one llows the use of \verb inside the quotes ut reks ny respetive kerning with the quotes @like tht in CS fontsAF he newer one honors the kerning in the font ut does not llow \verb inside the quotesF
A he new version is used y defult in v i P nd the old version is used with plin iF ou my use olduv to override the defult in A v i P F

cstex

his option ws used to inlude the ommnds \csprimeson nd \csprimesoffF ine these ommnds re lwys inluded nowD it hs een removed nd the empty de(nition lsts for omptiilityF

54.2 Implementation
he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF QIQ

54.1 54.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD slovak will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@slovak to see whether we hve to do something hereF
ifxldslovkdundefined dnoptterns{lovk} 54.5 dddiletldslovkHfi
54.3 54.4

e need to de(ne these mros erly in the proessF


defsdiltwd{svP} newififsdsplithyphens 54.8 sdsplithyphensflse
54.6 54.7 A sf fel is not lodedD we provide omptiility with CSv iF roweverD if mro \@ifpackageloaded is not de(nedD we ssume to e loded from plin nd provide omptiility with splinF yf ourseD this does not work well with A A v i PFHWD ut s dout nyone will ever wnt to use this (le with v i PFHWF

ifxdifpkgelodeddundefined letsdomptdplinrelx 54.11 messge{splin omptiility mode} 54.12 else 54.13 difpkgeloded{el}{}{7 54.14 letsdomptdltexrelx 54.15 messge{sltex omptiility mode}} 54.16 fi 54.17 ifxsdomptdltexrelx 54.18 rovideskge{slovk}PHHVGHUGHT vQFI ge lovk style
54.9 54.10 A helre CSv i options @see lso the desriptions on pge QIPAF 54.19 54.20 54.21 54.22 54.23 54.24 54.25 54.26

helreyption{svP}{defenodingdefult{svP}} helreyption {I}{defenodingdefult {I}} helreyption{yI}{defenodingdefult{yI}} helreyption{nosplit}{sdsplithyphensflse} helreyption{split}{sdsplithyphenstrue} helreyption{noptions}{letsdnoptionsarelx} helreyption{olduv}{letsdolduvarelx} helreyption{stex}{relx}

wke IL2 enoding the defultF his n e overriden with the other font enoding optionsF
54.27

ixeuteyptions{sdiltwd}

xowD proess the userEsupplied optionsF


54.28

roessyptions

A tndrd v i P does not inlude the svP enoding in the formtF he A enoding n e loded lter using the fonten pkgeD ut CSv i inluded svP A y defultF his mens existing douments for CSv i do not lod tht pkgeD so lod the enoding ourselves in omptiility modeF 54.29 54.30 54.31

ifxenodingdefultsdiltwd input ilPenFdef fi

QIR

estore the de(nition of \CurrentOptionD loered y proessing the optionsF


54.32 54.33

defgurrentyption{slovk} fi

he next step onsists of de(ning ommnds to swith to @nd fromA the lovk lngugeF
ptionsslovk

dnmedef{ptionsgurrentyption}{7 defprefenme{redhovor}7 54.36 defrefnme{vitert9ur}7 54.37 defstrtnme{estrkt}7 54.38 definme{vitert9ur}7 54.39 defhpternme{upitol}7 54.40 defppendixnme{hodtok}7 54.41 defontentsnme{ysh}7 54.42 deflistfigurenme{oznm or9zkov}7 54.43 deflisttlenme{oznm tuliek}7 54.44 defindexnme{egister}7 54.45 deffigurenme{yrF}7 54.46 deftlenme{uv{l}k}7 54.47 defprtnme{v{g}sv{t}}7 54.48 defenlnme{r9{i}loh}7 54.49 defnme{F}7 54.50 defhedtonme{re}7 54.51 defpgenme{trF}7 54.52 defseenme{viv{d}}7 54.53 deflsonme{viv{d} tiev{z}}7 54.54 defproofnme{hokz}7 54.55 defglossrynme{lovn9{i}k}7 54.56 }7
54.34 54.35

he mro \captionsslovak de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

dteslovk

he mro \dateslovak rede(nes the ommnd \today to produe lovk dtesF

dnmedef{dtegurrentyption}{7 deftody{numerdyF~ifsemonthor 54.59 jnu9ror feru9ror mror pr9{i}lor m9jor 54.60 j9unor j9ulor ugustor septemror okt9oror 54.61 novemror deemrfi 54.62 spe numeryer}}
54.57 54.58

extrsslovk noextrsslovk

he mro \extrasslovak will perform ll the extr de(nitions needed for the lovk lngugeF he mro \noextrasslovak is used to nel the tions of \extrasslovakF por lovk texts \frenchspacing should e in e'etF vnguge group for shorthnds is lso set hereF

expndfterddtosnme extrsgurrentyptionendsnme{7 ldfrenhsping 54.65 lngugeshorthnds{slovk}} 54.66 expndfterddtosnme noextrsgurrentyptionendsnme{7 54.67 ldnonfrenhsping}
54.63 54.64

QIS

54.68 54.69

expndfterddtosnme extrsgurrentyptionendsnme{7 eldsveqletqv}

por lovk three hrters re used to de(ne shorthndsD they need to e mde tiveF
ifxsdomptdltexrelxelse inititedtivedhr{} 54.72 ddtoextrsslovk{ldtivte{}} 54.73 ddtonoextrsslovk{lddetivte{}} 54.74 inititedtivedhr{4} 54.75 ddtoextrsslovk{ldtivte{4}umlutlow} 54.76 ddtonoextrsslovk{lddetivte{4}umluthigh} 54.77 inititedtivedhr{9} 54.78 difpkgewith{el}{tiveute}{7 54.79 ddtoextrsslovk{ldtivte{9}} 54.80 ddtonoextrsslovk{lddetivte{9}}7 54.81 }{} 54.82 fi
54.70 54.71

sq dq

e sve the originl single nd doule quote hrters in \sq nd \dq to mke them ville lterF he mth ent \" n now e typed s "F

egingrouptode4aIPtode9aIP defx{endgroup 54.85 defsq{9} 54.86 defdq{4}} 54.87 x


54.83 54.84

he slovk hyphention ptterns should e used with \lefthyphenmin set to P nd \righthyphenmin set to QF
54.88

providehyphenmins{gurrentyption}{twdthrdd}

sn order to prevent prolems with the tive ^ we dd shorthnd on system level whih expnds to norml ^F
54.89 54.90

ifxsdomptdltexrelxelse delredshorthnd{system}{}{snme normldhrstringendsnme}

xow we n de(ne the doulequote mrosX the umlutsD


54.91 54.92 54.93 54.94 54.95 54.96

delredshorthnd{slovk}{4}{textormth{4{}llowhyphens}{ddot delredshorthnd{slovk}{4o}{textormth{4{o}llowhyphens}{ddot delredshorthnd{slovk}{4u}{textormth{4{u}llowhyphens}{ddot delredshorthnd{slovk}{4e}{textormth{4{e}llowhyphens}{ddot delredshorthnd{slovk}{4y}{textormth{4{y}llowhyphens}{ddot delredshorthnd{slovk}{4}{textormth{4{}llowhyphens}{ddot

}} o}} u}} e}} y}} }}

tremsD
54.97 54.98 54.99 54.100 54.101

delredshorthnd{slovk}{4e}{textormth{4{e}llowhyphens}{ddot e}} delredshorthnd{slovk}{4i}{textormth{4{i}llowhyphens}{ddot i}} delredshorthnd{slovk}{4i}{textormth{4{i}llowhyphens}7 {ddotimth}} delredshorthnd{slovk}{4s}{textormth{4{s}llowhyphens}{ddot s}} delredshorthnd{slovk}{}{textormth{v{}llowhyphens}{hek{}}} delredshorthnd{slovk}{d}{textormth{q{d}llowhyphens}{hek{d}}} delredshorthnd{slovk}{l}{textormth{q{l}llowhyphens}{hek{l}}}

other slovk hrters


54.102 54.103 54.104

QIT

54.105 54.106 54.107 54.108 54.109 54.110 54.111 54.112 54.113 54.114 54.115 54.116 54.117

delredshorthnd{slovk}{n}{textormth{v{n}llowhyphens}{hek{n}}} delredshorthnd{slovk}{o}{textormth{{o}llowhyphens}{ht{o}}} delredshorthnd{slovk}{s}{textormth{v{s}llowhyphens}{hek{s}}} delredshorthnd{slovk}{t}{textormth{q{t}llowhyphens}{hek{t}}} delredshorthnd{slovk}{z}{textormth{v{z}llowhyphens}{hek{z}}} delredshorthnd{slovk}{g}{textormth{v{g}llowhyphens}{hek{g}}} delredshorthnd{slovk}{h}{textormth{v{h}llowhyphens}{hek{h}}} delredshorthnd{slovk}{v}{textormth{q{v}llowhyphens}{hek{v}}} delredshorthnd{slovk}{x}{textormth{v{x}llowhyphens}{hek{x}}} delredshorthnd{slovk}{y}{textormth{{y}llowhyphens}{ht{y}}} delredshorthnd{slovk}{}{textormth{v{}llowhyphens}{hek{}}} delredshorthnd{slovk}{}{textormth{v{}llowhyphens}{hek{}}} delredshorthnd{slovk}{}{textormth{v{}llowhyphens}{hek{}}} difpkgewith{el}{tiveute}{7 delredshorthnd{slovk}{9}{textormth{9llowhyphens}{{prime}}} delredshorthnd{slovk}{9e}{textormth{9ellowhyphens}{{prime}e}} delredshorthnd{slovk}{9i}{textormth{9i{}llowhyphens}{{prime}i}} delredshorthnd{slovk}{9l}{textormth{9lllowhyphens}{{prime}l}} delredshorthnd{slovk}{9o}{textormth{9ollowhyphens}{{prime}o}} delredshorthnd{slovk}{9r}{textormth{9rllowhyphens}{{prime}r}} delredshorthnd{slovk}{9u}{textormth{9ullowhyphens}{{prime}u}} delredshorthnd{slovk}{9y}{textormth{9yllowhyphens}{{prime}y}} delredshorthnd{slovk}{9e}{textormth{9ellowhyphens}{{prime}e}} delredshorthnd{slovk}{9i}{textormth{9illowhyphens}{{prime}i}} delredshorthnd{slovk}{9s}{textormth{9sllowhyphens}{{prime}s}} delredshorthnd{slovk}{9v}{textormth{9vllowhyphens}{{prime}l}} delredshorthnd{slovk}{9y}{textormth{9yllowhyphens}{{prime}y}} delredshorthnd{slovk}{9}{textormth{9llowhyphens}{{prime}}} delredshorthnd{slovk}{9}{textormth{9llowhyphens}{{prime}}} delredshorthnd{slovk}{9}{textormth{9llowhyphens}{{prime}}} delredshorthnd{slovk}{99}{7 textormth{textquotedlright}{spgroupprimds9}} }{}

ute entsD
54.118 54.119 54.120 54.121 54.122 54.123 54.124 54.125 54.126 54.127 54.128 54.129 54.130 54.131 54.132 54.133 54.134 54.135 54.136 54.137 54.138

nd some dditionl ommndsX


delredshorthnd{slovk}{4E}{norekEldllowhyphens} delredshorthnd{slovk}{4|}{7 54.141 textormth{penltydwdisretionry{E}{}{kernFHQem}7 54.142 ldllowhyphens}{}} 54.143 delredshorthnd{slovk}{44}{hskipzdskip} 54.144 delredshorthnd{slovk}{4~}{textormth{levevmodehox{E}}{E}} 54.145 delredshorthnd{slovk}{4a}{sdsplithyphen} 54.146 fi
54.139 54.140

A v i9s norml \v ent ples ron over the letter tht follows it @AF his is o not wht we wnt for the letters dD tD l nd vY for those the ent should hnge shpeF his is heived y the followingF

etfeginhoument{7 helreextgompositegommnd{v}{yI}{t}{7 54.149 tkernEFPQemriseFPRexhox{9}} 54.150 helreextgompositegommnd{v}{yI}{d}{7 54.151 dkernEFIQemriseFPRexhox{9}}


54.147 54.148

QIU

54.152 54.153

helreextgompositegommnd{v}{yI}{l}{lron{}} helreextgompositegommnd{v}{yI}{v}{vron{}}}

lron vron

por the letters l nd L we wnt to disinguish etween norml fonts nd monosped fontsF

deflron{7 setoxHhox{w}setoxtwdhox{i}7 54.156 ifdimwdHbwdtwdrelx 54.157 lkernEFIQemriseFPRexhox{9}kernEFIIem7 54.158 else 54.159 lriseFRSexhox tozd{kernEFQSem 9hss}7 54.160 fi} 54.161 defvron{7 54.162 setoxHhox{w}setoxtwdhox{i}7 54.163 ifdimwdHbwdtwdrelx 54.164 vriseFPRexhox tozd{kernEFPVem9hss}7 54.165 else 54.166 vriseFRSexhox tozd{kernEFRHem 9hss}7 54.167 fi}
54.154 54.155 A snitilize tive quotesF CSv i provides wy of onverting inglishEstyle quotes into lovkEstyle onesF foth single nd doule quotes re 'etedD iFeF ``text'' is onverted to something like ,,text`` nd `text' is onverted to ,text`F his onversion n e swithed on nd o' with \csprimeson nd \csprimesoffF65 hese quotes present vrious troulesD eFgF the kerning is rokenD postrophes re onverted to losing single quoteD some primitives re roken @most notly the \catcode`\ char syntx will not work ny moreAD nd writing them to .aux (les nnot e hndled orretlyF por these resonsD these ommnds re only A ville in CSv i omptiility modeF

ifxsdomptdltexrelx letsdltxprimdsprimds 54.170 defsprimeson{7 54.171 todetive tode9tive letprimdsldprimds} 54.172 defsprimesoff{7 54.173 todeIP tode9IP letprimdssdltxprimds} 54.174 egingrouptodetive 54.175 defx{endgroup 54.176 def{futureletsdnextsdopenquote} 54.177 defsdopenquote{7 54.178 ifxsdnext expndftersdopendq 54.179 else expndfterlq 54.180 fi}7 54.181 }x 54.182 egingrouptode9tive 54.183 defx{endgroup 54.184 def9{textormth{futureletsdnextsdlosequote} 54.185 {groupprimds}} 54.186 defsdlosequote{7 54.187 ifx9sdnext expndftersdlosedq
54.168 54.169

65 By

the way, the names of these macros are misleading, because the handling of primes in

math mode is rather marginal, the most important thing being the handling of quotes. . .

QIV

54.188 54.189 54.190 54.191 54.192

}x defsdopendq{lqqletsdnexta } defsdlosedq{rqqletsdnexta }

else expndfterrq fi}7

he wy s reommend for typesetting quotes in lovk douments is to use shorthnds similr to those used in qermnF
else delredshorthnd{slovk}{4}{lqq} 54.195 delredshorthnd{slovk}{49}{rqq} 54.196 delredshorthnd{slovk}{4`}{flqq} 54.197 delredshorthnd{slovk}{4b}{frqq} 54.198 fi
54.193 54.194

lqq

his is the g opening quoteD whih is similr to the qermn quote @\glqqA ut the kerning is di'erentF por the yI enodingD the quote is onstruted from the right doule quote @iFeF the ypening quotes hrterA y moving it down to the seline nd shifting it to the rightD or to the left if itli orretion is positiveF por ID the qermn ypening quotes is usedF st is moved to the right nd the totl width is enlrgedF his is done in n ttempt to minimize the di'erene etween the yI nd I versionsF

rovideextgommnd{lqq}{yI}{7 setdlowdox{textquotedlright}7 54.201 setoxdneahox{lG}dimendneawddne 54.202 setoxdneahox{l}dvnedimendneEwddne 54.203 levevmode 54.204 ifdimdimendnebzdkernEFIemoxzdkernFIem 54.205 elsekernFIemoxzdkernEFIemfillowhyphens} 54.206 rovideextgommnd{lqq}{I} 54.207 {kernFIemquotedlsekernEFHISVemrelx} 54.208 rovideextgommndhefult{lqq}{seextymol{yI}lqq}
54.199 54.200

rqq

por yID the g losing quote is silly the sme s \grqqD only the \textormath mro is not usedD euse s fr s s knowD \grqq does not work in mth mode nywyF por ID the hrter is slightly wider nd shifted to the right to mth its yI ounterprtF

rovideextgommnd{rqq}{yI} {svedsfdq{norekkernEFHUemtextquotedlleftkernFHUem}} 54.211 rovideextgommnd{rqq}{I} 54.212 {svedsfdq{norekkernFHTemtextquotedlleftkernFHPRem}} 54.213 rovideextgommndhefult{rqq}{seextymol{yI}rqq}


54.209 54.210

lq ingle g quotes re similr to doule quotes @see the disussion oveAF rq 54.214 rovideextgommnd{lq}{yI} {setdlowdox{textquoteright}oxzdkernFHRemllowhyphens} rovideextgommnd{lq}{I} 54.217 {quotesinglsekernEFHRPVemrelx} 54.218 rovideextgommndhefult{lq}{seextymol{yI}lq} 54.219 rovideextgommnd{rq}{yI}
54.215 54.216

QIW

{svedsfdq{norektextquoteleftkernFIUem}} rovideextgommnd{rq}{I} 54.222 {svedsfdq{norektextquoteleftkernFIUem}} 54.223 rovideextgommndhefult{rq}{seextymol{yI}rq}


54.220 54.221

uv

ifxsdomptdplindundefinedelseletsdolduvarelxfi ifxsdolduvdundefined 54.226 helreoustgommnduvI{{levevmodelqq5Irqq}} 54.227 else 54.228 helreoustgommnduv{groupftergrouplosequotes 54.229 levevmodelqqletsdnexta} 54.230 deflosequotes{unskiprqqrelx} 54.231 fi
54.224 54.225

here re two versions of \uvF he older one opens group nd uses \aftergroup to typeset the losing quotesF his version llows using \verb inside the quotesD euse the enlosed text is not pssed s n rgumentD ut unfortuntely it reks ny kerning with the quotesF elthough the kerning with the opening quote ould e (xedD the kerning with the losing quote nnotF he newer version is de(ned s ommnd with one prmeterF st preserves kerning ut sine the quoted text is pssed s n rgumentD it nnot ontin \verbF heide whih version of \uv should e usedF por ske of omptiilityD we use A the older version with plin i nd the newer version with v i P F

sdwordlen

helre ounter to hold the length of the word fter the hyphenF
newountsdwordlen

54.232

sdhyphen tore the originl hyphen in mroF hitto for the ligturesF sdendsh 54.233 egingrouptodeEIP sdemdsh 54.234 defx{endgroup 54.235 defsdhyphen{E} 54.236 defsdendsh{EE} 54.237 defsdemdsh{EEE} sdoxhyphen

rovide nonErekle hyphen to e used when ompound word is too short to e splitD iFeF the seond prt is shorter thn \righthyphenminF
defsdoxhyphen{hox{E}}

54.238

sdsplithyphen

he mro \cs@splithyphen inserts split hyphenD while llowing oth prts of the ompound word to e hyphented t other ples tooF

defsdsplithyphen{kernzd disretionry{E}{hrhyphenhrthefont}{E}norekhskipzd} 54.241 }x


54.239 54.240

o minimize the e'ets of tivting the hyphen hrterD the tive de(nition expnds to the nonEtive hrter in ll ses where hyphention nnot ourD iFeF if not typesetting @hek \protectAD not in horizontl modeD or in inner horizontl modeF

inititedtivedhr{E} delredshorthnd{slovk}{E}{7 54.244 ifxprotetdtypesetdprotet


54.242 54.243

QPH

54.245 54.246 54.247 54.248 54.249 54.250 54.251 54.252 54.253 54.254 54.255 54.256

ifhmode ifinner ldfterelseldfterelseldfterelsesdhyphen else ldfterfildfterelseldfterelsesdfirsthyphen fi else ldfterfildfterelsesdhyphen fi else ldfterfisdhyphen fi}

sdfirsthyphen sdfirsthyphdn sdseondhyphen sdseondhyphdn

sf we enounter hyphenD hek whether it is followed y seond or third hyphen nd if soD insert the orresponding ligtureF sf we don9t (nd hyphenD the token found will e pled in \cs@token for further nlysisD nd it will lso sty in the inputF

egingrouptodeEtive defx{endgroup 54.259 defsdfirsthyphen{futureletsdtokensdfirsthyphdn} 54.260 defsdfirsthyphdn{7 54.261 ifx Esdtoken 54.262 ldfterelsesdseondhyphen 54.263 else 54.264 ldfterfisdhekhyphen 54.265 fi} 54.266 defsdseondhyphen 55I{7 54.267 futureletsdtokensdseondhyphdn} 54.268 defsdseondhyphdn{7 54.269 ifx Esdtoken 54.270 ldfterelsesdemdshdgole 54.271 else 54.272 ldfterfisdendsh 54.273 fi} 54.274 }x
54.257 54.258

sdhekhyphen

ghek tht hyphention is enledD nd if soD strt nlyzing the rest of the wordD iFeF initilize \cs@word nd \cs@wordlen nd strt proessing input with \cs@scanwordF

defsdhekhyphen{7 ifnumexpndfterhyphenhrthefontaE 54.277 defsdword{}sdwordlenzd 54.278 ldfterelsesdsnword 54.279 else 54.280 sdhyphen 54.281 fi}
54.275 54.276

sdsnword sdontinuesn sdgettoken sdgettdken

ih token is (rst nlyzed with \cs@scanwordD whih expnds the token nd psses the (rst token of the result to \cs@gett@kenF sf the expnded token is not identil to the unexpnded oneD presume tht it might e expnded further nd pss it k to \cs@scanword until you get n unexpndle tokenF hen nlyze it in \cs@examinetokenF

QPI

he \cs@continuescan mro does the sme thing s \cs@scanwordD ut it does not require the (rst token to e in \cs@token lredyF
defsdsnword{letsdlsttokena sdtokenexpndftersdgettoken} defsdontinuesn{letsdlsttokendundefinedexpndftersdgettoken} 54.284 defsdgettoken{futureletsdtokensdgettdken} 54.285 defsdgettdken{7 54.286 ifxsdtokensdlsttoken defsdnext{sdexminetoken}7 54.287 else defsdnext{sdsnword}7 54.288 fi sdnext}
54.282 54.283

sdexminetoken

ixmine the token in \cs@tokenX

sf it is letter @tode IIA or other @tode IPAD dd it to \cs@word with \cs@addparamF sf it is the \char primitiveD dd it with \cs@expandcharF sf the token strts or ends groupD ignore it with \cs@ignoretokenF ytherwise nlyze the mening of the token with \cs@checkchardef to detet primitives de(ned with \chardefF
defsdexminetoken{7 ift esdtoken 54.291 defsdnext{sdddprm}7 54.292 elseift Hsdtoken 54.293 defsdnext{sdddprm}7 54.294 elseifxhrsdtoken 54.295 defsdnext{fterssignmentsdexpndhrletsdtokena }7 54.296 elseifxgroupsdtoken 54.297 defsdnext{sdignoretokengroup}7 54.298 elseifxegroupsdtoken 54.299 defsdnext{sdignoretokenegroup}7 54.300 elseifxegingroupsdtoken 54.301 defsdnext{sdignoretokenegingroup}7 54.302 elseifxendgroupsdtoken 54.303 defsdnext{sdignoretokenendgroup}7 54.304 else 54.305 defsdnext{expndfterexpndfterexpndftersdhekhrdef 54.306 expndftermeningexpndftersdtokenstringhrend}7 54.307 fififififififisdnext}
54.289 54.290

sdhekhrdef

ghek the mening of token nd if it is primitive de(ned with \chardefD pss it to \\@examinechar s if it were \char sequeneF ytherwiseD there re no more word hrtersD so do the (nl tions in \cs@nosplitF

expndfterdefexpndftersdhekhrdef expndfter5expndfterIstringhr5Pend{7 54.310 defsdtoken{5I}7 54.311 ifxsdtokendempty 54.312 defsdnext{fterssignmentsdexminehrletsdtokena }7 54.313 else 54.314 defsdnext{sdnosplit}7 54.315 fi sdnext}
54.308 54.309

QPP

sdignoretoken

edd token to \cs@word ut do not updte the \cs@wordlen ounterF his is minly useful for group strting nd ending primitivesD whih need to e preservedD ut do not 'et the word oundryF

defsdignoretoken5I{7 edefsdword{sdword5I}7 54.318 fterssignmentsdontinuesnletsdtokena }


54.316 54.317

sdddprm

edd token to \cs@word nd hek its lodeF xote tht this mro n only e used for tokens whih n e pssed s prmeterF

defsdddprm5I{7 edefsdword{sdword5I}7 54.321 sdhekode{lode5I}}


54.319 54.320

sdexpndhr sdexminehr

edd \char sequene to \cs@word nd hek its lodeF he hrode is (rst prsed in \cs@expandchar nd then the resulting \chardefEde(ned sequene is nlyzed in \cs@examinecharF

defsdexpndhr{fterssignmentsdexminehrhrdefsdtokena} defsdexminehr{7 54.324 edefsdword{sdwordhrthesdtokenspe}7 54.325 sdhekode{lodesdtoken}}


54.322 54.323

sdhekode

ghek the lode of hrterF sf it is zeroD it does not ount to the urrent wordD so (nish it with \cs@nosplitF ytherwise updte the \cs@wordlen ounter nd go on snning the word with \cs@continuescanF hen enough hrters re gthered in \cs@word to llow word rekD insert the split hyphen nd (nishF

defsdhekode5I{7 ifnumHa5I 54.328 defsdnext{sdnosplit}7 54.329 else 54.330 dvnesdwordlendne 54.331 ifnumrighthyphenminbthesdwordlen 54.332 defsdnext{sdontinuesn}7 54.333 else 54.334 sdsplithyphen 54.335 defsdnext{sdword}7 54.336 fi 54.337 fi sdnext}
54.326 54.327

sdnosplit

snsert nonErekle hyphen followed y the sved wordF


defsdnosplit{sdoxhyphensdword}

54.338

sdhyphen

he \minus sequene n e used where the tive hyphen does not workD eFgF in rguments to i primitives in outer horizontl modeF
letminussdhyphen

54.339

stndrdhyphens splithyphens

hese mros ontrol whether split hyphens re llowed in gzeh ndGor lovk textsF ou my use them in ny lngugeD ut the split hyphen is only tivted for gzeh nd lovkF
defstndrdhyphens{sdsplithyphensflsesddetivtehyphens} defsplithyphens{sdsplithyphenstruesdtivtehyphens}

54.340 54.341

QPQ

sdsplitttr

xow we delre the split lnguge ttriuteF his is similr to the split pkge option of sltexD ut it only 'ets lovkD not gzehF

defsdsplitttr{eldsveifsdsplithyphenssplithyphens} lddelredttriute{slovk}{split}{7 54.344 ddtoextrsslovk{sdsplitttr}}


54.342 54.343

sdtivtehyphens sddetivtehyphens

hese mros re de(ned s \relax y defult to prevent tivtingGdetivting the hyphen hrterF hey re rede(ned when the lnguge is swithed to gzehGlovkF et tht moment the hyphen is lso tivted if split hyphens were requested with \splithyphensF hen the lnguge is deEtivtedD deEtivte the hyphen nd restore the ogus de(nitions of these mrosF

letsdtivtehyphensrelx letsddetivtehyphensrelx 54.347 expndfterddtosnme extrsgurrentyptionendsnme{7 54.348 defsdtivtehyphens{ldtivte{E}}7 54.349 defsddetivtehyphens{lddetivte{E}}7 54.350 ifsdsplithyphenssdtivtehyphensfi} 54.351 expndfterddtosnme noextrsgurrentyptionendsnme{7 54.352 sddetivtehyphens 54.353 letsdtivtehyphensrelx 54.354 letsddetivtehyphensrelx}
54.345 54.346

sdlooseness looseness

yne of the most ommon situtions where n tive hyphen will not work properly is the \looseness primitiveF ghnge its de(nition so tht it detivtes the hyphen if neededF

letsdloosenesslooseness deflooseness{7 54.357 ifsdsplithyphens 54.358 sddetivtehyphensfterssignmentsdtivtehyphens fi 54.359 sdlooseness}


54.355 54.356

sdseletlnguge sdmindlnguge

peifying the nocaptions option mens tht ptions nd dtes re not redeE (ned y defultD ut they n e swithed on lter with \captionsslovak ndGor \dateslovakF e mimi this ehvior y rede(ning \selectlanguageF his mro is lled one t the eginning of the doument to set the min lnguge of the doumentF sf this is \cs@main@languageD it disles the mros for setting ptions nd dteF sn ny seD it restores the originl de(nition of \selectlanguage nd expnds itF he de(nition of \selectlanguage n e shred etween gzeh nd lovkY the tul lnguge is stored in \cs@main@languageF

ifxsdnoptionsdundefinedelse edefsdmindlnguge{gurrentyption} 54.362 ifxsdorigseletdundefined 54.363 letsdorigseletaseletlnguge 54.364 defseletlnguge{7 54.365 letseletlngugesdorigselet 54.366 ifxldmindlngugesdmindlnguge 54.367 expndftersdseletlnguge 54.368 else
54.360 54.361

QPR

54.369 54.370 54.371 54.372 54.373 54.374

expndfterseletlnguge fi} defsdseletlnguge{7 sdtempdisle{ptions}7 sdtempdisle{dte}7 seletlnguge}

sdtempdisle

\cs@tempdisable disles lnguge setup mro temporrilyD iFeF the mro with the nme of #1 \bbl@main@language just restores the originl de(nition nd purges the sved mro from memoryF
defsdtempdisle5I{7 defdtemp{sd5I}7 defdtemp{5Ildmindlnguge}7 expndfterexpndfterexpndfterlet expndfter snmeexpndfter dtemp expndfterendsnme snme dtemp endsnme expndfteredefsnme dtemp endsnme{7 let expndfternoexpnd snme dtemp endsnme expndfternoexpnd snme dtemp endsnme let expndfternoexpndsnme dtemp endsnme noexpnddundefined}}

54.375 54.376 54.377 54.378 54.379 54.380 54.381 54.382 54.383 54.384 54.385

hese mros re not neededD one the initiliztion is overF


donlypremlesdmindlnguge donlypremlesdorigselet 54.388 donlypremlesdseletlnguge 54.389 donlypremlesdtempdisle 54.390 fi 54.391 fi
54.386 54.387

he enoding of mthemtil fonts should e hnged to svPF his llows to use ented letter in some font fmiliesF fesidesD douments do not use gw fonts if there re equivlents in gEfontsD so there is no need to hve oth itmps of gwEfont nd gEfontF \@font@warning nd \@font@info re temporrily rede(ned to void nnoyE ing font wrningsF
ifxsdomptdplindundefined ifxsdhekdendundefinedelse 54.394 defsdhekden{ 54.395 ifxenodingdefultsdiltwd 54.396 letsdwrndfontdwrning letdfontdwrningdgole 54.397 letsdinfodfontdinfo letdfontdinfodgole 54.398 etymolpont{opertors}{norml}{sdiltwd}{mr}{m}{n} 54.399 etymolpont{opertors}{old}{sdiltwd}{mr}{x}{n} 54.400 etwthelphetmthf{norml}{sdiltwd}{mr}{x}{n} 54.401 etwthelphetmthit{norml}{sdiltwd}{mr}{m}{it} 54.402 etwthelphetmthrm{norml}{sdiltwd}{mr}{m}{n} 54.403 etwthelphetmthsf{norml}{sdiltwd}{mss}{m}{n} 54.404 etwthelphetmthtt{norml}{sdiltwd}{mtt}{m}{n} 54.405 etwthelphetmthf{old}{sdiltwd}{mr}{x}{n} 54.406 etwthelphetmthit{old}{sdiltwd}{mr}{x}{it} 54.407 etwthelphetmthrm{old}{sdiltwd}{mr}{x}{n} 54.408 etwthelphetmthsf{old}{sdiltwd}{mss}{x}{n}
54.392 54.393

QPS

54.409

etwthelphetmthtt{old}{sdiltwd}{mtt}{m}{n} letdfontdwrningsdwrn letsdwrndundefined 54.411 letdfontdinfosdinfo letsdinfodundefined 54.412 fi 54.413 letsdhekdendundefined} 54.414 etfeginhoument{sdhekden} 54.415 fi 54.416 fi
54.410 A he thing is tht v i P ore only supports the I enoding nd does not other hnging the uGlGsfodes when enoding is swithedF X@ roweverD the svP enoding does hnge these odesD so if enoding is swithed k from svPD we A must lso undo the e'et of this hnge to e omptile with v i P F yuD this is not the rightTM solution ut it worksF gheers to etr ylkF

sdundoiltwd

defsdundoiltwd{7 uodeISVaPHV lodeISVaISV 54.419 sfodeISWaIHHH 54.420 uodeITSaIQQ lodeITSaITS 54.421 uodeITWaIQU lodeITWaITW 54.422 uodeIUIaIQW lodeIUIaIUI 54.423 uodeIURaIRP lodeIURaIUR 54.424 uodeIVIaIRW 54.425 uodeIVSaISQ 54.426 uodeIVUaISS 54.427 uodeIWHaH lodeIWHaH 54.428 uodePSRaPPP lodePSRaPSR 54.429 uodePSSaPPQ lodePSSaPSS
54.417 54.418

sfodeISVaIHHH sfodeITSaIHHH sfodeITWaIHHH sfodeIUIaIHHH sfodeIURaIHHH

sfodePSRaIHHH sfodePSSaIHHH}

ddendupdte

A ede(ne the v i P internl funtion \@@enc@update to hnge the enodings orretlyF

ifxsdendupdtedundefined ifxddendupdtedundefinedelse 54.432 letsdendupdteddendupdte 54.433 defddendupdte{ifxfdenodingsdiltwdsdundoiltwdfi 54.434 sdendupdte 54.435 expndfterifnumsnme ldlngugenmeendsnmeathelnguge 54.436 expndfterifx 54.437 snme ldlngugenmeXfdenodingendsnmerelx 54.438 else 54.439 expndfterexpndfterexpndfterlet 54.440 expndftersnme 54.441 expndfter lexpndfter dexpndfterlngugenme 54.442 expndfterendsnmesnme ldlngugenmeXfdenodingendsnme 54.443 fi 54.444 lngugeasnme ldlngugenmeendsnmerelx 54.445 fi} 54.446 fifi
54.430 54.431

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
54.447 54.448

ldfdfinishgurrentyption /code

QPT

55

The Slovenian language

he (le slovene.dtx66 de(nes ll the lngugeEspei( mros for the lovenin lngugeF por this lnguge the hrter " is mde tiveF sn tle PW n overview is given of its purposeF yne of the resons for this is tht in the lovene lnguge some speil hrters re usedF

"c """ "` "' "< ">

\"cD lso implemented for the lowerse nd upperE se s nd zF n expliit hyphen signD llowing hyphention in the rest of the wordF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""yAF for lovene left doule quotes @looks like AF for lovene right doule quotesF for prenh left doule quotes @similr to <<AF for prenh right doule quotes @similr to >>AF

le PWX he extr de(nitions mde y slovene.ldf he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
55.1 55.2

code vdfsnit{slovene}ptionsslovene

hen this (le is red s n optionD iFeF y the \usepackage ommndD slovene will e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@slovene to see whether we hve to do something hereF
ifxldslovenedundefined dnoptterns{lovene} 55.5 dddiletldsloveneHfi
55.3 55.4

he next step onsists of de(ning ommnds to swith to the lovenin lnE gugeF he reson for this is tht user might wnt to swith k nd forth etween lngugesF
ptionsslovene

ddtoptionsslovene{7 defprefenme{redgovor}7 55.8 defrefnme{vitertur}7 55.9 defstrtnme{ovzetek}7 55.10 definme{vitertur}7 55.11 defhpternme{oglvje}7 55.12 defppendixnme{hodtek}7 55.13 defontentsnme{uzlo}7
55.6 55.7

he mro \captionsslovene de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

66 The

le described in this section has version number v1.2m and was last revised on

2005/03/31. Contributions were made by Danilo Zavrtanik, University of Ljubljana (YU) and Leon lajpah (leon.zlajpah@ijs.si).

QPU

55.14 55.15 55.16 55.17 55.18 55.19 55.20 55.21 55.22 55.23 55.24 55.25 55.26 55.27 55.28

deflistfigurenme{like}7 deflisttlenme{ele}7 defindexnme{tvrno kzlo}7 used to e sndeks deffigurenme{lik}7 deftlenme{el}7 defprtnme{hel}7 defenlnme{riloge}7 defnme{uopije}7 defhedtonme{rejme}7 defpgenme{trn}7 defseenme{glej}7 deflsonme{glej tudi}7 defproofnme{hokz}7 defglossrynme{qlossry}7 `EE xeeds trnsltion }7

dteslovene

he mro \dateslovene rede(nes the ommnd \today to produe lovenin dtesF

defdteslovene{7 deftody{numerdyF~ifsemonthor 55.31 jnuror feruror mreor prilor mjor junijor 55.32 julijor vgustor septemeror oktoeror novemeror deemerfi 55.33 spe numeryer}}
55.29 55.30

extrsslovene noextrsslovene

he mro \extrasslovene performs ll the extr de(nitions needed for the loveE nin lngugeF he mro \noextrasslovene is used to nel the tions of \extrassloveneF por lovene the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF yther lnguges in the sme doument my lso use the " hrter for shorthndsY we speify tht the slovenin group of shorthnds should e usedF

inititedtivedhr{4} ddtoextrsslovene{lngugeshorthnds{slovene}} 55.36 ddtoextrsslovene{ldtivte{4}}


55.34 55.35

hon9t forget to turn the shorthnds o' ginF


55.37

ddtonoextrsslovene{lddetivte{4}} }{hek s}{hek z}{hek g}{hek }{hek }{hek }} s}} z}} g}} }} }}

pirst we de(ne shorthnds to filitte the ourene of letters suh s F


delredshorthnd{slovene}{4}{textormth{v delredshorthnd{slovene}{4s}{textormth{v 55.40 delredshorthnd{slovene}{4z}{textormth{v 55.41 delredshorthnd{slovene}{4g}{textormth{v 55.42 delredshorthnd{slovene}{4}{textormth{v 55.43 delredshorthnd{slovene}{4}{textormth{v
55.38 55.39

hen we de(ne ess to two forms of quottion mrksD similr to the germn nd frenh quottion mrksF
delredshorthnd{slovene}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 55.46 delredshorthnd{slovene}{49}{7 55.47 textormth{textquotedlleft}{mox{textquotedlleft}}} 55.48 delredshorthnd{slovene}{4`}{7 55.49 textormth{guillemotleft}{mox{guillemotleft}}}
55.44 55.45

QPV

55.50 55.51

delredshorthnd{slovene}{4b}{7 textormth{guillemotright}{mox{guillemotright}}}

then we de(ne two shorthnds to e le to speify hyphention rekpoints tht ehvew little di'erent from \-F
55.52 55.53

delredshorthnd{slovene}{4E}{norekEldllowhyphens} delredshorthnd{slovene}{44}{hskipzdskip} delredshorthnd{slovene}{4|}{7 textormth{disretionry{E}{}{kernFHQem}}{}}

end we wnt to hve shorthnd for disling ligtureF


55.54 55.55

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
55.56 55.57

ldfdfinish{slovene} /code

QPW

56

The Russian language

he (le russianb.dtx67 de(nes ll the lngugeEspei( mros for the ussin lngugeF st needs the (le cyrcod for suess doumenttion with ussin enodE ings @see elowAF por this lnguge the hrter " is mde tiveF sn tle QH n overview is given of its purposeF

"| ""--"--~ "--* "" "~ "= ", "` "' "< ">

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF gyrilli emdsh in plin textF gyrilli emdsh in ompound nmes @surnmesAF gyrilli emdsh for denoting diret speehF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""y or some other signs s disleGenleAF for ompound word mrk without rekpointF for ompound word mrk with rekpointD llowE ing hyphention in the omposing wordsF thinspe for initils with rekpoint in following surnmeF for qermn left doule quotes @looks like DDAF for qermn right doule quotes @looks like AF for prenh left doule quotes @looks like < AF < for prenh right doule quotes @looks like > AF >

le QHX he extr de(nitions mde y russianb he quotes in tle QH n lso e typeset y using the ommnds in tle QIF

\cdash--\cdash--~ \cdash--* \glqq \grqq \flqq \frqq \dq

gyrilli emdsh in plin textF gyrilli emdsh in ompound nmes @surnmesAF gyrilli emdsh for denoting diret speehF for qermn left doule quotes @looks like DDAF for qermn right doule quotes @looks like AF for prenh left doule quotes @looks like < AF < for prenh right doule quotes @looks like > AF > the originl quotes hrter @"AF

le QIX wore ommnds whih produe quotesD de(ned y babel he prenh quotes re lso ville s ligtures <<9 nd >>9 in VEit gyrilli font enodings @LCYD X2D T2*A nd s <9 nd >9 hrters in UEit gyrilli font enodings @OT2 nd LWNAF
german.sty, which has some denitions for Russian. A E Later the denitions from russian.sty version 1.0b (for L T X 2.09), russian.sty version v2.5c A E (for L T X 2 ) and francais.sty version 4.5c and germanb.sty version 2.5c were added.
initially derived from the original version of

67 The le described in this section has version number ? and was last revised on ?.

This le was

QQH

he quottion mrks trditionlly used in ussin were orrowed from other lnguges @eFgFD prenh nd qermnA so they keep their originl nmesF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
56.1 56.2

code vdfsnit{russin}{ptionsrussin}

hen this (le is red s n optionD iFeFD y the \usepackage ommndD russianb will e n unknown9 lngugeD in whih se we hve to mke it knownF o we hek for the existene of \l@russian to see whether we hve to do someE thing hereF
ifxldrussindundefined dnoptterns{ussin} 56.5 dddiletldrussinH 56.6 fi
56.3 56.4

ltinenoding

e need to know the enoding for text tht is supposed to e whih is tive t the end of the babel pkgeF sf the fontenc pkge is loded lterD thenF F F too d3
56.7

letltinenodingfdenoding

he user my hoose etween di'erent ville gyrilli enodings"eFgFD X2D LCYD or LWNF ropefullyD X2 will eventully reple the two ltter enodings @LCY nd LWNAF sf the user wnts to use nother font enoding thn the defult @T2AAD he hs to lod the orresponding (le before russianb.styF his my e done in the following wyX
7 override the defult P enoding used in fel usepkgevgDyI{fonten} usepkgeenglishDrussin{el}

xoteX for the ussin lngugeD the T2A enoding is etter thn X2D euse X2 does not ontin vtin lettersD nd users should e very reful to swith the lnguge every time they wnt to typeset vtin word inside ussin phrse or vie versF A e prse the \cdp@list ontining the enodings known to v i in the order they were lodedF e set the \cyrillicencoding to the last loded enoding in the list of supported gyrilli enodingsX OT2D LWND LCYD X2D T2CD T2BD T2AD if nyF
defreservedd5I5P{7 edefreservedd{5I}7 56.10 edefreservedd{5P}7 56.11 ifxreserveddreservedd 56.12 letyrillienodingreservedd 56.13 fi} 56.14 defdpdelt5I5P5Q5R{7 56.15 reservedd{5I}{yP}7 56.16 reservedd{5I}{vx}7 56.17 reservedd{5I}{vg}7 56.18 reservedd{5I}{P}7 56.19 reservedd{5I}{Pg}7 56.20 reservedd{5I}{Pf}7 56.21 reservedd{5I}{Pe}} 56.22 dpdlist
56.8 56.9

QQI

xowD if \cyrillicencoding is unde(nedD then the user did not lod ny of supported enodingsF oD we hve to set \cyrillicencoding to some defult vlueF e test the presene of the enoding de(nition (les in the order from less preferle to more preferle enodingsF e use the lowerse nmes @iFeFD lcyenc.def insted of LCYenc.defAF
ifxyrillienodingundefined sfpileixists{otPenFdef}{defyrillienoding{yP}}relx 56.25 sfpileixists{lwnenFdef}{defyrillienoding{vx}}relx 56.26 sfpileixists{lyenFdef}{defyrillienoding{vg}}relx 56.27 sfpileixists{xPenFdef}{defyrillienoding{P}}relx 56.28 sfpileixists{tPenFdef}{defyrillienoding{Pg}}relx 56.29 sfpileixists{tPenFdef}{defyrillienoding{Pf}}relx 56.30 sfpileixists{tPenFdef}{defyrillienoding{Pe}}relx
56.23 56.24

sf \cyrillicencoding is still unde(nedD then the user seems not to hve properly instlled distriutionF e ftl errorF
56.31 56.32 56.33 56.34 56.35 56.36 56.37 56.38 56.39 56.40

ifxyrillienodingundefined kgeirror{el}7 {xo gyrilli enoding definition files were found}7 {our instlltion is inompleteFwessgefrek ou need t lest one of the following filesXwessgefrek spespe xPenFdefD tPenFdefD tPenFdefD tPenFdefDwessgefrek spespe lyenFdefD lwnenFdefD otPenFdefF}7 else

e void \usepackage[\cyrillicencoding]{fontenc} euse we don9t wnt to fore the swith of \encodingdefaultF


lowerse expndfter{expndfterinputyrillienoding enFdefrelx}7 56.43 fi 56.44 fi
56.41 56.42

kgesnfo{el} {sing yrillienoding9 s defult gyrilli enoding}7 helreoustgommnd{ussin}{7 fontenodingyrillienodingseletfont 56.47 letenodingdefultyrillienoding 56.48 expndftersetdhyphenminsrussinhyphenmins 56.49 lngugeldrussin}7 56.50 helreoustgommnd{inglish}{7 56.51 fontenodingltinenodingseletfont 56.52 letenodingdefultltinenoding 56.53 expndftersetdhyphenminsenglishhyphenmins 56.54 lngugeldenglish}7 56.55 letusussin 56.56 letinginglish 56.57 letyrillitextussin 56.58 letyrussin
56.45 56.46

ine the X2 enoding does not ontin vtin lettersD we should mke some A rede(nitions of v i mros whih impliitly produe vtin lettersF QQP

56.59

expndfterifxsnme dPendsnmerelxelse

e put \latinencoding in res to void prolems with \@alph inside miniE pges @eFgFD footnotes inside minipgesA where \@alph is expnded nd we get for exmple \fontencoding OT19 @\fontencoding is roustAF
56.60 56.61 56.62 56.63 56.64 56.65 56.66 56.67 56.68 56.69 56.70 56.71

defdlph5I{{fontenoding{ltinenoding}seletfont ifse5Ior or or or dor eor for gor hor ior jor kor lor mor nor oor por qor ror sor tor uor vor wor xor yor zelsedtrerrfi}}7 defdelph5I{{fontenoding{ltinenoding}seletfont ifse5Ior eor for gor hor ior por qor ror sor tor uor vor wor xor yor or or or or or or or or or or elsedtrerrfi}}7

nfortuntelyD the ommnds \AA nd \aa re not enoding dependent in A v i @unlike eFgFD \oe or \DHAF hey re de(ned s \r{A} nd \r{a}F his leds to unpreditle results when the font enoding does not ontin the vtin letters e9 nd 9 @like X2AF
helreextymolhefult{ee}{yI} helreextymolhefult{}{yI} 56.74 helreextgommnd{}{yI}{r } 56.75 helreextgommnd{ee}{yI}{r e} 56.76 fi
56.72 56.73

he following lok rede(nes the hrter lss of upperse qreek letters nd some entsD if it is equl to U @vrile fmilyAD to void inorret results if the font enoding in some mth fmily does not ontin these hrters in ples of yI enodingF he ode ws tken from amsmath.dtxF ee omments nd further explntion thereF
7 7 56.79 7 56.80 7 56.81 7 56.82 7 56.83 7 56.84 7 56.85 7 56.86 7 56.87 7 56.88 7 56.89 7 56.90 7 56.91 7 56.92 7 56.93 7 56.94 7 56.95 7 56.96 7 56.97 7
56.77 56.78

egingrouptode4aIP 7 upperse greek lettersX defdtemp5I{expndfterdtempmening5Irelxrelxrelxrelx 4HHHHdnil5I} defdtemp5I45P5Q5R5S5Tdnil5U{7 ifnum45PaU ountd4I5Q5R5Srelx ifnumountd`4IHHH else glolmthhrdef5Ua4H5Q5R5Srelx fi fi} dtempqmmdtempheltdtemphetdtempvmddtempi dtempidtempigmdtemppsilondtemphidtempsi dtempymeg 7 some entsX defdtemp5I5Pdnil{defdtemp{5I}}defdtemp{mthent} expndfterdtemphtrelxrelxdnil ifxdtempdtemp defdtemp5Idnil{5I}7 defdtemp5I{fterssignmentdtempmthhrdefdtempa}7 defdo5I45P{} defdtempd5I{expndfterdtemp5Idnil ifnumdtempb4ppp xdef5I{mthent4expndfterdomeningdtempspe}7

QQQ

7 fi} 7 dtempdhtdtempdhekdtempdtildedtempdutedtempdgrve 56.100 7 dtempddotdtempdddotdtempdrevedtempdr 56.101 7 fi 56.102 7 endgroup


56.98 56.99

he user should use the inputenc pkge when ny VEit gyrilli font enodE ing is usedD seleting one of the gyrilli input enodingsF e do not ssume ny defult input enodingD so the user should expliitly ll the inputenc pkge y \usepackage{inputenc}F e lso removed \AtBeginDocumentD so inputenc should e used efore babelF
difpkgeloded{inputen}{}{7 defreservedd{vx}7 56.105 ifxreserveddyrillienodingelse 56.106 defreservedd{yP}7 56.107 ifxreserveddyrillienodingelse 56.108 kgerning{el}7 56.109 {xo input enoding speified for ussin lnguge} 56.110 fifi}
56.103 56.104

xow we de(ne two ommnds tht o'er the possiility to swith etween gyrilli nd omn enodingsF
yrillitext ltintext

he ommnd \cyrillictext will swith from vtin font enoding to the gyrilli font enodingD the ommnd \latintext swithes kF his ssumes tht the norml9 font enoding is vtin oneF hese ommnds re declarationsD for shorter pees of text the ommnds \textlatin nd \textcyrillic n e usedF

7helreoustgommnd{ltintext}{7 7 fontenoding{ltinenoding}seletfont 56.113 7 defenodingdefult{ltinenoding}} 56.114 letltltintext


56.111 56.112

textyrilli textltin

hese ommnds tke n rgument whih is then typeset using the requested font enodingF
helreextpontgommnd{textyrilli}{yrillitext} 7helreextpontgommnd{textltin}{ltintext} 7ifxltxeundefinedletltxeefi 7rovideextgommndhefult{e}{textltin{ltxe}} 7ifxltxveundefinedletltxvevefi 7rovideextgommndhefult{ve}{textltin{ltxve}}

56.115 56.116

e mke the i

56.117 56.118

A nd v i logos enoding independentF 56.119 56.120

he next step onsists of de(ning ommnds to swith to @nd fromA the usE sin lngugeF
ptionsrussin

he mro \captionsrussian de(nes ll strings used in the four stndrd doE A ument lsses provided with v iF he two ommnds \cyr nd \lat tivte gyrilli respF vtin enodingF
ddtoptionsrussin{7 7 pswiX here is the prefenme usedc

56.121 56.122

QQR

56.123 56.124 56.125 56.126 56.127 56.128 56.129 56.130 56.131 56.132 56.133 56.134

7 7

7 7 56.137 7 56.138 7 56.139 7 56.140 7 56.141 7 56.142 7 56.143 7


56.135 56.136 56.144 56.145 56.146 56.147 56.148

7 7

defprefenme{7 {yrgyrryreyrdyriyrsyrlyroyrvyriyre}}7 {yrgyrvyreyrdyreyrnyriyre}}7 defrefnme{7 {yrgyrpyriyrsyroyrk yrlyriyrtyreyrryryrtyruyrryrery}}7 defrefnme{7 {yrgvyriyrtyreyrryryrtyruyrryr}}7 defstrtnme{7 {yrgeyrnyrnyroyrtyryryriyry}}7 definme{7 {yrgvyriyrtyreyrryryrtyruyrryr}}7 definme{7 {yrgfyriyryrlyriyro yrgyrryryrfyriyry}}7 for reports ording to qyX definme{7 {yrgyrpyriyrsyroyrk yriyrsyrpyroyrlyrsftsnyrzyroyrvyryrn yrnyreryyrh yriyrsyrtyroyrhyrnyri yrkyroyrv}}7 defhpternme{{yrgqyrlyryrvyr}}7 difundefined{hpter}{}{7 defhpternme{{yrgqyrlyryrvyr}}}7 defppendixnme{7 {yrgyrryriyrlyroyrzhyreyrnyriyre}}7

here re two nmes for the le of gontents tht re used in ussin puE litionsF por ooks @nd reportsA the seond vrint is ppropriteD ut for proE eedings the (rst vrint is preferredX
difundefined{thehpter}7 {defontentsnme{7 56.151 {yrgyroyrdyreyrryrzhyryrnyriyre}}}7 56.152 {defontentsnme{7 56.153 {yrgyyrgyrlyryrvyrlyreyrnyriyre}}}7 56.154 deflistfigurenme{7 56.155 {yrgyrpyriyrsyroyrk 56.156 yriyrlyrlyryuyrsyrtyrryryryriyrishrt}}7 56.157 7 deflistfigurenme{7 56.158 7 {yrgyrpyriyrsyroyrk 56.159 7 yrryriyrsyruyrnyrkyroyrv}}7 56.160 deflisttlenme{7 56.161 {yrgyrpyriyrsyroyrk 56.162 yrtyryryrlyriyr}}7 56.163 defindexnme{7 56.164 {yrgyrryreyrdyrmyreyrtyrnyreryyrishrt 56.165 yruyrkyryrzyryrtyreyrlyrsftsn}}7 56.166 defuthornme{7 56.167 {yrgsyrmyreyrnyrnyroyrishrt 56.168 yruyrkyryrzyryrtyreyrlyrsftsn}}7 56.169 deffigurenme{{yrgyriyrsF}}7 56.170 deftlenme{{yrgyryryrlyriyryr}}7 56.171 defprtnme{{yrggryryrsyrtyrsftsn}}7 56.172 defenlnme{{yryrvyrkyrlF}}7
56.149 56.150

QQS

defnme{{yryriyrsyrhF}}7 7 defnme{{yryriyrz}}7 56.175 defhedtonme{{yryrvyrhF}}7 56.176 7 defhedtonme{{yryrv}}7 56.177 defpgenme{{yryrsF}}7 56.178 7 defpgenme{{yryrsyrtyrrF}}7 56.179 defseenme{{yryrsyrmF}}7 56.180 deflsonme{{yryrsyrmF yrtyryrkyrzhyre}}7
56.173 56.174 56.181 56.182 56.183 56.184

defproofnme{{yrghyroyrkyryrzyryrt yreyrlyrsftsnyrsyrtyrvyro}}7 defglossrynme{qlossry}7 `EE xeeds trnsltion }

dterussin

he mro \daterussian rede(nes the ommnd \today to produe ussin dtesF

defdterussin{7 deftody{numerdy~ifsemonthor 56.187 yryyrnyrvyryrryryor 56.188 yrfyreyrvyrryryrlyryor 56.189 yrmyryrryrtyror 56.190 yryrpyrryreyrlyryor 56.191 yrmyryryor 56.192 yriyryuyrnyryor 56.193 yriyryuyrlyryor 56.194 yryrvyrgyruyrsyrtyror 56.195 yrsyreyrnyrtyryyryrryryor 56.196 yroyrkyrtyryyryrryryor 56.197 yrnyroyryyryrryryor 56.198 yrdyreyrkyryryrryryfi 56.199 numeryer~yrgF}}
56.185 56.186

extrsrussin

he mro \extrasrussian will perform ll the extr de(nitions needed for the ussin lngugeF he mro \noextrasrussian is used to nel the tions of \extrasrussianF he (rst tion we de(ne is to swith on the seleted gyrilli enoding whenever we enter russin9F
ddtoextrsrussin{yrillitext}
A hen the enoding de(nition (le ws proessed y v i the urrent font A enoding is stored in \latinencodingD ssuming tht v i uses T1 or OT1 s defultF herefore we swith k to \latinencoding whenever the ussin lnE guge is no longer tive9F

56.200

56.201

ddtonoextrsrussin{ltintext}

vertimdfont

sn order to get oth vtin nd gyrilli letters in vertim text we need to hnge A the de(nition of n internl v i ommnd somewhtX

7defvertimdfont{7 7 letenodingdefultltinenoding 56.204 7 normlfontttfmily 56.205 7 expndfterdefsnmeyrillienodingEmdendsnme55I55P{7 56.206 7 ifxprotetdtypesetdprotet 56.207 7 egingroupseextymolyrillienoding55Iendgroup 56.208 7 elsenoexpnd55Ifi}}
56.202 56.203

QQT

he tegory ode of the hrters :9D ;9D !9D nd ?9 is mde \active to insert little white speF por ussin @s well s for qermnA the " hrter lso is mde tiveF xoteX st is very questionle whether the ussin typesetting trdition reE quires dditionl sping efore those puntution signsF hereforeD we mke the orresponding ode optionlF sf you need itD then de(ne the frenchpunct dostrip option in babel.insF forrowed from frenhF ome users dislike utomti insertion of spe efore doule puntution9D nd prefer to deide themselves whether spe should e dded or notY so hook \NoAutoSpaceBeforeFDP is providedX if this ommnd is dded @in (le russianb.cfgD or nywhere in doumentA russianb will respet your typingD nd introdue suitle spe efore doule puntution9 if and only if spe is typed in the soure (le efore those signsF he ommnd \AutoSpaceBeforeFDP swithes k to the defult ehvior of russianbF
frenchpunct \initiate@active@char{:} 56.211 \initiate@active@char{;} 56.212 /frenchpunct 56.213 frenchpunct | spanishligs 56.214 \initiate@active@char{!} 56.215 \initiate@active@char{?} 56.216 /frenchpunct | spanishligs 56.217 inititedtivedhr{4}
56.209 56.210

he ode ove is neessry euse we need extr tive hrtersF he hrter " is used s indited in tle QHF e speify tht the ussin group of shorthnds should e usedF
56.218

ddtoextrsrussin{lngugeshorthnds{russin}}

hese hrters re turned on9 oneD lter their de(nition my vryF


ddtoextrsrussin{7 frenchpunct \bbl@activate{:}\bbl@activate{;}% 56.221 frenchpunct | spanishligs \bbl@activate{!}\bbl@activate{?}% 56.222 ldtivte{4}} 56.223 ddtonoextrsrussin{7 56.224 frenchpunct \bbl@deactivate{:}\bbl@deactivate{;}% 56.225 frenchpunct | spanishligs \bbl@deactivate{!}\bbl@deactivate{?}% 56.226 lddetivte{4}}
56.219 56.220

he X2 nd T2* enodings do not ontin spanish_shriek nd spanish_query symolsY s onsequeneD the ligtures ?`9 nd !`9 do not work with them @these hrters re useless for gyrilli texts nywyAF fut we de(ne the shorthnds to emulte these ligtures @optionllyAF e do not use \latinencoding here @ut insted expliitly use OT1A euse the user my hoose T2A to e the primry enodingD ut it does not ontin these hrtersF
spanishligs \declare@shorthand{russian}{?`}{\UseTextSymbol{OT1}\textquestiondown} 56.229 \declare@shorthand{russian}{!`}{\UseTextSymbol{OT1}\textexclamdown} 56.230 /spanishligs
56.227 56.228

QQU

russindshdYd e hve to redue the mount of white spe efore ;D : nd !F his should only russindshdXd hppen in horizontl modeD hene the test with \ifhmodeF russindshd3d 56.231 frenchpunct russindshdcd 56.232 \declare@shorthand{russian}{;}{% 56.233 \ifhmode

sn horizontl mode we hek for the presene of spe9D unskip9 if it exists nd ple 0.1em kerningF
56.234 56.235 56.236

\ifdim\lastskip>\z@ \unskip\nobreak\kern.1em \else

sf no spe hs een typedD we dd \FDP@thinspace whih will e de(nedD up to the user9s wishesD s n utomti dded thinspeD or s \@emptyF
56.237 56.238 56.239

\fi \fi

\FDP@thinspace

xow we n insert ;9 hrterF


56.240

\string;}

he other de(nitions re very similrF


\declare@shorthand{russian}{:}{% \ifhmode 56.243 \ifdim\lastskip>\z@ 56.244 \unskip\nobreak\kern.1em 56.245 \else 56.246 \FDP@thinspace 56.247 \fi 56.248 \fi 56.249 \string:}
56.241 56.242

\declare@shorthand{russian}{!}{% \ifhmode 56.252 \ifdim\lastskip>\z@ 56.253 \unskip\nobreak\kern.1em 56.254 \else 56.255 \FDP@thinspace 56.256 \fi 56.257 \fi 56.258 \string!}
56.250 56.251

\declare@shorthand{russian}{?}{% \ifhmode 56.261 \ifdim\lastskip>\z@ 56.262 \unskip\nobreak\kern.1em 56.263 \else 56.264 \FDP@thinspace 56.265 \fi 56.266 \fi 56.267 \string?}
56.259 56.260

QQV

eutopefeforeph xoeutopefeforeph phdthinspe

\FDP@thinspace is de(ned s unrekle spes if \AutoSpaceBeforeFDP is tivted or s \@empty if \NoAutoSpaceBeforeFDP is in useF he defult is \AutoSpaceBeforeFDPF

\def\AutoSpaceBeforeFDP{% \def\FDP@thinspace{\nobreak\kern.1em}} 56.270 \def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty} 56.271 \AutoSpaceBeforeFDP


56.268 56.269

phon he next mros llow to swith onGo' tiveness of doule puntution signsF phoff 56.272 \def\FDPon{\bbl@activate{:}% \bbl@activate{;}% \bbl@activate{?}% 56.275 \bbl@activate{!}} 56.276 \def\FDPoff{\bbl@deactivate{:}% 56.277 \bbl@deactivate{;}% 56.278 \bbl@deactivate{?}% 56.279 \bbl@deactivate{!}}
56.273 56.274

systemdshdXd hen the tive hrters pper in n environment where their ussin eE systemdshd3d hviour is not wnted they should give n expeted9 resultF herefore we de(ne systemdshdcd shorthnds t system level s wellF systemdshdYd 56.280 \declare@shorthand{system}{:}{\string:} \declare@shorthand{system}{;}{\string;} /frenchpunct 56.283 frenchpunct&!spanishligs 56.284 \declare@shorthand{system}{!}{\string!} 56.285 \declare@shorthand{system}{?}{\string?} 56.286 /frenchpunct&!spanishligs
56.281 56.282

o e le to de(ne the funtion of "9D we (rst de(ne ouple of support9 mrosF


dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "9F

egingroup tode4IP defreservedd{endgroup 56.289 defd{mthhr4UHIW } 56.290 defdq{4}} 56.291 reservedd


56.287 56.288

xow we n de(ne the doulequote mrosX germn nd frenh quotesF e use de(nitions of these quotes mde in elFstyF he frenh quotes re ontined in the T2* enodingsF
delredshorthnd{russin}{4}{glqq} delredshorthnd{russin}{49}{grqq} 56.294 delredshorthnd{russin}{4`}{flqq} 56.295 delredshorthnd{russin}{4b}{frqq}
56.292 56.293

ome dditionl ommndsX


delredshorthnd{russin}{44}{hskipzdskip} delredshorthnd{russin}{4~}{textormth{levevmodehox{E}}{E}} 56.298 delredshorthnd{russin}{4a}{norekEhskipzdskip}
56.296 56.297

QQW

delredshorthnd{russin}{4|}{7 textormth{norekdisretionry{E}{}{kernFHQem}7 56.301 llowhyphens}{}}


56.299 56.300

he next two mros for "- nd "--- re somewht di'erentF e must hek whether the seond token is hyphen hrterX
56.302

delredshorthnd{russin}{4E}{7

sf the next token is -9D we typeset n emdshD otherwise hyphen signX


56.303 56.304 56.305 56.306

defrussindshdtmp{7 ifrussindshdnextEexpndfterrussindshdemdsh elseexpndfterrussindshdhyphenfi }7

i looks for the next token fter the (rst -9X the mening of this token is written to \russian@sh@next nd \russian@sh@tmp is lledF
56.307

futureletrussindshdnextrussindshdtmp}

rere re the de(nitions of hyphen nd emdshF pirst the hyphenX


56.308 56.309

defrussindshdhyphen{7 norekEldllowhyphens}

por the emdsh de(nitionD there re the two prmetersX we must et9 two lst hyphen signs of our emdshF F F X
56.310

defrussindshdemdsh5I5P{dshE5I5P}

dsh

F F F these two prmeters re useful for nother mroX \cdashX

7ifxdshundefined 7 should e defined erlier defdsh5I5P5Q{deftempxd{5Q}7 56.313 deftempd{E}deftempd{~}deftempd{B}7 56.314 ifxtempxdtempddedshelse 56.315 ifxtempxdtempddfdshelse 56.316 ifxtempxdtempddgdshelse 56.317 errmessge{rong usge of dsh}fififi}
56.311 56.312

seond prmeter @or third for \cdashA shows wht kind of emdsh to rete in next step

"---

ordinry @plinA gyrilli emdsh inside textX n unrekle thinspe will e inserted efore only in se of space efore the dsh @it is neessry for dshes fter disply mths formuleX there ould e listsD enumertions etF strted with " where a is FFF iFeFD the dsh strts lineAF @pirstly there were plnned rther soft rules for userX he my put spe efore the dsh or notF fut it is di0ult to ple this thinspe utomtillyD iFeFD y heking modes euse fter disply formule i uses horizontl modeF wye there is misunderstndingc wye there is nother wycA efter dsh rekle thinspe is lwys pledY

7 ht is more grmmtillyX FPem or FPfontdimenTfont c defdedsh{ifdimlstskipbzdunskipnorekhskipFPemfi 56.320 yrdshhskipFPemignorespes}7


56.318 56.319

"--~

emdsh in ompound nmes or surnmes @like wendeleev!ulpeironAY this dsh hs no spe hrters roundY fter the dsh some spe is dded \exhyphenalty QRH

56.321 56.322

defdfdsh{levevmodeifdimlstskipbzdunskipfi norekyrdshpenltyexhyphenpenltyhskipzdskipignorespes}7

"--*
56.323 56.324

for denoting diret speeh @ spe like \enskip must follow the emdshAY

defdgdsh{levevmode norekyrdshnorekhskipFQSemignorespes}7 56.325 7fi yrdsh

pinlly the mro for ody of the gyrilli emdshF he \cyrdash mro will e de(ned in se this mro hsn9t een de(ned in fonten (leF por PB fontsD yrdsh will e pled in the ode of the inglish emdsh thus it uses ligture ---F

7 ss there n sp neessryc ifxyrdshundefined 56.328 defyrdsh{hox toFVem{EEhssEE}} 56.329 fi


56.326 56.327

rere relly new mro"to ple thinspe etween initilsF his mro used insted of \, llows hyphention in the following surnmeF
56.330

delredshorthnd{russin}{4D}{norekhskipFPemignorespes}

mdqon ell tht9s left to do now is to de(ne ouple of ommnds for "F mdqoff 56.331 defmdqon{ldtivte{4}} 56.332 defmdqoff{lddetivte{4}}

he ussin hyphention ptterns n e used with \lefthyphenmin nd \righthyphenmin set to PF


providehyphenmins{gurrentyption}{twdtwd} 7 temporry hkX 56.335 ifxenglishhyphenminsundefined 56.336 defenglishhyphenmins{twdthrdd} 56.337 fi
56.333 56.334

xow the tion \extrasrussian hs to exeute is to mke sure tht the ommnd \frenchspacing is in e'etF sf this is not the se the exeution of \noextrasrussian will swith it o' ginF
56.338 56.339

ddtoextrsrussin{ldfrenhsping} ddtonoextrsrussin{ldnonfrenhsping}

xext we dd new enumertion style for ussin mnusripts with gyrilli lettersD nd lter on we de(ne some mth opertor nmes in ordne with ussin typesetting trditionsF
esuk

e egin y de(ning \Asbuk whih works like \AlphD ut produes @upperseA gyrilli letters inted of vtin onesF he letters yD srD rhxD iD nd px re skippedD s usul for suh enumertionF

defesuk5I{expndfterdesuksnme d5Iendsnme} defdesuk5I{ifse5Ior 56.342 georgforgorgqorghorgiorgror 56.343 gorgsorguorgvorgworgxorgyor 56.344 gorgorgorgorgorgporgror 56.345 ggorggrorgrorgrgrorgiiorgor 56.346 geelsedtrerrfi}
56.340 56.341

QRI

suk

he mro \asbuk is similr to \alphY it produes lowerse ussin lettersF

defsuk5I{expndfterdsuksnme d5Iendsnme} defdsuk5I{ifse5Ior 56.349 yroryroryrvoryrgoryrdoryreoryrzhor 56.350 yrzoryrioryrkoryrloryrmoryrnoryroor 56.351 yrporyrroryrsoryrtoryruoryrforyrhor 56.352 yroryrhoryrshoryrshhoryrerevoryryuor 56.353 yryelsedtrerrfi}
56.347 56.348

et up defult gyrilli mth lphetsF o use gyrilli letters in mth mode user should lod the textmath pkge before loding fonten pkge @or babelAF xoteD tht y defult gyrilli letters re tken from upright font in mth mode @unlike vtin lettersAF
7equirekge{textmth} difundefined{symyrillienoding letters}{}{7 56.356 etymolpont{yrillienoding letters}{old}yrillienoding 56.357 rmdefultfdefultupdefult 56.358 helreymolpontelphetyrmthrm{yrillienoding letters}
56.354 56.355

end we need few ommnds to e le to swith to di'erent vrintsF


helrewthelphetyrmthfyrillienoding rmdefultfdefultupdefult 56.361 helrewthelphetyrmthsfyrillienoding 56.362 sfdefultmddefultupdefult 56.363 helrewthelphetyrmthityrillienoding 56.364 rmdefultmddefultitdefult 56.365 helrewthelphetyrmthttyrillienoding 56.366 ttdefultmddefultupdefult 56.367 7 56.368 etwthelphetyrmthsf{old}yrillienoding 56.369 sfdefultfdefultupdefult 56.370 etwthelphetyrmthit{old}yrillienoding 56.371 rmdefultfdefultitdefult 56.372 }
56.359 56.360

ome mth funtions in ussin mth ooks hve other nmesX eFgFD sinh in ussin is written s sh etF o we de(ne numer of new mth opertorsF \sinhX
56.373

defsh{mthop{opertordfont sh}nolimits} defh{mthop{opertordfont h}nolimits} deftg{mthop{opertordfont tg}nolimits} defrtg{mthop{opertordfont rtg}nolimits} defrtg{mthop{opertordfont rtg}nolimits}

\coshX
56.374

\tanX
56.375

\arctanX
56.376

rtgX
56.377

he following mro on)its with \th de(ned in vtin I enodingX \tanhX


56.378 56.379

ddtoextrsrussin{7 eldsve{th}7

QRP

56.380 56.381 56.382 56.383

letltxdthth defth{textormth{ltxdth}7 {mthop{opertordfont th}nolimits}}7 } deftg{mthop{opertordfont tg}nolimits} defth{mthop{opertordfont th}nolimits} defose{mthop{opertordfont ose}nolimits}

\cotX
56.384

\cothX
56.385

\cscX
56.386

end (nlly some other ussin mthemtil symolsX


defro{mthop{kernzdmthsf{}}nolimits} defrine{mthop{kernzdmthsf{h}}nolimits} 56.389 defnod{mthop{yrmthrm{yrnFyroFyrdF}}nolimits} 56.390 defnok{mthop{yrmthrm{yrnFyroFyrkF}}nolimits} 56.391 defxyh{mthop{yrmthrm{gxgygh}}nolimits} 56.392 defxyu{mthop{yrmthrm{gxgygu}}nolimits} 56.393 defroj{mthop{yrmthrm{gyrr}}nolimits}
56.387 56.388

his is for omptiility with older ussin pkgesF


helreoustgommnd{xo}{7 56.395 ifmmode{nfssdtext{textnumero}}elsetextnumerofi}
56.394

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
56.396 56.397

ldfdfinish{russin} /code

QRQ

57

The Bulgarian language

he (le bulgarian.dtx68 provides the lngugeEspei( mros for the fulgrin lngugeF sers should tke note of the vious yrilli dshes ville now @see elowAF hese should remove mny uses of hedheF elsoD lthough y defult the fulE grin quottion mrks will pper utomtilly when typesetting in fulgrinD it is etter to use the new ommnds \"' nd \"' whih expliitly typeset themF xoteX utomti swith to fulgrin quottion is withdrwn for the moment nd my not e reintrodued t llF por this lnguge the hrter " is mde tiveF sn tle QP n overview is given of its purposeF

"| ""--"--~ "--* "" "~ "= ", "` "' "< ">

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF gyrilli emdsh in plin textF gyrilli emdsh in ompound nmes @surnmesAF gyrilli emdsh for denoting diret speehF like "-D ut produing no hyphen sign @for ompound words with hyphenD eFgF x-""y or some other signs s disleGenleAF for ompound word mrk without rekpointF for ompound word mrk with rekpointD llowE ing hyphention in the omposing wordsF thinspe for initils with rekpoint in following surnmeF for qermn left doule quotes @looks like DDAF for qermn right doule quotes @looks like AF for prenh left doule quotes @looks like < AF < for prenh right doule quotes @looks like > AF >

le QPX he extr de(nitions mde ybulgarian he quotes in tle QP n lso e typeset y using the ommnds in tle QQF he prenh quotes re lso ville s ligtures <<9 nd >>9 in VEit gyrilli font enodings @LCYD X2D T2*A nd s <9 nd >9 hrters in UEit gyrilli font enodings @OT2 nd LWNAF he quottion mrks trditionlly used in fulgrin were orrowed from qerE mn o they keep their originl nmesF prenh quottion mrks my e seen s well in older ooksF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
57.1 57.2

code vdfsnit{ulgrin}{ptionsulgrin}
le described in this section has version number ? and was last revised on ?. This le

68 The

was initially derived from the August-1998 version of

russianb.dtx.

It is (reasonably) backward compatible with the 1994/1996 (non-babel) bulgarian style (bulgaria.sty) by Georgi Boshnakovles prepared for that style should compile successfully (with vastly improved appearance due to usage of standard fonts).

QRR

\cdash--\cdash--~ \cdash--* \glqq \grqq \flqq \frqq \dq

gyrilli emdsh in plin textF gyrilli emdsh in ompound nmes @surnmesAF gyrilli emdsh for denoting diret speehF for qermn left doule quotes @looks likeDDAF for qermn right doule quotes @looks like AF for prenh left doule quotes @looks like < AF < for prenh right doule quotes @looks like > AF > the originl quotes hrter @"AF

le QQX wore ommnds whih produe quotesD de(ned y babel

hen this (le is red s n optionD iFeFD y the \usepackage ommndD bulgarian will e n unknown9 lngugeD in whih se we hve to mke it knownF o we hek for the existene of \l@bulgarian to see whether we hve to do something hereF
ifxldulgrindundefined dnoptterns{fulgrin} 57.5 dddiletldulgrinH 57.6 fi
57.3 57.4

ltinenoding

e need to know the enoding for text tht is supposed to e whih is tive t the end of the babel pkgeF sf the fontenc pkge is loded lterD then F F F too d3
57.7

letltinenodingfdenoding

he user my hoose etween di'erent ville gyrilli enodings"eFgFD X2D LCYD or LWNF sf the user wnts to use font enoding other thn the defult @T2AAD he hs to lod the orresponding (le before bulgarian.styF his my e done in the following wyX
usepkgevgDyI{fonten} 7overwrite the defult enodingY usepkgeenglishDulgrin{el}

xoteX most people would prefer the T2A to X2D euse X2 does not ontin vtin lettersD nd users should e very reful to swith the lnguge every time they wnt to typeset vtin word inside fulgrin phrse or vie versF yn the other hndD swithing the lnguge is good prtie nywyF ith deent text proessing progrm it does not involve more work thn swithing etween the fulgrin nd inglish keyordF woreover tht the fr most ommon disruption ours s result of forgetting to swith k to yrilli keyordF A e prse the \cdp@list ontining the enodings known to v i in the order they were lodedF e set the \cyrillicencoding to the last loded enoding in the list of supported gyrilli enodingsX OT2D LWND LCYD X2D T2CD T2BD T2AD if nyF
defreservedd5I5P{7 edefreservedd{5I}7 57.10 edefreservedd{5P}7 57.11 ifxreserveddreservedd 57.12 letyrillienodingreservedd 57.13 fi}
57.8 57.9

QRS

defdpdelt5I5P5Q5R{7 reservedd{5I}{yP}7 57.16 reservedd{5I}{vx}7 57.17 reservedd{5I}{vg}7 57.18 reservedd{5I}{P}7 57.19 reservedd{5I}{Pg}7 57.20 reservedd{5I}{Pf}7 57.21 reservedd{5I}{Pe}} 57.22 dpdlist
57.14 57.15

xowD if \cyrillicencoding is unde(nedD then the user did not lod ny of supported enodingsF oD we hve to set \cyrillicencoding to some defult vlueF e test the presene of the enoding de(nition (les in the order from less preferle to more preferle enodingsF e use the lowerse nmes @iFeFD lcyenc.def insted of LCYenc.defAF
ifxyrillienodingundefined sfpileixists{otPenFdef}{defyrillienoding{yP}}relx 57.25 sfpileixists{lwnenFdef}{defyrillienoding{vx}}relx 57.26 sfpileixists{lyenFdef}{defyrillienoding{vg}}relx 57.27 sfpileixists{xPenFdef}{defyrillienoding{P}}relx 57.28 sfpileixists{tPenFdef}{defyrillienoding{Pg}}relx 57.29 sfpileixists{tPenFdef}{defyrillienoding{Pf}}relx 57.30 sfpileixists{tPenFdef}{defyrillienoding{Pe}}relx
57.23 57.24

sf \cyrillicencoding is still unde(nedD then the user seems not to hve properly instlled distriutionF e ftl errorF
ifxyrillienodingundefined kgeirror{el}7 57.33 {xo gyrilli enoding definition files were found}7 57.34 {our instlltion is inompleteF wessgefrek 57.35 ou need t lest one of the following filesX wessgefrek 57.36 spespe 57.37 xPenFdefD tPenFdefD tPenFdefD tPenFdefD wessgefrek 57.38 spespe 57.39 lyenFdefD lwnenFdefD otPenFdefF}7 57.40 else
57.31 57.32

e void \usepackage[\cyrillicencoding]{fontenc} euse we don9t wnt to fore the swith of \encodingdefaultF


57.41 57.42

lowerse expndfter{expndfterinputyrillienoding enFdefrelx}7 57.43 fi 57.44 fi kgesnfo{el} {sing yrillienoding9 s defult gyrilli enoding}7 helreoustgommnd{fulgrin}{7 fontenodingyrillienodingseletfont 57.47 letenodingdefultyrillienoding 57.48 expndftersetdhyphenminsulgrinhyphenmins 57.49 lngugeldulgrin} 57.50 helreoustgommnd{inglish}{7
57.45 57.46

QRT

fontenodingltinenodingseletfont letenodingdefultltinenoding 57.53 expndftersetdhyphenminsenglishhyphenmins 57.54 lngugeldenglish} 57.55 letfulfulgrin 57.56 letfgfulgrin 57.57 letyrillitextfulgrin 57.58 letyrfulgrin 57.59 letinginglish 57.60 defseletenglnguge{seletlnguge{english}} 57.61 defseletglnguge{seletlnguge{ulgrin}}
57.51 57.52

ine the X2 enoding does not ontin vtin lettersDwe should mke some A rede(nitions of v i mros whih impliitly produe vtin lettersF
57.62

expndfterifxsnme dPendsnmerelxelse

e put \latinencoding in res to void prolems with \@alph inside miniE pges @eFgFD footnotes inside minipgesA where \@alph is expnded nd we get for exmple \fontencoding OT19 @\fontencoding is roustAF
57.63 57.64 57.65 57.66 57.67 57.68 57.69 57.70 57.71 57.72

defdelphdeng5I{{fontenoding{ltinenoding}seletfont ifse5Ior eor for gor hor ior por qor ror sor tor uor vor wor xor yor or or or or or or or or or or else dtrerrfi}}7 defdlphdeng5I{{fontenoding{ltinenoding}seletfont ifse5Ior or or or dor eor for gor hor ior jor kor lor mor nor oor por qor ror sor tor uor vor wor xor yor zelse dtrerrfi}}7 letdelphdelphdeng letdlphdlphdeng

nfortuntelyD the ommnds \AA nd \aa re not enoding dependent in A v i @unlike eFgFD \oe or \DHAF hey re de(ned s \r{A} nd \r{a}F his leds to unpreditle results when the font enoding does not ontin the vtin letters e9 nd 9 @like X2AF
helreextymolhefult{ee}{yI} helreextymolhefult{}{yI} 57.75 helreextgommnd{ee}{yI}{r e} 57.76 helreextgommnd{}{yI}{r } 57.77 fi
57.73 57.74

he following lok rede(nes the hrter lss of upperse qreek letters nd some entsD if it is equl to U @vrile fmilyAD to void inorret results if the font enoding in some mth fmily does not ontin these hrters in ples of yI enodingF he ode ws tken from amsmath.dtxF ee omments nd further explntion thereF
egingrouptode4aIP 7 upperse greek lettersX 57.80 defdtemp5I{expndfterdtempmening5Irelxrelxrelxrelx 57.81 4HHHHdnil5I} 57.82 defdtemp5I45P5Q5R5S5Tdnil5U{7 57.83 ifnum45PaU ountd4I5Q5R5Srelx 57.84 ifnumountd`4IHHH else glolmthhrdef5Ua4H5Q5R5Srelx fi 57.85 fi}
57.78 57.79

QRU

dtempqmmdtempheltdtemphetdtempvmddtempi dtempidtempigmdtemppsilondtemphidtempsi 57.88 dtempymeg 57.89 7 some entsX 57.90 defdtemp5I5Pdnil{defdtemp{5I}}defdtemp{mthent} 57.91 expndfterdtemphtrelxrelxdnil 57.92 ifxdtempdtemp 57.93 defdtemp5Idnil{5I}7 57.94 defdtemp5I{fterssignmentdtempmthhrdefdtempa}7 57.95 defdo5I45P{} 57.96 defdtempd5I{expndfterdtemp5Idnil 57.97 ifnumdtempb4ppp 57.98 xdef5I{mthent4expndfterdomeningdtempspe}7 57.99 fi} 57.100 dtempdhtdtempdhekdtempdtildedtempdutedtempdgrve 57.101 dtempddotdtempdddotdtempdrevedtempdr 57.102 fi 57.103 endgroup
57.86 57.87

he user should use the inputenc pkge when ny VEit gyrilli font enodE ing is usedD seleting one of the gyrilli input enodingsF e do not ssume ny defult input enodingD so the user should expliitly ll the inputenc pkge y \usepackage{inputenc}F e lso removed \AtBeginDocumentD so inputenc should e used efore babelF
difpkgeloded{inputen}{}{7 defreservedd{vx}7 57.106 ifxreserveddyrillienodingelse 57.107 defreservedd{yP}7 57.108 ifxreserveddyrillienodingelse 57.109 kgerning{el}7 57.110 {xo input enoding speified for fulgrin lnguge}fifi}
57.104 57.105

xow we de(ne two ommnds tht o'er the possiility to swith etween gyrilli nd omn enodingsF
yrillitext ltintext

he ommnd \cyrillictext will swith from vtin font enoding to the gyrilli font enodingD the ommnd \latintext swithes kF his ssumes tht the norml9 font enoding is vtin oneF hese ommnds re declarationsD for shorter pees of text the ommnds \textlatin nd \textcyrillic n e usedF e omment out \latintext sine it is de(ned in the ore of el @elFdefAF e dd the shorthnd \lat for \latintextF xote tht \cyrillictext hs een de(ned oveF

7 helreoustgommnd{ltintext}{7 7 fontenoding{ltinenoding}seletfont 57.113 7 defenodingdefult{ltinenoding}} 57.114 letltltintext


57.111 57.112

textyrilli textltin

hese ommnds tke n rgument whih is then typeset using the requested font enodingF \textlatin is ommented out sine it is de(ned in the ore of elF @st is de(ned there with \DeclareRobustCommand instedFA
helreextpontgommnd{textyrilli}{yrillitext} 7 helreextpontgommnd{textltin}{ltintext}

57.115 57.116

QRV

he next step onsists of de(ning ommnds to swith to @nd fromA the fulE grin lngugeF
ptionsulgrin

he mro \captionsbulgarian de(nes ll strings used in the four stndrd A doument lsses provided with v iF he two ommnds \cyr nd \lat tivte gyrilli respF vtin enodingF

ddtoptionsulgrin{7 defprefenme{7 57.119 {yrgyrryreyrdyrgyroyrvyroyrr}}7 57.120 defrefnme{7 57.121 {yrgvyriyrtyreyrryryrtyruyrryr}}7 57.122 defstrtnme{7 57.123 {yrgeyryrsyrtyrryryrkyrt}}7 57.124 definme{7 57.125 {yrgfyriyryrlyriyroyrgyrryryrfyriyry}}7 57.126 defhpternme{7 57.127 {yrgqyrlyryrvyr}}7 57.128 defppendixnme{7 57.129 {yrgyrryriyrlyroyrzhyreyrnyriyre}}7 57.130 defontentsnme{7 57.131 {yrgyrhrdsnyrdyrhrdsnyrryrzhyryrnyriyre}}7 57.132 deflistfigurenme{7 57.133 {yrgyrpyriyrsyrhrdsnyrk yrnyr yrfyriyrgyruyrryriyrt 57.134 deflisttlenme{7 57.135 {yrgyrpyriyrsyrhrdsnyrk yrnyr yrtyryryrlyriyryri 57.136 defindexnme{7 57.137 {yrgeyrzyryruyrhyreyrn yruyrkyryrzyryrtyreyrl}}7 57.138 defuthornme{7 57.139 {yrgsyrmyreyrnyreyrn yruyrkyryrzyryrtyreyrl}}7 57.140 deffigurenme{7 57.141 {yrgpyriyrgyruyrryr}}7 57.142 deftlenme{7 57.143 {yrgyryryrlyriyryr}}7 57.144 defprtnme{7 57.145 {yrggryryrsyrt}}7 57.146 defenlnme{7 57.147 {yrgyrryriyrlyroyrzhyreyrnyriyry}}7 57.148 defnme{7 57.149 {yryrkyroyrpyriyry}}7 57.150 defhedtonme{7 57.151 {yrgyr}}7 57.152 defpgenme{7 57.153 {yrgyrtyrrF}}7 57.154 defseenme{7 57.155 {yryrvyrzhF}}7 57.156 deflsonme{7 57.157 {yryrvyrzhF yrsyrhrdsnyrshhyro yri}}7 57.158 defproofnme{roof}7 `EE xeeds trnsltion 57.159 defglossrynme{qlossry}7 `EE xeeds trnsltion 57.160 }
57.117 57.118

dteulgrin

he mro \datebulgarian rede(nes the ommnd \today to produe fulgrin dtesF st lso provides the ommnd \todayRoman whih produes the dte with the month in pitl romn numerlsD populr formt for dtes in fulgrinF QRW

defdteulgrin{7 defmonthdulgrin{ifsemonthor 57.163 yryyrnyruyryrryrior 57.164 yrfyreyrvyrryruyryrryrior 57.165 yrmyryrryrtor 57.166 yryrpyrryriyrlor 57.167 yrmyryrishrtor 57.168 yryuyrnyrior 57.169 yryuyrlyrior 57.170 yryrvyrgyruyrsyrtor 57.171 yrsyreyrpyrtyreyrmyrvyrryrior 57.172 yroyrkyrtyroyrmyrvyrryrior 57.173 yrnyroyreyrmyrvyrryrior 57.174 yrdyreyrkyreyrmyrvyrryrifi}7 57.175 defmonthdomn{expndfterdomnmonth}7 57.176 deftody{numerdy~monthdulgrin numeryer~yrgF}7 57.177 deftodyomn{numerdyFDmonthdomnFDnumeryer~yrgF}7 57.178 }
57.161 57.162

todyomn

he month is often written with romn numers in fulgrin dtesF rere we de(ne dte in this formtX
defomnnumerl5I{upperseexpndfter{romnnumerl 5I}} deftodyomn{numerdyFomnnumerl{month}Fnumeryer~yrgF}

57.179 57.180

extrsulgrin

he mro \extrasbulgarian will perform ll the extr de(nitions needed for the fulgrin lngugeF he mro \noextrasbulgarian is used to nel the tions of \extrasbulgarianF he (rst tion we de(ne is to swith on the seleted gyrilli enoding whenever we enter ulgrin9F
ddtoextrsulgrin{yrillitext}
A hen the enoding de(nition (le ws proessed y v i the urrent font A enoding is stored in \latinencodingD ssuming tht v i uses T1 or OT1 s defultF herefore we swith k to \latinencoding whenever the fulgrin lnguge is no longer tive9F

57.181

57.182

ddtonoextrsulgrin{ltintext}

por fulgrin the " hrter lso is mde tiveF


57.183

inititedtivedhr{4}

he ode ove is neessry euse we need extr tive hrtersF he hrter " is used s indited in tle QPF e speify tht the fulgrin group of shorthnds should e usedF
57.184

ddtoextrsulgrin{lngugeshorthnds{ulgrin}}

hese hrters re turned on9 oneD lter their de(nition my vryF


ddtoextrsulgrin{7 ldtivte{4}} 57.187 ddtonoextrsulgrin{7 57.188 lddetivte{4}}
57.185 57.186

QSH

he X2 nd T2* enodings do not ontin spanish_shriek nd spanish_query symolsY s onsequeneD the ligtures ?`9 nd !`9 do not work with them @these hrters re useless for gyrilli texts nywyAF fut we de(ne the shorthnds to emulte these ligtures @optionllyAF e do not use \latinencoding here @ut insted expliitly use OT1A euse the user my hoose T2A to e the primry enodingD ut it does not ontin these hrtersF
spanishligs \declare@shorthand{bulgarian}{?`}{\UseTextSymbol{OT1}\textquestiondown} 57.191 \declare@shorthand{bulgarian}{!`}{\UseTextSymbol{OT1}\textexclamdown} 57.192 /spanishligs
57.189 57.190

o e le to de(ne the funtion of "9D we (rst de(ne ouple of support9 mrosF


dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \"n now e typed s "9F

egingroup tode4IP defreservedd{endgroup 57.195 defd{mthhr4UHIW} 57.196 defdq{4}} 57.197 reservedd


57.193 57.194

xow we n de(ne the doulequote mrosX germn nd frenh quotesF e use de(nitions of these quotes mde in elFstyF he frenh quotes re ontined in the T2* enodingsF
delredshorthnd{ulgrin}{4}{glqq} delredshorthnd{ulgrin}{49}{grqq} 57.200 delredshorthnd{ulgrin}{4`}{flqq} 57.201 delredshorthnd{ulgrin}{4b}{frqq}
57.198 57.199

ome dditionl ommndsX


delredshorthnd{ulgrin}{44}{hskipzdskip} delredshorthnd{ulgrin}{4~}{textormth{levevmodehox{E}}{E}} 57.204 delredshorthnd{ulgrin}{4a}{norekEhskipzdskip} 57.205 delredshorthnd{ulgrin}{4|}{7 57.206 textormth{norekdisretionry{E}{}{kernFHQem}7 57.207 llowhyphens}{}}
57.202 57.203

he next two mros for "- nd "--- re somewht di'erentF e must hek whether the seond token is hyphen hrterX
57.208

delredshorthnd{ulgrin}{4E}{7

sf the next token is -9D we typeset n emdshD otherwise hyphen signX


57.209 57.210 57.211 57.212

defulgrindshdtmp{7 ifulgrindshdnextEexpndfterulgrindshdemdsh elseexpndfterulgrindshdhyphenfi }7

i looks for the next token fter the (rst -9X the mening of this token is written to \bulgarian@sh@next nd \bulgarian@sh@tmp is lledF
57.213

futureletulgrindshdnextulgrindshdtmp}

QSI

rere re the de(nitions of hyphen nd emdshF pirst the hyphenX


57.214

defulgrindshdhyphen{norekEldllowhyphens}

por the emdsh de(nitionD there re the two prmetersX we must et9 two lst hyphen signs of our emdsh F F F X
57.215

defulgrindshdemdsh5I5P{dshE5I5P}

dsh

F F F these two prmeters re useful for nother mroX \cdashX

ifxdshundefined 7 should e defined erlier defdsh5I5P5Q{deftempxd{5Q}7 57.218 deftempd{E}deftempd{~}deftempd{B}7 57.219 ifxtempxdtempddedshelse 57.220 ifxtempxdtempddfdshelse 57.221 ifxtempxdtempddgdshelse 57.222 errmessge{rong usge of dsh}fififi}
57.216 57.217

seond prmeter @or third for \cdashA shows wht kind of emdsh to rete in next step

"---

ordinry @plinA gyrilli emdsh inside textX n unrekle thinspe will e inserted efore only in se of space efore the dsh @it is neessry for dshes fter disply mths formuleX there ould e listsD enumertions etF strted with "where a is FFF iFeFD the dsh strts lineAF @pirstly there were plnned rther soft rules for userXhe my put spe efore the dsh or notF fut it is di0ult to ple this thinspe utomtillyD iFeFD y heking modes euse fter disply formule i uses horizontl modeF wye there is misunderstndingc wye there is nother wycA efter dsh rekle thinspe is lwys pledY

7 ht is more grmmtillyX FPem or FPfontdimenTfontc defdedsh{ifdimlstskipbzdunskipnorekhskipFPemfi 57.225 yrdshhskipFPemignorespes}7


57.223 57.224

"--~

emdsh in ompound nmes or surnmes @like wendeleev!ulpeironAY this dsh hs no spe hrters roundY fter the dsh some spe is dded \exhyphenalty

57.226 57.227

defdfdsh{levevmodeifdimlstskipbzdunskipfi norekyrdshpenltyexhyphenpenltyhskipzdskipignorespes}7

"--*
57.228 57.229

for denoting diret speeh @ spe like \enskip must follow the emdshAY

defdgdsh{levevmode norekyrdshnorekhskipFQSemignorespes}7 57.230 7fi yrdsh

pinlly the mro for ody of the gyrilli emdshF he \cyrdash mro will e de(ned in se this mro hsn9t een de(ned in fonten (leF por PBfontsD yrdsh will e pled in the ode of the inglish emdsh thus it uses ligture ---F

7 ss there n sp neessryc ifxyrdshundefined 57.233 defyrdsh{hox toFVem{EEhssEE}} 57.234 fi


57.231 57.232

QSP

rere relly new mro"to ple thinspe etween initilsF his mro used insted of \, llows hyphention in the following surnmeF
57.235

delredshorthnd{ulgrin}{4D}{norekhskipFPemignorespes}

he fulgrin hyphention ptterns n e used with \lefthyphenmin nd \righthyphenmin set to PF


57.236 57.237

providehyphenmins{gurrentyption}{twdtwd} fi

xow the tion \extrasbulgarian hs to exeute is to mke sure tht the ommnd \frenchspacing is in e'etF sf this is not the se the exeution of \noextrasbulgarian will swith it o' ginF
57.238 57.239

ddtoextrsulgrin{ldfrenhsping} ddtonoextrsulgrin{ldnonfrenhsping}

wke the doule quotes produe the trditionl quotes used in fulgrin texts @these re the qermn quotesAF
7 7 57.242 7 57.243 7 57.244 7 57.245 7 57.246 7 57.247 7 57.248 7 57.249 7 57.250 7 57.251 7 57.252 7 57.253 7
57.240 57.241

inititedtivedhr{} inititedtivedhr{9} ddtoextrsulgrin{7 ldtivte{}} ddtoextrsulgrin{7 ldtivte{9}} ddtonoextrsulgrin{7 lddetivte{}} ddtonoextrsulgrin{7 lddetivte{9}} defmlron{ldtivte{}ldtivte{9}} defmlroff{lddetivte{}lddetivte{9}} delredshorthnd{ulgrin}{}{glqq} delredshorthnd{ulgrin}{99}{grqq}

xext we dd new enumertion style for fulgrin mnusripts with gyrilE li lettersDnd lter on we de(ne some mth opertor nmes in ordne with fulgrin typesetting trditionsF
delphdul

e egin y de(ning \@Alph@bul whih works like \@AlphD ut produes @upE perseA gyrilli letters inted of vtin onesF he letters srD rhx nd px re skippedD s usul for suh enumertionF

defenumful{letdelphdelphdul letdlphdlphdul} defenuming{letdelphdelphdeng letdlphdlphdeng} 57.256 defenumvt{letdelphdelphdeng letdlphdlphdeng} 57.257 ddtoextrsulgrin{enumful} 57.258 ddtonoextrsulgrin{enumvt} 57.259 defdelphdul5I{7 57.260 ifse5Ior 57.261 geor gfor gor gqor ghor gior gror 57.262 gor gsor guor gvor gwor gxor gyor 57.263 gor gor gor gor gor gpor gror 57.264 ggor ggror gror grgror gor geelse 57.265 dtrerrfi 57.266 } 57.267 defdelphdeng5I{7
57.254 57.255

QSQ

57.268 57.269 57.270 57.271 57.272

ifse5Ior eor for gor hor ior por qor ror sor tor uor vor wor xor yor or or or or or or or or or or else dtrerrfi }

dlphdul

he mro \@alph@bul is similr to \@Alph@bulY it produes lowerse fulgrin lettersF

defdlphdul5I{7 ifse5Ior 57.275 yror yror yrvor yrgor yrdor yreor yrzhor 57.276 yrzor yrior yrkor yrlor yrmor yrnor yroor 57.277 yrpor yrror yrsor yrtor yruor yrfor yrhor 57.278 yror yrhor yrshor yrshhor yryuor yryelse 57.279 dtrerrfi 57.280 } 57.281 defdlphdeng5I{7 57.282 ifse5Ior 57.283 or or or dor eor for gor hor ior jor kor lor mor 57.284 nor oor por qor ror sor tor uor vor wor xor yor zelse 57.285 dtrerrfi 57.286 }
57.273 57.274

et up defult gyrilli mth lphetsF o use gyrilli letters in mth mode user should lod the textmath pkge before loding fonten pkge @or babelAF xoteDtht y defult gyrilli letters re tken from upright font in mth mode @unlike vtin lettersAF
7equirekge{textmth} difundefined{symyrillienoding letters}{}{7 57.289 etymolpont{yrillienoding letters}{old}yrillienoding 57.290 rmdefultfdefultupdefult 57.291 helreymolpontelphetyrmthrm{yrillienoding letters}
57.287 57.288

end we need few ommnds to e le to swith to di'erent vrintsF


helrewthelphetyrmthfyrillienoding rmdefultfdefultupdefult 57.294 helrewthelphetyrmthsfyrillienoding 57.295 sfdefultmddefultupdefult 57.296 helrewthelphetyrmthityrillienoding 57.297 rmdefultmddefultitdefult 57.298 helrewthelphetyrmthttyrillienoding 57.299 ttdefultmddefultupdefult 57.300 etwthelphetyrmthsf{old}yrillienoding 57.301 sfdefultfdefultupdefult 57.302 etwthelphetyrmthit{old}yrillienoding 57.303 rmdefultfdefultitdefult 57.304 }
57.292 57.293

ome mth funtions in fulgrin mth ooks hve other nmesX eFgFD sinh in fulgrin is written s sh etF o we de(ne numer of new mth opertorsF \sinhX
57.305

defsh{mthop{opertordfont sh}nolimits}

QSR

\coshX
57.306

defh{mthop{opertordfont h}nolimits}

\tanX
57.307

deftg{mthop{opertordfont tg}nolimits}

\arctanX
57.308

defrtg{mthop{opertordfont rtg}nolimits}

\arccotX
57.309

defrtg{mthop{opertordfont rtg}nolimits}

he following mro on)its with \th de(ned in vtin I enodingX \tanhX


ddtoextrsrussin{7 eldsve{th}7 57.312 letltxdthth 57.313 defth{textormth{ltxdth}7 57.314 {mthop{opertordfont th}nolimits}}7 57.315 }
57.310 57.311

\cotX
57.316

deftg{mthop{opertordfont tg}nolimits}

\cothX
57.317

defth{mthop{opertordfont th}nolimits}

\cscX
57.318

defose{mthop{opertordfont ose}nolimits}

his is for omptiility with older fulgrin pkgesF


57.319 57.320

helreoustgommnd{xo}{7 ifmmode{nfssdtext{textnumero}}elsetextnumerofi}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
57.321 57.322

ldfdfinish{ulgrin} /code

QSS

58

The Ukrainian language

he (le ukraineb.dtx69 de(nes ll the lngugeEspei( mros for the krinin lngugeF st needs the (le cyrcod for suess doumenttion with krinin enodings @see elowAF por this lnguge the hrter " is mde tiveF sn tle QR n overview is given of its purposeF

"| ""--"--~ "--* "" "~ "= ", "` "' "< ">

disle ligture t this positionF n expliit hyphen signD llowing hyphention in the rest of the wordF gyrilli emdsh in plin textF gyrilli emdsh in ompound nmes @surnmesAF gyrilli emdsh for denoting diret speehF like "-D ut produing no hyphen sign @for ompund words with hyphenD eFgF x-""y or some other signs s disleGenleAF for ompound word mrk without rekpointF for ompound word mrk with rekpointD llowE ing hyphention in the omposing wordsF thinspe for initils with rekpoint in following surnmeF for qermn left doule quotes @looks like DDAF for qermn right doule quotes @looks like AF for prenh left doule quotes @looks like < AF < for prenh right doule quotes @looks like > AF >

le QRX he extr de(nitions mde y ukraineb he quotes in tle QR @seeD lso tle QHA n lso e typeset y using the ommnds in tle QS @seeD lso tle QIAF

\cdash--\cdash--~ \cdash--* \glqq \grqq \flqq \frqq \dq

gyrilli emdsh in plin textF gyrilli emdsh in ompound nmes @surnmesAF gyrilli emdsh for denoting diret speehF for qermn left doule quotes @looks like DDAF for qermn right doule quotes @looks like AF for prenh left doule quotes @looks like < AF < for prenh right doule quotes @looks like > AF > the originl quotes hrter @"AF

le QSX wore ommnds whih produe quotesD de(ned y babel he prenh quotes re lso ville s ligtures <<9 nd >>9 in VEit gyrilli font enodings @LCYD X2D T2*A nd s <9 nd >9 hrters in UEit gyrilli font enodings @OT2 nd LWNAF
russianb.dtx
69 The
le described in this section has version number ?. version 1.1g. This le was derived from the

QST

he quottion mrks trditionlly used in krinin nd ussin lnguges were orrowed from other lnguges @eFgF prenh nd qermnA so they keep their originl nmesF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
58.1 58.2

code vdfsnit{ukrinin}{ptionsukrinin}

hen this (le is red s n optionD iFeFD y the \usepackage ommndD ukraineb will e n unknown9 lngugeD in whih se we hve to mke it knownF o we hek for the existene of \l@ukrainian to see whether we hve to do someE thing hereF
ifxldukrinindundefined dnoptterns{krinin} 58.5 dddiletldukrininH 58.6 fi
58.3 58.4

ltinenoding

e need to know the enoding for text tht is supposed to e whih is tive t the end of the babel pkgeF sf the fontenc pkge is loded lterD thenF F F too d3
58.7

letltinenodingfdenoding

he user my hoose etween di'erent ville gyrilli enodings"eFgFD X2D LCYD or LWNF ropefullyD X2 will eventully reple the two ltter enodings @LCY nd LWNAF sf the user wnts to use nother font enoding thn the defult @T2AAD he hs to lod the orresponding (le before ukraineb.styF his my e done in the following wyX
7 override the defult P enoding used in fel usepkgevgDyI{fonten} usepkgeenglishDukrinin{el}

xoteX for the krinin lngugeD the T2A enoding is etter thn X2D euse X2 does not ontin vtin lettersD nd users should e very reful to swith the lnguge every time they wnt to typeset vtin word inside krinin phrse or vie versF A e prse the \cdp@list ontining the enodings known to v i in the order they were lodedF e set the \cyrillicencoding to the last loded enoding in the list of supported gyrilli enodingsX OT2D LWND LCYD X2D T2CD T2BD T2AD if nyF
defreservedd5I5P{7 edefreservedd{5I}7 58.10 edefreservedd{5P}7 58.11 ifxreserveddreservedd 58.12 letyrillienodingreservedd 58.13 fi} 58.14 defdpdelt5I5P5Q5R{7 58.15 reservedd{5I}{yP}7 58.16 reservedd{5I}{vx}7 58.17 reservedd{5I}{vg}7 58.18 reservedd{5I}{P}7 58.19 reservedd{5I}{Pg}7 58.20 reservedd{5I}{Pf}7
58.8 58.9

QSU

58.21 58.22

reservedd{5I}{Pe}} dpdlist

xowD if \cyrillicencoding is unde(nedD then the user did not lod ny of supported enodingsF oD we hve to set \cyrillicencoding to some defult vlueF e test the presene of the enoding de(nition (les in the order from less preferle to more preferle enodingsF e use the lowerse nmes @iFeFD lcyenc.def insted of LCYenc.defAF
ifxyrillienodingundefined sfpileixists{otPenFdef}{defyrillienoding{yP}}relx 58.25 sfpileixists{lwnenFdef}{defyrillienoding{vx}}relx 58.26 sfpileixists{lyenFdef}{defyrillienoding{vg}}relx 58.27 sfpileixists{xPenFdef}{defyrillienoding{P}}relx 58.28 sfpileixists{tPenFdef}{defyrillienoding{Pg}}relx 58.29 sfpileixists{tPenFdef}{defyrillienoding{Pf}}relx 58.30 sfpileixists{tPenFdef}{defyrillienoding{Pe}}relx
58.23 58.24

sf \cyrillicencoding is still unde(nedD then the user seems not to hve properly instlled distriutionF e ftl errorF
58.31 58.32 58.33 58.34 58.35 58.36 58.37 58.38 58.39 58.40

ifxyrillienodingundefined kgeirror{el}7 {xo gyrilli enoding definition files were found}7 {our instlltion is inompleteFwessgefrek ou need t lest one of the following filesXwessgefrek spespe xPenFdefD tPenFdefD tPenFdefD tPenFdefDwessgefrek spespe lyenFdefD lwnenFdefD otPenFdefF}7 else

e void \usepackage[\cyrillicencoding]{fontenc} euse we don9t wnt to fore the swith of \encodingdefaultF


lowerse expndfter{expndfterinputyrillienoding enFdefrelx}7 58.43 fi 58.44 fi
58.41 58.42

kgesnfo{el} {sing yrillienoding9 s defult gyrilli enoding}7 helreoustgommnd{krinin}{7 fontenodingyrillienodingseletfont 58.47 letenodingdefultyrillienoding 58.48 expndftersetdhyphenminsukrininhyphenmins 58.49 lngugeldukrinin}7 58.50 helreoustgommnd{inglish}{7 58.51 fontenodingltinenodingseletfont 58.52 letenodingdefultltinenoding 58.53 expndftersetdhyphenminsenglishhyphenmins 58.54 lngugeldenglish}7 58.55 letkrkrinin 58.56 letinginglish 58.57 letyrillitextkrinin 58.58 letyrkrinin
58.45 58.46

QSV

ine the X2 enoding does not ontin vtin lettersD we should mke some A rede(nitions of v i mros whih impliitly produe vtin lettersF
58.59

expndfterifxsnme dPendsnmerelxelse

e put \latinencoding in res to void prolems with \@alph inside miniE pges @eFgFD footnotes inside minipgesA where \@alph is expnded nd we get for exmple \fontencoding OT19 @\fontencoding is roustAF
58.60 58.61 58.62 58.63 58.64 58.65 58.66 58.67 58.68 58.69 58.70 58.71

defdlph5I{{fontenoding{ltinenoding}seletfont ifse5Ior or or or dor eor for gor hor ior jor kor lor mor nor oor por qor ror sor tor uor vor wor xor yor zelsedtrerrfi}}7 defdelph5I{{fontenoding{ltinenoding}seletfont ifse5Ior eor for gor hor ior por qor ror sor tor uor vor wor xor yor or or or or or or or or or or elsedtrerrfi}}7

nfortuntelyD the ommnds \AA nd \aa re not enoding dependent in A v i @unlike eFgFD \oe or \DHAF hey re de(ned s \r{A} nd \r{a}F his leds to unpreditle results when the font enoding does not ontin the vtin letters e9 nd 9 @like X2AF
helreextymolhefult{ee}{yI} helreextymolhefult{}{yI} 58.74 helreextgommnd{}{yI}{r } 58.75 helreextgommnd{ee}{yI}{r e} 58.76 fi
58.72 58.73

he following lok rede(nes the hrter lss of upperse qreek letters nd some entsD if it is equl to U @vrile fmilyAD to void inorret results if the font enoding in some mth fmily does not ontin these hrters in ples of yI enodingF he ode ws tken from amsmath.dtxF ee omments nd further explntion thereF
7 7 58.79 7 58.80 7 58.81 7 58.82 7 58.83 7 58.84 7 58.85 7 58.86 7 58.87 7 58.88 7 58.89 7 58.90 7 58.91 7 58.92 7 58.93 7 58.94 7
58.77 58.78

egingrouptode4aIP 7 upperse greek lettersX defdtemp5I{expndfterdtempmening5Irelxrelxrelxrelx 4HHHHdnil5I} defdtemp5I45P5Q5R5S5Tdnil5U{7 ifnum45PaU ountd4I5Q5R5Srelx ifnumountd`4IHHH else glolmthhrdef5Ua4H5Q5R5Srelx fi fi} dtempqmmdtempheltdtemphetdtempvmddtempi dtempidtempigmdtemppsilondtemphidtempsi dtempymeg 7 some entsX defdtemp5I5Pdnil{defdtemp{5I}}defdtemp{mthent} expndfterdtemphtrelxrelxdnil ifxdtempdtemp defdtemp5Idnil{5I}7 defdtemp5I{fterssignmentdtempmthhrdefdtempa}7 defdo5I45P{}

QSW

7 defdtempd5I{expndfterdtemp5Idnil 7 ifnumdtempb4ppp 58.97 7 xdef5I{mthent4expndfterdomeningdtempspe}7 58.98 7 fi} 58.99 7 dtempdhtdtempdhekdtempdtildedtempdutedtempdgrve 58.100 7 dtempddotdtempdddotdtempdrevedtempdr 58.101 7 fi 58.102 7 endgroup
58.95 58.96

he user must use the inputenc pkge when ny VEit gyrilli font enoding is usedD seleting one of the gyrilli input enodingsF e do not ssume ny defult input enodingD so the user should expliitly ll the inputenc pkge y \usepackage{inputenc}F e lso removed \AtBeginDocumentD so inputenc should e used efore babelF
difpkgeloded{inputen}{}{7 defreservedd{vx}7 58.105 ifxreserveddyrillienodingelse 58.106 defreservedd{yP}7 58.107 ifxreserveddyrillienodingelse 58.108 kgerning{el}7 58.109 {xo input enoding speified for krinin lnguge} 58.110 fifi}
58.103 58.104

xow we de(ne two ommnds tht o'er the possiility to swith etween gyrilli nd omn enodingsF
yrillitext ltintext

he ommnd \cyrillictext will swith from vtin font enoding to the gyrilli font enodingD the ommnd \latintext swithes kF his ssumes tht the norml9 font enoding is vtin oneF hese ommnds re declarationsD for shorter pees of text the ommnds \textlatin nd \textcyrillic n e usedF

7helreoustgommnd{ltintext}{7 7 fontenoding{ltinenoding}seletfont 58.113 7 defenodingdefult{ltinenoding}} 58.114 letltltintext


58.111 58.112

textyrilli textltin

hese ommnds tke n rgument whih is then typeset using the requested font enodingF
helreextpontgommnd{textyrilli}{yrillitext} 7helreextpontgommnd{textltin}{ltintext}

58.115 58.116

7ifxltxeundefinedletltxeefi 58.118 7rovideextgommndhefult{e}{textltin{ltxe}}


58.117 A nd v i logos enoding independentF 58.119 58.120

e mke the i

7ifxltxveundefinedletltxvevefi 7rovideextgommndhefult{ve}{textltin{ltxve}}

he next step onsists of de(ning ommnds to swith to @nd fromA the krinin lngugeF
ptionsukrinin

he mro \captionsukrainian de(nes ll strings used in the four stndrd A doument lsses provided with v iF he two ommnds \cyr nd \lat tivte gyrilli respF vtin enodingF QTH

ddtoptionsukrinin{7 defprefenme{{yrgyrsyrtyruyrp}}7 58.123 7 defprefenme{{yrgyreyrryreyrdyrmyroyrvyr}}7 58.124 defrefnme{7 58.125 {yrgvyriiyrtyreyrryryrtyruyrryr}}7 58.126 7 defrefnme{7 58.127 7 {yrgyreyrryreyrlyriiyrk 58.128 7 yrpyroyrsyriyrlyryrnyrsftsn}}7 58.129 defstrtnme{7 58.130 {yrgeyrnyroyrtyryryriiyry}}7 58.131 7 defstrtnme{{yrgyreyrfyreyrryryrt}}7 58.132 definme{7 58.133 {yrgfyriiyryrlyriiyroyrgupyrryryrfyriiyry}}7 58.134 7 definme{{yrgvyriiyrtyreyrryryrtyruyrryr}}7 58.135 defhpternme{{yrgyroyrzyrdyriiyrl}}7 58.136 7 defhpternme{{yrgqyrlyryrvyr}}7 58.137 defppendixnme{{yrghyroyrdyryrtyroyrk}}7 58.138 defontentsnme{{yrgyrmyriiyrsyrt}}7 58.139 deflistfigurenme{{yrgyreyrryreyrlyriiyrk 58.140 yriiyrlyryuyrsyrtyrryryryriiyrishrt}}7 58.141 deflisttlenme{{yrgyreyrryreyrlyriiyrk 58.142 yrtyryryrlyriyryrsftsn}}7 58.143 defindexnme{{yrgyroyrkyryrzhyrhyriyrk}}7 58.144 defuthornme{{yrgssyrmyreyrnyrnyriyrishrt 58.145 yrpyroyrkyryrzhyrhyriyrk}}7 58.146 deffigurenme{{yrgyriyrsF}}7 58.147 7 deffigurenme{yrgyriyrsyruyrnyroyrk}}7 58.148 deftlenme{{yrgyryryrlF}}7 58.149 7 deftlenme{yrgyryryrlyriyryry}}7 58.150 defprtnme{{yrggryryrsyrtyriyrnyr}}7 58.151 defenlnme{{yryrvyrkyrlyryrdyrkyr}}7 58.152 defnme{{yryrkyroyrpyriiyry}}7 58.153 defhedtonme{{yrghyro}}7 58.154 defpgenme{{yryrsF}}7 58.155 7 defpgenme{{yryrsyrtyroyrryriiyrnyrkyr}}7 58.156 defseenme{{yryrdyriyrvF}}7 58.157 deflsonme{{yryrdyriyrvF yrtyryrkyroyrzh}} 58.158 defproofnme{{yrghyroyrvyreyrdyreyrnyrnyry}}7 58.159 defglossrynme{{yrgyrlyroyrvyrnyriyrk 7 58.160 yrtyreyrryrmyriiyrnyriiyrv}}7 58.161 }
58.121 58.122

dteukrinin

he mro \dateukrainian rede(nes the ommnd \today to produe krinin dtesF

defdteukrinin{7 deftody{numerdy~ifsemonthor 58.164 yrsyriiyrhyrnyryor 58.165 yrlyryuyrtyroyrgyroor 58.166 yryreyrryreyrzyrnyryor 58.167 yrkyrvyriiyrtyrnyryor 58.168 yrtyrryryrvyrnyryor 58.169 yrhyreyrryrvyrnyryor 58.170 yrlyriyrpyrnyryor 58.171 yrsyreyrryrpyrnyryor
58.162 58.163

QTI

58.172 58.173 58.174 58.175 58.176

yrvyreyrryreyrsyrnyryor yrzhyroyrvyrtyrnyryor yrlyriyrsyrtyroyrpyryrdyror yrgyrryruyrdyrnyryfi spenumeryer~yrrF}}

extrsukrinin

he mro \extrasukrainian will perform ll the extr de(nitions needed for the krinin lngugeF he mro \noextrasukrainian is used to nel the tions of \extrasukrainianF he (rst tion we de(ne is to swith on the seleted gyrilli enoding whenever we enter ukrinin9F
ddtoextrsukrinin{yrillitext}
A hen the enoding de(nition (le ws proessed y v i the urrent font A enoding is stored in \latinencodingD ssuming tht v i uses T1 or OT1 s defultF herefore we swith k to \latinencoding whenever the krinin lnguge is no longer tive9F

58.177

58.178

ddtonoextrsukrinin{ltintext}

xext we must llow hyphention in the krinin words with postrophe whenever we enter ukrinin9F his solution ws proposed y ldimir olovih `vvvdvvvFvsuFrub
58.179 58.180

ddtoextrsukrinin{lode9a9} ddtonoextrsukrinin{lode9aH}

vertimdfont

sn order to get oth vtin nd gyrilli letters in vertim text we need to hnge A the de(nition of n internl v i ommnd somewhtX

7defvertimdfont{7 7 letenodingdefultltinenoding 58.183 7 normlfontttfmily 58.184 7 expndfterdefsnmeyrillienodingEmdendsnme55I55P{7 58.185 7 ifxprotetdtypesetdprotet 58.186 7 egingroupseextymolyrillienoding55Iendgroup 58.187 7 elsenoexpnd55Ifi}}
58.181 58.182

he tegory ode of the hrters :9D ;9D !9D nd ?9 is mde \active to insert little white speF por krinin @s well s for ussin nd qermnA the " hrter lso is mde tiveF xoteX st is very questionle whether the ussin typesetting trdition reE quires dditionl sping efore those puntution signsF hereforeD we mke the orresponding ode optionlF sf you need itD then de(ne the frenchpunct dostrip option in babel.insF forrowed from frenhF ome users dislike utomti insertion of spe efore doule puntution9D nd prefer to deide themselves whether spe should e dded or notY so hook \NoAutoSpaceBeforeFDP is providedX if this ommnd is dded @in (le ukraineb.cfgD or nywhere in doumentA ukraineb will respet your typingD nd introdue suitle spe efore doule puntution9 if and only if spe is typed in the soure (le efore those signsF he ommnd \AutoSpaceBeforeFDP swithes k to the defult ehvior of ukrainebF QTP

frenchpunct \initiate@active@char{:} 58.190 \initiate@active@char{;} 58.191 /frenchpunct 58.192 frenchpunct | spanishligs 58.193 \initiate@active@char{!} 58.194 \initiate@active@char{?} 58.195 /frenchpunct | spanishligs 58.196 inititedtivedhr{4}
58.188 58.189

he ode ove is neessry euse we need extr tive hrtersF he hrter " is used s indited in tle QRF e speify tht the krinin group of shorthnds should e usedF
58.197

ddtoextrsukrinin{lngugeshorthnds{ukrinin}}

hese hrters re turned on9 oneD lter their de(nition my vryF


ddtoextrsukrinin{7 frenchpunct \bbl@activate{:}\bbl@activate{;}% 58.200 frenchpunct | spanishligs \bbl@activate{!}\bbl@activate{?}% 58.201 ldtivte{4}} 58.202 ddtonoextrsukrinin{7 58.203 frenchpunct \bbl@deactivate{:}\bbl@deactivate{;}% 58.204 frenchpunct | spanishligs \bbl@deactivate{!}\bbl@deactivate{?}% 58.205 lddetivte{4}}
58.198 58.199

he X2 nd T2* enodings do not ontin spanish_shriek nd spanish_query symolsY s onsequeneD the ligtures ?`9 nd !`9 do not work with them @these hrters re useless for gyrilli texts nywyAF fut we de(ne the shorthnds to emulte these ligtures @optionllyAF e do not use \latinencoding here @ut insted expliitly use OT1A euse the user my hoose T2A to e the primry enodingD ut it does not ontin these hrtersF
spanishligs \declare@shorthand{ukrainian}{?`}{\UseTextSymbol{OT1}\textquestiondown} 58.208 \declare@shorthand{ukrainian}{!`}{\UseTextSymbol{OT1}\textexclamdown} 58.209 /spanishligs
58.206 58.207

ukrinindshdYd e hve to redue the mount of white spe efore ;D : nd !F his should only ukrinindshdXd hppen in horizontl modeD hene the test with \ifhmodeF ukrinindshd3d 58.210 frenchpunct ukrinindshdcd 58.211 \declare@shorthand{ukrainian}{;}{% 58.212 \ifhmode

sn horizontl mode we hek for the presene of spe9D unskip9 if it exists nd ple 0.1em kerningF
58.213 58.214 58.215

\ifdim\lastskip>\z@ \unskip\nobreak\kern.1em \else

sf no spe hs een typedD we dd \FDP@thinspace whih will e de(nedD up to the user9s wishesD s n utomti dded thinspeD or s \@emptyF
58.216 58.217 58.218

\fi \fi

\FDP@thinspace

QTQ

xow we n insert ;9 hrterF


58.219

\string;}

he other de(nitions re very similrF


\declare@shorthand{ukrainian}{:}{% \ifhmode 58.222 \ifdim\lastskip>\z@ 58.223 \unskip\nobreak\kern.1em 58.224 \else 58.225 \FDP@thinspace 58.226 \fi 58.227 \fi 58.228 \string:}
58.220 58.221

\declare@shorthand{ukrainian}{!}{% \ifhmode 58.231 \ifdim\lastskip>\z@ 58.232 \unskip\nobreak\kern.1em 58.233 \else 58.234 \FDP@thinspace 58.235 \fi 58.236 \fi 58.237 \string!}
58.229 58.230

\declare@shorthand{ukrainian}{?}{% \ifhmode 58.240 \ifdim\lastskip>\z@ 58.241 \unskip\nobreak\kern.1em 58.242 \else 58.243 \FDP@thinspace 58.244 \fi 58.245 \fi 58.246 \string?}
58.238 58.239

eutopefeforeph xoeutopefeforeph phdthinspe

\FDP@thinspace is de(ned s unrekle spes if \AutoSpaceBeforeFDP is tivted or s \@empty if \NoAutoSpaceBeforeFDP is in useF he defult is \AutoSpaceBeforeFDPF

\def\AutoSpaceBeforeFDP{% \def\FDP@thinspace{\nobreak\kern.1em}} 58.249 \def\NoAutoSpaceBeforeFDP{\let\FDP@thinspace\@empty} 58.250 \AutoSpaceBeforeFDP


58.247 58.248

phon he next mros llow to swith onGo' tiveness of doule puntution signsF phoff 58.251 \def\FDPon{\bbl@activate{:}% 58.252 \bbl@activate{;}% 58.253 \bbl@activate{?}% 58.254 \bbl@activate{!}} 58.255 \def\FDPoff{\bbl@deactivate{:}% 58.256 \bbl@deactivate{;}% 58.257 \bbl@deactivate{?}% 58.258 \bbl@deactivate{!}} systemdshdXd systemdshd3d systemdshdcd systemdshdYd

hen the tive hrters pper in n environment where their krinin eE hviour is not wnted they should give n expeted9 resultF herefore we de(ne shorthnds t system level s wellF QTR

\declare@shorthand{system}{:}{\string:} \declare@shorthand{system}{;}{\string;} 58.261 /frenchpunct 58.262 frenchpunct&!spanishligs 58.263 \declare@shorthand{system}{!}{\string!} 58.264 \declare@shorthand{system}{?}{\string?} 58.265 /frenchpunct&!spanishligs
58.259 58.260

o e le to de(ne the funtion of "9D we (rst de(ne ouple of support9 mrosF


dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "9F

egingroup tode4IP defreservedd{endgroup 58.268 defd{mthhr4UHIW } 58.269 defdq{4}} 58.270 reservedd


58.266 58.267

xow we n de(ne the doulequote mrosX germn nd frenh quotesF e use de(nitions of these quotes mde in elFstyF he frenh quotes re ontined in the T2* enodingsF
delredshorthnd{ukrinin}{4}{glqq} delredshorthnd{ukrinin}{49}{grqq} 58.273 delredshorthnd{ukrinin}{4`}{flqq} 58.274 delredshorthnd{ukrinin}{4b}{frqq}
58.271 58.272

ome dditionl ommndsX


delredshorthnd{ukrinin}{44}{hskipzdskip} delredshorthnd{ukrinin}{4~}{textormth{levevmodehox{E}}{E}} 58.277 delredshorthnd{ukrinin}{4a}{norekEhskipzdskip} 58.278 delredshorthnd{ukrinin}{4|}{7 58.279 textormth{norekdisretionry{E}{}{kernFHQem}7 58.280 llowhyphens}{}}
58.275 58.276

he next two mros for "- nd "--- re somewht di'erentF e must hek whether the seond token is hyphen hrterX
58.281

delredshorthnd{ukrinin}{4E}{7

sf the next token is -9D we typeset n emdshD otherwise hyphen signX


58.282 58.283 58.284 58.285

defukrinindshdtmp{7 ifukrinindshdnextEexpndfterukrinindshdemdsh elseexpndfterukrinindshdhyphenfi }7

i looks for the next token fter the (rst -9X the mening of this token is written to \ukrainian@sh@next nd \ukrainian@sh@tmp is lledF
58.286

futureletukrinindshdnextukrinindshdtmp}

rere re the de(nitions of hyphen nd emdshF pirst the hyphenX


58.287 58.288

defukrinindshdhyphen{7 norekEldllowhyphens}

QTS

por the emdsh de(nitionD there re the two prmetersX we must et9 two lst hyphen signs of our emdshF F F X
58.289

defukrinindshdemdsh5I5P{dshE5I5P}

dsh

F F F these two prmeters re useful for nother mroX \cdashX

7ifxdshundefined 7 should e defined erlier defdsh5I5P5Q{deftempxd{5Q}7 58.292 deftempd{E}deftempd{~}deftempd{B}7 58.293 ifxtempxdtempddedshelse 58.294 ifxtempxdtempddfdshelse 58.295 ifxtempxdtempddgdshelse 58.296 errmessge{rong usge of dsh}fififi}
58.290 58.291

seond prmeter @or third for \cdashA shows wht kind of emdsh to rete in next step

"---

ordinry @plinA gyrilli emdsh inside textX n unrekle thinspe will e inserted efore only in se of space efore the dsh @it is neessry for dshes fter disply mths formuleX there ould e listsD enumertions etF strted with " where a is FFF iFeFD the dsh strts lineAF @pirstly there were plnned rther soft rules for userX he my put spe efore the dsh or notF fut it is di0ult to ple this thinspe utomtillyD iFeFD y heking modes euse fter disply formule i uses horizontl modeF wye there is misunderstndingc wye there is nother wycA efter dsh rekle thinspe is lwys pledY

7 ht is more grmmtillyX FPem or FPfontdimenTfont c defdedsh{ifdimlstskipbzdunskipnorekhskipFPemfi 58.299 yrdshhskipFPemignorespes}7


58.297 58.298

"--~

emdsh in ompound nmes or surnmes @like wendeleev!ulpeironAY this dsh hs no spe hrters roundY fter the dsh some spe is dded \exhyphenalty

58.300 58.301

defdfdsh{levevmodeifdimlstskipbzdunskipfi norekyrdshpenltyexhyphenpenltyhskipzdskipignorespes}7

"--*
58.302 58.303

for denoting diret speeh @ spe like \enskip must follow the emdshAY

defdgdsh{levevmode norekyrdshnorekhskipFQSemignorespes}7 58.304 7fi yrdsh

pinlly the mro for ody of the gyrilli emdshF he \cyrdash mro will e de(ned in se this mro hsn9t een de(ned in fonten (leF por PB fontsD yrdsh will e pled in the ode of the inglish emdsh thus it uses ligture ---F

7 ss there n sp neessryc ifxyrdshundefined 58.307 defyrdsh{hox toFVem{EEhssEE}} 58.308 fi


58.305 58.306

rere relly new mro"to ple thinspe etween initilsF his mro used insted of \, llows hyphention in the following surnmeF
58.309

delredshorthnd{ukrinin}{4D}{norekhskipFPemignorespes}

QTT

mdqon ell tht9s left to do now is to de(ne ouple of ommnds for "F mdqoff 58.310 defmdqon{ldtivte{4}} 58.311 defmdqoff{lddetivte{4}}

he krinin hyphention ptterns n e used with \lefthyphenmin nd \righthyphenmin set to PF


providehyphenmins{gurrentyption}{twdtwd} 7 temporry hkX 58.314 ifxenglishhyphenminsundefined 58.315 defenglishhyphenmins{twdthrdd} 58.316 fi
58.312 58.313

xow the tion \extrasukrainian hs to exeute is to mke sure tht the ommnd \frenchspacing is in e'etF sf this is not the se the exeution of \noextrasukrainian will swith it o' ginF
58.317 58.318

ddtoextrsukrinin{ldfrenhsping} ddtonoextrsukrinin{ldnonfrenhsping}

xext we dd new enumertion style for krinin mnusripts with gyrilli lettersD nd lter on we de(ne some mth opertor nmes in ordne with krinin nd ussin typesetting trditionsF
esuk

e egin y de(ning \Asbuk whih works like \AlphD ut produes @upperseA gyrilli letters inted of vtin onesF he letters gqD nd px re skippedD s usul for suh enumertionF

defesuk5I{expndfterdesuksnme d5Iendsnme} defdesuk5I{ifse5Ior 58.321 georgforgorgqorghorgiorgsior 58.322 grorgorgsorgssorgsorgsror 58.323 guorgvorgworgxorgyorgorgor 58.324 gorgorgorgporgrorggorggror 58.325 grorgrgrorgorgeelsedtrerrfi}
58.319 58.320

suk

he mro \asbuk is similr to \alphY it produes lowerse krinin lettersF

defsuk5I{expndfterdsuksnme d5Iendsnme} defdsuk5I{ifse5Ior 58.328 yroryroryrvoryrgoryrdoryreoryrieor 58.329 yrzhoryrzoryrioryriioryryioryrishrtor 58.330 yrkoryrloryrmoryrnoryrooryrporyrror 58.331 yrsoryrtoryruoryrforyrhoryroryrhor 58.332 yrshoryrshhoryryuoryryelsedtrerrfi}
58.326 58.327

et up defult gyrilli mth lphetsF he mth groups for yrilli letters re de(ned in the enoding de(nition (lesF pirstD delre new lphet for symolsD \cyrmathrmD sed on the symol font for gyrilli letters de(ned in the enoding de(nition (leF xoteD tht y defult gyrilli letters re tken from upright font in mth mode @unlike vtin lettersAF
7equirekge{textmth} difundefined{symyrillienoding letters}{}{7 58.335 etymolpont{yrillienoding letters}{old}yrillienoding 58.336 rmdefultfdefultupdefult 58.337 helreymolpontelphetyrmthrm{yrillienoding letters}
58.333 58.334

QTU

end we need few ommnds to e le to swith to di'erent vrintsF


helrewthelphetyrmthfyrillienoding rmdefultfdefultupdefult 58.340 helrewthelphetyrmthsfyrillienoding 58.341 sfdefultmddefultupdefult 58.342 helrewthelphetyrmthityrillienoding 58.343 rmdefultmddefultitdefult 58.344 helrewthelphetyrmthttyrillienoding 58.345 ttdefultmddefultupdefult 58.346 7 58.347 etwthelphetyrmthsf{old}yrillienoding 58.348 sfdefultfdefultupdefult 58.349 etwthelphetyrmthit{old}yrillienoding 58.350 rmdefultfdefultitdefult 58.351 }
58.338 58.339

ome mth funtions in krinin nd ussin mth ooks hve other nmesX eFgFD sinh in ussin is written s sh etF o we de(ne numer of new mth opertorsF \sinhX
58.352

defsh{mthop{opertordfont sh}nolimits} defh{mthop{opertordfont h}nolimits} deftg{mthop{opertordfont tg}nolimits} defrtg{mthop{opertordfont rtg}nolimits} defrtg{mthop{opertordfont rtg}nolimits}

\coshX
58.353

\tanX
58.354

\arctanX
58.355

rtgX
58.356

he following mro on)its with \th de(ned in vtin I enodingX \tanhX


ddtoextrsrussin{7 eldsve{th}7 58.359 letltxdthth 58.360 defth{textormth{ltxdth}7 58.361 {mthop{opertordfont th}nolimits}}7 58.362 }
58.357 58.358

\cotX
58.363

deftg{mthop{opertordfont tg}nolimits} defth{mthop{opertordfont th}nolimits} defose{mthop{opertordfont ose}nolimits}

\cothX
58.364

\cscX
58.365

end (nlly some other krinin nd ussin mthemtil symolsX


defro{mthop{kernzdmthsf{}}nolimits} 58.367 defrine{mthop{kernzdmthsf{h}}nolimits} 58.368 defnsd{mthop{yrmthrm{yrnFyrsFyrdF}}nolimits} 58.369 defnsk{mthop{yrmthrm{yrnFyrsFyrkF}}nolimits}
58.366

QTV

defxh{mthop{yrmthrm{gxggh}}nolimits} defxu{mthop{yrmthrm{gxggu}}nolimits} 58.372 defnod{mthop{yrmthrm{yrnFyroFyrdF}}nolimits} 58.373 defnok{mthop{yrmthrm{yrnFyroFyrkF}}nolimits} 58.374 defxyh{mthop{yrmthrm{gxgygh}}nolimits} 58.375 defxyu{mthop{yrmthrm{gxgygu}}nolimits} 58.376 defroj{mthop{yrmthrm{gyrr}}nolimits}
58.370 58.371

7 7 7 7

cccccc cccccc cccccc cccccc

his is for omptiility with older krinin pkgesF


helreoustgommnd{xo}{7 58.378 ifmmode{nfssdtext{textnumero}}elsetextnumerofi}
58.377

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
58.379 58.380

ldfdfinish{ukrinin} /code

QTW

59

The Lower Sorbian language

he (le lsorbian.dtx70 st de(nes ll the lngugeEspei( mros for vower orE inF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
59.1 59.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD lsorbian will e n unknown9 lngugeD in whih se we hve to mke it knownF o we hek for the existene of \l@lsorbian to see whether we hve to do someE thing hereF es babel lso knwos the option lowersorbian we hve to hek tht s wellF
ifxldlowersorindundefined ifxldlsorindundefined 59.5 dnoptterns{vsorin} 59.6 dddiletldlsorinzd 59.7 letldlowersorinldlsorin 59.8 else 59.9 letldlowersorinldlsorin 59.10 fi 59.11 else 59.12 letldlsorinldlowersorin 59.13 fi
59.3 59.4

he next step onsists of de(ning ommnds to swith to @nd fromA the vower orin lngugeF
ptionslsorin

dnmedef{ptionsgurrentyption}{7 defprefenme{wod}7 59.16 defrefnme{efereny}7 59.17 defstrtnme{estrkt}7 59.18 definme{vitertur}7 59.19 defhpternme{upitl}7 59.20 defppendixnme{hodwki}7 59.21 defontentsnme{op9simje9se}7 59.22 deflistfigurenme{pis worzow}7 59.23 deflisttlenme{pis tulkow}7 59.24 defindexnme{sndeks}7 59.25 deffigurenme{orz}7 59.26 deftlenme{ulk}7 59.27 defprtnme{9v el}7 59.28 defenlnme{9sil og}7 59.29 defnme{gg}7 59.30 defhedtonme{uomu}7 59.31 defpgenme{tron}7 59.32 defseenme{glF}7 59.33 deflsonme{glF~teke}7
59.14 59.15

he mro \captionslsorbian de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF

2008/03/17. It was written by Eduard Werner (edi@kaihh.hanse.de).

70 The

le described in this section has version number v1.0g and was last revised on

QUH

59.34 59.35 59.36

defproofnme{roof}7 `EE needs trnsltion defglossrynme{qlossry}7 `EE xeeds trnsltion }7

newdtelsorin

he mro \newdatelsorbian rede(nes the ommnd \today to produe vower orin dtesF

dnmedef{newdtegurrentyption}{7 deftody{numerdyF~ifsemonthor 59.39 jnuror feruror mv eror prylor mjor 59.40 junijor julijor wgustor septemror oktoror 59.41 nowemror deemrfi 59.42 spe numeryer}}
59.37 59.38

olddtelsorin

he mro \olddatelsorbian rede(nes the ommnd \today to produe oldEstyle vower orin dtesF

dnmedef{olddtegurrentyption}{7 deftody{numerdyF~ifsemonthor 59.45 wjelikego rov zkor 59.46 ml ego rov zkor 59.47 nlv etnikor 59.48 jtv sownikor 59.49 rov zownikor 59.50 smv znikor 59.51 prv znikor 59.52 v znje9nor 59.53 pov znje9nor 59.54 winowor 59.55 nzymnikor 59.56 godownikfi spe numeryer}}
59.43 59.44

he defult will e the newEstyle dtesF


expndfterletsnme dtegurrentyptionexpndfterendsnme 59.58 snme newdtegurrentyptionendsnme
59.57

extrslsorin noextrslsorin

he mro \extraslsorbian will perform ll the extr de(nitions needed for the lsorin lngugeF he mro \noextraslsorbian is used to nel the tions of \extraslsorbianF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
dnmedef{extrsgurrentyption}{} dnmedef{noextrsgurrentyption}{}

59.59 59.60

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
59.61 59.62

ldfdfinishgurrentyption /code

QUI

60

The Upper Sorbian language

he (le usorbian.dtx71 st de(nes ll the lngugeEspei( mros for pper orinF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
60.1 60.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD usorbian will e n unknown9 lngugeD in whih se we hve to mke it knownF o we hek for the existene of \l@usorbian to see whether we hve to do someE thing hereF es babel lso knwos the option uppersorbian we hve to hek tht s wellF
ifxlduppersorindundefined ifxldusorindundefined 60.5 dnoptterns{sorin} 60.6 dddiletldusorinzd 60.7 letlduppersorinldusorin 60.8 else 60.9 letlduppersorinldusorin 60.10 fi 60.11 else 60.12 letldusorinlduppersorin 60.13 fi
60.3 60.4

he next step onsists of de(ning ommnds to swith to @nd fromA the pper orin lngugeF
ptionsusorin

dnmedef{ptionsgurrentyption}{7 defprefenme{wod}7 60.16 defrefnme{efereny}7 60.17 defstrtnme{estrkt}7 60.18 definme{vitertur}7 60.19 defhpternme{upitl}7 60.20 defppendixnme{hodwki}7 60.21 defontentsnme{osh}7 60.22 deflistfigurenme{pis worzow}7 60.23 deflisttlenme{pis tulkow}7 60.24 defindexnme{sndeks}7 60.25 deffigurenme{orz}7 60.26 deftlenme{ulk}7 60.27 defprtnme{h9zv el}7 60.28 defenlnme{v rl oh}7 60.29 defnme{gg}7 60.30 defhedtonme{uomu}7 60.31 defpgenme{tron}7 60.32 defseenme{hlF}7 60.33 deflsonme{hlF~tev z}
60.14 60.15

he mro \captionsusorbian de(nes ll strings used in the four stndrd doE A umentlsses provided with v iF

2008/03/17. It was written by Eduard Werner (edi@kaihh.hanse.de).

71 The

le described in this section has version number v1.0k and was last revised on

QUP

60.34 60.35 60.36

defproofnme{roof}7 `EE needs trnsltion defglossrynme{qlossry}7 `EE xeeds trnsltion }7

newdteusorin

he mro \newdateusorbian rede(nes the ommnd \today to produe pper orin dtesF

dnmedef{newdtegurrentyption}{7 deftody{numerdyF~ifsemonthor 60.39 jnuror feruror mv eror prylor mejeor junijor 60.40 julijor wgustor septemror oktoror 60.41 nowemror deemrfi 60.42 spe numeryer}}
60.37 60.38

olddteusorin

he mro \olddateusorbian rede(nes the ommnd \today to produe oldEstyle pper orin dtesF

dnmedef{olddtegurrentyption}{7 deftody{numerdyF~ifsemonthor 60.45 wulkeho r9ov zkor ml eho r9ov zkor nlv etnikor 60.46 jutrownikor r9ov zownikor smv znikor prv znikor 60.47 v znjenor pov znjenor winowor nzymnikor 60.48 hodownikfi spe numeryer}}
60.43 60.44

he defult will e the newEstyle dtesF


expndfterletsnme dtegurrentyptionexpndfterendsnme 60.50 snme newdtegurrentyptionendsnme
60.49

extrsusorin

he mro \extrasusorbian will perform ll the extr de(nitions needed for the pper orin lngugeF st9s pirted from germanb.styF he mro \noextrasusorbian is used to nel the tions of \extrasusorbianF feuse for pper orin @s well s for huthA the " hrter is mde tiveF his is done oneD lter on its de(nition my vryF

inititedtivedhr{4} dnmedef{extrsgurrentyption}{lngugeshorthnds{usorin}} 60.53 expndfterddtosnme extrsgurrentyptionendsnme{7 60.54 ldtivte{4}}


60.51 60.52

hon9t forget to turn the shorthnds o' ginF


60.55 60.56

expndfterddtosnme extrsgurrentyptionendsnme{7 lddetivte{4}}

sn order for i to e le to hyphente qermn pper orin words whih ontin 9 we hve to give the hrter nonzero \lccode @see eppendix rD the iookAF es some of the other lnguge de(nitions turn the hrter ^ into shorthnd we need to mke sure tht it hs it9s orginil de(nition hereF
egingroup todeU defx{endgroup 60.59 expndfterddtosnme extrsgurrentyptionendsnme{7 60.60 eldsvevrile{lode}7 60.61 lode}} 60.62 x
60.57 60.58

he umlut ent mro \" is hnged to lower the umlut dotsF he rede(nition is done with the help of \umlautlowF
60.63

expndfterddtosnme extrsgurrentyptionendsnme{7

QUQ

eldsve4umlutlow} expndfterddtosnme noextrsgurrentyptionendsnme{7 60.66 umluthigh}


60.64 60.65

he pper orin hyphention ptterns n e used with \lefthyphenmin nd \righthyphenmin set to PF


60.67

providehyphenmins{gurrentyption}{twdtwd}

dq

e sve the originl doule quote hrter in \dq to keep it villeD the mth ent \" n now e typed s "F elso we store the originl mening of the ommnd \" for future useF

egingroup tode4IP defx{endgroup 60.70 defd{mthhr4UHIW } 60.71 defdq{4}} 60.72 x


60.68 60.69

xow we n de(ne the doulequote mrosX the umlutsD


delredshorthnd{usorin}{4}{textormth{4{}}{ddot 60.74 delredshorthnd{usorin}{4o}{textormth{4{o}}{ddot 60.75 delredshorthnd{usorin}{4u}{textormth{4{u}}{ddot 60.76 delredshorthnd{usorin}{4e}{textormth{4{e}}{ddot 60.77 delredshorthnd{usorin}{4y}{textormth{4{y}}{ddot 60.78 delredshorthnd{usorin}{4}{textormth{4{}}{ddot
60.73

}} o}} u}} e}} y}} }}

tremsD
delredshorthnd{usorin}{4e}{textormth{4{e}}{ddot e}} delredshorthnd{usorin}{4i}{textormth{4{i}}{ddot i}} 60.81 delredshorthnd{usorin}{4i}{textormth{4{i}}{ddotimth}} 60.82 delredshorthnd{usorin}{4s}{textormth{4{s}}{ddot s}}
60.79 60.80

usorin esEzet @shrp sAD


60.83 60.84

delredshorthnd{usorin}{4s}{textormth{ss{}}{d{}}} delredshorthnd{usorin}{4}{}

germn nd frenh quotesD


delredshorthnd{usorin}{4}{7 textormth{quotedlse}{mox{quotedlse}}} 60.87 delredshorthnd{usorin}{49}{7 60.88 textormth{textquotedlleft}{mox{textquotedlleft}}} 60.89 delredshorthnd{usorin}{4`}{7 60.90 textormth{guillemotleft}{mox{guillemotleft}}} 60.91 delredshorthnd{usorin}{4b}{7 60.92 textormth{guillemotright}{mox{guillemotright}}}
60.85 60.86

disretionry ommnds
delredshorthnd{usorin}{4}{textormth{lddis delredshorthnd{usorin}{4g}{textormth{lddis 60.95 delredshorthnd{usorin}{4f}{textormth{lddis 60.96 delredshorthnd{usorin}{4p}{textormth{lddis 60.97 delredshorthnd{usorin}{4l}{textormth{lddis 60.98 delredshorthnd{usorin}{4v}{textormth{lddis 60.99 delredshorthnd{usorin}{4m}{textormth{lddis 60.100 delredshorthnd{usorin}{4w}{textormth{lddis 60.101 delredshorthnd{usorin}{4n}{textormth{lddis
60.93 60.94

k}{}} gu}{g}} f{ff}}{f}} p{pp}}{p}} l{ll}}{l}} v{vv}}{v}} m{mm}}{m}} w{ww}}{w}} n{nn}}{n}}

QUR

delredshorthnd{usorin}{4x}{textormth{lddis delredshorthnd{usorin}{4p}{textormth{lddis 60.104 delredshorthnd{usorin}{4}{textormth{lddis 60.105 delredshorthnd{usorin}{4t}{textormth{lddis 60.106 delredshorthnd{usorin}{4}{textormth{lddis


60.102 60.103

x{xx}}{x}} p{pp}}{p}} {}}{}} t{tt}}{t}} {}}{}}

nd some dditionl ommndsX


delredshorthnd{usorin}{4E}{norekEldllowhyphens} delredshorthnd{usorin}{4|}{7 60.109 textormth{norekdisretionry{E}{}{kernFHQem}7 60.110 llowhyphens}{}} 60.111 delredshorthnd{usorin}{44}{hskipzdskip}
60.107 60.108

mdqon ell tht9s left to do now is to de(ne ouple of ommnds for resons of omptE mdqoff iility with german.styF k 60.112 defmdqon{shorthndon{4}} 60.113 defmdqoff{shorthndoff{4}} 60.114 defk{llowhyphensdisretionry{kE}{k}{k}llowhyphens}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
60.115 60.116

ldfdfinishgurrentyption /code

QUS

61

The Turkish language

he (le turkish.dtx72 de(nes ll the lnguge de(nition mros for the urkish lnguge73 F urkish typogrphi rules speify tht little white spe9 should e dded efore the hrters :9D !9 nd =9F sn order to insert this white spe utomtE illy these hrters re mde tive9F elso \frenhspacing is setF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
61.1 61.2

code vdfsnit{turkish}ptionsturkish

hen this (le is red s n optionD iFeF y the \usepackage ommndD turkish ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@turkish to see whether we hve to do something hereF
ifxldturkishdundefined dnoptterns{urkish} 61.5 dddiletldturkishHfi
61.3 61.4

he next step onsists of de(ning ommnds to swith to @nd fromA the urkE ish lngugeF
ptionsturkish

ddtoptionsturkish{7 defprefenme{4yns4oz}7 61.8 defrefnme{uynklr}7 61.9 defstrtnme{4yzet}7 61.10 definme{uynk }7 61.11 defhpternme{f4ol4um}7 61.12 defppendixnme{ik}7 61.13 defontentsnme{Fs indekiler}7 61.14 deflistfigurenme{ ekil vistesi}7 61.15 deflisttlenme{lo vistesi}7 61.16 defindexnme{hizin}7 61.17 deffigurenme{ ekil}7 61.18 deftlenme{lo}7 61.19 defprtnme{ui si m}7 61.20 defenlnme{Fsli sik}7 61.21 defnme{hiu ger eli i lr}7 61.22 defhedtonme{eli i}7 61.23 defpgenme{yf}7 61.24 defsujetnme{Fslgili}7 61.25 defseenme{kzF}7 61.26 deflsonme{yri kzF}7 61.27 defproofnme{uni t}7 61.28 defglossrynme{qlossry}7 `EE xeeds trnsltion 61.29 }7
61.6 61.7

he mro \captionsturkish de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

72 The

le described in this section has version number v1.2m and was last revised on Burc,

2005/03/31.

73 Mustafa

based on the work by Pierre Mackay; Turgut Uyar, translations in version 1.2j and later

z6001@rziris01.rrz.uni-hamburg.de provided the code for this le. It is uyar@cs.itu.edu.tr supplied additional

QUT

dteturkish

he mro \dateturkish rede(nes the ommnd \today to produe urkish dtesF

defdteturkish{7 deftody{numerdy~ifsemonthor 61.32 ykor utor wrtor xisnor wyi{}sor rzirnor 61.33 emmuzor eu gustosor iyl4ulor ikimor usi{}mor 61.34 erli{}kfi 61.35 spenumeryer}}
61.30 61.31

extrsturkish noextrsturkish

he mro \extrasturkish will perform ll the extr de(nitions needed for the urkish lngugeF he mro \noextrasturkish is used to nel the tions of \extrasturkishF urkish typogrphi rules speify tht little white spe9 should e dded efore the hrters :9D !9 nd =9F sn order to insert this white spe utomtE illy these hrters re mde \activeD so they hve to e treted in speil wyF

inititedtivedhr{X} inititedtivedhr{3} 61.38 inititedtivedhr{a}


61.36 61.37

e speify tht the turkish group of shorthnds should e usedF


61.39

ddtoextrsturkish{lngugeshorthnds{turkish}} ddtoextrsturkish{7 ldtivte{X}ldtivte{3}ldtivte{a}}

hese hrters re turned on9 oneD lter their de(nition my vryF


61.40 61.41

por urkish texts \frenchspacing should e in e'etF e mke sure this is the se nd reset it if neessryF
61.42 61.43

ddtoextrsturkish{ldfrenhsping} ddtonoextrsturkish{ldnonfrenhsping}

turkishdshd3d turkishdshdad turkishdshdXd

he de(nitions for the three tive hrters were mde using intermedite mrosF hese re de(ned nowF he insertion of extr white spe9 should only hppen outside mth modeD hene the hek \ifmmode in the mrosF

delredshorthnd{turkish}{X}{7 ifmmode 61.46 stringX7 61.47 elserelx 61.48 ifhmode 61.49 ifdimlstskipbzd 61.50 unskippenltydwthinspe 61.51 fi 61.52 fi 61.53 stringX7 61.54 fi} 61.55 delredshorthnd{turkish}{3}{7 61.56 ifmmode 61.57 string37 61.58 elserelx 61.59 ifhmode 61.60 ifdimlstskipbzd 61.61 unskippenltydwthinspe 61.62 fi
61.44 61.45

QUU

fi string37 61.65 fi} 61.66 delredshorthnd{turkish}{a}{7 61.67 ifmmode 61.68 stringa7 61.69 elserelx 61.70 ifhmode 61.71 ifdimlstskipbzd 61.72 unskipkernfontdimenPfont 61.73 kernEIFRfontdimenQfont 61.74 fi 61.75 fi 61.76 stringa7 61.77 fi}
61.63 61.64

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
61.78 61.79

ldfdfinish{turkish} /code

QUV

62

The Hebrew language

he (le hebrew.dtx74 provides the following pkges nd (les for rerew lnE guge supportX

hebrew.ldf (le de(nes ll the lngugeEspei( mros for the rerew lngugeF rlbabel.def (le is used y hebrew.ldf for idiretionl versions of the mjor A v i ommnds nd environmentsF st is designed to e used with other rightEtoEleft lngugesD not only with rerewF hebcal.sty pkge de(nes set of mros for omputing rerew dte from qregorin oneF
edditionl rerew input nd font enoding de(nition (les tht should e inE luded nd used with hebrew.ldf reX

hebinp.dtx provides rerew input enodingsD suh s sy VVSWEVD w indows odepge IPSS or sfw g odepge VTP @see etion TQ on pge RPPAF hebrew.fdd ontins rerew font enodingsD relted font de(nition (les nd hebfont pkge tht provides rerew font swithing ommnds @see eE tion TR on pge RPW for further detilsAF
A v i PFHW omptiility (les re inluded with heb209.dtx nd gives possiilE A ity to ompile existing v i PFHW rerew douments with smll @if nyA hnges @see etion TS on pge RRT for detilsAF pinllyD optionl doument lss hebtech my e useful for writing theses nd disserttions in oth rerew nd inglish @nd ny other lnguges inluded with babelAF st designed to meet requirements of the qrdute hool of the ehnion " ssrel snstitute of ehnologyF

As of version 2.3e hebtech is no longer distributed together with heblatex. It should be part of a new "hebclasses" package

62.1 Acknowledgement
he following people hve ontriuted to rerew pkge in one wy or notherD knowingly or unknowinglyF sn lphetil orderX srin ermoviiD niv frE guryD el huinskyD ergio pogelD hn rrnD m orrtD wihil ozmnD elon ivF tin moilov nd itly urzhsky found numer of serious ugs in preliminry version of rerew pkgeF e numer of other people hve ontriuted omments nd informtionF pei( ontriutions re knowledged within the doumentF s wnt to thnk my wifeD itD nd sonD wishkD for their in(nite love nd ptieneF sf you mde ontriution nd s hven9t mentioned itD don9t worryD it ws n identF s9m sorryF tust tell me nd s will dd you to the next versionF
74 The
Hebrew language support les described in this section have version number v2.3h and were last revised on 2005/03/30.

QUW

62.2 The docstrip modules


he following modules re used in the implementtion to diret generting externl (lesX driver herew rightleft lendr e typil produe doumenttion driver (le produe rerew lnguge support (le rete rightEtoEleft support (le rete rerew lendr pkge

docstrip

in

docstrip ommnd (le would then hve entries likeX

\generateFile{hebrew.ldf}{t}{\from{hebrew.dtx}{hebrew}}

62.3 Hebrew language denitions


he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
62.1 62.2

hebrew vdfsnit{herew}{ptionsherew}

hen this (le is red s n optionD iFeFD y the \usepackage ommndD hebrew will e n unknown9 lngugeD in whih se we hve to mke it knownF o we hek for the existene of \l@hebrew to see whether we hve to do something hereF
ifxldherewdundefined dnoptterns{rerew}7 62.5 dddiletldherewH 62.6 fi
62.3 62.4

herewenoding

FIX DOCS REGARDING 8BIT

ypesetting rerew texts implies tht speil input nd output enoding needs to e usedF qenerllyD the user my hoose etween di'erent ville rerew enodings providedF he urrent support for rerew uses ll ville fonts from the rerew niversity of teruslem enoded in oldEode9 UEit enoding lso known s ssreli tndrd sEWTHF e de(ne for these fonts the vol rerew inoding LHE @see the (le hebrew.fdd for more detilsAD nd the LHE enoding de(nition (le should e loded y defultF yther fonts re ville in windowsEpIPSS @ superset of syEVVSWEV with nikudAF por thoseD the enoding HE8 should e usedF uh fonts reD eFgFD windows9 rueype fonts @one nverted to ypeI or wetpontA nd sfw9s ypeI fontsF roweverD if n user wnts to use nother font enodingD for exmpleD yrilli enoding P nd extended ltin enoding ID " heGshe hs to lod the orreE sponding (le before the hebrew pkgeF his my e done in the following wyX

\usepackage[LHE,T2,T1]{fontenc} \usepackage[hebrew,russian,english]{babel}
A e mke sure tht the LHE enoding is known to v i t end of this pkgeF elso note tht if you wnt to use the enoding HE8 D you should de(ne the following in your doumentD before loading babel X

\def\HeblatexEncoding{HE8} \def\HeblatexEncodingFile{he8enc}
QVH

provideommnd{reltexinoding}{vri}7 provideommnd{reltexinodingpile}{lheen}7 62.9 newommnd{heltexdsetdenoding}P{ 62.10 } 62.11 etindyfkge{7 62.12 difpkgeloded{fonten}{7 62.13 difldded{def}{7 62.14 reltexinodingpile}{defherewenoding{reltexinoding}}{}7 62.15 }{7 62.16 input{reltexinodingpileFdef}7 62.17 defherewenoding{reltexinoding}7 62.18 }}
62.7 62.8

e lso need to lod inputen pkge with one of the rerew input enodingsF fy defultD we set up the 8859-8 odepgeF sf n user wnts to use mny input enodings in the sme doumentD for exmpleD the w indows rerew odepge cp1255 nd the stndrd sfw g ussin odepge cp866D heGshe hs to lod the orresponding (le before the herew pkge tooF his my e done in the following wyX

\usepackage[cp1255,cp866]{inputenc} \usepackage[hebrew,russian,english]{babel}
en user n swith input enodings in the doument using the ommnd \inputencodingD for exmpleD to use the cp1255X

\inputencoding{cp1255}
62.19 62.20

etindyfkge{7 difpkgeloded{inputen}{}{equirekgeVVSWEV{inputen}}}

he next step onsists of de(ning ommnds to swith to @nd fromA the reE rew lngugeF
herewhyphenmins

his mro is used to store the orret vlues of the hyphention prmeters \lefthyphenmin nd \righthyphenminF hey re set to PF
providehyphenmins{gurrentyption}{twdtwd}

62.21

ptionsherew

ddtoptionsherew{7 defprefenme{densured{hememheethevvhelef}}7 62.24 defrefnme{densured{hereshheshinheyodhememhetv 7 62.25 hememheqofhevvhereshhevvhetv}}7 62.26 defstrtnme{densured{hetvheqofhetsdiheyodheresh}}7 62.27 definme{densured{heetheyodheethelmedheyodhevv7 62.28 hegimelhereshhepeheyodhehe}}7 62.29 defhpternme{densured{hepehereshheqof}}7 62.30 defppendixnme{densured{henunhesmekhhepehehet}}7 62.31 defontentsnme{densured{7 62.32 hetvhevvhekfhefinlnun 7 62.33 heyinhenunheyodheyodhenunheyodhefinlmem}}7 62.34 deflistfigurenme{densured{7 62.35 hereshheshinheyodhememhetv 7 62.36 helefheyodhevvhereshheyodhefinlmem}}7
62.22 62.23

he mro \captionshebrew reples ll ptions used in the four stndrd doE A ument lsses provided with v i P with their rerew equivlentsF

QVI

62.37 62.38 62.39 62.40 62.41 62.42 62.43 62.44 62.45 62.46 62.47 62.48 62.49 62.50 62.51 62.52 62.53 62.54 62.55

deflisttlenme{densured{7 hereshheshinheyodhememhetv hetetheethelmedhelefhevvhetv}}7 defindexnme{densured{hememhepehetvhehet}}7 deffigurenme{densured{helefheyodhevvheresh}}7 deftlenme{densured{hetetheethelmedhehe}}7 defprtnme{densured{hehethelmedheqof}}7 defenlnme{densured{hereshhetsdi4heet}}7 defnme{densured{heheheyinhetvheqofheyod7 hefinlmem}}7 defhedtonme{densured{helefhelmed}}7 defpgenme{densured{heyinhememhevvhedlet}}7 defpsnme{densured{henunFheetF}}7 defseenme{densured{hereshhelefhehe}}7 deflsonme{densured{hereshhelefhehe hegimel7 hememesof}}7 defproofnme{densured{hehehevvhekfhehethehe}} defglossrynme{densuredv{qlossry}}7 `EE xeeds trnsltion

slidelel

rere we (x the mro slidelabel of the seminr pkgeF xote tht this still won9t work well enough when overlys will e involved

diflssloded{seminr}{7 defslidelel{f ifdrl{heshinheqofhefinlpe{} theslide}7 62.58 elsev{lide theslide}7 62.59 fi}7 62.60 }{}
62.56 62.57

rere we provide n user with trnsltion of qregorin dtes to rerewF sn dditionD the hebcal pkge n e used to rete rerew lendr dtesF
hemonth

he mro \hebmonth{month } produes month nmes in rerewF

defhemonth5I{7 ifse5Ior heyodhenunhevvhelefhereshor 7 62.63 hepeheethereshhevvhelefhereshor 7 62.64 hememhereshhefinltsdior 7 62.65 helefhepehereshheyodhelmedor 7 62.66 hememhelefheyodor heyodhevvhenunheyodor 7 62.67 heyodhevvhelmedheyodor 7 62.68 helefhevvhegimelhevvhesmekhhetetor 7 62.69 hesmekhhepehetethememheethereshor 7 62.70 helefhevvheqofhetethevvheethereshor 7 62.71 henunhevvheethememheethereshor 7 62.72 hedlethetsdihememheethereshfi}
62.61 62.62

hedte

he mro \hebdate{day }{month }{year } trnsltes given qregorin dte to rerewF

defhedte5I5P5Q{7 egineginvnumer5Iendv heethemonth{5P} 62.75 eginvnumer5Qendvend}


62.73 62.74

hedy

he mro \hebday will reple \today ommnd when in rerew modeF


defhedy{hedte{dy}{month}{yer}}

62.76

QVP

dteherew

he mro \datehebrew rede(nes the ommnd \today to produe qregorin dtes in rerewF st uses the mro \hebdayF
defdteherew{lettodyahedy}

62.77

he mro \extrashebrew will perform ll the extr de(nitions needed for the rerew lngugeF he mro \noextrashebrew is used to nel the tions of \extrashebrewF
extrsherew

e swith font enoding to rerew nd diretion to rightEtoEleftF e nE not use the regulr lnguge swithing ommnds @for exmpleD \sethebrew nd \unsethebrew or \selectlanguage{hebrew}AD when in restrited horizonE tl modeD euse it will result in unbalanced \beginR or \beginL primitivesF snstedD in i9s restrited horizontl modeD the \L{latin text } nd \R{hebrew text }D or \embox{latin text } nd \hmbox{hebrew text } should e usedF reneD we use \beginR nd \beginL swithing ommnds only when not in restrited horizontl modeF

ddtoextrsherew{7 toherew7 62.80 ifhmodeifinnerelseeginfifi}


62.78 62.79

noextrsherew

he mro \noextrashebrew is used to nel the tions of \extrashebrewF e swith k to the previous font enoding nd restore leftEtoEright diretionF

ddtonoextrsherew{7 fromherew7 62.83 ifhmodeifinnerelseeginvfifi}


62.81 62.82

qenerllyD we n swith toE nd fromE rerew y mens of stndrd babelE de(ned ommndsD for exmpleD

\selectlanguage{hebrew}
or

\begin{otherlanguage}{hebrew} some rerew text \end{otherlanguage}


xow we de(ne two dditionl ommnds tht o'er the possiility to swith to nd from rerew lngugeF hese ommnds re kwrd omptile with the previous versions of hebrew.styF
setherew unsetherew

he ommnd \sethebrew will swith from the urrent font enoding to the heE rew font enodingD nd from the urrent diretion of text to the rightEtoEleft modeF he ommnd \unsethebrew swithes kF foth ommnds use stndrd rightEtoEleft swithing mros \setrllanguage{ r2l language name } nd \unsetrllanguage{r2l language name }D tht de(ned in the rlbabel.def (leF
defsetherew{setrllnguge{herew}} defunsetherew{unsetrllnguge{herew}}

62.84 62.85

herewtext noherewtext

A he following two ommnds re obsolete nd work only in v iPFHW omptiilE ity modeF hey re synonyms of \sethebrew nd \unsethebrew de(ned oveF

QVQ

ifdomptiility letherewtextasetherew 62.88 letnoherewtextaunsetherew 62.89 fi


62.86 62.87

toherew fromherew

hese two ommnds hnge only the urrent font enoding toE nd fromE reE rew enodingF heir implementtion uses \@torl{language name } nd \@fromrl mros de(ned in rlbabel.def (leF foth ommnds my e useful only for pkE ge nd lss writersD not for regulr usersF
deftoherew{dtorl{herew}}7 deffromherew{dfromrl}

62.90 62.91

dherew

ometimes we need to preserve rerew mode without knowing in whih environE ment we re loted nowF por these sesD the \@hebrew{hebrew text } mro will e usefulF xot tht this mro is similr to the \@number nd \@latin mros de(ned in rlbabel.def (leF
defddherew5I{egin{{toherew5I}}end} defdherew{protetddherew}

62.92 62.93

62.3.1

Hebrew numerals

e provide ommnds to print numers in the trditionl nottion using rerew lettersF e need ommnds tht print rerew numer from deiml inputD s well s ommnds to print the vlue of ounter s rerew numerF
ifdgimdpost ifdgimdfinl

rerew numers n e written in vrious stylesX with or without postrophesD nd with the letters kfD memD nunD peD tsdi s either (nl or initil forms when they re the lst letters in the sequeneF e provide two )gs to set the style optionsF
newififdgimdpost newififdgimdfinl 7 whether we print postrophes 7 whether we use finl or initil letters

62.94 62.95

herewnumerl rerewnumerl rerewnumerlfinl

he ommnds tht print rerew numer must speify the style lollyX relying on glol style option ould use ounter to print in n inonsistent mnner" for instneD pge numers might pper in di'erent styles if the glol style option hnged midEwy through doumentF he ommnds only llow three of the four possile )g omintions @s do not know of use tht requires the omintion of (nl letters nd no postrophes !eAF ih ommnd sets the style )gs nd lls \@hebrew@numeralF houle res re used in order to protet the vlues of \@tempcnta nd \@tempcntbD whih re hnged y this llY they lso keep the )g ssignments lol @this is not importnt euse the glol vlues re never usedAF

newommndB{herewnumerl}I 7 no postropheD no finl letters {{dgimdfinlflsedgimdpostflsedherewdnumerl{5I}}} 62.98 newommndB{rerewnumerl}I 7 postropheD no finl letters 62.99 {{dgimdfinlflsedgimdposttruedherewdnumerl{5I}}} 62.100 newommndB{rerewnumerlfinl}I 7 postropheD finl letters 62.101 {{dgimdfinltruedgimdposttruedherewdnumerl{5I}}}
62.96 62.97

lph dlph elph delph elphfinl delphfinl

gounterEprinting ommnds re sed on the ove ommndsF he nturl nme for the ounterEprinting ommnds is \alphD euse rerew numerls re the only wy to represent numers with rerew letters @kf lwys mens PHD never IIAF QVR

rerew hs no upperse lettersD hene no need for the fmilir mening of \AlphY we therefore de(ne \alph to print ounters s rerew numerls without postroE phesD nd \Alph to print with postrophesF e third formD \AlphfinalD is provided to print with postrophes nd (nl lettersD s is required for rerew yer designE torsF he ommnds \alph nd \Alph re de(ned in latex.ltxD nd we only need to rede(ne the internl ommnds \@alph nd \@AlphY for \Alphfinal we need to provide oth wrpper nd n internl ommndF he ounter printing omE mnds re mde semiEroustX without the \protectD ommnds like \theenumii rek @s9m not quite ler on why this hppensD !eAY t the sme timeD we nnot mke the ommnds too roust @eFgF with \DeclareRobustCommandA euse this would enter the ommnd nme rther thn its vlue into (les like .auxD .toc etF he old menings of mening of \@alph nd \@Alph re sved upon entering rerew mode nd restored upon exiting itF
ddtoextrsherew{7 letsveddlphadlph7 62.104 letsveddelphadelph7 62.105 renewommndB{dlph}I{protetherewnumerl{numer5I}}7 62.106 renewommndB{delph}I{protetrerewnumerl{numer5I}}7 62.107 defelphfinl5I{expndfterdelphfinlsnme d5Iendsnme}7 62.108 provideommndB{delphfinl}I{protetrerewnumerlfinl{numer5I}}} 62.109 ddtonoextrsherew{7 62.110 letdlphasveddlph7 62.111 letdelphasveddelph}
62.102 62.103

xote tht \alph @without postrophesA is lredy the pproprite hoie for the seondElevel enumerte lelD nd \Alph @with postrophesA is n pproprite A hoie for ppendixY howeverD the defult v i lels need to e rede(ned for A pproprite rossErefereningD see elowF v i defult lss (les speify \Alph for the fourthElevel enumerte levelD this should proly e hngedF elsoD the wy lels get )ushed left y defult looks inpproprite for rerew numerlsD so we should rede(ne \labelenumii s well s \labelenumiv @presently not impleE mentedAF
theenumii theenumiv lel

grossEreferenes to ounter lels need to e printed ording to the lnguge environment in whih lel ws issuedD not the environment in whih it is lledX for exmpleD lel @IA issued in vtin environment should e referred to s @IA in rerew textD nd lel @PdletA issued in rerew environment should e referred to s @PdletA in vtin textF his ws the unnimous opinion in poll sent to the svrii listF e therefore rede(ne \theenumii nd \theenumivD so tht n expliit lnguge instrution gets written to the .aux (leF

renewommnd{theenumii} {ifdrlprotetherewnumerl{numerdenumii}7 62.114 elseprotetv{protetddlph{numerdenumii}}fi} 62.115 renewommnd{theenumiv} 62.116 {ifdrlprotetrerewnumerl{numerdenumiv}7 62.117 elseprotetv{protetddelph{numerdenumiv}}fi}
62.112 62.113

e lso need to ontrol for the font nd diretion in whih ounter lel is printedF hiretion is strightforwrdX vtin lel like @IA should e written leftEtoEright when lled in rerew textD nd rerew lel like @PdletA should e written rightEtoEleft when lled in vtin textF he font question is more deliteD euse we should deide whether the numerls should e typeset in QVS

the font of the lnguge enviroment in whih the lel ws issuedD or tht of the environment in whih it is lledF

e purely numeri lel like @PQA looks est if it is set in the font of the surrounding lngugeF fut mixed lphnumeri lel like @IA lookes weird if the I9 is tken from the rerew fontY likewiseD @PdletA looks weird if the P9 is tken from vtin fontF pinllyD mixing the two possiilities is worstD euse single rerew senE tene referring to exmples @IA nd @PA would tke the I9 from the vtin font nd the P9 from the rerew fontD nd this looks relly wfulF @st is lso very hrd to implementAF
sn light of the on)iting onsidertions it seems like there9s no perfet solutionF s hve hosen to implement the top optionD where numerls re tken from the font of the surrounding lngugeD euse it seems to me tht referene to purely numeri lels is the most ommonD so this gives good solution to the mjority of ses nd mediore solution to the minorityF e rede(ne the \label ommnd whih writes to the .aux (leF hepending on the lnguge environment we issue pproprite \beginR/L \endR/L ommnds to ontrol the diretion without 'eting the fontF ine these ommnds do not 'et the vlue of \if@rlD we nnot use the mro \@brackets to determine the orret rkets to e used with \p@enumiiiY instedD we let the lnguge environment determine n expliit de(nitionF
deflel5I{dsphk ifdrl 62.120 defpdenumiii{pdenumiiAtheenumii@}7 62.121 proteteddwriteduxout{}7 62.122 {stringnewlel{5I}{{egindurrentlelend}{thepge}}}7 62.123 else 62.124 defpdenumiii{pdenumii@theenumiiA}7 62.125 proteteddwriteduxout{}7 62.126 {stringnewlel{5I}{{eginvdurrentlelendv}{thepge}}}7 62.127 fi 62.128 desphk}
62.118 62.119

xyiX it ppers tht the de(nition of \label is lngugeEindependent nd thus elongs in rlbabel.defD ut this is not the seF he deision to typeset lel numerls in the font of the surrounding lnguge is resonle for rerewD eE use mixedEfont @IA nd @PdletA re somewht eptleF he sme my not e eptle for eriD whose numerl glyphs re rdilly di'erent from those in the vtin fontsF he deision out the diretion my lso e di'erent for erE iD whih is more rightEtoEleft oriented thn rerew @two exmplesX dtes like ISGTGPHHQ re written leftEtoEright in rerew ut rightEtoEleft in eriY equE tions like 1 + 2 = 3 re written leftEtoEright in rerew ut rightEtoEleft in eri elementry shool textooks using eri numerl glyphsAF wy personl hunh is tht lel like @IA in n eri text would e typeset leftEtoEright if the I9 is estern glyphD ut rightEtoEleft if the I9 is n eri glyphF fut this is just guessD s9d hve to sk er typesetters to (nd the orret nswerF !eF
ppendix

he following ode provides for the proper printing of ppendix numers in tles of ontentsF etion nd hpter hedings re normlly ilingulX regrdless of QVT

the text lngugeD the uthor supplies eh setionGhpter with two hedings" one for the rerew tle of ontents nd one for the vtin tle of ontentsF st mkes sense tht the lel should e vtin letter in the vtin tle of ontents nd rerew letter in the rerew tle of ontentsF he de(nition is similr to tht of \theenumii nd \theenumiv oveD ut dditionl \protect ommnds ensure tht the entire ondition is written the .aux (leF he ppendix numer will therefore e typeset ording to the environment in whih it is used rther thn issuedX rerew numer @with postrophesA in rerew environment nd vtin pitl letter in vtin environment @the ommnd \@@Alph is set in A rlbabel.def to hold the defult mening of v i ltin \@AlphD regrdless of the mode in whih it is issuedAF he net result is tht the seond ppendix will e mrked with f9 in the vtin tle of ontents nd with et9 in the rerew tle of ontentsY the mrk in the min text will depend on the lnguge of the ppendix itselfF
diflssloded{letter}{}{7 diflssloded{slides}{}{7 62.131 letddppendixappendix7 62.132 diflssloded{rtile}{7 62.133 renewommndppendix{ddppendix7 62.134 renewommndthesetion 62.135 {protetifdrlprotetrerewnumerl{numerdsetion}7 62.136 protetelseddelphdsetionprotetfi}}} 62.137 {renewommndppendix{ddppendix7 62.138 renewommndthehpter 62.139 {protetifdrlprotetrerewnumerl{numerdhpter}7 62.140 protetelseddelphdhpterprotetfi}}}}}
62.129 62.130

isyxX is this lso the pproprite wy to refer to n ppendix in the textD or should we retin the originl lel the sme wy we did with enumerate lelsc exyri isyxX re similr rede(nitions needed for other ounters tht generte texts in ilingul lists like .lof/.fol nd .lot/.tolc !eF
dherewdnumerl

he ommnd \@hebrew@numeral prints rerew numerF he groups of thouE sndsD millionsD illions re seprted y postrophes nd typeset without postroE phes or (nl lettersY the reminder @under IHHHA is typeset onventionllyD with the seleted styles for postrophes nd (nl lettersF he funtion lls on \gim@no@mil to typeset eh threeEdigit lokF he lgorithm is reursiveD ut the mximum reE ursion depth is R euse i only llows numers up to 231 1 = 2,147,483,647F he typesetting routine is wrpped in \@hebrew in order to ensure tht numers re lwys typeset in rerew modeF snitilizeX \@tempcnta holds the vlueD \@tempcntb is used for lultionsF

newommndB{dherewdnumerl}I {dherew{dtempnta5Idtempnta5Irelx 62.143 dividedtempnt y IHHH


62.141 62.142

sf we9re under IHHHD ll \gim@nomil


62.144

ifnumdtempntaHgimdnomildtempntrelx

sf we9re ove IHHH then fore no postrophe nd no (nl letter styles for the vlue ove IHHHD reur for the vlue ove IHHHD dd n postropheD nd ll \gim@nomil for the reminderF
62.145 62.146

else{dgimdpostflsedgimdfinlflsedherewdnumerldtempnt}97 multiplydtempnt y IHHHrelx

QVU

62.147 62.148 62.149 62.150

fi }}

dvnedtempnt y Edtempntrelx gimdnomildtempntrelx

xyiX is it the se tht ISDHHH nd ITDHHH re written s yodEhe nd yodEvvD rther thn tetEvv nd tetEzyinc his vguely rings ellD ut s9m not ertinF sf this is the seD then the urrent ehvior is inorret nd should e hngedF !eF
gimdnomil

he ommnd \gim@nomil typesets n integer etween H nd WWW @for H it typesets nothingAF he ode hs een modi(ed from the old hebcal.sty @pproprite redits"foris vvv nd wihil ozmn cAF \@tempcnta holds the totl vlue tht remins to e typesetF et eh stge we (nd the highest vlued letter tht is less thn or equl to \@tempcntaD nd ll on \gim@print to sutrt this vlue nd print the letterF snitilizeX \@tempcnta holds the vlueD there is no previous letterF
newommndB{gimdnomil}I{dtempnta5Idgimdprevflse dtempntadtempntdividedtempnt y IHHrelx 7 hundreds digit ifsedtempnt 7 print nothing if no hundreds orgimdprint{IHH}{heqof}7 orgimdprint{PHH}{heresh}7 orgimdprint{QHH}{heshin}7 orgimdprint{RHH}{hetv}7 orhetvdgimdprevtruegimdprint{SHH}{heqof}7 orhetvdgimdprevtruegimdprint{THH}{heresh}7 orhetvdgimdprevtruegimdprint{UHH}{heshin}7 orhetvdgimdprevtruegimdprint{VHH}{hetv}7 orhetvdgimdprevtruehetvgimdprint{WHH}{heqof}7 fi

62.151

pind the hundreds digitF


62.152 62.153 62.154 62.155 62.156 62.157 62.158 62.159 62.160 62.161 62.162 62.163

pind the tens digitF he numers IS nd IT re trditionlly printed s tetEvv @9 + 6A nd tetEzyin @9 + 7A to void spelling the vord9s nmeF
62.164 62.165 62.166 62.167 62.168 62.169 62.170 62.171

dtempntadtempntdividedtempnt y IHrelx 7 tens digit ifsedtempnt 7 print nothing if no tens or 7 numer etween IH nd IW ifnumdtempnt a IT gimdprint {W}{hetet}7 tetEzyin elseifnumdtempnt a IS gimdprint {W}{hetet}7 tetEvv else gimdprint{IH}{heyod}7 fi 7 dtempnt a IS fi 7 dtempnt a IT

snitil or (nl forms re seleted ording to the urrent style optionY \gim@print will fore nonE(nl letter in nonE(nl position y mens of lol style hngeF
62.172 62.173 62.174 62.175 62.176 62.177 62.178 62.179 62.180

fi

orgimdprint{PH}{ifdgimdfinlhefinlkfelsehekffi}7 orgimdprint{QH}{helmed}7 orgimdprint{RH}{ifdgimdfinlhefinlmemelsehememfi}7 orgimdprint{SH}{ifdgimdfinlhefinlnunelsehenunfi}7 orgimdprint{TH}{hesmekh}7 orgimdprint{UH}{heyin}7 orgimdprint{VH}{ifdgimdfinlhefinlpeelsehepefi}7 orgimdprint{WH}{ifdgimdfinlhefinltsdielsehetsdifi}7

QVV

rint the ones digitF


62.181 62.182 62.183 62.184 62.185 62.186 62.187 62.188 62.189 62.190 62.191 62.192

ifsedtempnt orgimdprint{I}{helef}7 orgimdprint{P}{heet}7 orgimdprint{Q}{hegimel}7 orgimdprint{R}{hedlet}7 orgimdprint{S}{hehe}7 orgimdprint{T}{hevv}7 orgimdprint{U}{hezyin}7 orgimdprint{V}{hehet}7 orgimdprint{W}{hetet}7 fi

7 print nothing if no ones

gimdprint ifdgimdprev

he tul printing routine typesets digit with the pproprite postrophesX if numer sequene onsists of single letter then it is followed y single postropheD nd if it onsists of more thn one letter then doule postrophe is inserted efore the lst letterF e typeset the letters one t timeD keeping )g tht tells us if ny previous letters hd een typesetF
newififdgimdprev 7 flg if previous letter hs een typeset

62.193

por eh letterD we (rst sutrt its vlue from the totlF henD

if the result is zero then this is the lst letterY we hek the )g to see if this is the only letter nd print it with the pproprite postropheY if the result is not zero then there remin dditionl letters to e typesetY we print without n postrophe nd set the previous letter9 )gF

\@tempcnta holds the totl vlue tht remins to e typesetF e (rst dedut the letter9s vlue from \@tempcntaD so \@tempcnta is zero if nd only if this is the lst letterF
62.194 62.195

newommndB{gimdprint}P{7 5P is letterD 5I is its vlueF dvnedtempnt y E5Irelx7 dedut the vlue from the reminder

sf this is the lst letterD we print with the pproprite postrophe @depending on the style optionAX if there is preeding letterD print "x if the style lls for postrophesD x if it doesn9tY otherwiseD this is the only letterX print x' if the style lls for postrophesD x if it doesn9tF
62.196 62.197 62.198

ifnumdtempntaH7 if this is the lst letter ifdgimdprevifdgimdpost4fi5P7 else5Pifdgimdpost9fifi7

sf this is not the lst letterX print nonE(nl form @y foring lol style optionA nd set the previous letter9 )gF
62.199

else{dgimdfinlflse5P}dgimdprevtruefi}

her gim

he older rerew ounter ommnds \hebr nd \gim re retined in order to keep older douments from rekingF hey re set to e equivlent to \alphD nd their use is depretedF xote tht \hebr gives di'erent results thn it hd in the pst"it now typesets II s yodElef rther thn kfF
letheralph letgimalph

62.200 62.201

QVW

por kwrd omptiility with older9 hebrew.sty pkgesD we de(ne reE A rew equivlents of some useful v i ommndsF xoteD howeverD tht VEit mros de(ned in rerew re no longer supportedF
defheopy{protet{heheheyinhetvheqof}} defheinl{protet{hereshhetsdi4heet}} 62.204 defhepge{protet{heyinhememhevvhedlet}} 62.205 defheto{protet{heyinhedlet}}
62.202 62.203

\hadgesh produe poor mn9s old @hevy printoutAD when used with norml font glyphsF st is dvisle to use old font @for exmpleD Dead Sea A insted of this mroF
defhdgesh5I{levevmodesetoxHahox{5I}7 kernEFHPSemopyHkernEwdH 62.208 kernFHSemopyHkernEwdH 62.209 kernEFHPSemriseFHRQQemoxH }
62.206 62.207

ifdomptiility defpisk5I{item{5I}hngindentaEhngindent} 62.212 defpiskpisk5I{itemitem{5I}hngindentaEhngindent} 62.213 fi


62.210 62.211

\piska nd \piskapiska sometimes used in older9 herew souresD nd should A not e used in v i P F

letmkfgdolatextendsh letmkfnkatextemdsh 62.216 letgereshatextquoteright 62.217 letopengereshatextquoteright 62.218 letlosegereshatextquoteleft 62.219 letopenquoteatextquotedlright 62.220 letlosequoteatextquotedlleft 62.221 letleftquottionatextquotedlright 62.222 letrightquottionatextquotedlleft
62.214 62.215

he following ommnds re simply synonyms for the stndrd onesD provided A with v i P F

e need to ensure tht rerew is used s the defult rightEtoEleft lnguge t \begin{document}F he mehnism of de(ning the \@rllanguagename is the sme s in babel9s \languagenameX the lst rightEtoEleft lnguge in the \usepackage{babel} line is set s the defult rightEtoEleft lnguge t doument eginningF por exmpleD the following odeX

\usepackage[russian,hebrew,arabic,greek,english]{babel}
will set the eri lnguge s the defult rightEtoEleft lnguge nd the inglish lnguge s the defult lngugeF es resultD the ommnds \L{} nd \embox{} will use inglish nd \R{} nd \hmbox{} will use eri y defultF hese defults n e hnged with the next \sethebrew or \selectlanguage{language name } ommndF
62.223

etfeginhoument{defdrllngugenme{herew}}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
62.224 62.225

ldfdfinish{herew} /hebrew

QWH

62.4 Right to left support


A his (le rlbabel.def de(nes neessry idiretionl mro support for v i P F st is designed for use not only with rerewD ut with ny ightEtoEveft lngugesD supported y babelF he mros provided in this (le re lnguge nd enoding independentF ightEtoEleft lnguges will use i extensionsD nmely i primitives \beginLD \endL nd \beginRD \endRD urrently implemented only in Ei nd in iEEiF sf Ei is usedD we should swith it to the enhanced modeX

rightleft ifxeestteundefinedelse7 62.228 eestteaI 62.229 fi


62.226 62.227

xoteD tht Ei9s formt (le should e reted for extended modeF wode n e heked y running Ei on some i (leD for exmpleX

This is e-TeX, Version 3.14159-1.1 (Web2c 7.0) entering extended mode


he seond line should e entering extended modeF e hek if user uses ightEtoEveft enled engine insted of regulr unuth9s iX

ifxeginvdundefined7 newlinehrt 62.232 typeout{to void this error messgeDt7 62.233 run eEEe or eEe engine insted of regulr eFt} 62.234 errmessge{ightEtoEveft upport irrorX use eEEe or eEe 62.235 engine}7 62.236 fi
62.230 62.231

62.4.1

Switching from LR to RL mode and back

\@torl nd \@fromrl re lled eh time the horizontl diretion hngesF hey do ll tht is neessry esides hnging the diretionF gurrently their tsk is to hnge the enoding informtion nd mode @ondition \if@rlAF hey should not normlly e lled y usersX userElevel mrosD suh s \sethebrew nd \unsethebrewD s well s babel9s \selectlanguage re de(ned in lngugeE de(nition (les nd should e used to hnge defult lnguge @nd diretionAF vol diretion hnging ommnds @for smll piees of textAX \L{}D \R{}D \embox{} nd \hmbox{} re de(ned elow in this (le in lngugeEindependent mnnerF
ifdrl

rltrue mens tht the min mode is urrently ightEtoEveftF rlfalse mens tht the min mode is urrently veftEtoEightF
newififdrl

62.237

ifdrlmin

his is the min diretion of the doumentF nlike \if@rl it is set one nd never hngesF

rltrue mens tht the doument is ightEtoEveftF rlfalse mens tht the doument is veftEtoEightF
QWI

rtilly \if@rlmain is set ording to the vlue of \if@rl in the eginning of the runF
etfeginhoument{7 rere we set the min doument diretion newififdrlmin7 62.240 ifdrl7 eFgX if the options to el were englishDherew 62.241 drlmintrue7 62.242 else7 eFgX if the options to el were herewDenglish 62.243 drlminflse7 62.244 fi7 62.245 }
62.238 62.239

dtorl

withes urrent diretion to ightEtoEveftX sves urrent veftEtoEight enE oding in \lr@encodingdefaultD sets required ightEtoEveft lnguge nme in \@rllanguagename @similr to babel9s \languagenameA nd hnges deretionF he ightEtoEveft lnguge enoding should e de(ned in .ldf (le s speil mro reted y ontention of the lnguge nme nd string encodingD for exmpleD for rerew it will e \hebrewencodingF

helreoustgommnd{dtorl}I{7 ifdrlelse7 62.248 letlrdenodingdefultaenodingdefult7 62.249 fi7 62.250 defdrllngugenme{5I}7 62.251 defenodingdefult{snme5Ienodingendsnme}7 62.252 fontenoding{enodingdefult}7 62.253 seletfont7 62.254 drltrue}
62.246 62.247

dfromrl

ypposite to \@torlD swithes urrent diretion to veftEtoEightX restores sved veftEtoEight enoding @\lr@encodingdefaultA nd hnges diretionF

helreoustgommnd{dfromrl}{7 ifdrl7 62.257 letenodingdefultalrdenodingdefult7 62.258 fi7 62.259 fontenoding{enodingdefult}7 62.260 seletfont7 62.261 drlflse}
62.255 62.256

seletlnguge

his stndrd babel9s mro should e rede(ned to support idiretionl tlesF e divide \selectlanguage implementtion to two prtsD nd the (rst prt lls the seond \@@selectlanguageF

expndfterdefsnme seletlnguge endsnme5I{7 edeflngugenme{7 62.264 ifnumespehraexpndfterstring5Idempty 62.265 else string5Idemptyfi}7 62.266 ddseletlnguge{lngugenme}}
62.262 62.263

ddseletlnguge

his new internl mro rede(nes (nl prt of the stndrd babel9s \selectE language implementtionF A tndrd v i provides us with Q tlesX le of gontents @.tocAD vist of pigures @.lofAD nd vist of les @.lotAF sn multiElingul texts mixing veftEtoE ight lnguges with ightEtoEveft onesD the use of vrious diretions in one tle results in very ugly outputF hereforeD these Q stndrd tles will e used now QWP

only for veftEtoEight lngugesD nd we will dd Q ightEtoEveft tles @their extensions re simply reversed onesAX v le of gontents @.cotAD v vist of pigures @.folAD nd v vist of les @.lofAF
defddseletlnguge5I{7 seletdlnguge{5I}7 62.269 ifdfilesw 62.270 proteteddwriteduxout{}{stringseletdlnguge{5I}}7 62.271 ifdrl7 62.272 ddtoontents{ot}{xstringseletdlnguge{5I}}7 62.273 ddtoontents{fol}{xstringseletdlnguge{5I}}7 62.274 ddtoontents{tol}{xstringseletdlnguge{5I}}7 62.275 else7 62.276 ddtoontents{to}{xstringseletdlnguge{5I}}7 62.277 ddtoontents{lof}{xstringseletdlnguge{5I}}7 62.278 ddtoontents{lot}{xstringseletdlnguge{5I}}7 62.279 fi7 62.280 fi}
62.267 62.268

setrllnguge unsetrllnguge

he \setrllanguage nd \unsetrllanguage pir of mros is proved to very useful in ilingul textsD for exmpleD in rerewEinglish textsF he lngugeE spei( ommndsD for exmpleD \sethebrew nd \unsethebrew use these mros s sisF smplementtion sves nd restores other lnguge in \other@languagename vrileD nd uses internl mro \@@selectlanguageD de(ned oveD to swith etween lngugesF

letotherdlngugenmealngugenme helreoustgommnd{setrllnguge}I{7 62.283 ifdrlelse7 62.284 letotherdlngugenmealngugenme7 62.285 fi7 62.286 deflngugenme{5I}7 62.287 ddseletlnguge{lngugenme}}
62.281 62.282

helreoustgommnd{unsetrllnguge}I{7 ifdrl7 62.290 letlngugenmeaotherdlngugenme7 62.291 fi 62.292 ddseletlnguge{lngugenme}}


62.288 62.289

v reltexedefinev

wros for hnging diretionD originlly tken from qotF sgeX \L{Left to Right text } nd \R{Right to Left text }F xumers should lso e enlosed in \L{}D s in \L{123}F xoteD tht these mros do not reeive lnguge nme s prmeterF snstedD the sved \@rllanguagename will e usedF e ssume tht eh ightEtoEveft lnguge de(nes \tolanguagename nd \fromlanguagename mros in lnguge de(nition (leD for exmpleD for rerewX \tohebrew nd \fromhebrew mros in hebrew.ldf (leF he mros \L nd \R inlude protet9 to to mke them roust nd llow useD for exmpleD in tlesF hue to the ft tht some pkges hve di'erent de(nitions for \L the mro \HeblatexRedefineL is provided to overide themF his my e required with hyperrefD for instneF

QWQ

letnexta defreltexedefinev{7 62.295 defv{protetpv}7 62.296 } 62.297 reltexedefinev 62.298 defpv{protetfterssignmentmorev letnexta } 62.299 defmorev{retext ftergroupendv eginvsnme 62.300 fromdrllngugenmeendsnme}
62.293 62.294

def{protetp} defp{protetfterssignmentmore letnexta } 62.303 defmore{retext ftergroupend eginsnme 62.304 todrllngugenmeendsnme} 62.305 defretext{iftnext{elseiftnext}fi 62.306 errmessge{wissing left re hs een sustituted}fi group} 62.307 everydisply{ifdrlftergroupeginfi }
62.301 62.302

densured wo smll internl mrosD El \ensuremath densuredv 62.308 defdensured5I{ifdrl5Ielse{5I}fi} 62.309 defdensuredv5I{ifdrlv{5I}else5Ifi}

ke re of ightEtoEveft indenttion in every prgrphF yriginllyD \noindent ws rede(ned for rightEtoEleft y niv frguryD then the implemenE ttion ws rewritten y elon iv using n ide y ghris owleyX \noindent now works unmodi(edF
defrldeverypr{ifdrl{setoxzdlstoxeginuseoxzd}fi} letodeverypraeverypr 62.312 defeverypr5I{odeverypr{rldeverypr5I}}
62.310 62.311

hmox emox

seful vox ommndsF ell text in mth formuls is est enlosed in theseX v text in \embox nd v text in \hmboxF \mbox{} is useless for oth sesD sine it typesets in veftEtoEight even for ightEtoEveft lnguges @dditions y niv frguryAF
newommnd{hmox}I{mox{{5I}}} newommnd{emox}I{mox{v{5I}}}

62.313 62.314

drkets

hen in ightEtoEveft modeD rkets should e swppedF his mro reeives Q prmetersX left rketD ontentD right rketF frkets n e squre rketsD resD or prenthesesF
defdrkets5I5P5Q{protetifdrl 5Q5P5Iprotetelse 5I5P5Qprotetfi}

62.315 62.316

dnumer dltin

\@number preserves numers diretion from veft to ightF \@latin in ddition swithes urrent enoding to the ltinF

defddnumer5I{ifmmodeelseeginvfi5Iifmmodeelseendvfi} defddltin5I{ddnumer{{dfromrl5I}}} 62.319 defdnumer{protetddnumer} 62.320 defdltin{protetddltin}


62.317 62.318

62.4.2

Counters

o mke ounter referenes work in ight to veft textD we need to surround their originl de(nitions with n \@number{F F F } or \@latin{F F F }F xoteD tht lngugeE spei( ountersD suh s \hebr or \gim re provided with lnguge de(nition (leF QWR

e strt with sving the originl de(nitionsX


letddriadri letddromnadromn 62.323 letddomnadomn 62.324 letddlphadlph 62.325 letddelphadelph
62.321 62.322

dri eri nd romn numers should e from veft to ightF sn dditionD romn dromn numerlsD oth lowerE nd upperEse should e in ltin enodingF domn 62.326 defdri5I{dnumer{ddri5I}} 62.327 defdromn5I{dltin{ddromn5I}} 62.328 defdomn5I{dltin{ddomn5I}} rinorl

his mro preserves the originl de(nition of \arabic @overrides the overriding of \@arabicA
defrinorl5I{expndfterddrisnme d5Iendsnme}

62.329

mkedlr

sn ight to veft douments ll ounters de(ned in the stndrd doument A lsses articleD report nd book provided with v i P D suh s \thesectionD \thefigureD \theequation should e typed s numers from left to rightF o ensure diretionD we use the following \make@lr{counter } mroX

defmkedlr5I{egingroup toksdaexpndfter{5I}7 62.332 edefx{endgroup 62.333 defnoexpnd5I{noexpnddnumer{thetoksd}}}7 62.334 x}


62.330 62.331

diflssloded{letter}{}{7 diflssloded{slides}{}{7 62.337 mkedlrthesetion 62.338 mkedlrthesusetion 62.339 mkedlrthesususetion 62.340 mkedlrtheprgrph 62.341 mkedlrthesuprgrph 62.342 mkedlrthefigure 62.343 mkedlrthetle 62.344 } 62.345 mkedlrtheeqution 62.346 }
62.335 62.336

62.4.3
e
62.347 62.348

Preserving logos

A A reserve iD v i nd v i P logosF

letddee defe{dltin{dde}} letddveve defve{dltin{ddve}} letddveevee defvee{dltin{ddvee}}

ve
62.349 62.350

vee
62.351 62.352

QWS

62.4.4

List environments

vist environments in ightEtoEveft lngugesD re tiked nd indented from the right insted of from the leftF ell the de(nitions tht used indenttion re A revised for ightEtoEveft lngugesF v i keeps trk on the indenttion with the \leftmargin nd \rightmargin vluesF
list

hus we need to override the de(nition of the \list mroX when in v modeD the right mrgins re the egining of the lineF

deflist5I5P{7 ifnum dlistdepth bSrelx 62.355 dtoodeep 62.356 else 62.357 gloldvnedlistdepthdne 62.358 fi 62.359 rightmrginzd 62.360 listprindentzd 62.361 itemindentzd 62.362 snme dlistromnnumerlthedlistdepthendsnme 62.363 defditemlel{5I}7 62.364 letmkeleldmkl 62.365 dnmrlistflse 62.366 5Prelx 62.367 dtrivlist 62.368 prskipprsep 62.369 prindentlistprindent 62.370 dvnelinewidth Erightmrgin 62.371 dvnelinewidth Eleftmrgin
62.353 62.354

he only hnge in the mro is the \if@rl seX


62.372 62.373 62.374 62.375 62.376 62.377 62.378

ifdrl dvnedtotlleftmrgin rightmrgin else dvnedtotlleftmrgin leftmrgin fi prshpe dne dtotlleftmrgin linewidth ignorespes}

lelenumii pdenumiii

he \labelenumii nd \p@enumiii ommnds use parenthesesF hey re revised to work ightEtoEveft with the help of \@brackets mro de(ned oveF
deflelenumii{drkets@theenumiiA} defpdenumiii{pdenumiidrkets@theenumiiA}

62.379 62.380

62.4.5

Tables of moving stu

les of moving rgumentsX tle of ontents @tocAD list of (gures @lofA nd list A of tles @lotA re hndles hereF hese three defult v i tles will e used now exlusively for veft to ight stu'F hree dditionl ightEtoEveft tlesX v tle of ontents @cotAD v list of (gures @folAD nd v list of tles @tolA re ddedF hese three tles will e used exlusively for ight to veft stu'F

QWT

dtleofontents dlistoffigures dlistoftles

A e de(ne Q new mros similr to the stndrd v i tlesD ut with one pE rmeter " tle (le extensionF hese mros will help us to de(ne our dditionl tles elowF

diflssloded{letter}{}{7 other diflssloded{slides}{}{7 other 62.383 diflssloded{rtile}{7 rtile 62.384 newommnddtleofontentsI{7 62.385 setionB{ontentsnmedmkoth7 62.386 {wkepperseontentsnme}7 62.387 {wkepperseontentsnme}}7 62.388 dstrtto{5I}} 62.389 newommnddlistoffiguresI{7 62.390 setionB{listfigurenmedmkoth7 62.391 {wkepperselistfigurenme}7 62.392 {wkepperselistfigurenme}}7 62.393 dstrtto{5I}} 62.394 newommnddlistoftlesI{7 62.395 setionB{listtlenmedmkoth7 62.396 {wkepperselisttlenme}7 62.397 {wkepperselisttlenme}}7 62.398 dstrtto{5I}}}7 62.399 {7 else report or ook 62.400 newommnddtleofontentsI{7 62.401 drestoneolflseifdtwoolumndrestoneoltrueoneolumn7 62.402 fihpterB{ontentsnmedmkoth7 62.403 {wkepperseontentsnme}7 62.404 {wkepperseontentsnme}}7 62.405 dstrtto{5I}ifdrestoneoltwoolumnfi} 62.406 newommnddlistoffiguresI{7 62.407 drestoneolflseifdtwoolumndrestoneoltrueoneolumn7 62.408 fihpterB{listfigurenmedmkoth7 62.409 {wkepperselistfigurenme}7 62.410 {wkepperselistfigurenme}}7 62.411 dstrtto{5I}ifdrestoneoltwoolumnfi} 62.412 newommnddlistoftlesI{7 62.413 ifdtwoolumndrestoneoltrueoneolumnelsedrestoneolflsefi7 62.414 hpterB{listtlenmedmkoth7 62.415 {wkepperselisttlenme}7 62.416 {wkepperselisttlenme}}7 62.417 dstrtto{5I}ifdrestoneoltwoolumnfi}}7
62.381 62.382

lrtleofontents veftEtoEight tles re lled now \lrxxx nd de(ned with the id of three mros lrlistoffigures de(ned ove @extensions tocD lofD nd lotAF lrlistoftles 62.418 newommndlrtleofontents{dtleofontents{to}}7 62.419 newommndlrlistoffigures{dlistoffigures{lof}}7 62.420 newommndlrlistoftles{dlistoftles{lot}}7 rltleofontents ightEtoEveft tles will e lled \rlxxx nd de(ned with the id of three mros rllistoffigures de(ned ove @extensions cotD folD nd tolAF rllistoftles 62.421 newommndrltleofontents{dtleofontents{ot}}7 62.422 newommndrllistoffigures{dlistoffigures{fol}}7 62.423 newommndrllistoftles{dlistoftles{tol}}7

QWU

tleofontents vet \xxx e \rlxxx if the urrent diretion is ightEtoEveft nd \lrxxx if it is listoffigures veftEtoEightF listoftles 62.424 renewommndtleofontents{ifdrlrltleofontents7 62.425 elselrtleofontentsfi} 62.426 renewommndlistoffigures{ifdrlrllistoffigures7 62.427 elselrlistoffiguresfi} 62.428 renewommndlistoftles{ifdrlrllistoftles7 62.429 elselrlistoftlesfi}}} ddottedtoline

he following mkes prolems when mking ightEtoEveft tlesD sine it uses \leftskip nd \rightskip whih re oth mode dependentF

defddottedtoline5I5P5Q5R5S{7 ifnum 5Ibdtodepth else 62.432 vskip zd dplusFPpd 62.433 {ifdrlrightskipelseleftskipfi 5Prelx 62.434 ifdrlleftskipelserightskipfi dtormrg prfillskip 62.435 Eifdrlleftskipelserightskipfi 62.436 prindent 5Prelxdfterindenttrue 62.437 interlinepenltydw 62.438 levevmode 62.439 dtempdim 5Qrelx 62.440 dvneifdrlrightskipelseleftskipfi dtempdim 62.441 nullnorekhskip Eifdrlrightskipelseleftskipfi 62.442 {5R}norek 62.443 ledershox{6mdth 62.444 mkern ddotsep muhox{F}mkern ddotsep 62.445 mu6}hfill 62.446 norek 62.447 hdxtddpnumwidth{hfilnormlfont normlolor eginv5Sendv}7 62.448 pr}7 62.449 fi}
62.430 62.431

ldprt

his stndrd mro ws rede(ned for tle of ontents sine it uses \rightskip whih is mode dependentF

diflssloded{letter}{}{7 other diflssloded{slides}{}{7 other 62.452 renewommndBldprtP{7 62.453 ifnum dtodepth bEPrelx 62.454 ddpenlty{Edhighpenlty}7 62.455 ddvspe{PFPSem dpluspd}7 62.456 egingroup 62.457 setlengthdtempdim{Qem}7 62.458 prindent zd ifdrlleftskipelserightskipfi dpnumwidth 62.459 prfillskip Edpnumwidth 62.460 {levevmode 62.461 lrge fseries 5Ihfil hdxtddpnumwidth{hss5P}}pr 62.462 norek 62.463 gloldnorektrue 62.464 everypr{gloldnorekflseeverypr{}}7 62.465 endgroup 62.466 fi}}}
62.450 62.451

dprt

rt is rede(ned to support new ightEtoEveft tle of ontents @cotA s well s the veftEtoEight one @tocAF QWV

diflssloded{rtile}{7 rtile lss defdprt5I5P{7 62.469 ifnum dsenumdepth bmdne 62.470 refstepounter{prt}7 62.471 ddontentsline{to}{prt}{theprthspe{Iem}5I}7 62.472 ddontentsline{ot}{prt}{theprthspe{Iem}5I}7 62.473 else 62.474 ddontentsline{to}{prt}{5I}7 62.475 ddontentsline{ot}{prt}{5I}7 62.476 fi 62.477 {prindent zd rggedright 62.478 interlinepenlty dw 62.479 normlfont 62.480 ifnum dsenumdepth bmdne 62.481 vrgefseries prtnme~theprt 62.482 prnorek 62.483 fi 62.484 huge fseries 5P7 62.485 mrkoth{}{}pr}7 62.486 norek 62.487 vskip Qex 62.488 dfterheding}7 62.489 }{7 report nd ook lsses 62.490 defdprt5I5P{7 62.491 ifnum dsenumdepth bEPrelx 62.492 refstepounter{prt}7 62.493 ddontentsline{to}{prt}{theprthspe{Iem}5I}7 62.494 ddontentsline{ot}{prt}{theprthspe{Iem}5I}7 62.495 else 62.496 ddontentsline{to}{prt}{5I}7 62.497 ddontentsline{ot}{prt}{5I}7 62.498 fi 62.499 mrkoth{}{}7 62.500 {entering 62.501 interlinepenlty dw 62.502 normlfont 62.503 ifnum dsenumdepth bEPrelx 62.504 hugefseries prtnme~theprt 62.505 pr 62.506 vskip PHpd 62.507 fi 62.508 ruge fseries 5Ppr}7 62.509 dendprt}}
62.467 62.468

dset

etion ws rede(ned from the latex.ltx (leF st is hnged to support oth veftEtoEight @tocA nd ightEtoEveft @cotA tle of ontents simultneouslyF

defdset5I5P5Q5R5S5T5U5V{7 ifnum 5Pbdsenumdepth 62.512 letdsvsedempty 62.513 else 62.514 refstepounter{5I}7 62.515 proteteddedefdsvse{dsentformt{5I}relx}7 62.516 fi 62.517 dtempskip 5Srelx
62.510 62.511

QWW

62.518 62.519 62.520 62.521 62.522 62.523 62.524 62.525 62.526 62.527 62.528 62.529 62.530 62.531 62.532 62.533 62.534 62.535 62.536 62.537 62.538 62.539 62.540 62.541 62.542 62.543 62.544 62.545 62.546 62.547 62.548 62.549 62.550 62.551

ifdim dtempskipbzd egingroup 5T{7 dhngfrom{hskip 5Qrelxdsvse}7 interlinepenlty dw 5Vddpr}7 endgroup snme 5Imrkendsnme{5U}7 ddontentsline{to}{5I}{7 ifnum 5Pbdsenumdepth else protetnumerline{snme the5Iendsnme}7 fi 5U}7 ddontentsline{ot}{5I}{7 ifnum 5Pbdsenumdepth else protetnumerline{snme the5Iendsnme}7 fi 5U}7 else defdsvsehd{7 5T{hskip 5Qrelx dsvse 5V}7 snme 5Imrkendsnme{5U}7 ddontentsline{to}{5I}{7 ifnum 5Pbdsenumdepth else protetnumerline{snme the5Iendsnme}7 fi 5U}7 ddontentsline{ot}{5I}{7 ifnum 5Pbdsenumdepth else protetnumerline{snme the5Iendsnme}7 fi 5U}}7 fi dxset{5S}}

dption

gption ws rede(ned from the latex.ltx (leF st is hnged to support veftEtoE ight list of (gures nd list of tles @lof nd lotA s well s new ightEtoEveft lists @fol nd tolA simultneouslyF

longdefdption5I5P5Q{7 pr 62.554 ddontentsline{snme extd5Iendsnme}{5I}7 62.555 {protetnumerline{snme the5Iendsnme}7 62.556 {ignorespes 5P}}7 62.557 defdfignm{figure} 62.558 ifx5Idfignmddontentsline{fol}{5I}7 62.559 {protetnumerline{snme the5Iendsnme}7 62.560 {ignorespes 5P}}fi7 62.561 defdtlnm{tle} 62.562 ifx5Idtlnmddontentsline{tol}{5I}7 62.563 {protetnumerline{snme the5Iendsnme}7 62.564 {ignorespes 5P}}fi7 62.565 egingroup 62.566 dproxrestore 62.567 ifdminipge
62.552 62.553

RHH

62.568 62.569 62.570 62.571 62.572

dsetminipge fi normlsize dmkeption{snme fnumd5Iendsnme}{ignorespes 5Q}pr endgroup}

ldhpter

his stndrd mro ws rede(ned for tle of ontents sine it uses \rightskip whih is mode dependentF

diflssloded{letter}{}{7 diflssloded{slides}{}{7 62.575 diflssloded{rtile}{}{7 62.576 renewommndBldhpterP{7 62.577 ifnum dtodepth bmdne 62.578 ddpenlty{Edhighpenlty}7 62.579 vskip IFHem dpluspd 62.580 setlengthdtempdim{IFSem}7 62.581 egingroup 62.582 prindent zd ifdrlleftskipelserightskipfi dpnumwidth 62.583 prfillskip Edpnumwidth 62.584 levevmode fseries 62.585 dvneifdrlrightskipelseleftskipfidtempdim 62.586 hskip Eifdrlrightskipelseleftskipfi 62.587 5Inorekhfil norekhdxtddpnumwidth{hss5P}pr 62.588 penltydhighpenlty 62.589 endgroup 62.590 fi}}}}
62.573 62.574

ldsetion he to entry for setion did not work in rtile styleF elso it does not print dotsD ldsusetion whih is funny when most of your work is divided into setionsF ldsususetion st ws revised to use \@dottedtocline s in report.sty @y niv frguryA ldprgrph nd ws updted lter for ll kinds of setions @y foris vvvAF ldsuprgrph 62.591 diflssloded{rtile}{7 62.592 renewommndBldsetion{ddottedtoline{I}{IFSem}{PFQem}} 62.593 renewommndBldsusetion{ddottedtoline{P}{QFVem}{QFPem}} 62.594 renewommndBldsususetion{ddottedtoline{Q}{UFHem}{RFIem}} 62.595 renewommndBldprgrph{ddottedtoline{R}{IHem}{Sem}} 62.596 renewommndBldsuprgrph{ddottedtoline{S}{IPem}{Tem}}}{}

62.4.6

Two-column mode

A his is the support of twocolumn option for the stndrd v i P lssesF he following ode ws originlly orrowed from the eri pkgeD (le latexext.styD opyright y ulus vgllyD snstitut fuer snformtikD niversitet tuttgrtF st ws updted for this pkge y foris vvvF

doutputdlol setdoutputdlol rldoutputdlol

pirst olumn is \@leftcolumn will e shown t the right sideD eond olumn is \@outputbox will e shown t the left sideF \set@outputdblcol s gixv hsefvihF yhyX iwyi s tzfrir

letddoutputdloldoutputdlol 7defsetdoutputdlol{7 62.599 7 ifdrlrenewommnd{doutputdlol}{rldoutputdlol}7 62.600 7 elserenewommnd{doutputdlol}{ddoutputdlol}fi}


62.597 62.598

RHI

renewommnd{doutputdlol}{7 ifdrlmin7 62.603 rldoutputdlol7 62.604 else7 62.605 ddoutputdlol7 62.606 fi7 62.607 } 62.608 newommnd{rldoutputdlol}{7 62.609 ifdfirstolumn 62.610 glol dfirstolumnflse 62.611 glol setoxdleftolumn oxdoutputox 62.612 else 62.613 glol dfirstolumntrue 62.614 setoxdoutputox vox {hdxtdtextwidth {7 62.615 hskipolumnwidth7 62.616 hfilvruledwidtholumnseprulehfil 62.617 hdxtdolumnwidth {7 62.618 oxdleftolumn hss}7 62.619 hdxtdolumnwidth {7 62.620 hskipEtextwidth7 62.621 oxdoutputox hss}7 62.622 hskipolumnsep7 62.623 hskipolumnwidth}}7 62.624 dominedlflots 62.625 doutputpge 62.626 egingroup 62.627 ddlflotplement 62.628 dstrtdlolumn 62.629 dwhileswifdfolmde fi 62.630 {doutputpge 62.631 dstrtdlolumn}7 62.632 endgroup 62.633 fi}
62.601 62.602

62.4.7
footnoterule

Footnotes

he ightEtoEveft footnote rule is simply reversed defult veftEtoEight oneF pootE notes n e used in v or v min modesD ut hnging mode while footnote is pending is still unsolvedF

letddfootnoteruleafootnoterule deffootnoterule{ifdrlhdxtdhsize{hssvox{ddfootnoterule}}7 62.636 elseddfootnoterulefi}


62.634 62.635

62.4.8

Headings and two-side support

hen using headings or myheadings modesD we hve to ensure tht the lnguge nd diretion of heding is the sme s the whole hpterGprt of the doumentF his is implementing y setting speil vrile \headlanguage when strting new hpterGprtF sn dditionD when seleting the twoside option @defult in book doument lssAD the v nd v modes need to e set properly for things on the heding nd footingF his is done here tooF

RHP

psdhedings pirstD we will support the stndrd letter lssX psdmyhedings 62.637 diflssloded{letter}{7 hedeven 62.638 defhedodd{protetifdrleginfihedtonme{} 62.639 ignorespestonme hedodd 62.640 hfil ddte 62.641 hfil pgenme{} thepgeprotetifdrlendfi} 62.642 ifdtwoside 62.643 defpsdhedings{7 62.644 letdoddfootdemptyletdevenfootdempty 62.645 defdoddhed{seletdlnguge{hedlnguge}hedodd} 62.646 letdevenheddoddhed} 62.647 else 62.648 defpsdhedings{7 62.649 letdoddfootdempty 62.650 defdoddhed{seletdlnguge{hedlnguge}hedodd}} 62.651 fi 62.652 defhedfirst{protetifdrleginfifromlotion hfill 7 62.653 telephonenumprotetifdrlendfi} 62.654 defpsdfirstpge{7 62.655 letdoddheddempty 62.656 defdoddfoot{riseox{ERSpd}zd{7 62.657 hdxtdtextwidth{hspeB{IHHpd}7 62.658 ifse dptsizerelx 62.659 normlsize 62.660 or 62.661 smll 62.662 or 62.663 footnotesize 62.664 fi 62.665 seletdlnguge{hedlnguge}hedfirst}}hss}} 62.666 7 62.667 renewommnd{opening}I{7 62.668 lethedlngugealngugenme7 62.669 ifxdemptyfromddress7 62.670 thispgestyle{firstpge}7 62.671 {rggedleftddtepr}7 62.672 else 7 home ddress 62.673 thispgestyle{empty}7 62.674 {rggedleft 62.675 ifdrlegin{tulr}{d{eginsnme7 62.676 todrllngugenmeendsnme}rd{end}}ignorespes 62.677 fromddress BPprskip7 62.678 ddte end{tulr}pr7 62.679 elseegin{tulr}{l}ignorespes 62.680 fromddress BPprskip7 62.681 ddte end{tulr}pr7 62.682 fi}7 62.683 fi 62.684 vspe{Pprskip}7 62.685 {rggedright tonme toddress pr}7 62.686 vspe{Pprskip}7 62.687 5Iprnorek} 62.688 }

henD the articleD report nd book doument lsses re supportedF xoteD tht RHQ

in oneEsided mode \markright ws hnged to \markbothF


{7 rtileD reportD ook defhedeven{protetifdrleginthepgehfilrightmrkend 62.691 protetelsethepgehfil{slshpeleftmrk} 62.692 protetfi} 62.693 defhedodd{protetifdrleginleftmrkhfilthepgeend 62.694 protetelse{slshperightmrk}hfilthepge 62.695 protetfi} 62.696 diflssloded{rtile}{7 rtile 62.697 ifdtwoside 7 twoEsided 62.698 defpsdhedings{7 62.699 letdoddfootdemptyletdevenfootdempty 62.700 defdevenhed{seletdlnguge{hedlnguge}hedeven}7 62.701 defdoddhed{seletdlnguge{hedlnguge}hedodd}7 62.702 letdmkothmrkoth 62.703 defsetionmrk55I{7 62.704 mrkoth {wkepperse{7 62.705 ifnum dsenumdepth bzd 62.706 thesetionqud 62.707 fi 62.708 55I}}{}}7 62.709 defsusetionmrk55I{7 62.710 mrkright{7 62.711 ifnum dsenumdepth bdne 62.712 thesusetionqud 62.713 fi 62.714 55I}}} 62.715 else 7 oneEsided 62.716 defpsdhedings{7 62.717 letdoddfootdempty 62.718 defdoddhed{hedodd}7 62.719 letdmkothmrkoth 62.720 defsetionmrk55I{7 62.721 mrkoth{wkepperse{7 62.722 ifnum dsenumdepth bmdne 62.723 thesetionqud 62.724 fi 62.725 55I}}{wkepperse{7 62.726 ifnum dsenumdepth bmdne 62.727 thesetionqud 62.728 fi 62.729 55I}}}} 62.730 fi 62.731 7 62.732 defpsdmyhedings{7 62.733 letdoddfootdemptyletdevenfootdempty 62.734 defdevenhed{seletdlnguge{hedlnguge}hedeven}7 62.735 defdoddhed{seletdlnguge{hedlnguge}hedodd}7 62.736 letdmkothdgoletwo 62.737 letsetionmrkdgole 62.738 letsusetionmrkdgole 62.739 }}{7 report nd ook 62.740 ifdtwoside 7 twoEsided 62.741 defpsdhedings{7
62.689 62.690

RHR

62.742 62.743 62.744 62.745 62.746 62.747 62.748 62.749 62.750 62.751 62.752 62.753 62.754 62.755 62.756 62.757 62.758 62.759 62.760 62.761 62.762 62.763 62.764 62.765 62.766 62.767 62.768 62.769 62.770 62.771 62.772 62.773 62.774 62.775 62.776 62.777 62.778 62.779 62.780 62.781

letdoddfootdemptyletdevenfootdempty defdevenhed{seletdlnguge{hedlnguge}hedeven} defdoddhed{seletdlnguge{hedlnguge}hedodd} letdmkothmrkoth defhptermrk55I{7 mrkoth{wkepperse{7 ifnum dsenumdepth bmdne dhppp thehpterF 7 fi 55I}}{}}7 defsetionmrk55I{7 mrkright {wkepperse{7 ifnum dsenumdepth bzd thesetionF 7 fi 55I}}}} else 7 oneEsided defpsdhedings{7 letdoddfootdempty defdoddhed{seletdlnguge{hedlnguge}hedodd} letdmkothmrkoth defhptermrk55I{7 mrkoth{wkepperse{7 ifnum dsenumdepth bmdne dhppp thehpterF 7 fi 55I}}{wkepperse{7 ifnum dsenumdepth bmdne dhppp thehpterF 7 fi 55I}}}} fi defpsdmyhedings{7 letdoddfootdemptyletdevenfootdempty defdevenhed{seletdlnguge{hedlnguge}hedeven}7 defdoddhed{seletdlnguge{hedlnguge}hedodd}7 letdmkothdgoletwo lethptermrkdgole letsetionmrkdgole }}}

62.4.9

Postscript Porblems

eny ommnd tht is implemented y ostript diretivesD eFg ommnds from the psEtriks pkgeD needs to e (xedD euse the ostript diretives re eing interpeted fter the doument hs een onverted y ito visul rerew @hsD ostript nd hp hve visul rerewAF por instneX uppose you wrote in your doumentX \textcolor{cyan}{some ltr text} his would e interpeted y ito something likeX [postscript:make color cyan]some LTR text[postscript:make color black] roweverD with the idiretionlity support we getX \textcolor{cyan}{\hebalef\hebbet} RHS

rnslted toX [postscript:make color black]{bet}{alef}[postscript:make color cyan] hile we wntX [postscript:make color cyan]{bet}{alef}[postscript:make color black] he following ode will proly work t lest with ode tht stys in the sme lineX
dtextolor etfeginhoument{7 7s ssume tht dtextolor is only defined y the pkge olor 62.784 ifxdtextolordundefinedelse7 62.785 7 sf tht mro ws defined efore the eginning of the doumentD 62.786 7 tht isX the pkge ws lodedX redefine it with idi support 62.787 defdtextolor5I5P5Q{7 62.788 ifdrl7 62.789 eginvprotetlevevmode{olor5I{5P}egin5Qend}endv7 62.790 else7 62.791 protetlevevmode{olor5I{5P}5Q}7 62.792 fi7 62.793 }7 62.794 fi7 62.795 } 62.796 7 end{mroode} 62.797 7 end{mro} 62.798 7 egin{mro}{thetruelidegounter} 62.799 7 his mro proly needs to e overriden for when using |prosper|D 62.800 7 @witing for feedkF zfrirA 62.801 7 egin{mroode} 62.802 diflssloded{prosper}{7 62.803 defthetruelidegounter{rinorl{truelidegounter}} 62.804 }{}
62.782 62.783

62.4.10
rggedright rggedleft

A Miscellaneous internal L TEX macros

\raggedright ws hnged from latex.ltx (le to support ightEtoEveft modeD euse of the ug in its implementtionF

defrggedright{7 letdenterr 62.807 leftskipzdskiprightskipdflushglue 62.808 prindentzdprfillskipzdskip}


62.805 62.806

wp menings of \raggedright nd \raggedleft in ightEtoEveft modeF


letddrggedleftarggedleft letddrggedrightarggedright 62.811 renewommndrggedleft{ifdrlddrggedright7 62.812 elseddrggedleftfi} 62.813 renewommndrggedright{ifdrlddrggedleft7 62.814 elseddrggedrightfi}
62.809 62.810

uthor

\author is inserted with tabular environmentD nd will e used in restrited horizontl modeF herefore we hve to dd expliit diretion hnge ommnd when in ightEtoEveft modeF
letdduthorauthor renewommnd{uthor}I{dduthor{ifdrlegin 5Iendelse 5Ifi}}

62.815 62.816

RHT

wkepperse wkevowerse

here re no upperse nd lowerse letters in most ightEtoEveft lngugesD A therefore we should rede(ne \MakeUppercase nd \MakeLowercase v i P omE mndsF

letddwkepperseawkepperse defwkepperse5I{ifdrl5Ielseddwkepperse{5I}fi} 62.819 letddwkevowerseawkevowerse 62.820 defwkevowerse5I{ifdrl5Ielseddwkevowerse{5I}fi}


62.817 62.818

underline

e should expliitly use \L nd \R ommnds in \underlined textF


letdddunderlineaunderline defunderline5I{dddunderline{ifdrl{5I}else 5Ifi}}
A \undertext ws dded for v iPFHW omptiility modeF

62.821 62.822

ifdomptiility letundertextaunderline 62.825 fi


62.823 62.824

dxnthm doprgegintheorem

he following hs een inserted to orret the pperne of the numer in \newtheorem to reorder theorem numer omponentsF e similr orretion in the de(nition of \@opargbegintheorem ws dded tooF

defdxnthm5I5P5Q{7 expndfterdifdefinlesnme 5Iendsnme 62.828 {ddefineounter{5I}dddtoreset{5I}{5Q}7 62.829 expndfterxdefsnme the5Iendsnme{noexpnddnumer 62.830 {expndfternoexpndsnme the5Qendsnme dthmountersep 62.831 dthmounter{5I}}}7 62.832 gloldnmedef{5I}{dthm{5I}{5P}}7 62.833 gloldnmedef{end5I}{dendtheorem}}} 62.834 7 62.835 defdoprgegintheorem5I5P5Q{7 62.836 trivlist 62.837 itemhskip lelsep{fseries 5I 5P 62.838 drkets@{5Q}A}itshpe}
62.826 62.827

dhpter dshpter

he following ws dded for pretty printing of the hpter numersD for supporting ightEtoEveft tles @cotD folD nd tolAD to sve \headlanguage for use in running hedersD nd to strt twoEolumn mode depending on hpter9s min lngugeF

diflssloded{rtile}{}{7 7 por pretty priniting 62.841 defddhppp{ghpter} 62.842 defddthehpter{ddridhpter} 62.843 defdhpter5I5P{7 62.844 lethedlngugealngugenme7 62.845 7setdoutputdlol7 62.846 ifnum dsenumdepth bmdne 62.847 refstepounter{hpter}7 62.848 typeout{ddhpppspeddthehpterF}7 62.849 ddontentsline{to}{hpter}7 62.850 {protetnumerline{thehpter}5I} 62.851 ddontentsline{ot}{hpter}7 62.852 {protetnumerline{thehpter}5I} 62.853 else 62.854 ddontentsline{to}{hpter}{5I}7
62.839 62.840

RHU

62.855 62.856 62.857 62.858 62.859 62.860 62.861 62.862 62.863 62.864 62.865 62.866 62.867 62.868 62.869 62.870 62.871 62.872 62.873 62.874 62.875 62.876 62.877

7 defdshpter5I{7 lethedlngugealngugenme7 7setdoutputdlol7 ifdtwoolumn dtopnewpgedmkeshpterhed{5I}7 else dmkeshpterhed{5I}7 dfterheding fi}}

ddontentsline{ot}{hpter}{5I}7 fi hptermrk{5I} ddtoontents{lof}{protetddvspe{IHpd}}7 ddtoontents{fol}{protetddvspe{IHpd}}7 ddtoontents{lot}{protetddvspe{IHpd}}7 ddtoontents{tol}{protetddvspe{IHpd}}7 ifdtwoolumn dtopnewpgedmkehpterhed{5P}7 else dmkehpterhed{5P}7 dfterheding fi}

ppendix

ghnged minly for pretty printing of ppendix numersD nd to strt twoEolumn mode with the right lnguge @if neededAF

diflssloded{letter}{}{7 other diflssloded{slides}{}{7 other 62.880 diflssloded{rtile}{7 rtile 62.881 renewommndppendix{pr 62.882 setounter{setion}{H}7 62.883 setounter{susetion}{H}7 62.884 renewommndthesetion{delphdsetion}} 62.885 }{7 report nd ook 62.886 renewommndppendix{pr 62.887 7setdoutputdlol7 62.888 setounter{hpter}{H}7 62.889 setounter{setion}{H}7 62.890 renewommnddhppp{ppendixnme}7 62.891 7 por pretty priniting 62.892 defddhppp{eppendix}7 62.893 defddthehpter{ddelphdhpter} 62.894 renewommndthehpter{delphdhpter}}}}}
62.878 62.879

62.4.11
dite dilel dliitem

Bibliography and citations

gittions re produed y the mro \@cite{LABEL}{NOTE }F foth the ittion lel nd the note is typeset in the urrent diretionF e hve to use \@brackets mro in \@cite nd \@biblabel mrosF sn dditionD when using alpha or similr iliogrphy styleD the \@lbibitem is used nd hve to e updte to support ot ightEtoEveft nd veftEtoEight ittionsF
defdite5I5P{drkets{5Iifdtempsw D 5Pfi}} defdilel5I{drkets{5I}}

62.895 62.896

RHV

62.897 62.898

defdliitem5I5P{itemdilel{5I}hfillifdfilesw {letprotetnoexpnd 62.899 immedite 62.900 ifdrlwriteduxout{stringiite{5P}{{5I}}}7 62.901 elsewriteduxout{stringiite{5P}{v{5I}}}fi7 62.902 }fiignorespes}

theiliogrphy

se \rightmargin insted of \leftmargin when in v modeF

diflssloded{letter}{}{7 other diflssloded{slides}{}{7 other 62.905 diflssloded{rtile}{7 62.906 renewenvironment{theiliogrphy}I 62.907 {setionB{refnmedmkoth7 62.908 {wkepperserefnme}7 62.909 {wkepperserefnme}}7 62.910 list{dilel{dridenumiv}}7 62.911 {settowidthlelwidth{dilel{5I}}7 62.912 ifdrlleftmrginelserightmrginfilelwidth 62.913 dvneifdrlleftmrginelserightmrginfilelsep 62.914 dopenidode 62.915 useounter{enumiv}7 62.916 letpdenumivdempty 62.917 renewommndtheenumiv{dridenumiv}}7 62.918 sloppy 62.919 lupenltyRHHH 62.920 dlupenlty lupenlty 62.921 widowpenltyRHHH7 62.922 sfodeFdm} 62.923 {defdnoitemerr 62.924 {dltexdwrning{impty theiliogrphy9 environment}}7 62.925 endlist}}7 62.926 {renewenvironment{theiliogrphy}I{7 62.927 hpterB{inmedmkoth7 62.928 {wkepperseinme}7 62.929 {wkepperseinme}}7 62.930 list{dilel{dridenumiv}}7 62.931 {settowidthlelwidth{dilel{5I}}7 62.932 ifdrlleftmrginelserightmrginfilelwidth 62.933 dvneifdrlleftmrginelserightmrginfilelsep 62.934 dopenidode 62.935 useounter{enumiv}7 62.936 letpdenumivdempty 62.937 renewommndtheenumiv{dridenumiv}}7 62.938 sloppy 62.939 lupenltyRHHH 62.940 dlupenlty lupenlty 62.941 widowpenltyRHHH7 62.942 sfodeFdm} 62.943 {defdnoitemerr 62.944 {dltexdwrning{impty theiliogrphy9 environment}}7 62.945 endlist}}}}
62.903 62.904

dvertim

ell kinds of vers @\verbD\verb*Dverbatim nd verbatim*A now n e used in ightEtoEveft modeF irrors in ltin mode solved tooF RHW

defdvertim{7 letdodmkeother dospeils7 62.948 oeylines vertimdfont dnoligs}


62.946 62.947

dmkeption

gptions re set lwys enteredF his llows us to use ilingul ptionsD for exmpleX \caption{\R{RLtext} \\ \L{LRtext}}D whih will e formtted sX ight to left ption here @vtextA veft to right ption here @vtextA ee lso \bcaption ommnd elowF

longdefdmkeption5I5P{7 vskipoveptionskip7 62.951 egin{enter}7 62.952 5IX 5P7 62.953 end{enter} pr7 62.954 vskipelowptionskip}
62.949 62.950

62.4.12

Additional bidirectional commands

etion hedings re typeset with the defult glol diretionF ext in setion hedings in the reverse lnguge do not hve to e proteted for the re)etion ommndD s inX \protect\L{Latin Text }D euse \L nd \R re roust nowF le of ontentsD list of (gures nd list of tles should e typeset with the \tableofcontentsD \listoffigures nd \listoftables ommnds respetivelyF he ove tles will e typeset in the min diretion @nd lngugeA in e'et where the ove ommnds re pledF ynly P tles of eh kind re supportedX one for ightEtoEveft nd nother for veftEtoEight diretionsF
row to inlude line to oth tlesc yne hs to use idiretionl setioning ommnds s followingX IF se the \bxxx version of the setioning ommnds in the text insted of the \xxx version @xxx is one ofX partD chapterD sectionD subsectionD subsubsectionD captionAF PF yntx of the \bxxx ommnd is \bxxx {RL text }{LR text }F foth rguments re typeset in proper diretion y defult @no need to hnge diretion for the text insideAF QF he setion heder inside the doument will e typeset in the glol diretion in e'et t the timeF iFeF he {RL text } will e typeset if ightEtoEveft mode is in e'et nd {LR text } otherwiseF
prt
62.955 62.956

newommnd{prt}P{prt{protetifdrl7 5I protetelse 5P protetfi}}

RIH

hpter
62.957 62.958

newommnd{hpter}P{hpter{protetifdrl7 5I protetelse 5P protetfi}} newommnd{setion}P{setion{protetifdrl7 5I protetelse 5P protetfi}} newommnd{susetion}P{susetion{protetifdrl7 5I protetelse 5P protetfi}} newommnd{sususetion}P{sususetion{protetifdrl7 5I protetelse 5P protetfi}}

setion
62.959 62.960

susetion
62.961 62.962

sususetion
62.963 62.964

ption newommnd{ption}P{7 ptionprotetifdrl {5I}protetelse v{5P}protetfi{7 62.967 ifdrl{5I}protet v{5P} 62.968 elsev{5P}protet {5I}fi}}
62.965 62.966

he following de(nition is modi(ed version of \bchapterD ment s ilinE gul twin for \chapter* nd \section* @dded y srin ermoviiAF
hpternn
62.969 62.970

newommnd{hpternn}P{hpterB{protetifdrl7 5I protetelse 5P protetfi}} newommnd{setionnn}P{setionB{protetifdrl7 5I protetelse 5P protetfi}}

setionnn
62.971 62.972

pinllyD t end of babel pkgeD the \headlanguage nd twoEolumn mode will e initilized ording to the urrent lngugeF
etindyfkge{rletindyfkge} 7 62.975 defrletindyfkge{7 62.976 glollethedlngugealngugenme7setdoutputdlol7 62.977 } 62.978 /rightleft
62.973 62.974

62.5 Hebrew calendar


A he originl version of the pkge hebcal.sty75 for i nd v iPFHWD entitled A i 8 v i mros for omputing rerew dte from qregorin one ws reted y wihil ozmnD misha@iop.tartu.ew.su76

75 The

following description of

hebcal package is based on the comments included with original

source by the author, Michail Rozman.

76 Please

direct any comments, bug reports, questions, etc. about the package to this address.

RII

y m orrt y wish hn rrn @hrndmthFtuFFilA A he pkge ws djusted for babel nd v i P y foris vvvF ghnges to the printing routine @onlyA y on ertsteinD tune ID PHHQF his pkge should e inluded after the babel with hebrew optionD s folE lowingX

elesedX gorretedX gorretedX gorretedX

mmuz IPD het IHD edr ss SD eethD

SUSI!tune PRD IWWI SUSP!tnury ISD IWWP SUSP!wrh IHD IWWP SUST!tnury IWWT

\documentclass[F F F ]{F F F } \usepackage[hebrew,F F F ,other \usepackage{hebcal}


rerewtody

languages ,

F F F ]{babel}

rerewdte

wo min userElevel ommnds re provided y this pkgeX gomputes tody9s rerew dte nd prints itF sf we re presently in rerew modeD the dte will e printed in rerewD otherwise " in inglish @like het IHD SUSPAF gomputes the rerew dte from the given qregorin dte nd prints itF sf we re presently in rerew modeD the dte will e printed in rerewD otherwise " in inglish @like het IHD SUSPAF en exmple of usge is shown elowX

\newcount\hd \newcount\hm \newcount\hy \hd=10 \hm=3 \hy=1992 \Hebrewdate{\hd}{\hm}{\hy}


full

he pkge option full sets the )g \@full@hebrew@yearD whih uses yers from the urrent millenium to e printed with the thousnds digit @heE tvEshinEsmekhEgimelAF ithout this optionD thousnds re not printed for the urrent milleniumF xyiX should this e ommnd option rther thn pkge optionc !eF

62.5.1

Introduction

he rerew lendr is inherently omplitedX it is lunisolr ! eh yer strts lose to the utumn equinoxD ut eh month must stritly strt t new moonF hus rerew lendr must e hrmonized simultneously with oth lunr nd solr eventsF sn dditionD for resons of the religious prtieD the yer nnot strt on undyD ednesdy or pridyF por the full desription of rerew lendr nd for the list of referenes seeX xhum hershowitz nd idwrd wF eingoldD Calendarical Calculations D oftwre!rtFixperFD volF PH @WAD ppFVWW!WPV @eptemer IWWHAF

C trnsltion of LISP progrms from the ove rtile ville from wrF yne qeiserD geiser%pictel@uunet.uu.netF he Rth distriution @tuly IWVWA of hdteGhl @rerew lendr progrms similr to xs dteGlA y wrF emos hpirD amos@shum.huji.ac.ilD ontins short nd very ler desription of lgorithmsF

RIP

62.5.2

Registers, Commands, Formatting Macros

he ommnd \Hebrewtoday produes tody9s dte for rerew lendrF st is A similr to the stndrd v i P ommnd \todayF sn ddition three numeril registers \HebrewdayD \Hebrewmonth nd \Hebrewyear re setF por setting this registers without produing of dte string ommnd \Hebrewsetreg n e usedF he ommnd \Hebrewdate{Gday }{Gmonth }{Gyear } produes rerew lE endr dte orresponding to qregorin dte Gday.Gmonth.GyearF hree numeriE l registers \HebrewdayD \Hebrewmonth nd \Hebrewyear re setF por onverting ritrry qregorin dte Gday.Gmonth.Gyear to rerew dte Hday.Hmonth.Hyear without produing dte string the ommndX

\HebrewFromGregorian{Gday }{Gmonth }{
n e usedF
62.979 62.980

Gyear }{Hday }{Hmonth }{Hyear }

calendar newififdfulldherewdyer 62.981 dfulldherewdyerflse 62.982 helreyption{full}{dfulldherewdyertrue} 62.983 roessyptions 62.984 newountrerewdy newountrerewmonth newountrerewyer

rerewdte

rerew lendr dte orresponding to qregorin dte Gday.Gmonth.GyearF sf rerew @rightEtoEleftA fonts 8 mros re not lodedD we hve to use inglish formtF

defrerewdte5I5P5Q{7 rerewpromqregorin{5I}{5P}{5Q} 62.987 {rerewdy}{rerewmonth}{rerewyer}7 62.988 ifundefined{ifdrl}7 62.989 pormtporinglish{rerewdy}{rerewmonth}{rerewyer}7 62.990 else7 62.991 pormthte{rerewdy}{rerewmonth}{rerewyer}7 62.992 fi}
62.985 62.986

rerewtody

ody9s dte in rerew lendrF


defrerewtody{rerewdte{dy}{month}{yer}} letherewtodyarerewtody

62.993 62.994

rerewsetreg

et registersX tody9s dte in herew lendrF

defrerewsetreg{7 rerewpromqregorin{dy}{month}{yer} 62.997 {rerewdy}{rerewmonth}{rerewyer}}


62.995 62.996

pormthte

rints rerew lendr dte Hebrewday.Hebrewmonth.HebrewyearF

defpormthte5I5P5Q{7 ifdrl7 62.1000 pormtporrerew{5I}{5P}{5Q}7 62.1001 else7 62.1002 pormtporinglish{5I}{5P}{5Q} 62.1003 fi}
62.998 62.999

o prepre nother lnguge version of rerew lendr ommndsD one should hnge or dd ommnds hereF e strt with rerew lnguge mrosF RIQ

rerewerxme

rints rerew yer s rerew numerF hismigutes strings y dding lmedE peEgimel to yers of the (rst tewish millenium nd to yers divisile y IHHHF uppresses the thousnds digit in the urrent millenium unless the pkge option full is seletedF xyiX should this e provided s ommnd option rther thn pkge optionc !eF

defrerewerxme5I{{7 dtempnta5Idividedtempnt y IHHHmultiplydtempnt y IHHH 62.1006 ifnum5Iadtempntrelx 7 divisile y IHHHX dismigute 62.1007 rerewnumerlfinl{5I} Ahelmedhepe4hegimel@7 62.1008 else 7 not divisile y IHHH 62.1009 ifnum5I`IHHHrelx 7 first millenniumX dismigute 62.1010 rerewnumerlfinl{5I} Ahelmedhepe4hegimel@7 62.1011 else 62.1012 ifnum5I`SHHH 62.1013 rerewnumerlfinl{5I}7 62.1014 else 62.1015 ifnum5I`THHH 7 urrent milleniumD print without thousnds 62.1016 dtempnta5Irelx 62.1017 ifdfulldherewdyerelsedvnedtempnt y ESHHHfi 62.1018 rerewnumerlfinl{dtempnt}7 62.1019 else 7 5IbTHHH 62.1020 rerewnumerlfinl{5I}7 62.1021 fi 62.1022 fi 62.1023 fi 62.1024 fi}}
62.1004 62.1005

rerewwonthxme

he mro \HebrewMonthName{month }{year } returns the nme of month in the yer9F

defrerewwonthxme5I5P{7 ifnum 5I a U 7 62.1027 ghekveprerewer{5P}7 62.1028 ifdrerewvep helefhedletheresh heet97 62.1029 else helefhedletheresh7 62.1030 fi7 62.1031 else7 62.1032 ifse5I7 62.1033 7 nothing for H 62.1034 orhetvheshinhereshheyod7 62.1035 orhehetheshinhevvhefinlnun7 62.1036 orhekfhesmekhhelmedhevv7 62.1037 orhetetheethetv7 62.1038 orheshinheethetet7 62.1039 orhelefhedletheresh helef97 62.1040 orhelefhedletheresh heet97 62.1041 orhenunheyodhesmekhhefinlnun7 62.1042 orhelefheyodheyodheresh7 62.1043 orhesmekhheyodhevvhefinlnun7 62.1044 orhetvhememhevvhezyin7 62.1045 orhelefheet7 62.1046 orhelefhelmedhevvhelmed7 62.1047 fi7 62.1048 fi}
62.1025 62.1026

RIR

rerewhyxme pormtporrerew

xme of dy in rerew letters @gimtriAF


defrerewhyxme5I{rerewnumerl{5I}}

62.1049

he mro \FormatForHebrew{hday }{hmonth }{hyear } returns the formtted rerew dte in rerew lngugeF

defpormtporrerew5I5P5Q{7 rerewhyxme{5I}~heetrerewwonthxme{5P}{5Q}D~7 62.1052 rerewerxme{5Q}}


62.1050 62.1051

e ontinue with two inglish lnguge mros for rerew lendrF


rerewwonthxmesninglish

he mro \HebrewMonthNameInEnglish{month }{ year } is similr to \HebrewE MonthName desried oveF st returns the nme of month in the rerew yer9 in inglishF

defrerewwonthxmesninglish5I5P{7 ifnum 5I a U7 62.1055 ghekveprerewer{5P}7 62.1056 ifdrerewvep edr sselse edrfi7 62.1057 else7 62.1058 ifse 5I7 62.1059 7 nothing for H 62.1060 or ishrei7 62.1061 or reshvn7 62.1062 or uislev7 62.1063 or eeth7 62.1064 or het7 62.1065 or edr s7 62.1066 or edr ss7 62.1067 or xisn7 62.1068 or syr7 62.1069 or ivn7 62.1070 or mmuz7 62.1071 or ev7 62.1072 or ilul7 62.1073 fi 62.1074 fi}
62.1053 62.1054

pormtporinglish

he mro \FormatForEnglish{hday }{hmonth }{hyear } is similr to \FormatE ForHebrew mro desried ove nd returns the formtted rerew dte in inE glishF
defpormtporinglish5I5P5Q{7 rerewwonthxmesninglish{5P}{5Q} numer5ID numer5Q}

62.1075 62.1076

62.5.3
62.1077

Auxiliary Macros
a b

newountdommon

eminder

\Remainder{a }{b }{c } lultes c = a%b == a b


7 a 7 a G 7 a E@GA 7 a E @GA

defeminder5I5P5Q{7 5Q a 5I7 62.1080 divide 5Q y 5P7 62.1081 multiply 5Q y E5P7 62.1082 dvne 5Q y 5I}7
62.1078 62.1079

RIS

62.1083

newififdhivisile

gheksfhivisile

\CheckIfDivisible{a }{b } sets \@Divisibletrue if a%b == 0

defgheksfhivisile5I5P{7 {7 62.1086 ountdeftmp a H7 tmp aa ountH E temporry vrile 62.1087 eminder{5I}{5P}{tmp}7 62.1088 ifnum tmp a H7 62.1089 gloldhivisiletrue7 62.1090 else7 62.1091 gloldhivisileflse7 62.1092 fi}}
62.1084 62.1085

ifundefined

prom the iookD exF UFUX

\ifundefined{command }<true text>\else<false text>\fi


62.1093

defifundefined5I{expndfterifxsnme5Iendsnmerelx}

62.5.4
62.1094

Gregorian Part

newififdqregorinvep

sfqregorinvep

gonditionl whih is true if qregorin yer9 is lep yerX ((year%4 == 0) (year%100 = 0)) (year%400 == 0)

defsfqregorinvep5I{7 gheksfhivisile{5I}{R}7 62.1097 ifdhivisile7 62.1098 gheksfhivisile{5I}{IHH}7 62.1099 ifdhivisile7 62.1100 gheksfhivisile{5I}{RHH}7 62.1101 ifdhivisile7 62.1102 dqregorinveptrue7 62.1103 else7 62.1104 dqregorinvepflse7 62.1105 fi7 62.1106 else7 62.1107 dqregorinveptrue7 62.1108 fi7 62.1109 else7 62.1110 dqregorinvepflse7 62.1111 fi7 62.1112 ifdqregorinvep}
62.1095 62.1096

qregorinhyssnriorwonths

he mro \GregorianDaysInPriorMonths{month }{year }{days } lultes the numer of dys in months prior to month9 in the yer9F

defqregorinhyssnriorwonths5I5P5Q{7 {7 62.1115 5Q a ifse 5I7 62.1116 H or7 7 no month numer H 62.1117 H or7 62.1118 QI or7 62.1119 SW or7 62.1120 WH or7 62.1121 IPH or7
62.1113 62.1114

RIT

62.1122 62.1123 62.1124 62.1125 62.1126 62.1127 62.1128 62.1129 62.1130 62.1131 62.1132 62.1133 62.1134 62.1135 62.1136

fi7 sfqregorinvep{5P}7 ifnum 5I b P7 7 if month fter perury dvne 5Q y I7 7 dd lep dy fi7 fi7 gloldommon a 5Q}7 5Q a dommon}

ISI or7 IVI or7 PIP or7 PRQ or7 PUQ or7 QHR or7 QQR7

qregorinhyssnriorers

he mro \GregorianDaysInPriorYears{year }{days } lultes the numer of dys in yers prior to the yer9F

defqregorinhyssnriorers5I5P{7 {7 62.1139 ountdeftmp a R7 7 tmpaaountR 62.1140 ountdeftmp a P7 7 tmpaaountP 62.1141 tmp a 5I7 7 62.1142 dvne tmp y EI7 7 62.1143 tmp a tmp7 7 tmp a tmp a yerEI 62.1144 multiply tmp y QTS7 7 hys in prior yers a 62.1145 5P a tmp7 7 a QTSB@yerEIA FFF 62.1146 tmp a tmp7 7 62.1147 divide tmp y R7 7 tmp a @yerEIAGR 62.1148 dvne 5P y tmp7 7 FFF plus tulin lep dys FFF 62.1149 tmp a tmp7 7 62.1150 divide tmp y IHH7 7 tmp a @yerEIAGIHH 62.1151 dvne 5P y Etmp7 7 FFF minus entury yers FFF 62.1152 tmp a tmp7 7 62.1153 divide tmp y RHH7 7 tmp a @yerEIAGRHH 62.1154 dvne 5P y tmp7 7 FFF plus REentury yersF 62.1155 gloldommon a 5P}7 62.1156 5P a dommon}
62.1137 62.1138

esolutepromqregorin

he mro \AbsoluteFromGregorian{day }{month }{year }{absdate } lultes the solute dte @dys sine 01.01.0001A from qregorin dte day.month.yearF

defesolutepromqregorin5I5P5Q5R{7 {7 62.1159 ountdeftmpd a H7 7 tmpdaaountH 62.1160 5R a 5I7 7 dys so fr this month 62.1161 qregorinhyssnriorwonths{5P}{5Q}{tmpd}7 62.1162 dvne 5R y tmpd7 7 dd dys in prior months 62.1163 qregorinhyssnriorers{5Q}{tmpd}7 62.1164 dvne 5R y tmpd7 7 dd dys in prior yers 62.1165 gloldommon a 5R}7 62.1166 5R a dommon}
62.1157 62.1158

62.5.5

Hebrew Part
RIU

62.1167

newififdrerewvep

ghekveprerewer

et \@HebrewLeaptrue if rerew yer9 is lep yerD iFeF if (1 + 7 year)%19 < 7 then true else false

62.1168 62.1169

defghekveprerewer5I{7 {7 62.1170 ountdeftmp a H7 7 tmpaaountH 62.1171 ountdeftmp a I7 7 tmpaaountI 62.1172 7 62.1173 tmp a 5I7 62.1174 multiply tmp y U7 62.1175 dvne tmp y I7 62.1176 eminder{tmp}{IW}{tmp}7 62.1177 ifnum tmp ` U7 7 tmp a @UByerCIA7IW 62.1178 gloldrerewveptrue7 62.1179 else7 62.1180 gloldrerewvepflse7 62.1181 fi}}

rerewilpsedwonths

he mro \HebrewElapsedMonths{year }{months } determines the numer of months elpsed from the undy prior to the strt of the rerew lendr to the men onjuntion of ishri of rerew yer9F

defrerewilpsedwonths5I5P{7 {7 62.1184 ountdeftmp a H7 7 tmpaaountH 62.1185 ountdeftmp a I7 7 tmpaaountI 62.1186 ountdeftmp a P7 7 tmpaaountP 62.1187 7 62.1188 tmp a 5I7 7 62.1189 dvne tmp y EI7 7 62.1190 5P a tmp7 7 5P a tmp a yerEI 62.1191 divide 5P y IW7 7 xumer of omplete weton yles 62.1192 multiply 5P y PQS7 7 5P a PQSB@@yerEIAGIWA 62.1193 7 62.1194 eminder{tmp}{IW}{tmp}7 tmp a yers7IWEyers this yle 62.1195 tmp a tmp7 7 62.1196 multiply tmp y IP7 7 62.1197 dvne 5P y tmp7 7 dd regulr months this yle 62.1198 7 62.1199 multiply tmp y U7 7 62.1200 dvne tmp y I7 7 62.1201 divide tmp y IW7 7 tmp a @ICUB@@yerEIA7IWAAGIW E 62.1202 7 7 numer of lep months this yle 62.1203 dvne 5P y tmp7 7 dd lep months 62.1204 7 62.1205 gloldommon a 5P}7 62.1206 5P a dommon}
62.1182 62.1183

rerewilpsedhys

he mro \HebrewElapsedDays{year }{days } determines the numer of dys elpsed from the undy prior to the strt of the rerew lendr to the men onjuntion of ishri of rerew yer9F
7 tmpaaountH

defrerewilpsedhys5I5P{7 {7 62.1209 ountdeftmp a H7


62.1207 62.1208

RIV

62.1210 62.1211 62.1212 62.1213 62.1214 62.1215 62.1216 62.1217 62.1218 62.1219 62.1220 62.1221 62.1222 62.1223 62.1224 62.1225 62.1226 62.1227 62.1228 62.1229 62.1230 62.1231 62.1232 62.1233 62.1234 62.1235 62.1236 62.1237 62.1238 62.1239 62.1240 62.1241 62.1242 62.1243 62.1244 62.1245 62.1246 62.1247 62.1248 62.1249 62.1250 62.1251 62.1252 62.1253 62.1254 62.1255 62.1256 62.1257 62.1258 62.1259 62.1260 62.1261 62.1262 62.1263

ountdeftmp a I7 ountdeftmp a P7

7 tmpaaountI 7 tmpaaountP

rerewilpsedwonths{5I}{5P}7 tmp a 5P7 7 multiply tmp y IQUSQ7 7 dvne tmp y STHR7 7 tmpawonthsilpsedBIQUSV C STHR eminder{tmp}{PSWPH}{tmp}7 tmp aa gonjuntionrts divide tmp y PSWPH7 multiply 5P y PW7 dvne 5P y I7 dvne 5P y tmp7

7 5P a I C wonthsilpsedBPW C 7 rtsilpsedGPSWPH eminder{5P}{U}{tmp}7 7 tmp aa hyyfeek ifnum tmp ` IWRRH7 ifnum tmp ` WWPR7 else7 7 xew moon t W hF PHR pF or lter ifnum tmp a P7 7 on uesdy FFF ghekveprerewer{5I}7 of ommon yer ifdrerewvep7 else7 dvne 5P y I7 fi7 fi7 fi7 ifnum tmp ` ITUVW7 else7 7 xew moon t IS hF SVW pF or lter ifnum tmp a I7 7 on wondy FFF dvne 5I y EI7 ghekveprerewer{5I}7 t the end of lep yer ifdrerewvep7 dvne 5P y I7 fi7 fi7 fi7 else7 dvne 5P y I7 7 new moon t or fter middy fi7 eminder{5P}{U}{tmp}7 7 tmp aa hyyfeek ifnum tmp a H7 7 if undy FFF dvne 5P y I7 else7 7 ifnum tmp a Q7 7 ednesdy FFF dvne 5P y I7 else7 ifnum tmp a S7 7 or pridy dvne 5P y I7 fi7 fi7 fi7 gloldommon a 5P}7 5P a dommon}

RIW

hyssnrerewer

he mro \DaysInHebrewYear{year }{days } lultes the numer of dys in rerew yer9F

defhyssnrerewer5I5P{7 {7 62.1266 ountdeftmpe a IP7 7 tmpeaaountIP 62.1267 7 62.1268 rerewilpsedhys{5I}{tmpe}7 62.1269 dvne 5I y I7 62.1270 rerewilpsedhys{5I}{5P}7 62.1271 dvne 5P y Etmpe7 62.1272 gloldommon a 5P}7 62.1273 5P a dommon}
62.1264 62.1265

rerewhyssnriorwonths

he mro \HebrewDaysInPriorMonths{month }{year }{days } lultes the nuE mer of dys in months prior to month9 in the yer9F

defrerewhyssnriorwonths5I5P5Q{7 {7 62.1276 ountdeftmpfa IR7 7 tmpfaaountIR 62.1277 7 62.1278 5Q a ifse 5I7 7 hys in prior month of regulr yer 62.1279 H or7 7 no month numer H 62.1280 H or7 7 ishri 62.1281 QH or7 7 reshvn 62.1282 SW or7 7 uislev 62.1283 VW or7 7 eeth 62.1284 IIV or7 7 het 62.1285 IRV or7 7 edr s 62.1286 IRV or7 7 edr ss 62.1287 IUU or7 7 xisn 62.1288 PHU or7 7 syr 62.1289 PQT or7 7 ivn 62.1290 PTT or7 7 mmuz 62.1291 PWS or7 7 ev 62.1292 QPS or7 7 ilul 62.1293 RHH7 7 hummy 62.1294 fi7 62.1295 ghekveprerewer{5P}7 62.1296 ifdrerewvep7 7 in lep yer 62.1297 ifnum 5I b T7 7 if month fter edr s 62.1298 dvne 5Q y QH7 7 dd QH dys 62.1299 fi7 62.1300 fi7 62.1301 hyssnrerewer{5P}{tmpf}7 62.1302 ifnum 5I b Q7 62.1303 ifnum tmpf a QSQ7 7 62.1304 dvne 5Q y EI7 7 62.1305 fi7 7 hort uislev 62.1306 ifnum tmpf a QVQ7 7 62.1307 dvne 5Q y EI7 7 62.1308 fi7 7 62.1309 fi7 62.1310 7 62.1311 ifnum 5I b P7 62.1312 ifnum tmpf a QSS7 7
62.1274 62.1275

RPH

62.1313 62.1314 62.1315 62.1316 62.1317 62.1318 62.1319 62.1320

dvne 5Q y I7 fi7 ifnum tmpf a QVS7 dvne 5Q y I7 fi7 fi7 gloldommon a 5Q}7 5Q a dommon}

7 7 7 7 7

vong reshvn

esolutepromrerew

he mro \AbsoluteFromHebrew{day }{month }{year }{absdate } lultes the solute dte of rerew dte day.month.yearF

defesolutepromrerew5I5P5Q5R{7 {7 62.1323 5R a 5I7 62.1324 rerewhyssnriorwonths{5P}{5Q}{5I}7 62.1325 dvne 5R y 5I7 7 edd dys in prior months this yer 62.1326 rerewilpsedhys{5Q}{5I}7 62.1327 dvne 5R y 5I7 7 edd dys in prior yers 62.1328 dvne 5R y EIQUQRPW7 7 utrt dys efore qregorin 62.1329 gloldommon a 5R}7 7 HIFHIFHHHI 62.1330 5R a dommon}
62.1321 62.1322

rerewpromqregorin

he mro \HebrewFromGregorian{Gday }{Gmonth }{Gyear }{Hday }{Hmonth }E {Hyear } evlutes rerew dte HdayD HmonthD Hyear from qregorin dte GdayD GmonthD GyearF

defrerewpromqregorin5I5P5Q5R5S5T{7 {7 62.1333 ountdeftmpxa IU7 7 tmpxaaountIU 62.1334 ountdeftmpya IV7 7 tmpyaaountIV 62.1335 ountdeftmpza IW7 7 tmpzaaountIW 62.1336 7 62.1337 5T a 5Q7 7 62.1338 gloldvne 5T y QUTI7 pproximtion from ove 62.1339 esolutepromqregorin{5I}{5P}{5Q}{5R}7 62.1340 tmpz a I tmpy a I7 62.1341 esolutepromrerew{tmpz}{tmpy}{5T}{tmpx}7 62.1342 ifnum tmpx b 5R7 7 62.1343 gloldvne 5T y EI7 ryer a qyer C QUTH 62.1344 esolutepromrerew{tmpz}{tmpy}{5T}{tmpx}7 62.1345 fi7 7 62.1346 dvne 5R y Etmpx7 7 hys in this yer 62.1347 dvne 5R y I7 7 62.1348 5S a 5R7 7 62.1349 divide 5S y QH7 7 epproximtion for month from elow 62.1350 loop7 7 erh for month 62.1351 rerewhyssnriorwonths{5S}{5T}{tmpx}7 62.1352 ifnum tmpx ` 5R7 62.1353 dvne 5S y I7 62.1354 tmpy a tmpx7 62.1355 repet7 62.1356 gloldvne 5S y EI7 62.1357 gloldvne 5R y Etmpy}} 62.1358 /calendar
62.1331 62.1332

RPI

63

Hebrew input encodings

rerew input enodings de(ned in (le hebinp.dtx77 should e used with A inputenc v i P pkgeF his pkge llows the user to speify n input enoding from this (le @for exmpleD sy rerewGvtin VVSWEVD sfw rerew odepge VTP or w indows rerew odepge IPSSA y syingX

\usepackage[encoding

name ]{inputenc}

he enoding n lso e seleted in the doument withX

\inputencoding{encoding

name }

he only prtil use of this ommnd within doument is when using text from severl douments to uild up omposite work suh s volume of journl rtilesF herefore this ommnd will e used only in vertil modeF he enodings provided y this pkge reX

si960 UEit rerew enoding for the rnge QP!IPUF his enoding lso known s oldEode nd de(ned y ssreli tndrd sEWTHF 8859-8 sy VVSWEV rerewGvtin enoding ommonly used in xs sysE temsF his enoding lso known s newEode nd inludes herew letters in positions strting from PPRF cp862 sfw VTP ode pge ommonly used y hy on sfwEomptile perE sonl omputersF his enoding lso known s pEode nd inludes herew letters in positions strting from IPVF cp1255 w indows IPSS @herewA ode pge whih is similr to VVSWEVF sn ddition to herew lettersD this enoding ontins lso herew vowels nd dots @nikudAF
ih enoding hs n ssoited .def (leD for exmple 8859-8.def whih de(nes the ehviour of eh input hrterD using the ommndsX

\DeclareInputText{slot }{text } \DeclareInputMath{slot }{math }


his de(nes the input hrter slot to e the text mteril or math mteril respetivelyF por exmpleD 8859-8.def de(nes slots "EA @letter helefA nd "B5 @A y syingX
helresnputext{PPR}{helef} helresnputwth{IVI}{mu}

xote tht the commands should e roustD nd should not e dependent on the output enodingF he sme slot should not hve oth text nd mth delrE tion for itF @his restrition my e removed in future releses of inputenAF he .def (le my lso de(ne ommnds using the delrtionsX \providecommand or \ProvideTextCommandDefaultF por exmpleD 8859-8.def de(nesX
rovideextgommndhefult{textonequrter}{ensuremth{frIR}} helresnputext{IVV}{textonequrter}
77 The
les described in this section have version number v1.1b and were last revised on 2004/02/20.

RPP

he use of the provide9 forms here will ensure tht etter de(nition will not e overEwrittenY their use is reommended sineD in generlD the est de(ntion depends on the fonts villeF ee the doumenttion in inputenc.dtx for detils of how to delre input de(nitions for vrious enodingsF

63.1 Default denitions for characters


pirstD we insert \makeatletter t the eginning of ll .def (les to use @ symol in the mros9 nmesF
63.1

driver mketletter

ome input hrters mp to internl funtions whih re not in either the T1 or OT1 font enodingF por this reson defult de(nitions re provided in the enoding (leX these will e used unless some other output enoding is used whih supports those glyphsF sn some ses this defult de(ntion hs to e simply n error messgeF xote tht this works resonly well only euse the enoding (les for oth OT1 nd T1 re loded in the stndrd ve formtF
8859 8 | cp862 | cp1255 rovideextgommndhefult{textdegree}{ensuremth{{ir}}} 63.4 rovideextgommndhefult{textonehlf}{ensuremth{frIP}} 63.5 rovideextgommndhefult{textonequrter}{ensuremth{frIR}} 63.6 /8859 8 | cp862 | cp1255 63.7 8859 8 | cp1255 63.8 rovideextgommndhefult{textthreequrters}{ensuremth{frQR}} 63.9 /8859 8 | cp1255 63.10 cp862 | cp1255 63.11 rovideextgommndhefult{textflorin}{textit{f}} 63.12 /cp862 | cp1255 63.13 cp862 63.14 rovideextgommndhefult{textpeset}{t} 63.15 /cp862
63.2 63.3

he nme \textblacksquare is derived from the ew symol nme sine edoe seem not to wnt this symolF he defult de(nitionD s ruleD mkes no lim to eing good designF
cp862 rovideextgommndhefult{textlksqure} 63.18 {vrule dwidth FQem dheight FRem ddepth EFIemrelx} 63.19 /cp862
63.16 63.17

ome ommnds n9t e fkedD so we hve them generte n error messgeF


8859 8 | cp862 | cp1255 rovideextgommndhefult{textent} 63.22 {extymolnvilletextent} 63.23 rovideextgommndhefult{textyen} 63.24 {extymolnvilletextyen} 63.25 /8859 8 | cp862 | cp1255 63.26 8859 8 63.27 rovideextgommndhefult{texturreny} 63.28 {extymolnvilletexturreny} 63.29 /8859 8
63.20 63.21

RPQ

cp1255 rovideextgommndhefult{newsheqel} 63.32 {extymolnvillenewsheqel} 63.33 /cp1255 63.34 8859 8 | cp1255 63.35 rovideextgommndhefult{textrokenr} 63.36 {extymolnvilletextrokenr} 63.37 /8859 8 | cp1255 63.38 cp1255 63.39 rovideextgommndhefult{textperthousnd} 63.40 {extymolnvilletextperthousnd} 63.41 /cp1255
63.30 63.31

ghrters tht re supposed to e used only in mth will e de(ned y A \providecommand euse v i P ssumes tht the font enoding for mth fonts is sttiF
63.42

8859 8 | cp1255 provideommnd{mthonesuperior}{{I}} 63.44 provideommnd{mththreesuperior}{{Q}} 63.45 /8859 8 | cp1255 63.46 8859 8 | cp862 | cp1255 63.47 provideommnd{mthtwosuperior}{{P}} 63.48 /8859 8 | cp862 | cp1255 63.49 cp862 63.50 provideommnd{mthordmsuline}{{o}} 63.51 provideommnd{mthordfeminine}{{}} 63.52 /cp862
63.43

63.2 The SI-960 encoding


he sEWTH or oldEode enoding only llows hrters in the rnge QP!IPUD so we only need to provide n empty si960.def (leF

63.3 The ISO 8859-8 encoding and the MS Windows cp1255 encoding
he 8859-8.def enoding (le de(nes the hrters in the sy VVSWEV enodingF he w indows rerew hrter set inorportes the rerew letter reperE toire of sy VVSWEVD nd uses the sme ode points @strting from PPRAF st hs lso some importnt dditions in the IPV!ISW nd IWH!PPR rngesF
cp1255 helresnputext{IQH}{quotesinglse} 63.55 helresnputext{IQI}{textflorin} 63.56 helresnputext{IQP}{quotedlse} 63.57 helresnputext{IQQ}{dots} 63.58 helresnputext{IQR}{dg} 63.59 helresnputext{IQS}{ddg} 63.60 helresnputext{IQT}{{}} 63.61 helresnputext{IQU}{textperthousnd} 63.62 helresnputext{IQW}{guilsinglleft} 63.63 helresnputext{IRS}{textquoteleft} 63.64 helresnputext{IRT}{textquoteright} 63.65 helresnputext{IRU}{textquotedlleft}
63.53 63.54

RPR

helresnputext{IRV}{textquotedlright} helresnputext{IRW}{textullet} 63.68 helresnputext{ISH}{textendsh} 63.69 helresnputext{ISI}{textemdsh} 63.70 helresnputext{ISP}{~{}} 63.71 helresnputext{ISQ}{texttrdemrk} 63.72 helresnputext{ISS}{guilsinglright} 63.73 /cp1255
63.66 63.67

8859 8 | cp1255 helresnputext{ITH}{norekspe} 63.76 helresnputext{ITP}{textent} 63.77 helresnputext{ITQ}{pounds} 63.78 +8859 8 \DeclareInputText{164}{\textcurrency} 63.79 +cp1255 \DeclareInputText{164}{\newsheqel} 63.80 helresnputext{ITS}{textyen} 63.81 helresnputext{ITT}{textrokenr} 63.82 helresnputext{ITU}{} 63.83 helresnputext{ITV}{4{}} 63.84 helresnputext{ITW}{textopyright} 63.85 +8859 8 \DeclareInputMath{170}{\times} 63.86 helresnputext{IUI}{guillemotleft} 63.87 helresnputwth{IUP}{lnot} 63.88 helresnputext{IUQ}{E} 63.89 helresnputext{IUR}{textregistered} 63.90 helresnputext{IUS}{dtkludgea{}} 63.91 helresnputext{IUT}{textdegree} 63.92 helresnputwth{IUU}{pm} 63.93 helresnputwth{IUV}{mthtwosuperior} 63.94 helresnputwth{IUW}{mththreesuperior} 63.95 helresnputext{IVH}{dtkludge9{}} 63.96 helresnputwth{IVI}{mu} 63.97 helresnputext{IVP}{} 63.98 helresnputext{IVQ}{textperiodentered} 63.99 +8859 8 \DeclareInputText{184}{\c\ } 63.100 helresnputwth{IVS}{mthonesuperior} 63.101 +8859 8 \DeclareInputMath{186}{\div} 63.102 helresnputext{IVU}{guillemotright} 63.103 helresnputext{IVV}{textonequrter} 63.104 helresnputext{IVW}{textonehlf} 63.105 helresnputext{IWH}{textthreequrters} 63.106 /8859 8 | cp1255
63.74 63.75

rerew vowels nd dots @nikudA re inluded only to w indows pIPSS pge nd strt from the position IWPF
cp1255 helresnputext{IWP}{heshev} 63.109 helresnputext{IWQ}{hehtfsegol} 63.110 helresnputext{IWR}{hehtfpth} 63.111 helresnputext{IWS}{hehtfqmts} 63.112 helresnputext{IWT}{hehiriq} 63.113 helresnputext{IWU}{hetsere} 63.114 helresnputext{IWV}{hesegol} 63.115 helresnputext{IWW}{hepth} 63.116 helresnputext{PHH}{heqmts}
63.107 63.108

RPS

helresnputext{PHI}{heholm} helresnputext{PHQ}{hequuts} 63.119 helresnputext{PHR}{hedgesh} 63.120 helresnputext{PHS}{hemeteg} 63.121 helresnputext{PHT}{hemqf} 63.122 helresnputext{PHU}{herfe} 63.123 helresnputext{PHV}{hepseq} 63.124 helresnputext{PHW}{heshindot} 63.125 helresnputext{PIH}{hesindot} 63.126 helresnputext{PII}{hesofpsuq} 63.127 helresnputext{PIP}{hedoulevv} 63.128 helresnputext{PIQ}{hevvyod} 63.129 helresnputext{PIR}{hedouleyod} 63.130 /cp1255
63.117 63.118

rerew letters strt from the position PPR in oth enodingsF


63.131

8859 8 | cp1255 63.132 helresnputext{PPR}{helef} 63.133 helresnputext{PPS}{heet} 63.134 helresnputext{PPT}{hegimel} 63.135 helresnputext{PPU}{hedlet} 63.136 helresnputext{PPV}{hehe} 63.137 helresnputext{PPW}{hevv} 63.138 helresnputext{PQH}{hezyin} 63.139 helresnputext{PQI}{hehet} 63.140 helresnputext{PQP}{hetet} 63.141 helresnputext{PQQ}{heyod} 63.142 helresnputext{PQR}{hefinlkf} 63.143 helresnputext{PQS}{hekf} 63.144 helresnputext{PQT}{helmed} 63.145 helresnputext{PQU}{hefinlmem} 63.146 helresnputext{PQV}{hemem} 63.147 helresnputext{PQW}{hefinlnun} 63.148 helresnputext{PRH}{henun} 63.149 helresnputext{PRI}{hesmekh} 63.150 helresnputext{PRP}{heyin} 63.151 helresnputext{PRQ}{hefinlpe} 63.152 helresnputext{PRR}{hepe} 63.153 helresnputext{PRS}{hefinltsdi} 63.154 helresnputext{PRT}{hetsdi} 63.155 helresnputext{PRU}{heqof} 63.156 helresnputext{PRV}{heresh} 63.157 helresnputext{PRW}{heshin} 63.158 helresnputext{PSH}{hetv} 63.159 /8859 8 | cp1255

peil symols whih de(ne the diretion of symols expliitlyF gurrentlyD A they re not used in v iF
cp1255 helresnputext{PSQ}{lefttorightmrk} 63.162 helresnputext{PSR}{righttoleftmrk} 63.163 /cp1255
63.160 63.161

RPT

63.4 The IBM code page 862


he cp862.def enoding (le de(nes the hrters in the sfw odepge VTP enodingF he hy grphis letters9 nd few other positions re ignored @left unde(nedAF rerew letters strt from the position IPVF
cp862 helresnputext{IPV}{helef} 63.166 helresnputext{IPW}{heet} 63.167 helresnputext{IQH}{hegimel} 63.168 helresnputext{IQI}{hedlet} 63.169 helresnputext{IQP}{hehe} 63.170 helresnputext{IQQ}{hevv} 63.171 helresnputext{IQR}{hezyin} 63.172 helresnputext{IQS}{hehet} 63.173 helresnputext{IQT}{hetet} 63.174 helresnputext{IQU}{heyod} 63.175 helresnputext{IQV}{hefinlkf} 63.176 helresnputext{IQW}{hekf} 63.177 helresnputext{IRH}{helmed} 63.178 helresnputext{IRI}{hefinlmem} 63.179 helresnputext{IRP}{hemem} 63.180 helresnputext{IRQ}{hefinlnun} 63.181 helresnputext{IRR}{henun} 63.182 helresnputext{IRS}{hesmekh} 63.183 helresnputext{IRT}{heyin} 63.184 helresnputext{IRU}{hefinlpe} 63.185 helresnputext{IRV}{hepe} 63.186 helresnputext{IRW}{hefinltsdi} 63.187 helresnputext{ISH}{hetsdi} 63.188 helresnputext{ISI}{heqof} 63.189 helresnputext{ISP}{heresh} 63.190 helresnputext{ISQ}{heshin} 63.191 helresnputext{ISR}{hetv}
63.164 63.165

helresnputext{ISS}{textent} helresnputext{IST}{pounds} 63.194 helresnputext{ISU}{textyen} 63.195 helresnputext{ISV}{textpeset} 63.196 helresnputext{ISW}{textflorin} 63.197 helresnputext{ITH}{dtkludge9} 63.198 helresnputext{ITI}{dtkludge9i} 63.199 helresnputext{ITP}{dtkludge9o} 63.200 helresnputext{ITQ}{dtkludge9u} 63.201 helresnputext{ITR}{~n} 63.202 helresnputext{ITS}{~x} 63.203 helresnputwth{ITT}{mthordfeminine} 63.204 helresnputwth{ITU}{mthordmsuline} 63.205 helresnputext{ITV}{textquestiondown} 63.206 helresnputwth{IUH}{lnot} 63.207 helresnputext{IUI}{textonehlf} 63.208 helresnputext{IUP}{textonequrter} 63.209 helresnputext{IUQ}{textexlmdown} 63.210 helresnputext{IUR}{guillemotleft} 63.211 helresnputext{IUS}{guillemotright}
63.192 63.193

RPU

helresnputwth{PPR}{lph} helresnputext{PPS}{ss} 63.214 helresnputwth{PPT}{qmm} 63.215 helresnputwth{PPU}{pi} 63.216 helresnputwth{PPV}{igm} 63.217 helresnputwth{PPW}{sigm} 63.218 helresnputwth{PQH}{mu} 63.219 helresnputwth{PQI}{tu} 63.220 helresnputwth{PQP}{hi} 63.221 helresnputwth{PQQ}{het} 63.222 helresnputwth{PQR}{ymeg} 63.223 helresnputwth{PQS}{delt} 63.224 helresnputwth{PQT}{infty} 63.225 helresnputwth{PQU}{phi} 63.226 helresnputwth{PQV}{vrepsilon} 63.227 helresnputwth{PQW}{p} 63.228 helresnputwth{PRH}{equiv} 63.229 helresnputwth{PRI}{pm} 63.230 helresnputwth{PRP}{ge} 63.231 helresnputwth{PRQ}{le} 63.232 helresnputwth{PRT}{div} 63.233 helresnputwth{PRU}{pprox} 63.234 helresnputext{PRV}{textdegree} 63.235 helresnputext{PRW}{textperiodentered} 63.236 helresnputext{PSH}{textullet} 63.237 helresnputwth{PSI}{surd} 63.238 helresnputwth{PSP}{mthnsuperior} 63.239 helresnputwth{PSQ}{mthtwosuperior} 63.240 helresnputext{PSR}{textlksqure} 63.241 helresnputext{PSS}{norekspe} 63.242 /cp862
63.212 63.213

hislexikud

e utility mro to ignore ny nikud hrter tht my pper in the inputF his llows you to ignore pIPSS nikud hrters tht hppened to pper in the inputF

8859 8 newommnd{hislexikud}{7 63.245 helresnputext{IWP}{}7 63.246 helresnputext{IWQ}{}7 63.247 helresnputext{IWR}{}7 63.248 helresnputext{IWS}{}7 63.249 helresnputext{IWT}{}7 63.250 helresnputext{IWU}{}7 63.251 helresnputext{IWV}{}7 63.252 helresnputext{IWW}{}7 63.253 helresnputext{PHH}{}7 63.254 helresnputext{PHI}{}7 63.255 helresnputext{PHQ}{}7 63.256 helresnputext{PHR}{}7 63.257 helresnputext{PHS}{}7 63.258 helresnputext{PHT}{}7 63.259 helresnputext{PHU}{}7 63.260 helresnputext{PHV}{}7 63.261 helresnputext{PHW}{}7 63.262 helresnputext{PIH}{}7
63.243 63.244

RPV

63.263 63.264 63.265 63.266 63.267 63.268

} /8859 8

helresnputext{PII}{}7 helresnputext{PIP}{}7 helresnputext{PIQ}{}7 helresnputext{PIR}{}7

pinllyD we reset the tegory ode of the @ sign t the end of ll .def (lesF
63.269

driver mketother

64

Hebrew font encodings

hon9t forget to updte the dosFFF

64.1 THIS SECTION IS OUT OF DATE. UPDATE DOCS TO MATCH HE8 ENCODING
he (le hebrew.fdd78 ontins the vol rerew inoding @LHEA de(nitionD the externl font informtion needed to use the rerew UEit fonts @old ode fontsA nd hebfont pkge tht provides rerew font swithing ommndsF sing this (le s n inputD lheenc.def enoding de(nition (leD ll .fd (les @font de(nition (lesA nd font swithing pkge for ville rerew fonts re genertedF e hose to use UEit enoding s defult font enodingD euseX IF here re mny UEit enoded rerew fonts villeD more then for ny other enodingF PF eville i rerew fonts do not inlude ltin lphetD nd we n sfely mp rerew glyphs to the ASCII positions @H ! IPUAF gurrent de(nition of the LHE enoding supports only rerew letters @\hebalef! \hebtavAD ut not rerew pointsD suh s \hebdageshD \hebqamatsD \hebpatahD \hebshindotD etF e re working now on suh dditionF

64.2 The docstrip modules


he following modules re used in the implementtion to diret generting externl (lesX
78 The
2005/05/20.

docstrip

in

les described in this section have version number v1.2c and were last revised on

RPW

driver riVen riVmr riVmss riVmtt riVymegrerew riVhroni riVdvid riVdrugulin riVellini riVfrnkruehl riVutvd riVwirimwono riVxhlieli riVgourierhlom riVrelvetixrkissm riVimesxrkissim riVmfdvid riVm'rnk riVm'rnkthik riVm'rnkthin riVmfmirim riVmfmirimwide riVmfnrkistm vrien vrimr vrimss vrimtt vrils vrishold vrishsr vrishstk vrifr vrirml vriredis nowrn hefont e typil

produe doumenttion driver (le produe the enoding de(nition for godege IPSS @HE8A mke rerew defult font in HE8 mke rerew snsEserif font in HE8 mke rerew typewriter font in HE8 rerew font from the ymeg projet @y cccA rerew snsEserif font @gulmusA rerew serif font @gulmusA rerew old serif font @gulmusA rerew isnsEserif font @gulmusA rerew serif font @gulmusA rerew hndwriting font @gulmusA rerew monosped font rerew snsEserif font @gulmusA rerew hlom @gourierA font @y sfwA rerew xrkism @relvetiA @y vi xrkisA rerew xrkissim @imesA @y vi xrkisA rerew hvid font @y cccA rerew prnkEuehl font @y ccA rerew prnkEuehl @thikA font @y ccA rerew prnkEuehl @thinA font @y ccA rerew wirim font @y cccA rerew wirim @wideA font @y cccA rerew xrkis m font @y cccA produe the enoding de(nition for vol rerew inoding @LHEA mke mke mke mke mke mke mke mke mke mke rerew rerew rerew rerew rerew rerew rerew rerew rerew rerew defult font in LHE snsEserif font in LHE typewriter font in LHE lssi font @y toel wF ro'mnA in LHE shlom old font @y tonthn freherA in LHE shlom sript font @y tonthn freherA in LHE shlom stik font @y tonthn freherA in LHE frnkEruehl font in LHE rmel font @y hrF my frnyA in LHE redis font @y rofF tques tF qoldergA in LHE

option for font de(nition (lesD tht used to produe silent font sustitutions without giving wrnings rete rerew font swithing ommnds pkge

docstrip ommnd (le would then hve entries likeX

genertepile{lhemrFfd}{t}{from{herewFfdd}{vrimrDnowrn}}

64.3 The LHEencoding denition le


he rerew font enoding LHE is sed upon the oldEode enoding lso known s the ssreli tndrd sEWTHF wny rerew i fonts from the rerew niversity of teruslem re enoded in this enodingF st only uses the lower IPV positions of the font tleF es lol enoding its nme strt with the letter v9F RQH

pirst we de(ne the vol rerew inodingY speify defult for the font sustitution proess for the LHE enoding nd supply font to e used when ll else filsF
LHEenc helrepontinoding{vri}{}{} 64.3 helrepontustitution{vri}{mr}{m}{n} 64.4 helreirrorpont{vri}{mr}{m}{n}{IH} 64.5 /LHEenc
64.1 64.2

hen we de(ne few ommnds in the LHE enodingF


LHEenc rovideextgommnd{textopyright}{vri}{textirled{dltin{}}} 64.8 rovideextgommnd{textregistered}{vri}{textirled{sshpe7 64.9 dltin{r}}} 64.10 rovideextgommnd{texttrdemrk}{vri}{textsupersript{dltin{w}}} 64.11 /LHEenc
64.6 64.7

feuse not everyone n input rerew input text diretly from the keyord we need to de(ne ontrol sequenes for ll the rerew glyphs in the fontsF sn dditionD we wnt to support mny input enodings for rerew nd to keep the lnguge de(nition (le @hebrew.ldfA independent of the enodingF hereforeD we A exploit the stndrd v i P font enoding mehnism to de(ne ontrol sequenes for ll the rerew glyphs in the fonts in enodingEspei( wyF he lnguge de(nition (le uses only the ontrol sequenes nd doesn9t need to hek the urrent font or input enodingF sn the LHE enoding @UEit enodingA ll the rerew glyphes reside in the lower hlf of the fontF gurrentlyD only the rerew letters re supportedF hey use the sme positions s the ltin smll letters in ASCII enoding nd the position of `F he symol ` @glyph WTA is used y rerew letter AlefD so we need to de(ne its lccode to llow hyphentionF ell other letters retin the sme lccodes s their ltin ounterprtsF
64.12

+LHEenc lodea

rerew letters oupy the positions WT!IPP in LHE enodingX


LHEenc helreextymol{helef}{vri}{WT} 64.15 helreextymol{heet}{vri}{WU} 64.16 helreextymol{hegimel}{vri}{WV} 64.17 helreextymol{hedlet}{vri}{WW} 64.18 helreextymol{hehe}{vri}{IHH} 64.19 helreextymol{hevv}{vri}{IHI} 64.20 helreextymol{hezyin}{vri}{IHP} 64.21 helreextymol{hehet}{vri}{IHQ} 64.22 helreextymol{hetet}{vri}{IHR} 64.23 helreextymol{heyod}{vri}{IHS} 64.24 helreextymol{hefinlkf}{vri}{IHT} 64.25 helreextymol{hekf}{vri}{IHU} 64.26 helreextymol{helmed}{vri}{IHV} 64.27 helreextymol{hefinlmem}{vri}{IHW} 64.28 helreextymol{hemem}{vri}{IIH} 64.29 helreextymol{hefinlnun}{vri}{III} 64.30 helreextymol{henun}{vri}{IIP} 64.31 helreextymol{hesmekh}{vri}{IIQ}
64.13 64.14

RQI

helreextymol{heyin}{vri}{IIR} helreextymol{hefinlpe}{vri}{IIS} 64.34 helreextymol{hepe}{vri}{IIT} 64.35 helreextymol{hefinltsdi}{vri}{IIU} 64.36 helreextymol{hetsdi}{vri}{IIV} 64.37 helreextymol{heqof}{vri}{IIW} 64.38 helreextymol{heresh}{vri}{IPH} 64.39 helreextymol{heshin}{vri}{IPI} 64.40 helreextymol{hetv}{vri}{IPP} 64.41 /LHEenc
64.32 64.33

vetter \hebsin is de(ned s synonym of \hebshinX


64.42

+LHEenc lethesinaheshin

64.4 The font denition les (in LHE encoding)


64.4.1 Hebrew default font
st uses Jerusalem font for regulr fontD Old Jaa font for itli shpe nd smllE psD Dead Sea font for old feD nd Tel-Aviv for oldEitli
LHEcmr helrepontpmily{vri}{mr}{hyphenhrfontRS} 64.45 helreponthpe{vri}{mr}{m}{n} 64.46 {`Eb jerusIH }{} 64.47 7777777 stliized shpe 64.48 helreponthpe{vri}{mr}{m}{it} 64.49 {`Eb oldjfIH }{} 64.50 helreponthpe{vri}{mr}{m}{sl} 64.51 {`Eb oldjfIH }{} 64.52 helreponthpe{vri}{mr}{m}{s} 64.53 {`Eb oldjfIH }{} 64.54 7777777 fold extended series 64.55 helreponthpe{vri}{mr}{x}{n} 64.56 {`Eb dedsIH }{} 64.57 helreponthpe{vri}{mr}{}{n} 64.58 {`Eb dedsIH }{} 64.59 7777777 fold extended @stliA series 64.60 helreponthpe{vri}{mr}{x}{sl} 64.61 {`Eb telvIH }{} 64.62 helreponthpe{vri}{mr}{x}{it} 64.63 {`Eb telvIH }{} 64.64 /LHEcmr
64.43 64.44

64.4.2

Hebrew sans-serif font


Old Jaa

e use Tel Aviv font for the ns fmilyF nd Dead Sea used for old feF
64.65 64.66

font is used for itli shpe

LHEcmss helrepontpmily{vri}{mss}{hyphenhrfontRS} 64.67 helreponthpe{vri}{mss}{m}{n} 64.68 {`Eb telvIH }{} 64.69 7777777 pontGshpe undefinedD therefore sustituted 64.70 helreponthpe{vri}{mss}{m}{s} 64.71 nowarn {<->sub * cmss/m/n}{}

RQP

+nowarn {<->ssub * cmss/m/n}{} 7777777 stliized shpe 64.74 helreponthpe{vri}{mss}{m}{it} 64.75 {`Eb oldjfIH }{} 64.76 7777777 pontGshpe undefinedD therefore 64.77 helreponthpe{vri}{mss}{m}{sl} 64.78 nowarn {<->sub * cmss/m/it}{} 64.79 +nowarn {<->ssub * cmss/m/it}{} 64.80 7777777 fold extended series 64.81 helreponthpe{vri}{mss}{x}{n} 64.82 {`Eb dedsIH }{} 64.83 7777777 pontGshpe undefinedD therefore 64.84 helreponthpe{vri}{mss}{}{n} 64.85 nowarn {<->sub * cmss/bx/n}{} 64.86 +nowarn {<->ssub * cmss/bx/n}{} 64.87 7777777 pontGshpe undefinedD therefore 64.88 helreponthpe{vri}{mss}{x}{sl} 64.89 nowarn {<->sub * cmss/bx/n}{} 64.90 +nowarn {<->ssub * cmss/bx/n}{} 64.91 7777777 pontGshpe undefinedD therefore 64.92 helreponthpe{vri}{mss}{x}{it} 64.93 nowarn {<->sub * cmss/bx/n}{} 64.94 +nowarn {<->ssub * cmss/bx/n}{} 64.95 /LHEcmss
64.72 64.73

sustituted

sustituted

sustituted

sustituted

64.4.3

Hebrew typewriter font


Old Jaa

e use Tel Aviv font s the typewriter fontF nd Dead Sea used for old feF
64.96 64.97

font is used for itli shpe

LHEcmtt helrepontpmily{vri}{mtt}{hyphenhr fontmdne} 64.98 helreponthpe{vri}{mtt}{m}{n} 64.99 {`Eb telvIH }{} 64.100 7777777 pontGshpe undefinedD therefore sustituted 64.101 helreponthpe{vri}{mtt}{m}{s} 64.102 nowarn {<->sub * cmtt/m/n}{} 64.103 +nowarn {<->ssub * cmtt/m/n}{} 64.104 7777777 stliized shpe 64.105 helreponthpe{vri}{mtt}{m}{it} 64.106 {`Eb oldjfIH }{} 64.107 7777777 pontGshpe undefinedD therefore sustituted 64.108 helreponthpe{vri}{mtt}{m}{sl} 64.109 nowarn {<->sub * cmtt/m/it}{} 64.110 +nowarn {<->ssub * cmtt/m/it}{} 64.111 7777777 fold extended series 64.112 helreponthpe{vri}{mtt}{x}{n} 64.113 {`Eb dedsIH }{} 64.114 7777777 pontGshpe undefinedD therefore sustituted 64.115 helreponthpe{vri}{mtt}{x}{it} 64.116 nowarn {<->sub * cmtt/bx/n}{} 64.117 +nowarn {<->ssub * cmtt/bx/n}{} 64.118 /LHEcmtt

RQQ

64.4.4

Hebrew classic font

Hclassic nd hcaption fonts re distriuted freely from CTAN sites nd opyE righted y toel wF ro'mnD of IW rillrest vneD yeD x IHSVH eD eEmilX 72700.402@compuserve.comF rlssi is modernized glssil rerew font @in the sme wy tht unuth9s cmr fmily is modernized omn font " ut his fonts re muh nierAF rption is slnted version of hlssi fontF foth fonts ontin ll of the rerew onsoE nntsD the @rrely usedA ligture alef-lamed nd two versions of the letter ayin for use with nd without vowelsF rlssi lso ontins ll of the vowels found in rerewD symol for metegD nd dots for use s dagesh nd for di'erentiting shin nd sin lettersF gurrentlyD only the rerew onsonnts @hebalef ! hebtav A from these fonts A re supported y v i P D however one n use vowels nd dots diretly with Plain i mrosF e re working on generi vowels nd dots support for A v i P F

LHEclas helrepontpmily{vri}{ls}{} 64.121 helreponthpe{vri}{ls}{m}{n} 64.122 {`Eb s B HFVQQRS hlssi }{} 64.123 7777777 pontGshpe undefinedD therefore sustituted 64.124 helreponthpe{vri}{ls}{m}{s} 64.125 nowarn {<->sub * clas/m/n}{} 64.126 +nowarn {<->ssub * clas/m/n}{} 64.127 7777777 lnted shpe 64.128 helreponthpe{vri}{ls}{m}{sl} 64.129 {`Eb s B HFTWQVW hption }{} 64.130 7777777 pontGshpe undefinedD therefore sustituted 64.131 helreponthpe{vri}{ls}{m}{it} 64.132 nowarn {<->sub * clas/m/sl}{} 64.133 +nowarn {<->ssub * clas/m/sl}{} 64.134 /LHEclas
64.119 64.120

64.4.5

Hebrew shalom fonts

ell three shlom fonts @ShalomScript10D ShalomStick10 nd ShalomOldStyle10 A hve een reted y tonthn freherD of W kyview odD vexingtonD we HPIUQE IIIP eD eEmilX brecher@husc.harvard.eduF ell shlom fonts hve een written in PostScript vi pontogrpher on wF he fonts hve een onverted to METAFONT y m orrt @eEmilX rama@cc.huji.ac.ilAD using the utility typoD font editor C onverter etween font formts @ ommeril produtAF ShalomScript10.mf is the METAFONT equivlent of ShalomScript.psD ShalomStick10.mf me from ShalomStick.ps nd ShalomOldStyle10.mf originted in ShalomOldStyle.psF he fonts di'er in the letters9 styleF hlomriptIH ontins hnd writing rerew lettersY hlomtikIH ontins snsEserif lettersD nd hlomyldtyleIH ontins old style lettersF ell three fonts ontin vowels nd dots @nikudAF hile onverting to METAFONTD letters nd symols within the fonts hve een rrnged A so s to get usle font for writing rerew douments in i or v iD with s well s without vowelsF gurrentlyD only the rerew onsonnts @hebalef ! hebtav A from these fonts

RQR

A re supported y v i P D however one n use vowels nd dots diretly with mrosF e re working on generi vowels nd dots support for A v i P F

Plain i

LHEshold helrepontpmily{vri}{shold}{} 64.137 helreponthpe{vri}{shold}{m}{n} 64.138 {`Eb sholdIH }{} 64.139 /LHEshold 64.140 LHEshscr 64.141 helrepontpmily{vri}{shsr}{} 64.142 helreponthpe{vri}{shsr}{m}{n} 64.143 {`Eb shsrIH }{} 64.144 /LHEshscr 64.145 LHEshstk 64.146 helrepontpmily{vri}{shstk}{} 64.147 helreponthpe{vri}{shstk}{m}{n} 64.148 {`Eb shstkIH }{} 64.149 /LHEshstk
64.135 64.136

64.4.6

Hebrew frank-ruehl font

Frank Ruehl font ws written in METAFONT nd inludes three shpesX regulrD old extneded nd slntedF

LHEfr helrepontpmily{vri}{fr}{} 64.152 helreponthpe{vri}{fr}{m}{n} 64.153 {`Eb fr }{} 64.154 7777777 pontGshpe undefinedD therefore 64.155 helreponthpe{vri}{fr}{m}{s} 64.156 nowarn {<->sub * fr/m/n}{} 64.157 +nowarn {<->ssub * fr/m/n}{} 64.158 7777777 lnted shpe 64.159 helreponthpe{vri}{fr}{m}{sl} 64.160 {`Eb frsl }{} 64.161 7777777 pontGshpe undefinedD therefore 64.162 helreponthpe{vri}{fr}{m}{it} 64.163 nowarn {<->sub * fr/m/sl}{} 64.164 +nowarn {<->ssub * fr/m/sl}{} 64.165 7777777 fold extended series 64.166 helreponthpe{vri}{fr}{x}{n} 64.167 {`Eb frx }{} 64.168 7777777 pontGshpe undefinedD therefore 64.169 helreponthpe{vri}{fr}{}{n} 64.170 nowarn {<->sub * fr/bx/n}{} 64.171 +nowarn {<->ssub * fr/bx/n}{} 64.172 7777777 pontGshpe undefinedD therefore 64.173 helreponthpe{vri}{fr}{x}{sl} 64.174 nowarn {<->sub * fr/bx/n}{} 64.175 +nowarn {<->ssub * fr/bx/n}{} 64.176 7777777 pontGshpe undefinedD therefore 64.177 helreponthpe{vri}{fr}{x}{it} 64.178 nowarn {<->sub * fr/bx/n}{} 64.179 +nowarn {<->ssub * fr/bx/n}{}
64.150 64.151

sustituted

sustituted

sustituted

sustituted

sustituted

RQS

64.180

/LHEfr

64.4.7
Carmel

Hebrew carmel font

font inludes regulr nd slnted shpesF st ws reted y hrF my frny of the ehnionD rifD ssrel with the intention of mking nie fonts for heders nd emphsized textF
LHEcrml helrepontpmily{vri}{rml}{} 64.183 helreponthpe{vri}{rml}{m}{n} 64.184 {`Eb rmlIH }{} 64.185 7777777 pontGshpe undefinedD therefore sustituted 64.186 helreponthpe{vri}{rml}{m}{s} 64.187 nowarn {<->sub * crml/m/n}{} 64.188 +nowarn {<->ssub * crml/m/n}{} 64.189 7777777 lnted shpe 64.190 helreponthpe{vri}{rml}{m}{sl} 64.191 {`Eb rmlslIH }{} 64.192 7777777 pontGshpe undefinedD therefore sustituted 64.193 helreponthpe{vri}{rml}{m}{it} 64.194 nowarn {<->sub * crml/m/sl}{} 64.195 +nowarn {<->ssub * crml/m/sl}{} 64.196 /LHEcrml
64.181 64.182

64.4.8
Redis

Hebrew redis font

font hs een reted y rofF tques tF qolderg of the ehnionF rifD ssrelF he font is ville in regulrD slnted nd old extnded shpesF his font ontins full set of rerew letters in snsEserif vetorized styleD nd seleted puntutionF
LHEredis helrepontpmily{vri}{redis}{} 64.199 helreponthpe{vri}{redis}{m}{n}{7 64.200 `Sb `Tb redisU 64.201 `Ub `Vb `Wb `IHb `IPb gen B redis 64.202 `IHFWSb redisIH 64.203 `IRFRb redisIP 64.204 `IUFPVb `PHFURb `PRFVVb redisIU}{} 64.205 7777777 pontGshpe undefinedD therefore sustituted 64.206 helreponthpe{vri}{redis}{m}{s} 64.207 nowarn {<->sub * redis/m/n}{} 64.208 +nowarn {<->ssub * redis/m/n}{} 64.209 7777777 lnted shpe 64.210 helreponthpe{vri}{redis}{m}{sl}{7 64.211 `Sb `Tb `Ub redissV 64.212 `Vb `Wb `IHb `IPb gen B rediss 64.213 `IHFWSb redissIH 64.214 `IRFRb `IUFPVb `PHFURb `PRFVVb redissIP}{} 64.215 7777777 pontGshpe undefinedD therefore sustituted 64.216 helreponthpe{vri}{redis}{m}{it} 64.217 nowarn {<->sub * redis/m/sl}{} 64.218 +nowarn {<->ssub * redis/m/sl}{} 64.219 7777777 fold extended series
64.197 64.198

RQT

helreponthpe{vri}{redis}{x}{n}{7 `Sb `Tb `Ub `Vb `Wb `IHb `IHFWSb `IPb 64.222 `IRFRb `IUFPVb `PHFURb `PRFVVb redisIH}{} 64.223 7777777 pontGshpe undefinedD therefore sustituted 64.224 helreponthpe{vri}{redis}{}{n} 64.225 nowarn {<->sub * redis/bx/n}{} 64.226 +nowarn {<->ssub * redis/bx/n}{} 64.227 7777777 pontGshpe undefinedD therefore sustituted 64.228 helreponthpe{vri}{redis}{x}{sl} 64.229 nowarn {<->sub * redis/bx/n}{} 64.230 +nowarn {<->ssub * redis/bx/n}{} 64.231 7777777 pontGshpe undefinedD therefore sustituted 64.232 helreponthpe{vri}{redis}{x}{it} 64.233 nowarn {<->sub * redis/bx/n}{} 64.234 +nowarn {<->ssub * redis/bx/n}{} 64.235 /LHEredis
64.220 64.221

64.5 The HE8encoding denition le


he rerew font enoding HE8 is sed upon n extention y wirosoft to the syEVVSWEV stndrdF his is n Vit enodingF he extentions inlude herew points @xikudAF pirst we de(ne the godepge IPSSY speify defult for the font sustitution proess for the HE8 enoding nd supply font to e used when ll else filsF
HE8enc helrepontinoding{riV}{}{} 64.238 helrepontustitution{riV}{mr}{m}{n} 64.239 helreirrorpont{riV}{mr}{m}{n}{IH} 64.240 /HE8enc
64.236 64.237

hen we de(ne few ommnds in the HE8 enodingF


HE8enc rovideextgommnd{textopyright}{riV}{textirled{dltin{}}} 64.243 rovideextgommnd{textregistered}{riV}{textirled{sshpe7 64.244 dltin{r}}} 64.245 rovideextgommnd{texttrdemrk}{riV}{textsupersript{dltin{w}}} 64.246 /HE8enc
64.241 64.242

64.5.1

CHECK HERE FOR HE8 UPDATES

feuse not everyone n input rerew input text diretly from the keyord we need to de(ne ontrol sequenes for ll the rerew glyphs in the fontsF sn dditionD we wnt to support mny input enodings for rerew nd to keep the lnguge de(nition (le @hebrew.ldfA independent of the enodingF hereforeD we exploit A the stndrd v i P font enoding mehnism to de(ne ontrol sequenes for ll the rerew glyphs in the fonts in enodingEspei( wyF he lnguge de(nition (le uses only the ontrol sequenes nd doesn9t need to hek the urrent font or input enodingF sn the LHE enoding @UEit enodingA ll the rerew glyphes reside in the lower hlf of the fontF gurrentlyD only the rerew letters re supportedF hey use the sme positions s the ltin smll letters in ASCII enoding nd the position of `F ome generl symolsX RQU

HE8enc rovideextgommnd{textopyright}{riV}{textirled{dltin{}}} 64.249 rovideextgommnd{textregistered}{riV}{textirled{sshpe7 64.250 dltin{r}}} 64.251 rovideextgommnd{texttrdemrk}{riV}{textsupersript{dltin{w}}} 64.252 /HE8enc
64.247 64.248

he herew pointsX
HE8enc 64.254 helreextymol{shev}{riV}{IWP} 64.255 helreextymol{htfsegol}{riV}{IWQ} 64.256 helreextymol{htfpth}{riV}{IWR} 64.257 helreextymol{htfqmts}{riV}{IWS} 64.258 helreextymol{hiriq}{riV}{IWT} 64.259 helreextymol{tsere}{riV}{IWU} 64.260 helreextymol{segol}{riV}{IWV} 64.261 helreextymol{pth}{riV}{IWW} 64.262 helreextymol{qmts}{riV}{PHH} 64.263 helreextymol{holm}{riV}{PHI} 64.264 helreextymol{quuts}{riV}{PHQ} 64.265 helreextymol{dgesh}{riV}{PHR} 64.266 helreextymol{meteg}{riV}{PHS} 64.267 helreextymol{mqf}{riV}{PHT} 64.268 helreextymol{rfe}{riV}{PHU} 64.269 helreextymol{pseq}{riV}{PHV} 64.270 helreextymol{shindot}{riV}{PHW} 64.271 helreextymol{sindot}{riV}{PIH} 64.272 helreextymol{sofpsuq}{riV}{PII} 64.273 helreextymol{doulevv}{riV}{PIP} 64.274 helreextymol{vvyod}{riV}{PIQ} 64.275 helreextymol{douleyod}{riV}{PIR} 64.276 /HE8enc
64.253

rerew letters oupy the positions PPR!PSH in HE8 enoding re efy yri weuX
HE8enc 7 lodea 7 proly not needed @zfrirA 64.279 helreextymol{helef}{riV}{PPR} 64.280 helreextymol{heet}{riV}{PPS} 64.281 helreextymol{hegimel}{riV}{PPT} 64.282 helreextymol{hedlet}{riV}{PPU} 64.283 helreextymol{hehe}{riV}{PPV} 64.284 helreextymol{hevv}{riV}{PPW} 64.285 helreextymol{hezyin}{riV}{PQH} 64.286 helreextymol{hehet}{riV}{PQI} 64.287 helreextymol{hetet}{riV}{PQP} 64.288 helreextymol{heyod}{riV}{PQQ} 64.289 helreextymol{hefinlkf}{riV}{PQR} 64.290 helreextymol{hekf}{riV}{PQS} 64.291 helreextymol{helmed}{riV}{PQT} 64.292 helreextymol{hefinlmem}{riV}{PQU} 64.293 helreextymol{hemem}{riV}{PQV} 64.294 helreextymol{hefinlnun}{riV}{PQW} 64.295 helreextymol{henun}{riV}{PRH} 64.296 helreextymol{hesmekh}{riV}{PRI}
64.277 64.278

RQV

helreextymol{heyin}{riV}{PRP} helreextymol{hefinlpe}{riV}{PRQ} 64.299 helreextymol{hepe}{riV}{PRR} 64.300 helreextymol{hefinltsdi}{riV}{PRS} 64.301 helreextymol{hetsdi}{riV}{PRT} 64.302 helreextymol{heqof}{riV}{PRU} 64.303 helreextymol{heresh}{riV}{PRV} 64.304 helreextymol{heshin}{riV}{PRW} 64.305 helreextymol{hetv}{riV}{PSH} 64.306 /HE8enc
64.297 64.298

vetter \hebsin is de(ned s synonym of \hebshinX


64.307

+HE8enc lethesinaheshin

64.6 The font denition les (in HE8 encoding)


64.6.1 Hebrew default font
st uses OmegaHebrew font for regulr fontD Old Jaa font for itli shpe nd smllEpsD Dead Sea font for old feD nd Tel-Aviv for oldEitli
HE8cmr helrepontpmily{riV}{mr}{hyphenhrfontRS} 64.310 helreponthpe{riV}{mr}{m}{n} 64.311 {`Eb dvid }{} 64.312 7777777 stliized shpe 64.313 helreponthpe{riV}{mr}{m}{it} 64.314 {`Eb dvidi }{} 64.315 helreponthpe{riV}{mr}{m}{sl} 64.316 {`Eb dvidi }{} 64.317 helreponthpe{riV}{mr}{m}{s} 64.318 {`Eb dvid }{} 64.319 7777777 fold extended series 64.320 helreponthpe{riV}{mr}{x}{n} 64.321 {`Eb dvid }{} 64.322 helreponthpe{riV}{mr}{}{n} 64.323 {`Eb dvid }{} 64.324 7777777 fold extended @stliA series 64.325 helreponthpe{riV}{mr}{x}{sl} 64.326 {`Eb dvidi }{} 64.327 helreponthpe{riV}{mr}{x}{it} 64.328 {`Eb dvidi }{} 64.329 /HE8cmr
64.308 64.309

64.6.2

Hebrew sans-serif font

ntil we hve rel snsEserif font in this distriutionD this (le will remin opy of the romn fonts de(nitons oveF
HE8cmss helrepontpmily{riV}{mss}{hyphenhrfontRS} 64.332 helreponthpe{riV}{mss}{m}{n} 64.333 {`Eb nhlieli }{} 64.334 7777777 stliized shpe 64.335 helreponthpe{riV}{mss}{m}{it} 64.336 {`Eb nhlieli }{}
64.330 64.331

RQW

64.337 64.338

helreponthpe{riV}{mss}{m}{sl} {`Eb nhlieli }{} 64.339 helreponthpe{riV}{mss}{m}{s} 64.340 {`Eb nhlieli }{} 64.341 7777777 fold extended series 64.342 helreponthpe{riV}{mss}{x}{n} 64.343 {`Eb nhlieli }{} 64.344 helreponthpe{riV}{mss}{}{n} 64.345 {`Eb nhlieli }{} 64.346 7777777 fold extended @stliA series 64.347 helreponthpe{riV}{mss}{x}{sl} 64.348 {`Eb nhlieli }{} 64.349 helreponthpe{riV}{mss}{x}{it} 64.350 {`Eb nhlieli }{} 64.351 /HE8cmss

64.6.3

Hebrew typewriter font

ntil we hve rel snsEserif font in this distriutionD this (le will remin opy of the romn fonts de(nitons oveF
HE8cmtt helrepontpmily{riV}{mtt}{hyphenhrfontRS} 64.354 helreponthpe{riV}{mtt}{m}{n} 64.355 {`Eb mirim }{} 64.356 7777777 stliized shpe 64.357 helreponthpe{riV}{mtt}{m}{it} 64.358 {`Eb mirim }{} 64.359 helreponthpe{riV}{mtt}{m}{sl} 64.360 {`Eb mirim }{} 64.361 helreponthpe{riV}{mtt}{m}{s} 64.362 {`Eb mirim }{} 64.363 7777777 fold extended series 64.364 helreponthpe{riV}{mtt}{x}{n} 64.365 {`Eb mirim }{} 64.366 helreponthpe{riV}{mtt}{}{n} 64.367 {`Eb mirim }{} 64.368 7777777 fold extended @stliA series 64.369 helreponthpe{riV}{mtt}{x}{sl} 64.370 {`Eb mirim }{} 64.371 helreponthpe{riV}{mtt}{x}{it} 64.372 {`Eb mirim }{} 64.373 /HE8cmtt
64.352 64.353

64.6.4

8Bit OmegaHebrew font

is serif herew font reted y the omeg projet psvv sx gihE s psvv sx qixiev rei higssyx shpesX psvv sx
OmegaHebrew

HE8OmegaHebrew defymegrerewsle{HFW} 64.376 helrepontpmily{riV}{ymegrerew}{hyphenhrfontRS} 64.377 helreponthpe{riV}{ymegrerew}{m}{n}{`Eb ymegrerewsle ymegrerew }{} 64.378 7endinput 7 is it needed tzfrir 64.379 /HE8OmegaHebrew
64.374 64.375

RRH

64.6.5
Aharoni

8Bit Aharoni font

is serif herew font reted y the omeg projet psvv sx gihs psvv sx qixiev rei higssyx shpesX psvv sx
HE8aharoni defehronisle{IFH} 64.382 helrepontpmily{riV}{hroni}{hyphenhrfontRS} 64.383 helreponthpe{riV}{hroni}{m}{n} {`Eb ehronisle 64.384 helreponthpe{riV}{hroni}{m}{it} {`Eb ehronisle 64.385 helreponthpe{riV}{hroni}{m}{sl} {`Eb ehronisle 64.386 helreponthpe{riV}{hroni}{}{n} {`Eb ehronisle 64.387 helreponthpe{riV}{hroni}{x}{n} {`Eb ehronisle 64.388 helreponthpe{riV}{hroni}{x}{it} {`Eb ehronisle
64.380 64.381 64.389 64.390 64.391

hroni}{} hronii}{} hronii}{} hroni}{} hroni}{} hronii}{}

7endinput 7 is it needed tzfrir /HE8aharoni

64.6.6
David

8Bit David font

is serif herew font reted y the omeg projet psvv sx gihs psvv sx qixiev rei higssyx shpesX psvv sx
HE8david defhvidsle{IFH} 64.394 helrepontpmily{riV}{dvid}{hyphenhrfontRS}
64.392 64.393 64.395

helreponthpe{riV}{dvid}{m}{n} helreponthpe{riV}{dvid}{m}{it} 64.398 helreponthpe{riV}{dvid}{m}{sl} 64.399 helreponthpe{riV}{dvid}{}{n} 64.400 helreponthpe{riV}{dvid}{x}{n} 64.401 helreponthpe{riV}{dvid}{x}{it}
64.396 64.397 64.402 64.403 64.404 64.405

{`Eb {`Eb {`Eb {`Eb {`Eb {`Eb

hvidsle hvidsle hvidsle hvidsle hvidsle hvidsle

dvid}{} dvidi}{} dvidi}{} dvid}{} dvid}{} dvidi}{}

7endinput 7 is it needed tzfrir /HE8david

64.6.7
Drugulin

8Bit Drugulin font

is serif herew font reted y the omeg projet psvv sx gihs psvv sx qixiev rei higssyx shpesX psvv sx
HE8drugulin defhrugulinsle{IFH} 64.408 helrepontpmily{riV}{drugulin}{hyphenhrfontRS} 64.409 helreponthpe{riV}{drugulin}{m}{n} {`Eb hrugulinsle 64.410 helreponthpe{riV}{drugulin}{m}{it} {`Eb hrugulinsle 64.411 helreponthpe{riV}{drugulin}{m}{sl} {`Eb hrugulinsle 64.412 helreponthpe{riV}{drugulin}{}{n} {`Eb hrugulinsle 64.413 helreponthpe{riV}{drugulin}{x}{n} {`Eb hrugulinsle 64.414 helreponthpe{riV}{drugulin}{x}{it} {`Eb hrugulinsle 64.415 7endinput 7 is it needed tzfrir 64.416 /HE8drugulin
64.406 64.407

drugulin}{} drugulini}{} drugulini}{} drugulin}{} drugulin}{} drugulini}{}

RRI

64.6.8
Ellinia

8Bit Ellinia font

is snsEserif herew font reted y the omeg projet psvv sx gihE s psvv sx qixiev rei higssyx shpesX psvv sx
HE8ellinia defillinisle{IFH} 64.419 helrepontpmily{riV}{ellini}{hyphenhrfontRS} 64.420 helreponthpe{riV}{ellini}{m}{n} {`Eb illinisle 64.421 helreponthpe{riV}{ellini}{m}{it} {`Eb illinisle 64.422 helreponthpe{riV}{ellini}{m}{sl} {`Eb illinisle 64.423 helreponthpe{riV}{ellini}{}{n} {`Eb illinisle 64.424 helreponthpe{riV}{ellini}{x}{n} {`Eb illinisle 64.425 helreponthpe{riV}{ellini}{x}{it} {`Eb illinisle 64.426 7endinput 7 is it needed tzfrir 64.427 /HE8ellinia
64.417 64.418

ellini}{} ellinii}{} ellinii}{} ellini}{} ellini}{} ellinii}{}

64.6.9

8Bit FrankRuehl font

is serif herew font reted y the omeg projet psvv sx gihE s psvv sx qixiev rei higssyx shpesX psvv sx
FrankRuehl

HE8frankruehl defprnkuehlsle{IFH} 64.430 helrepontpmily{riV}{frnk}{hyphenhrfontRS} 64.431 helreponthpe{riV}{frnk}{m}{n} {`Eb prnkuehlsle 64.432 helreponthpe{riV}{frnk}{m}{it} {`Eb prnkuehlsle 64.433 helreponthpe{riV}{frnk}{m}{sl} {`Eb prnkuehlsle 64.434 helreponthpe{riV}{frnk}{}{n} {`Eb prnkuehlsle 64.435 helreponthpe{riV}{frnk}{x}{n} {`Eb prnkuehlsle 64.436 helreponthpe{riV}{frnk}{x}{it} {`Eb prnkuehlsle 64.437 7endinput 7 is it needed tzfrir 64.438 /HE8frankruehl
64.428 64.429

frnk}{} frnki}{} frnki}{} frnk}{} frnk}{} frnki}{}

64.6.10
KtavYad

8Bit KtavYad font

is serif herew font reted y the omeg projet psvv sx gihs psvv sx qixiev rei higssyx shpesX psvv sx
HE8yad defutvdsle{IFH} 64.441 helrepontpmily{riV}{yd}{hyphenhrfontRS} 64.442 helreponthpe{riV}{yd}{m}{n} {`Eb utvdsle ydi}{} 64.443 helreponthpe{riV}{yd}{m}{it} {`Eb utvdsle ydi}{} 64.444 helreponthpe{riV}{yd}{m}{sl} {`Eb utvdsle ydi}{} 64.445 helreponthpe{riV}{yd}{}{n} {`Eb utvdsle ydi}{} 64.446 helreponthpe{riV}{yd}{x}{n} {`Eb utvdsle ydi}{} 64.447 helreponthpe{riV}{yd}{x}{it} {`Eb utvdsle ydi}{} 64.448 7endinput 7 is it needed tzfrir 64.449 /HE8yad
64.439 64.440

64.6.11

8Bit MiriamMono font

is serif herew font reted y the omeg projet psvv sx gihE s psvv sx qixiev rei higssyx shpesX psvv sx
MiriamMono

RRP

HE8miriam defwirimwonosle{IFH} 64.452 helrepontpmily{riV}{mirim}{hyphenhrfontRS} 64.453 helreponthpe{riV}{mirim}{m}{n} {`Eb wirimwonosle 64.454 helreponthpe{riV}{mirim}{m}{it} {`Eb wirimwonosle 64.455 helreponthpe{riV}{mirim}{m}{sl} {`Eb wirimwonosle 64.456 helreponthpe{riV}{mirim}{}{n} {`Eb wirimwonosle 64.457 helreponthpe{riV}{mirim}{x}{n} {`Eb wirimwonosle 64.458 helreponthpe{riV}{mirim}{x}{it} {`Eb wirimwonosle
64.450 64.451 64.459 64.460 64.461

mirim}{} mirimi}{} mirimi}{} mirim}{} mirim}{} mirimi}{}

7endinput 7 is it needed tzfrir /HE8miriam

64.6.12
Nachlieli

8Bit Nachlieli font

is serif herew font reted y the omeg projet psvv sx gihs psvv sx qixiev rei higssyx shpesX psvv sx
HE8nachlieli defxhlielisle{IFH} 64.464 helrepontpmily{riV}{nhlieli}{hyphenhrfontRS} 64.465 helreponthpe{riV}{nhlieli}{m}{n} {`Eb xhlielisle 64.466 helreponthpe{riV}{nhlieli}{m}{it} {`Eb xhlielisle 64.467 helreponthpe{riV}{nhlieli}{m}{sl} {`Eb xhlielisle 64.468 helreponthpe{riV}{nhlieli}{}{n} {`Eb xhlielisle 64.469 helreponthpe{riV}{nhlieli}{x}{n} {`Eb xhlielisle 64.470 helreponthpe{riV}{nhlieli}{x}{it} {`Eb xhlielisle 64.471 7endinput 7 is it needed tzfrir 64.472 /HE8nachlieli
64.462 64.463

nhlieli}{} nhlielii}{} nhlielii}{} nhlieli}{} nhlieli}{} nhlielii}{}

64.6.13

Hebrew font switching commands

he hebfont pkge de(nes numer of highElevel ommnds @ll strting with A \text.. similr to the stndrd v i P fontEhnge ommndsD for exmple \textbfA tht hve one rgument nd typeset this rgument in the requested wyF hese ommnds re de(ned for ll ville rerew fonts de(ned ove nd hnge only font prmeters ut not diretionF por exmpleD to use rerew glssi font fmilyD the following sequene of A ommnds should e inluded in v i P doumentX

\sethebrew \textclas{Hebrew text printed with Classic fonts}


or to use rerew with glssi fonts lollyX

\R{\textclas{Hebrew text printed with Classic fonts}}


A e delre v i P font ommndsD eFgF \textjm{F F F } for ll ville fontsF le QT shows the menings of ll these new highElevel ommndsF

textjm

withes to Jerusalem font whih is defult regulr rerew font @romn fmilyAF gommnds \textrm{F F F } nd oldEstyle {\rm F F F } will produe the sme resultF
hebfont defivritexdtmp{riV}

64.473 64.474

RRQ

Command

Corresponds to

Font family

\textjm{..} \textds{..} \textoj{..} \textta{..} \textcrml{..} \textfr{..} \textredis{..} \textclas{..} \textshold{..} \textshscr{..} \textshstk{..}

\rmfamily \bfseries \itshape \slshape \emph \sffamily \ttfamily \fontfamily{crml} \fontfamily{fr} \fontfamily{redis} \fontfamily{redis} \fontfamily{shold} \fontfamily{shscr} \fontfamily{shstk}

teruslem font hed e font yld t' font elEeviv font grmel fonts prnkEuehl fonts edis fonts glssi fonts hlom yld tyle font hlom ript font hlom tik font

le QTX rerew fontEhnge ommnds with rguments he font hnge ommnds provided here ll strt with \text.. to emphsize tht they re for use in norml text nd to e esily memE orleF

ifxivritexdtmpreltexinoding 7 7 omptiility with hefontsX 64.477 helreextpontgommnd{textjm}{rmfmilyseletfont} 64.478 helreextpontgommnd{textds}{fseriesseletfont} 64.479 helreextpontgommnd{textoj}{itshpeseletfont} 64.480 helreextpontgommnd{textt}{sffmilyseletfont}
64.475 64.476 64.481 64.482 64.483 64.484 64.485 64.486 64.487 64.488 64.489 64.490 64.491 64.492 64.493 64.494 64.495 64.496 64.497 64.498 64.499 64.500 64.501

7 n ttempt to give some replements to the originl hefontsX 7 helreextpontgommnd{textrml}{fontfmily{dvid}seletfont} helreextpontgommnd{textfr}{fontfmily{frnk}seletfont} helreextpontgommnd{textredis}{fontfmily{hroni}seletfont} helreextpontgommnd{textls}{fontfmily{drugulin}seletfont} helreextpontgommnd{textshold}{fontfmily{frnk}seletfont} helreextpontgommnd{textshsr}{fontfmily{yd}seletfont} helreextpontgommnd{textshstk}{fontfmily{hroni}seletfont} 7 note tht redis is lrger thn shstk helreextpontgommnd{texth}{fontfmily{hroni}seletfont} helreextpontgommnd{textdv}{fontfmily{dvid}seletfont} helreextpontgommnd{textdru}{fontfmily{drugulin}seletfont} helreextpontgommnd{textel} {fontfmily{ellini}seletfont} 7 textfr is lredy delred ove helreextpontgommnd{textmir}{fontfmily{mirim}seletfont} helreextpontgommnd{textn} {fontfmily{nhlieli}seletfont} 7 is this neessryX

RRR

64.502 64.503 64.504 64.505

helreextpontgommnd{textyd} {fontfmily{yd}seletfont} else7 helreextpontgommnd{textjm}{rmfmilyseletfont}

textds

withes to Dead Sea font whih is defult old font in rerewF gommnds \textbf{F F F } nd oldEstyle {\bf F F F } will produe the sme resultF
helreextpontgommnd{textds}{fseriesseletfont}

64.506

textoj

withes to Old Jaa font whih is defult itli font in rerewF gommnds \textit{F F F }D \textsl{F F F }D \emph{F F F } nd oldEstyle {\it F F F } or {\em F F F } will produe the sme resultF
helreextpontgommnd{textoj}{itshpeseletfont}

64.507

textt

withes to Tel-Aviv font whih is defult snsEserif font in rerewF gommnds \textsf{F F F }D \texttt{F F F } nd oldEstyle {\sf F F F } or {\tt F F F } will produe the sme result @euse snsEserif is used s typewriter font when in rerew modeAF
helreextpontgommnd{textt}{sffmilyseletfont} helreextpontgommnd{textrml}{fontfmily{rml}seletfont}

64.508

textrml textfr

withes to Carmel fontF egulr nd slnted vrints of rmel font will e usedFF withes to Frank-Ruehl font fmilyF egulrD old nd slnted frnk ruehl fonts will e usedF
helreextpontgommnd{textfr}{fontfmily{fr}seletfont}

64.509

64.510

textredis

withes to Redis font fmilyF egulrD old nd slnted redis fonts of vrious sizes will e usedF
helreextpontgommnd{textredis}{fontfmily{redis}seletfont}
Classic

64.511

textls

withes to hptionF withes to withes to withes to

font fmilyF he norml font will e hlssi nd slnted "

64.512

helreextpontgommnd{textls}{fontfmily{ls}seletfont}
Shalom Old Style

textshold textshsr textshstk

fontF

64.513

helreextpontgommnd{textshold}{fontfmily{shold}seletfont}
Shalom Script

fontF

64.514

helreextpontgommnd{textshsr}{fontfmily{shsr}seletfont}
Shalom Stick

fontF

64.515 64.516

helreextpontgommnd{textshstk}{fontfmily{shstk}seletfont} fi

A pinllyD for kwrd omptiility with v iPFHWF four old font ommndsD eFgF {\jm F F F } re de(ned too @see le QUAF

ifdomptiility helreyldpontgommnd{jm}{normlfontrmfmilyseletfont}7 64.519 {dnomthjm} 64.520 helreyldpontgommnd{ds}{normlfontfseriesseletfont}7 64.521 {dnomthds}


64.517 64.518

RRS

Old font command

Font name

Comment

{\jm ..} {\ds ..} {\oj ..} {\ta ..}

teruslem hed e yld t' elEeviv

defult regulr @romnA font defult old font defult itli nd slnted font used lso to emphsize text defult snsEserif nd typewriter font

le QUX rerew old fontEhnge ommnds for omptiility mode


helreyldpontgommnd{oj}{normlfontitshpeseletfont}7 {dnomthoj} 64.524 helreyldpontgommnd{t}{normlfontsffmilyseletfont}7 64.525 {dnomtht} 64.526 fi 64.527 /hebfont
64.522 64.523

65

A Hebrew in L TEX 2.09 compatibility mode

A \documentstyle ommnd in the premle of v i doument indites tht it A is v i PFHW doumentD nd should e proessed in compatibility modeF sn suh doumentsD one of the following three rerew style options n e inludedX

IF hebrew_newcode indites tht doument will use xs sy VVSWEV or inE dows pIPSS input enodingD iFeF Alef letter will e represented s PPRF PF hebrew_p indites tht doument is enoded with sfw g pVTP enodingD iFeF Alef letter will e represented s IPVF QF hebrew_oldcode indites tht doument uses old UEit enodingD s de(ned in ssreli tndrd WTHD iFeF Alef is hrter numer WTF xoteD tht other herewErelted stylesD suh s hebcal n e inluded ovenmed rerew style optionD for exmpleX
after

the

\documentstyle[12pt,hebrew_p,hebcal]{report}F
A eny rerew doument whih ompiled under v i PFHW should ompile under omptiility modeD unless it uses lowElevel ommnds suh s \tenrmF

65.1 The docstrip modules


he following modules re used in the implementtion to diret generting the externl (lesX newode pode oldode produe hebrew_newcode.sty produe hebrew_p.sty produe hebrew_oldcode.sty

docstrip

in

RRT

65.2 Obsolete style les


A por eh of the rerew v i PFHW rerew stylesD we produe (le whih uses orret input enoding nd lls babel with rerew nd inglish lnguge opE tionsF his mens tht ny styles whih sy \input hebrew_newcode.sty or \documentstyle[F F F hebrew_newcodeF F F ]{F F F } should still workF

newcode | pccode | oldcode xeedsepormt{vePe} 65.3 /newcode | pccode | oldcode


65.1 65.2

newcode dosoletefile{herewFsty}{herewnewodeFsty} 65.6 equirekgeVVSWEV{inputen} 65.7 /newcode 65.8 pccode 65.9 dosoletefile{herewFsty}{herewpFsty} 65.10 equirekgepVTP{inputen} 65.11 /pccode 65.12 oldcode 65.13 dosoletefile{herewFsty}{herewoldodeFsty} 65.14 equirekgesiWTH{inputen} 65.15 /oldcode
65.4 65.5

newcode | pccode | oldcode equirekgeenglishDherew{el} 65.18 /newcode | pccode | oldcode


65.16 65.17

RRU

66

The Bahasa Indonesian language

he (le bahasa.dtx79 de(nes ll the lnguge de(nition mros for the fhs sndonesi G fhs welyu lngugeF fhs just mens lnguge9 in fhs sndonesi G fhs welyuF ine oth ntionl versions of the lnguge use the sme writingD lthough di'ering in pronounitionD this (le n e used for oth lngugesF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
66.1 66.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD bahasa ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@bahasa to see whether we hve to do something hereF por oth fhs sndonesi nd fhs wlysi the sme set of hyphention ptterns n e used whih re ville in the (le inhyph.texF rowever it ould e loded using ny of the possile fel options fot the sndonesin nd wlysin lnguseF o (rst we try to (nd out whether this is the seF
ifxldhsdundefined ifxldhsidundefined 66.5 ifxldindondundefined 66.6 ifxldindonesindundefined 66.7 ifxldhsmdundefined 66.8 ifxldmlydundefined 66.9 ifxldmeyludundefined 66.10 dnoptterns{fhs sndonesi} 66.11 dddiletldhsHrelx 66.12 else 66.13 letldhsldmeylu 66.14 fi 66.15 else 66.16 letldhsldmly 66.17 fi 66.18 else 66.19 letldhsldhsm 66.20 fi 66.21 else 66.22 letldhsldindonesin 66.23 fi 66.24 else 66.25 letldhsldindon 66.26 fi 66.27 else 66.28 letldhsldhsi 66.29 fi 66.30 fi
66.3 66.4

xow tht we re sure the \l@bahasa hs some vlid de(nition we need to mke sure tht nme to ess the hyphention ptternsD orresponding to the option usedD is villeF
79 The le described in this section has version number v1.0l and was last revised on 2008/03/15.

RRV

expndfterexpndfterexpndfterlet expndftersnme 66.33 expndfter lexpndfter dgurrentyptionendsnme 66.34 ldhs


66.31 66.32

he next step onsists of de(ning ommnds to swith to @nd fromA the fE hs lngugeF
ptionshs

dnmedef{ptionsgurrentyption}{7 defprefenme{endhulun}7 66.37 defrefnme{ustk}7 66.38 defstrtnme{ingksn}7 @sometime it9s lled 9intisri9 66.39 7 or 9ikhtisr9A 66.40 definme{filiogrfi}7 66.41 defhpternme{f}7 66.42 defppendixnme{vmpirn}7 66.43 defontentsnme{hftr ssi}7 66.44 deflistfigurenme{hftr qmr}7 66.45 deflisttlenme{hftr el}7 66.46 defindexnme{sndeks}7 66.47 deffigurenme{qmr}7 66.48 deftlenme{el}7 66.49 defprtnme{fgin}7 66.50 7 ujetX uyek 66.51 7 promX hri 66.52 defenlnme{vmpirn}7 66.53 defnme{}7 66.54 defhedtonme{uepd}7 66.55 defpgenme{rlmn}7 66.56 7 xotes @indnotesAX gttn 66.57 defseenme{liht}7 66.58 deflsonme{liht jug}7 66.59 defproofnme{fukti}7 66.60 defglossrynme{hftr sstilh}7 66.61 }
66.35 66.36

he mro \captionsbahasa de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

dtehs

he mro \datebahasa rede(nes the ommnd \today to produe fhs snE donesin dtesF

dnmedef{dtegurrentyption}{7 deftody{numerdy~ifsemonthor 66.64 tnurior erurior wretor eprilor weior tunior 66.65 tulior egustusor eptemeror yktoeror xopemeror hesemerfi 66.66 spe numeryer}}
66.62 66.63

extrshs noextrshs

he mro \extrasbahasa will perform ll the extr de(nitions needed for the fhs lngugeF he mro \extrasbahasa is used to nel the tions of \extrasbahasaF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
dnmedef{extrsgurrentyption}{} dnmedef{noextrsgurrentyption}{}

66.67 66.68

RRW

hshyphenmins

he hs hyphention ptterns should e used with \lefthyphenmin set to P nd \righthyphenmin set to PF


providehyphenmins{gurrentyption}{twdtwd}

66.69

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
66.70 66.71

ldfdfinish{gurrentyption} /code

RSH

67

The Bahasa Malaysia language

he (le bahasam.dtx80 de(nes ll the lnguge de(nition mros for the fhs wlysi lngugeF fhs just mens lnguge9 in fhs wlysiF e numer of terms di'er from those used in hs indonesiF por this lnguge urrently no speil de(nitions re needed or villeF he mro \LdfInit tkes re of preventing tht this (le is loded more thn oneD heking the tegory ode of the @ signD etF
67.1 67.2

code vdfsnitgurrentyption{dtegurrentyption}

hen this (le is red s n optionD iFeF y the \usepackage ommndD bahasa ould e n unknown9 lnguge in whih se we hve to mke it knownF o we hek for the existene of \l@bahasa to see whether we hve to do something hereF por oth fhs wlysi nd fhs sndonesi the sme set of hyphention ptterns n e used whih re ville in the (le inhyph.texF rowever it ould e loded using ny of the possile fel options fot the wlysin nd sndonesin lnguseF o (rst we try to (nd out whether this is the seF
ifxldmlydundefined ifxldmeyludundefined 67.5 ifxldhsmdundefined 67.6 ifxldhsdundefined 67.7 ifxldhsidundefined 67.8 ifxldindondundefined 67.9 ifxldindonesindundefined 67.10 dnoptterns{fhs wlysi} 67.11 dddiletldmlyHrelx 67.12 else 67.13 letldmlyldindonesin 67.14 fi 67.15 else 67.16 letldmlyldindon 67.17 fi 67.18 else 67.19 letldmlyldhsi 67.20 fi 67.21 else 67.22 letldmlyldhs 67.23 fi 67.24 else 67.25 letldmlyldhsm 67.26 fi 67.27 else 67.28 letldmlyldmeylu 67.29 fi 67.30 fi
67.3 67.4

xow tht we re sure the \l@malay hs some vlid de(nition we need to mke sure tht nme to ess the hyphention ptternsD orresponding to the option usedD is villeF
67.31

expndfterexpndfterexpndfterlet
le described in this section has version number v1.0k and was last revised on

80 The

2008/01/27.

RSI

67.32 67.33 67.34

expndftersnme expndfter lexpndfter dgurrentyptionendsnme ldmly

he next step onsists of de(ning ommnds to swith to @nd fromA the fE hs lngugeF
ptionshsm

dnmedef{ptionsgurrentyption}{7 defprefenme{rkt}7 67.37 defrefnme{ujukn}7 67.38 defstrtnme{estrk}7 @sometime it9s lled 9intisri9 67.39 7 or 9ikhtisr9A 67.40 definme{filiogrfi}7 67.41 defhpternme{f}7 67.42 defppendixnme{vmpirn}7 67.43 defontentsnme{undungn}7 67.44 deflistfigurenme{enri qmr}7 67.45 deflisttlenme{enri tdul}7 67.46 defindexnme{sndeks}7 67.47 deffigurenme{qmr}7 67.48 deftlenme{tdul}7 67.49 defprtnme{fhgin}7 67.50 7 ujetX erkr 67.51 7 promX hri 67.52 defenlnme{vmpirn}7 67.53 defnme{sk}7 @short form for 9linn uepd9A 67.54 defhedtonme{uepd}7 67.55 defpgenme{rlmn}7 67.56 7 xotes @indnotesAX gttn 67.57 defseenme{sil rujuk}7 67.58 deflsonme{rujuk jug}7 67.59 defproofnme{fukti}7 67.60 defglossrynme{sstilh}7 67.61 }
67.35 67.36

he mro \captionsbahasam de(nes ll strings used in the four stndrd douE A mentlsses provided with v iF

dtehsm

he mro \datebahasam rede(nes the ommnd \today to produe fhs wlysin dtesF

dnmedef{dtegurrentyption}{7 deftody{numerdy~ifsemonthor 67.64 tnurior perurior wor eprilor weior tunor 67.65 tulior ygosor eptemeror yktoeror xovemeror hisemerfi 67.66 spe numeryer}}
67.62 67.63

extrshsm noextrshsm

he mro \extrasbahasa will perform ll the extr de(nitions needed for the fhs lngugeF he mro \extrasbahasa is used to nel the tions of \extrasbahasaF por the moment these mros re empty ut they re de(ned for omptiility with the other lnguge de(nition (lesF
dnmedef{extrsgurrentyption}{} dnmedef{noextrsgurrentyption}{}

67.67 67.68

hsmhyphenmins

he hsm hyphention ptterns should e used with \lefthyphenmin set to P nd \righthyphenmin set to PF RSP

67.69

providehyphenmins{gurrentyption}{twdtwd}

he mro \ldf@finish tkes re of looking for on(gurtion (leD setting the min lnguge to e swithed on t \begin{document} nd resetting the tegory ode of @ to its originl vlueF
67.70 67.71

ldfdfinish{gurrentyption} /code

RSQ

68

Not renaming hyphen.tex

es hon unuth hs delred tht the (lenme hyphen.tex my only e used to designte his version of the merin inglish hyphention ptternsD new solution hs to e found in order to e le to lod hyphention ptterns for other lnguges in plinEsed iEformtF hen sked he respondedX ht (le nme is 4sred4D nd if nyody hnges it they will use severe upwrdGdownwrd omptiility hedhesF eople n hve (le lolhyphenFtex or whtever they likeD ut they mustn9t diddle with hyphenFtex @or plinFtex exept to prelod ddiE tionl fontsAF he (les bplain.tex nd blplain.tex n e used s replement wrppers round plain.tex nd lplain.tex to heive the desired e'etD sed on the babel pkgeF sf you lod eh of them with iniiD you will get (le lled either bplain.fmt or blplain.fmtD whih you n use s replements for plain.fmt nd lplain.fmtF es these (les re going to e red s the (rst thing inii seesD we need to set some tegory odes just to e le to hnge the de(nition of \input
bplain | blplain tode{aI 7 left re is eginEgroup hrter 68.3 tode}aP 7 right re is endEgroup hrter 68.4 tode5aT 7 hsh mrk is mro prmeter hrter
68.1 68.2

xow let9s see if (le lled hyphen.cfg n e found somewhere on i9s input pth y trying to open it for redingFFF
68.5

openin H hyphenFfg ifeofH else

sf the (le wsn9t found the following test turns out trueF
68.6 68.7

hen hyphen.cfg ould e opened we mke sure tht it will e red insted of the (le hyphen.tex whih should @ording to hon unuth9s rulingA ontin the merin inglish hyphention ptterns nd nothing elseF e do this y (rst sving the originl mening of \input @nd s use one letter ontrol sequene for tht so s not to wste multiEletter ontrol sequene on this in the formtAF
68.8

letinput definput 5I {7 letinput hyphenFfg

hen \input is de(ned to forget out its rgument nd lod hyphen.cfg instedF
68.9 68.10 68.11

yne tht9s done the originl mening of \input n e restored nd the de(nition of \a n e forgottenF
letundefined } 68.14 fi 68.15 /bplain | blplain
68.12 68.13

RSR

xow tht we hve mde sure tht hyphen.cfg will e loded t the right moment it is time to lod plain.texF
68.16 68.17

bplain plinFtex blplain lplinFtex

pinlly we hnge the ontents of \fmtname to indite tht this is not the plin formtD ut formt sed on plin with the babel pkge prelodedF
68.18 68.19

bplain deffmtnme{elEplin} blplain deffmtnme{elElplin}

hen you re using di'erent formtD sed on plinFtex you n mke opy of lplinFtexD renme it nd reple plain.tex with the nme of your formt (leF

69

Support for formats based on

plainTEX

A he following ode duplites or emultes prts of v i P tht re needed for babelF 69.1 69.2

code ifxdddiletdundefined

hen \adddialect is still unde(ned we re mking formtF sn tht se only the (rst prt of this (le is neededF
69.3

defdempty{}

A e need to de(ne \loadlocalcfg for plin users s the v i de(nition uses \InputIfFileExistsF 69.4 69.5 69.6 69.7 69.8 69.9 69.10 69.11 69.12 69.13 69.14 69.15

deflodlolfg5I{7 openinH5IFfg ifeofH loseinH else loseinH {immeditewriteIT{BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB}7 immeditewriteIT{B vol onfig file 5IFfg used}7 immeditewriteIT{B}7 } input 5IFfgrelx fi dendofldf }

e hve to exeute \@endofldf in this se


69.16 69.17

A e wnt to dd messge to the messge v i PFHW puts in the \everyjob registerF his ould e done y the following odeX

letorgeveryjoeveryjo defeveryjo5I{7 orgeveryjo{5I}7 orgeveryjoexpndfter{theorgeveryjoimmeditewriteIT{7 hyphention ptterns for thelodeddptterns lodedF}}7 leteveryjoorgeveryjoletorgeveryjodundefined}

RSS

he ode ove rede(nes the ontrol sequene \everyjob in order to e le to dd something to the urrent ontents of the registerF his is neessry euse A the proessing of hyphention ptterns hppens long efore v i (lls the registerF here re some prolems with this pproh thoughF

hen someone wnts to use severl hyphention ptterns with vii the ove sheme won9t workF he reson is tht vii overwrites the ontents of the \everyjob register with its own messgeF lin i does not use the \everyjob register so the messge would not e displyedF
o irumvent this dirty trik9 n e usedF es this ode is only proessed when reting new formt (le there is one ommnd tht is sure to e usedD \dumpF herefore the originl \dump is sved in \org@dump nd new de(nition is suppliedF
69.18 69.19

letorigddumpadump defdump{7

A o mke sure tht v i PFHW exeutes the \@begindocumenthook we would wnt to lter \begin{document}D ut s this done too often lredyD we dd the new ode t the front of \@preamblecmdsF fut we n only do tht fter it hs een de(nedD so we dd this piee of ode to \dumpF 69.20 69.21 69.22 69.23 69.24 69.25

ifxdztryfdundefined else toksHaexpndfter{dpremlemds} edefdpremlemds{noexpnddegindoumenthookthetoksH} defdegindoumenthook{} fi

his new de(nition strts y dding n instrution to write messge on the terminl nd in the trnsript (le to inform the user of the preloded hyphention ptternsF
69.26 69.27

everyjoexpndfter{theeveryjo7 immeditewriteIT{thetoksV lodedF}}7

hen everything is restored to the old sitution nd the formt is dumpedF


letdumporigddumpletorigddumpdundefineddump} expndfterendinput 69.30 fi
69.28 69.29

longdefdfirstofone5I{5I} longdefdfirstoftwo5I5P{5I} 69.33 longdefdseondoftwo5I5P{5P} 69.34 defdifstr5I{difnexthr B{dfirstoftwo{5I}}} 69.35 defdstrdordlong5I{7 69.36 difstr 69.37 {letldngreldxrelx5I}7 69.38 {letldngreldxlong5I}} 69.39 letldngreldxrelx 69.40 defdr5I5Pdnil{5I} 69.41 defddr5I5Pdnil{5P} 69.42 letdtypesetdprotetrelx
69.31 69.32

he rest of this (le is not proessed y inii ut during the norml doument A runF e numer of v i mro9s tht re needed lter onF

RST

longdefdgole5I{} edefdkslshhr{expndfterdgolestring} 69.45 defstripdprefix5Ib{} 69.46 defgdddtodmro5I5P{{7 69.47 toksdexpndfter{5I5P}7 69.48 xdef5I{thetoksd}}} 69.49 defdnmedef5I{expndfterdefsnme 5Iendsnme} 69.50 defdifundefined5I{7 69.51 expndfterifxsnme5Iendsnmerelx 69.52 expndfterdfirstoftwo 69.53 else 69.54 expndfterdseondoftwo 69.55 fi}
69.43 69.44 A v i P hs the ommnd \@onlypreamble whih dds ommnds to list of ommnds tht re no longer needed fter \begin{document}F

ifxdpremlemdsdundefined defdpremlemds{} 69.58 fi 69.59 defdonlypremle5I{7 69.60 expndftergdefexpndfterdpremlemdsexpndfter{7 69.61 dpremlemdsdo5I}} 69.62 donlypremledonlypremle
69.56 69.57 A wimik v i9s \AtBeginDocumentY for this to work the user needs to dd \begindocument to his (leF

defegindoument{7 degindoumenthook 69.65 glolletdegindoumenthookdundefined 69.66 defdo55I{glollet 55Idundefined}7 69.67 dpremlemds 69.68 glolletdonoexpnd 69.69 }
69.63 69.64

ifxdegindoumenthookdundefined defdegindoumenthook{} 69.72 fi 69.73 donlypremledegindoumenthook 69.74 defetfeginhoument{gdddtodmrodegindoumenthook}


69.70 69.71 A e lso hve to mimik v i9s \AtEndOfPackageF yur replement mro is muh simplerY it stores its rgument in \@endofldfF

defetindyfkge5I{gdddtodmrodendofldf{5I}} donlypremleetindyfkge 69.77 defdendofldf{} 69.78 donlypremledendofldf


69.75 69.76 A v i needs to e le to swith o' writing to its uxiliry (lesY plin doesn9t hve them y defultF

ifxifdfileswdundefined expndfterletsnme ifdfileswexpndfterendsnme 69.81 snme ifflseendsnme 69.82 fi


69.79 69.80 A wimik v i9s ommnds to de(ne ontrol sequenesF 69.83

defnewommnd{dstrdordlongnewdommnd}

RSU

defnewdommnd5I{7 dtestopt{dnewommnd5I}H} 69.86 defdnewommnd5I5P{7 69.87 difnexthr {dxrgdef5I5P}7 69.88 {drgdef5I5P}} 69.89 longdefdrgdef5I5P5Q{7 69.90 dyrgdef5Idne{5P}{5Q}} 69.91 longdefdxrgdef5I5P5Q5R{7 69.92 expndfterdefexpndfter5Iexpndfter{7 69.93 expndfterdproteteddtestoptexpndfter 5I7 69.94 snmestring5Iexpndfterendsnme{5Q}}7 69.95 expndfterdyrgdef snmestring5Iendsnme 69.96 twd{5P}{5R}} 69.97 longdefdyrgdef5I5P5Q{7 69.98 dtempnt5Qrelx 69.99 dvne dtempnt dne 69.100 letdhshdrelx 69.101 edefreservedd{ifx5Ptwd dhshdIfi}7 69.102 dtempnt 5P7 69.103 dwhilenumdtempnt `dtempnt 69.104 do{7 69.105 edefreservedd{reservedddhshdthedtempnt}7 69.106 dvnedtempnt dne}7 69.107 letdhshd557 69.108 ldngreldxexpndfterdefexpndfter5Ireservedd} 69.109 letprovideommndnewommnd
69.84 69.85

defhelreoustgommnd{dstrdordlongdelredroustommnd} defdelredroustommnd5I{7 69.112 edefreservedd{string5I}7 69.113 defreservedd{5I}7 69.114 edefreservedd{expndfterstripdprefixmeningreservedd}7 69.115 edef5I{7 69.116 ifxreserveddreservedd 69.117 noexpndxdprotet 69.118 noexpnd5I7 69.119 fi 69.120 noexpndprotet 69.121 expndfternoexpndsnme 69.122 expndfterdgolestring5I endsnme 69.123 }7 69.124 expndfternewdommndsnme 69.125 expndfterdgolestring5I endsnme 69.126 } 69.127 defxdprotet5I{7 69.128 ifxprotetdtypesetdprotetelse 69.129 dxdprotet5I7 69.130 fi 69.131 } 69.132 defdxdprotet5Ifi5P5Q{7 69.133 fiprotet5I7 69.134 }
69.110 69.111

he following little mro \in@ is tken from ltexFltxY it heks whether its (rst rgument is prt of its seond rgumentF st uses the oolen \in@Y lloting RSV

new oolen inside onditionlly exeuted ode is not possileD hene the onstrut with the temporry de(nition of \bbl@tempaF
defldtmp{snme newifendsnmeifind} ifxinddundefined 69.137 defind5I5P{7 69.138 defindd55I5I55P55Qindd{7 69.139 ifxind55Pindflseelseindtruefi}7 69.140 indd5P5Iindindd} 69.141 else 69.142 letldtmpdempty 69.143 fi 69.144 ldtmp
69.135 69.136 A v i hs mro to hek whether ertin pkge ws loded with spei( optionsF he ommnd hs two extr rguments whih re ode to e exeuted in either the true or flse seF his is used to detet whether the doument needs one of the ents to e tivted @activegrave nd activeacuteAF por plin i we ssume tht the user wnts them to e tive y defultF herefore the only thing we do is exeute the third rgument @the ode for the true seAF 69.145 69.146

defdifpkgewith5I5P5Q5R{7 5Q}

A he v i mro \@ifl@aded heks whether (le ws lodedF his funtionlity is not needed for plin i ut we need the mro to e de(ned s noEopF 69.147

defdifldded5I5P5Q5R{}

por the following ode we need to mke sure tht the ommnds \newcommand nd \providecommand exist with some sensile de(nitionF hey re not fully A equivlent to their v i P versionsY just enough to mke things work in plin ienvironmentsF
ifxdtempntdundefined snme newountendsnmedtempntrelx 69.150 fi 69.151 ifxdtempntdundefined 69.152 snme newountendsnmedtempntrelx 69.153 fi
69.148 69.149 A o prevent wsting two ounters in v i PFHW @euse ounters with the sme nme re lloted lter y itA we reset the ounter tht holds the next free ounter @\count10AF

ifxyedundefined dvneountIH y EPrelx 69.156 fi 69.157 ifxdifnexthrdundefined 69.158 defdifnexthr5I5P5Q{7 69.159 letreserveddda5I7 69.160 defreservedd{5P}defreservedd{5Q}7 69.161 futureletdletdtokendifnh} 69.162 defdifnh{7 69.163 ifxdletdtokendsptoken 69.164 letreservedddxifnh 69.165 else 69.166 ifxdletdtokenreserveddd 69.167 letreserveddreservedd
69.154 69.155

RSW

69.168

else letreserveddreservedd 69.170 fi 69.171 fi 69.172 reservedd} 69.173 defX{letdsptokena } X 7 this mkes dsptoken spe token 69.174 defX{dxifnh} expndfterdefX {futureletdletdtokendifnh} 69.175 fi 69.176 defdtestopt5I5P{7 69.177 difnexthr{5I}{5I5P}} 69.178 defdproteteddtestopt5I{77 69.179 ifxprotetdtypesetdprotet 69.180 expndfterdtestopt 69.181 else 69.182 dxdprotet5I7 69.183 fi} 69.184 longdefdwhilenum5Ido 5P{ifnum 5Irelx 5Prelxdiwhilenum{5Irelx 69.185 5Prelx}fi} 69.186 longdefdiwhilenum5I{ifnum 5Iexpndfterdiwhilenum 69.187 elseexpndfterdgolefi{5I}}
69.169

defhelreextgommnd{7 ddedtextdmdprovideommnd 69.190 } 69.191 defrovideextgommnd{7 69.192 ddedtextdmdprovideommnd 69.193 } 69.194 defhelreextymol5I5P5Q{7 69.195 ddedtextdmdhrdef5I{5P}5Qrelx 69.196 } 69.197 defddedtextdmd5I5P5Q{7 69.198 expndfterdefexpndfter5P7 69.199 expndfter{7 69.200 snme5QEmdexpndfterendsnme 69.201 expndfter5P7 69.202 snme5Qstring5Pendsnme 69.203 }7 69.204 7 letdifdefinledrdifdefinle 69.205 expndfter5Isnme5Qstring5Pendsnme 69.206 } 69.207 defdurrentdmd5I{7 69.208 ifxprotetdtypesetdprotetelse 69.209 noexpnd5Iexpndfterdgole 69.210 fi 69.211 } 69.212 defdhngeddmd5I5P{7 69.213 ifxprotetdtypesetdprotet 69.214 expndfterifxsnmefdenodingstring5Iendsnmerelx 69.215 expndfterifxsnme cstring5Iendsnmerelx 69.216 expndfterdefsnme cstring5Iendsnme{7 69.217 dhngeddxderr{5I}7 69.218 }7 69.219 fi 69.220 glolexpndfterlet
69.188 69.189

gode from ltoutenc.dtxD dpted for use in the plin i environmentF

RTH

69.221 69.222 69.223 69.224 69.225 69.226 69.227 69.228 69.229 69.230

} defdhngeddxderr5I{7 69.231 errhelp{our ommnd will e ignoredD type `returnb to proeed}7 69.232 errmessge{gommnd protet5I undefined in enoding fdenoding}} 69.233 defhelreextgommndhefult5I{7 69.234 helreextgommnd5Ic7 69.235 } 69.236 defrovideextgommndhefult5I{7 69.237 rovideextgommnd5Ic7 69.238 } 69.239 expndfterletsnme yIEmdendsnmedurrentdmd 69.240 expndfterletsnmecEmdendsnmedhngeddmd 69.241 defhelreexteent5I5P5Q{7 69.242 helreextgommnd5I{5P}I{ent5Q 55I} 69.243 } 69.244 defhelreextgompositegommnd5I5P5Q5R{7 69.245 expndfterletexpndfterreserveddsnme5Pstring5Iendsnme 69.246 edefreservedd{string55I}7 69.247 edefreservedd{7 69.248 expndfterdstripdrgsmeningreserveddXEdstripdrgs}7 69.249 ifxreserveddreservedd 69.250 expndfterexpndfterexpndfterifx 69.251 expndfterdrreserveddrelxrelxdnil 69.252 dtextdomposite 69.253 else 69.254 edefreservedd55I{7 69.255 defexpndfternoexpnd 69.256 snme5Pstring5Iendsnme5555I{7 69.257 noexpnddtextdomposite 69.258 expndfternoexpndsnme5Pstring5Iendsnme 69.259 5555Inoexpnddemptynoexpnddtextdomposite 69.260 {55I}7 69.261 }7 69.262 }7 69.263 expndfterreserveddexpndfter{reservedd{55I}}7 69.264 fi 69.265 expndfterdefsnmeexpndfterstringsnme 69.266 5Pendsnmestring5IEstring5Qendsnme{5R} 69.267 else 69.268 errhelp{our ommnd will e ignoredD type `returnb to proeed}7 69.269 errmessge{stringhelreextgompositegommndspe used on 69.270 inpproprite ommnd protet5I} 69.271 fi 69.272 } 69.273 defdtextdomposite5I5P5Qdtextdomposite{7 69.274 expndfterdtextdompositedx

fi snmefdenodingstring5I7 expndfterendsnme else noexpnd5I7 fi

snmefdenoding string5Iexpndfterendsnme snme cstring5Iendsnme

RTI

69.275

snmestring5IEstring5Pendsnme } 69.277 defdtextdompositedx5I5P{7 69.278 ifx5Irelx 69.279 5P7 69.280 else 69.281 5I7 69.282 fi 69.283 } 69.284 7 69.285 defdstripdrgs5IX5PE5Qdstripdrgs{5P} 69.286 defhelreextgomposite5I5P5Q5R{7 69.287 defreservedd{helreextgompositegommnd5I{5P}{5Q}}7 69.288 group 69.289 lodeda5R7 69.290 lowerse{7 69.291 egroup 69.292 reservedd d7 69.293 }7 69.294 } 69.295 7 69.296 defseextymol5I5P{7 69.297 7 letdurrdenfdenoding 69.298 7 dusedtextdenoding{5I}7 69.299 5P7 69.300 7 dusedtextdenodingdurrden 69.301 } 69.302 defseexteent5I5P5Q{7 69.303 7 letdurrdenfdenoding 69.304 7 dusedtextdenoding{5I}7 69.305 7 5P{dusedtextdenodingdurrdenseletfont5Q}7 69.306 7 dusedtextdenodingdurrden 69.307 } 69.308 defdusedtextdenoding5I{7 69.309 7 edeffdenoding{5I}7 69.310 7 xdeffontdnme{7 69.311 7 snmeurrdfontshpeGfdsizeendsnme 69.312 7 }7 69.313 7 pikupdfont 69.314 7 fontdnme 69.315 7 ddendupdte 69.316 } 69.317 defhelreextymolhefult5I5P{7 69.318 helreextgommndhefult5I{seextymol{5P}5I}7 69.319 } 69.320 defhelreexteenthefult5I5P{7 69.321 helreextgommndhefult5I{seexteent{5P}5I}7 69.322 } 69.323 deffdenoding{yI}
69.276 A gurrently we only use the v i P method for ents for those tht re known to e mde tive in some lnguge de(nition (leF 69.324 69.325

helreexteent{4}{yI}{IPU} helreexteent{9}{yI}{IW}

RTP

helreexteent{}{yI}{WR} helreexteent{}{yI}{IV} 69.328 helreexteent{~}{yI}{IPT}


69.326 69.327

helreextymol{textquotedlleft}{yI}{WP} helreextymol{textquotedlright}{yI}{4} 69.331 helreextymol{textquoteleft}{yI}{} 69.332 helreextymol{textquoteright}{yI}{9} 69.333 helreextymol{i}{yI}{IT} 69.334 helreextymol{ss}{yI}{PS}
69.329 69.330

he following ontrol sequenes re used in babel.def ut re not de(ned for plain iF

ifxsriptsizedundefined letsriptsizesevenrm 69.337 fi 69.338 /code


69.335 69.336

A por ouple of lnguges we need the v iEontrol sequene \scriptsize to e villeF feuse plin i doesn9t hve suh so(stited font mehnism s A v i hsD we just \let it to \sevenrmF

RTQ

Index
xumers written in itli refer to the pge where the orresponding entry is deE sriedY numers underlined refer to the ode line of the de(nitionY numers in romn refer to the ode lines where the entry is usedF
E . . . 19.123, 34.110,

Symbols

36.144, 44.92, 51.177, ddz . . . . . . . ddzdstring . ddz . . . . . .

41.57, 46.63, 54.242 . . 47.493 . . 47.457 . . 47.440 ddendupdte . . . . . . . . 51.365, 54.430 ddseletlnguge 62.267 ddvpgeref . . . . 12.1342 delph . . . . . . . . 62.102 delphdul . . . . 57.254 delphfinl . . . . 62.102 domn . . . . . . . 62.326 dute . . . . . . . . 36.77 dlph . . . . . . . . 62.102 dlphdul . . . . 57.273 dri . . . . . . 62.326 dz . . . . . . . . . . 47.377 dz . . . . . . . . . 47.439 dzp . . . . . . . . . 47.423 dzr . . . . . . . . . 47.410 degintheorem . 47.147 diitem . . . . . 12.1277 dilel . . . . 62.895 drkets . . . . 62.315 dption . 47.81, 62.552 dhpter . . 47.212, 47.286, 62.839 dite . . . . . . . . 62.895 ditex . . . . . . . 12.1249 ddottedtoline 62.430 densuredv . . . . 62.308 densured . . . . 62.308 dfromrl . . . . . . 62.255 dgrve . . . . . . . . 36.77 dherew . . . . . . . 62.92 dherewdnumerl 62.141 dltin . . . . . . . 62.317 dliitem . . . . 62.895 dlistoffigures 62.381 dlistoftles . 62.381 dmkeption . . . . . . . . . 47.69, 62.949 dmkehpterhed . . . . 47.235, 47.305

dmkoth . . . . . . 12.1293 dnewldel . . . . 12.1212 dnolnerr . . . . 12.262 dnoopterr . . . . 12.262 dnoptterns . . . 12.262 dnotshorthnd . 12.651 dnumer . . . . . . 62.317 doprgegintheorem doutputdlol . 62.597 dprt . . . 47.192, 62.467 dromn . . . . . . . 62.326 dshpter . . . . 62.839 dsentformt . . 47.96 dset . . . . 47.99, 62.510 dsset . . . . . . . 47.133 dtleofontents 62.381 dtestdef . . . . . 12.1225 dtextolor . . . . 62.782 dtilde . . . . . . . . 39.52 dtorl . . . . . . . . 62.246 dtrem . . . . . . . 19.102 dumlut . . 36.77, 39.52 dvertim . . . . 62.946 dxnthm . . . . . . . 62.826 esolutepromqregorin esolutepromrerew
........ ........ ... 47.147, 62.826

o . . . . . . . . . . . 52.51 p . . . . . . . . . . . 30.84 epgeref . . 47.419, 262 pgeref . . . . . 47.418 ppendix 62.129, 62.878 rinorl . . . . 62.329 eref . . . . . . 47.404, 261 ref . . . . . . . . . 47.403 esuk . . . 56.340, 58.319 suk . . . 56.347, 58.326 uthor . . . . . . . 62.815 eutopefeforeph
. . . . . . 29.110, 56.268, 58.247 ez . . . . . . . 47.375, 261 z . . . . . . . . . . 47.374 zd . . . . . . . . . . 47.376 ez . . . . . . . 47.434, 262 z . . . . . . . . . . 47.433 zd . . . . . . . . . 47.435 zdd . . . . . . . . 47.436 ezp . . . . . . . 47.421, 262 zp . . . . . . . . . . 47.420 zpd . . . . . . . . . 47.422 ezr . . . . . . . 47.406, 261 zr . . . . . . . . . . 47.405 zrd . . . . . . . . . 47.407 zrdd . . . . . . . . 47.408 zrddd . . . . . . . 47.409

62.1157

eite . . . . . 47.432, 262 ite . . . . . . . . 47.431 tivedprefix . 12.584 dddilet . . . 10, 12.57 ddlnguge . . 10, 12.45 ddto . . . . . . 12.825, 13 friknshyphenmins lisshorthnd 5, 12.638 llowhyphens 12.837, 13 elph . . . . . . . . . 62.102 lph . . . . . . . . . 62.102 elphfinl . . . . 62.102 nwdflse . . . . . 27.84 nwdprint . . . . . 27.84 nwdtrue . . . . . . 27.84 eo . . . . . . . . . . . 52.51
. . . . . . . . . 19.101

62.1321

eldeginsve 12.800 eldsve . . 12.803, 13 eldsvent . 12.800 eldsvevrile . . . . . . 12.812, 13 hshyphenmins 66.69 hsmhyphenmins 67.69 squehyphenmins 39.49 ldtivte 12, 12.596 lddddlist . . 12.768 lddddspeil . . . . . . . . 12, 12.402 ldfterelse . 12.423 ldfterfi . . . 12.423 ldiite . . . 12.1268 lditedhoie 12.1270 ldlerdttris 12.789

RTR

lddetivte . . . . . . . . . 12, 12.602 lddelredttriute . . . . . . 11, 12.750 lddis . . . . . 12.849 ldfirsts . . . 12.608 ldfrenhindent . ldfrenhlelitems ldfrenhsping .
29.483, 49.54, 53.58 . . . . . . . . . 29.424

. . . . . . 12.817, 13 ldgetden . . . 12.356 ldhyphden . . 12.356 ldifttriuteset . . . . . . . . . 12.754 ldifknowndttri . . . . . . . . . . 12.779

hpternn . . . . iite . . . . . . prt . . . . . . . . retondshdXd . . retondshdYd . . retondshdcd . . retondshdd . . . s . . . . . . . . . . setion . . . . . setionnn . . . . susetion . . . sususetion

62.969 12.1265 62.955 . 23.59 . 23.48 . 23.75 . 23.59 29.236 62.959 62.971 62.961 62.963

ptionsportuges 34.34 ptionsromnin 40.6 ptionsrussin 56.121 ptionssmin . . . 45.7 ptionssottish 26.6 ptionsserin . 53.6 ptionsslovk . 54.34 ptionsslovene . 55.6 ptionsswedish . 44.6 ptionsturkish . 61.6 ptionsukrinin . ptionsusorin 60.14 ptionswelsh . . . 24.7 tlnhyphenmins 36.7 gfgreekgporli 30.129 dsh . . . . . 56.311, gheksfhivisile
........ ........ 57.216, . . . . . . . . . 58.121

ldlngugedstk

ldmindlnguge .

. . . . . . . . . . 12.80 . . . . . . . . . 12.247 29.483, 49.54, 53.58

ldnonfrenhindent

ptionsfrikns ptionslnin ptionsustrin ptionshs . ptionshsm ptionssque . . ptionsrzil . ptionsreton . . ptionsulgrin

ldnonfrenhlelitems
. . . . . . 12.817, 13 ldptterns . . 12.173 ldpopdlng . . . 12.84 ldpopdlnguge . . . . . . 12.80, 12.81

ldnonfrenhsping

. . . . . . . . . 29.424

ldprdmds . . . . 12.691 ldprimds . . . . 12.691 ldpushdlnguge 12.81 ldredefine . . 12.1187 ldredefinedlong . ldredefineroust
........ ........

12.1193 12.1198

19.64 49.6 21.23 66.35 67.35 39.7 34.66 23.6 . . . . . . . . . . 57.117 ptionstln . 36.8 ptionsrotin 50.6 ptionszeh . . 51.34 ptionsdnish . . 41.7 ptionsduth . . 19.22 ptionsenglish 20.66 gptioneprtor 29.383 ptionsespernto 17.6 ptionsestonin 48.7 ptionsfinnish . 46.6 ptionsfrenh 29.329 ptionsgermn . 21.23 ptionsgreek . . 27.32 ptionsherew . 62.22 ptionsielndi 42.25

ghekveprerewer

58.290 . 62.1084

k . . . . . 21.124, 60.112 lq . . . . . 51.149, 54.214 lqq . . . . 51.134, 54.199 rq . . . . . 51.149, 54.214 rqq . . . . 51.144, 54.209 sdtivtehyphens sdddprm . . . . . .
... ... ... ... ... ... ... ... 51.280, 54.345 51.254, 54.319 51.173, 54.238 51.243, 54.308 51.261, 54.326 51.210, 54.275 51.217, 54.282 51.280, 54.345

62.1168

sdoxhyphen . . . . . sdhekhrdef . .

sdhekode . . . . . sdhekhyphen . . .

ldremovedspeil . . . . . . 12, 12.412 ldrestoredtives


. . . . . . . . . 12.595

ptionsinterlingu

ldsnds . . . . 12.608 ldsetdlnguge 12.96 ldshdselet . 12.577 ldswithdsh . 12.661 ldswithdshdoff . ldswithdshdon ldtestdtoken ption . . . . . hpter . . . . .
. . . . . . . . . 12.672 12.673 12.430 62.965 62.957

. . . . . . . . . . . 18.7 ptionsirish . . . 25.7 ptionsitlin . 30.6 ptionslng . . . . . 11 ptionsltin . . 31.16 ptionslsorin 59.14 ptionsmgyr . 47.14 ptionsnustrin 22.12 ptionsngermn 22.12 ptionsnorsk . . . 43.9 ptionsnynorsk 43.35 ptionspolish . . 52.6 . . . . . . . . . . 27.55

sdontinuesn . .

sddetivtehyphens

sdemdsh 51.168, 54.233 sdendsh 51.168, 54.233 sdexminehr . . . sdexminetoken . . sdexpndhr . . . .


... ... ... ... 51.257, 54.322 51.224, 54.289

ptionspolutonikogreek sdfirsthyphdn . . .

51.257, 54.322 51.192, 54.257

RTS

sdfirsthyphen . . .
...

51.192, 54.257 sdgettdken . . . . . . . . . 51.217, 54.282 sdgettoken . . . . . . . . . 51.217, 54.282 sdhyphen . . . . . . . 51.168, 51.274, 54.233, 54.339 sdignoretoken . . . . . . 51.251, 54.316 sdlooseness . . . . . . . . 51.290, 54.355 sdmindlnguge . . . . 51.295, 54.360 sdnosplit . . . . . . . . . . 51.273, 54.338 sdsnword . . . . . . . . . 51.217, 54.282 sdseondhyphdn . . . . . 51.192, 54.257 sdseondhyphen . . . . . 51.192, 54.257 sdseletlnguge . . . . 51.295, 54.360 sdsplitttr . . . . . . . . 51.277, 54.342 sdsplithyphen . . . . . . 51.174, 54.239 sdtempdisle . . . . . . 51.310, 54.375 sdundoiltwd . . . . . . . . 51.352, 54.417 sdwordlen . . . . . . . . . . 51.167, 54.232 yrdsh . . . 56.326, 58.305 57.231, gyrilligporli 30.129 yrillitext 56.111, 57.111, 58.111

dtetln . . . . dterotin . . . dtezeh . . . . . dtednish . . . . . dteduth . . . . . dteenglish . . . . dteespernto . . dteestonin . . . dtefinnish . . . . dtefrenh . . . . dtegermn . . . . . dtegreek . . . . . dteherew . . . . . dteielndi . . dteinterlingu dteirish . . . . . dteitlin . . . . dtelng . . . . . . dteltin . . . . . dtemgyr . . . . . dtengermn . . . . dtenorsk . . . . . dtepolish . . . . . dteportuges . . . dteromnin . . . dterussin . . . dtesmin . . . . . dtesottish . . . dtesdmy . . . . . . dteserin . . . . dteslovk . . . . . dteslovene . . . . dteswedish . . . . dtesymd . . . . . . dteturkish . . . . dteukrinin . dtewelsh . . . . . hyssnrerewer

dtefrikns . dtelnin . . dtemerin . . dtenustrin . dteustrlin dteustrin . . dtehs . . . . dtehsm . . . dtesque . . . . dterzil . . . . dtereton . . . . dteulgrin .

. . . . . . . . .

19.86 49.29 20.125 22.40 20.117 21.51 66.62 67.62 39.30 34.89 23.29 57.161

36.31 50.29 51.57 41.30 19.49 20.89 17.30 48.34 46.29 29.166 21.46 27.64 62.77 42.48 18.30 25.30 30.29 . . 11 31.39 47.37 22.35 43.60 52.29 34.57 40.30 56.185 45.30 26.29 44.39 53.29 54.57 55.29 44.29 44.36 61.30 58.162 24.31 . . . . . . . . . 62.1264 heimlwthgomm 29.282 deimlsep . . . . 42.106 delredshorthnd . . . . . . . 12, 12.610 defineshorthnd . . . . . . . . . 5, 12.636 degres . . . . . . . 29.260 dieresi . . . . . . 39.50 dieresis . . . . . . 36.74 hislexikud . . 63.243 ht . . . . . . . . . . 12.907 dj . . . . . . . . . . 12.907 dodstyle . . . . 12.1023 dq . . . 21.70, 22.59, 42.54, 43.75,

51.70, 54.83, 57.193, 60.68 duthhyphenmins 19.101

44.51, 52.112, 56.287, 58.266,

iio . . . . . . . . . . 42.90 eeo . . . . . . . . . . 42.90 emox . . . . . . . . 62.313 englishhyphenmins .

. . . . . . 20.65, 41.6 environments: hyphenrules 5, 12.180 otherlnguge . . . . . . . . . 5, 12.134 otherlngugeB . . . . . . . . 5, 12.142

theiliogrphy

io . . . . . . 42.90, 52.51 eo . . . . . . 42.90, 52.51 isper . . . . . . . . . 17.53 esper . . . . . . . . . 17.53 estoninhyphenmins extrsfrikns 19.93 extrslnin . 49.34 extrsustrin . 21.53 extrshs . . . 66.67 extrshsm . . 67.67 extrssque . . . 39.36 extrsreton . . . 23.35 extrsulgrin 57.181 extrstln . . 36.37 extrsrotin . 50.34 extrszeh . . . . 51.62 extrsdnish . . . 41.35 extrsduth . . . . 19.93 extrsenglish . 20.133 extrsespernto 17.35 extrsestonin . 48.44 extrsfinnish . . 46.35 extrsfrenh . . . 29.51 extrsgermn . . . 21.53 extrsgreek . . . . 27.80 extrsherew . . . 62.78 extrsielndi 42.18 extrsinterlingu 18.36 extrsirish . . . . 25.38 extrsitlin . . 30.35 extrslng . . . . . . . 11 extrsltin . . . . 31.49 extrslsorin . 59.59
. . . . . . . . . . 48.51

. . . . . . . . . 62.903

RTT

extrsmgyr . . extrsnustrin extrsngermn . extrsnorsk . . . extrsnynorsk . extrspolish . . extrsportuges extrsromnin extrsrussin . extrssmin . . . extrssottish extrsserin . extrsslovk . . extrsslovene . extrsswedish . extrsturkish . extrsukrinin extrsusorin extrswelsh . . .

. . . . . . . . . . . . . . . .

47.59 22.42 22.42 43.66 43.66 52.35 34.97 40.36 56.200 45.46 26.37 53.34 54.63 55.34 44.43 61.36 58.177 60.51 24.38

pfproessdoptions .

pftextellipsis 29.550 phdthinspe . . . .


...

. . . . . . . . . 29.737

phoff . . 56.272, 58.251 phon . . . 56.272, 58.251 fg . . . . . . . . . . 29.129 finishhyphenmins 46.66 flq . . . . . . . . . . 12.957 flqq . . . . . . . . . 12.967 fnumdfigure . . . . 47.63 fnumdtle . . . . . 47.63 footnoterule . . 62.634 foreigndlnguge 12.157 pyisqxvexqeqi 12.1371 foreignlnguge . . . . . . . . . 5, 12.148 pormthte . . . . 62.998 pormtporinglish . pormtporrerew 62.1050 fprimoA . . . . . . 29.220 frenhsetup . . 29.593 prenhvyout . . 29.531 fromherew . . . . . 62.90 frq . . . . . . . . . . 12.957 frqq . . . . . . . . . 12.967 full . . . . . . . . . . . 410 fup . . . . . . . . . . 29.173
........

56.268, 58.247

gim . . . . . . . . . . 62.200 rerewilpsedwonths . . . . . . . . 62.1182 gimdnomil . . . . 62.151 gimdprint . . . . 62.193 herewenoding . . 62.7 glq . . . . . . . . . . 12.933 rerewpromqregorin . . . . . . . . 62.1331 glqq . . . . . . . . . 12.945 grddgreek . . . . . 27.71 herewhyphenmins 62.21 grdilldvlue . . . 27.82 rerewwonthxme 62.1025 grdmonth . . . . . . 27.64 rerewwonthxmesninglish . . . . . . . . 62.1053 grdnumdi . . . . . 27.139 grdnumdii . . . . 27.139 rerewnumerl . . 62.96 grdnumdiii . . . . 27.139 herewnumerl . . 62.96 grdnumdiv . . . . 27.148 rerewnumerlfinl . . . . . . . . . . 62.96 grdnumdv . . . . . 27.148 grdnumdvi . . . . 27.148 rerewsetreg . . 62.995 grdur . . . . . . . 42.193 herewtext . . . . . 62.86 greekdelph . . . . 27.115 rerewtody 62.993, 410 greekdlph . . . . 27.115 rerewerxme 62.1004 greekdmp . . . . 27.135 hhline . . . . . . . 12.1356 greekdomn . . . 27.125 hmox . . . . . . . . 62.313 greekdromn . . . 27.125 hodiu . . . . . . . . 17.63 greekdtilde . . . 27.160 hodiun . . . . . . . 17.63 greekhyphenmins 27.30 hundlphdlehgth 47.453 qreeknumerl 27.113, 110 hundnumerdlehgth . . . . . . . . . . 47.447 greeknumerl 27.89, 110 greektext . 27.24, 109 hundtempdef . . 47.381 hunnewlel . . . 47.539 qregorinhyssnriorwonths . . . . . . . . 62.1113 hyphenrules (environment) . . 5, 12.180 qregorinhyssnriorers
62.1137 . 12.933 . 12.945 . . 27.76 .... . . . 12.861, 29.131 guillemotright . . . . . . 12.861, 29.131 guilsinglleft . 12.879 guilsinglright 12.879

grq . . . . . . . . . grqq . . . . . . . . qrtody . . . . . guillemotleft

........

62.1075

gentilde . . . . . . 48.52

ieme . . . . . . . . . 29.214 iemes . . . . . . . . 29.214 ier . . . . . . . . . . 29.214 iere . . . . . . . . . 29.214 ieres . . . . . . . . 29.214 iers . . . . . . . . . 29.214 ifdgimdpost . . . 62.94 ifdgimdfinl . . . 62.94 ifdgimdprev . . . 62.193 ifdrl . . . . . . . . 62.237 hedeven . . . . . 62.637 ifdrlmin . . . . 62.238 hedodd . . . . . . 62.637 ifdsfedtives 12.593 hedte . . . . . . . 62.73 ifdwodi . . . . . . 42.11 hedy . . . . . . . . 62.76 sfqregorinvep 62.1095 iflnguge . . . 5, 12.60 reltexedefinev . . . . . . . . . . 62.293 ifvee . . . . . . . 29.3 hemonth . . . . . . 62.61 ifthenelse . . . . 12.1325 her . . . . . . . . . 62.200 ifundefined . . . 62.1093 rerewdte . 62.985, 410 st . . . . . . . . . . 12.897 rerewhyxme . 62.1049 ij . . . . . . . . . . 12.897 rerewhyssnriorwonths inititedtivedhr . . . . . . 12, 12.423 . . . . . . . . 62.1274 rerewilpsedhys . interlinguhyphenmins

........

62.1207

. . . . . . . . . . . 18.6

RTU

irishhyphenmins . 25.6 itdp . . . . . . 30.101 itdwm . . . 30.49, 30.57 itdop . . . . . . 30.101 itlinhyphenmins 30.34 itemizepf . . . . 29.424 itemizeys . . . . 29.424 v . . . . . . . . . . . 62.293 vFv . . . . . . . . . . 36.187 lFl . . . . . . . . . . 36.187 ldhpter . . . . 62.573 ldprgrph . . . 62.591 ldprt . . . . . . . 62.450 ldsetion . . . . 62.591 ldsuprgrph 62.591 ldsusetion . . 62.591 ldsususetion 62.591 lel . . . 47.519, 62.112 lelenumii . . . 62.379 lnghyphenmins . . . 11 lnguge . . . . . . 12.37 lngugedgroup 12.626 lngugettriute . . . . . . . . 6, 12.718 lngugenme . . . . . . 5 lngugeshorthnds . . . . . . . 5, 12.637 lstdlnguge . . 12.40 ve . . 12.1321, 62.349 vee . . . . . . . 62.351 ltinenoding 12.12, ltinhyphenmins 31.48 vtinwrksyff . . 32.50 vtinwrksyn . . . 32.50 ltintext . . . . . . .
56.7, 57.7, 58.7

lowerdumlut . . 12.987 lrlistoffigures 62.418 lrlistoftles 62.418 lrtleofontents . ltxdmp . . . . . . vtxymgporli


. . . . . . . . . 62.418 27.135 30.101

noextrsgermn . 21.53 noextrsgreek . . 27.80 noextrsherew . 62.81 noextrsielndi 42.18 noextrsinterlingu noextrsirish . . 25.38 noextrsitlin 30.35 noextrslng . . . . . 11 noextrsltin . . 31.49 noextrslsorin 59.59 noextrsmgyr . 47.59 noextrsnustrin 22.42 noextrsngermn 22.42 noextrspolish . 52.35 noextrsportuges 34.97 noextrsromnin 40.36 noextrssmin . . 45.46 noextrssottish 26.37 noextrsserin 53.34 noextrsslovk . 54.63 noextrsslovene 55.34 noextrsswedish 44.43 noextrsturkish 61.36 noextrswelsh . . 24.38 noherewtext . . . 62.86 nomre . . . . . . . 29.297 norskhyphenmins . 43.6 xos . . . . . . . . . . 29.220 nos . . . . . . . . . . 29.220 og . . . . . . . . . . 29.129 olddtelsorin 59.43 olddteusorin 60.43 ondtemgyr . . . 47.45 ontody . . . . . . . . 261 yo . . . . . . . . . . . 42.90 oo . . . . . . . . . . . 42.90 yyo . . . . . . . . . . 42.90 ooo . . . . . . . . . . 42.90 ord . . . . . . . . . . 34.114 ord . . . . . . . . . 34.114 originle . . . 12.259 yIdqpos . . . . . 12.713 otherlnguge (environment) 5, 12.134 otherlngugeB (environment) 5, 12.142 pdenumiii . . . . 62.379 pgeref . . . . . . 12.1245
. . . . . . . . . . 18.36

mindlnguge 11, 12.247 mkedlr . . . . . . 62.330 wkevowerse . 62.817 wkepperse . 62.817 mrkoth . . . . . 12.1293 mrkright . . . . 12.1279 mthlnin . . . 49.63 mthserin . . . . 53.67 mdqoff 21.124, 22.90,
52.159, 56.331, 58.310, 60.112 mdqon 21.124, 22.90, 52.159, 56.331, 58.310, 60.112

newhek . . . . . . 48.52 newdtelsorin 59.37 newdteusorin 60.37 newlel . . . . . 12.1210 newtilde . . . . . . 48.52 nfssdtodes . 12.1374 xo . . . . . . . . . . 29.220 no . . . . . . . . . . 29.220 xoeutopefeforeph
. . . . . . 29.110, 56.268, 58.247 noite . . . . . . . 12.1263 noextrsfrikns 19.93 noextrslnin 49.34 noextrsustrin 21.53 noextrshs . 66.67 noextrshsm 67.67 noextrssque . 39.36 noextrsreton . 23.35 noextrstln 36.37 noextrsrotin 50.34 noextrszeh . . 51.62 noextrsdnish . 41.35 noextrsduth . . 19.93 noextrsenglish 20.133 noextrsespernto 17.35 noextrsestonin 48.44 noextrsfinnish 46.35 noextrsfrenh . 29.51

. 12.22, 56.111, 57.111, 58.111, 109 vron . . . 51.83, 54.154 lron . . . 51.83, 54.154 ldfdfinish . . 12, 12.238 ldfdquit . . . 12, 12.232 vdfsnit . . . . 12, 12.200 vgem . . . . . . . . . 36.147 lgem . . . . . . . . . 36.147 list . . . . . . . . . 62.353 listpf . . . . . . . 29.412 listoffigures . 62.424 listoftles . . 62.424 listys . . . . . . 29.412 lodlolfg . 12, 13.1 looseness 51.290, 54.355

RTV

pdfstringdefhislegommnds svedsfdq . . 12.844, 13 . . . . . . . . 12.1364 seletlnguge . . . . . 5, 12.70, 62.262 ped . . . . . . . . . . . 30.84 12.199 peekdtoken . . . . 12.425 setdhyphenmins polishrz . . . . . 52.130 setdlowdox . 12.841, 13 polishzx . . . . . 52.130 setdoutputdlol 62.597 setherew . . . . . 62.84 portugeshyphenmins . . . . . . . . . . 34.96 etvtinvigtures 31.61 primo . . . . . . . . 29.220 setrllnguge . 62.281 proessdlnguge 12.318 shorthndoff . 5, 12.659 proessdline . . 12.296 shorthndon . . 5, 12.659 proessdsynonym 12.303 sk . . . . . . . . . . . 52.71 rosodiwrks . . 32.21 slidelel . . . . . 62.56 rosodiwrksyff 32.1 so . . . . . . 42.82, 52.43 rosodiwrksyn . 32.1 sp . . . . . . . . . . . 52.63 splithyphens . . . . . providehyphenmins . . . . 51.275, 54.340 . . . . . . 11, 12.195 sq . . . . . . 51.70, 54.83 rovidesvnguge . . . . . . . . . 10.1, 12 . . . . . . . . . . 12.931 stndrdhyphens . . psdhedings 47.155,
47.321, 62.637 psdmyhedings . 62.637 47.253, 47.356,

textgreek . 27.27, 109 textjm . . . . . . . 64.473 textltin . . . . . . .

tndrdvyout 29.531 tndrdwthgomm . sustitutefontfmily

...

51.275, 54.340

quotedlse . . quotesinglse

Q R

. . . . . . . . . 29.282

12.851 12.856

. . . . . . . . . . . 62.293 r . . . . . . . . . . 34.114 rggedleft . . . . 62.805 rggedright . . . 62.805 redonfigfile 12.365 ef . . . . . . . . . . 12.1342 ref . . . . . . . . . . 12.1245 refstepounter 47.514 eminder . . . . 62.1078 rldoutputdlol 62.597 rllistoffigures 62.421 rllistoftles 62.421 rltleofontents . ro . . . . . . . . . romndte . . . russindshdXd russindshdYd russindshdcd russindshdd .
......... . .. . . . .

. . . . . . 11.106, 12 swedishhyphenmins 44.42 systemdgroup . . 12.626 systemdshdXd . . . . .

. 12.25, 56.115, 57.115, 58.115, 109 textoj . . . . . . . 64.507 textol . . . . 27.28, 109 textormth . . . . 12.620 textpl . . . . . . . . 52.78 textredis . . . . 64.511 textshold . . . . 64.513 textshsr . . . . 64.514 textshstk . . . . 64.515 textt . . . . . . . 64.508 texttilde . . . . . 39.50 theiliogrphy (environment) . 62.903 theenumii . . . . 62.112 theenumiv . . . . 62.112 thousndsep . . . 42.106 tildelow . . . . . . 48.52 todyomn . . . . 57.179 toherew . . . . . . 62.90 turkishdshdXd . . 61.44 turkishdshdd . . . 61.44

systemdshdYd . . . . . systemdshdcd . . . . . systemdshdd . . . . . .


... ... ...

...

56.280, 58.259 56.280, 58.259 56.280, 58.259 56.280, 58.259

62.421 34.114 31.48 56.231 56.231 56.231 56.231

Idqpos . . . . . . 12.713 dunogporli . 30.129 tleofontents 62.424 tl . . . . . . . . . 42.115 telepl . . . . . . . . 52.87 e . . . . 12.1321, 62.347 textute . . . . . 36.74 textls . . . . . 64.512 textrml . . . . . 64.509 textyrilli 56.115,
57.115, 58.115 textds . . . . . . . 64.506 textfr . . . . . . . 64.510 textgrve . . . . . 36.74

ukrinindshdXd ukrinindshdYd ukrinindshdcd ukrinindshdd umluthigh . . . . umlutlow . . . . underline . . . . unit . . . . . . . . . . unsetherew . . . . unsetrllnguge up . . . . . 29.173, upp . . . . . . . . . . uppdsize . . . . . userdgroup . . . . useshorthnds 5, uv . . . . . 51.159,

58.210 58.210 58.210 58.210 12.977 12.977 62.821 30.84 62.84 62.281 36.194 42.155 42.155 12.626 12.629 54.224

v . . . . . . . 51.76, 54.147 vertimdfont . . . . vrefpgenum . . . 12.1342


... 56.202, 58.181

sminhyphenmins . 45.6

welshhyphenmins . 24.6

RTW

Change History
3.0

lqq: Added levevmode to allow an opening quote at the beginning of a


paragraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

293, 317

albanian-1.0a General: Started rst version of the le . . . . . . . . . . . . . . . . . . . . . . . . . . . . albanian-1.0b General: A number of corrections in the translations from Adi Zaimi . . . . . . albanian-1.0c General: Small documentation x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

283 283 283

babel 2.0a General: Added text about germnFsty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 babel 2.0b General: Changed order of code to prevent plain TEXfrom seeing all of it . . . . . 1 babel 2.1 General: Modied user interface, lnge no longer necessary . . . . . . . . . . . . 1 babel 2.1a General: Incorporated Nico's comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 babel 2.1b General: rename lnguge to urrentdlnguge . . . . . . . . . . . . . . . . . . . . . 1 babel 2.1c General: abstract for report xed, missing }, found by Nicolas Brouard . . . . . . 1 babel 2.1d General: Missing right brace in denition of abstract environment, found by Werenfried Spit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 babel 2.1e General: Incorporated more comments from Nico . . . . . . . . . . . . . . . . . . . . . . 1 babel 2.2 General: Renamed newlnguge to ddlnguge . . . . . . . . . . . . . . . . . . . . . 1 babel 2.2a General: Modied the documentation somewhat . . . . . . . . . . . . . . . . . . . . . . . 1 babel 3.0 General: Moved part of the code to hyphen.doc in preparation for TEX 3.0 . . . . 1 babel 3.0a General: Updated comments in various places . . . . . . . . . . . . . . . . . . . . . . . . . 1 iflnguge: Added dsphk and desphk . . . . . . . . . . . . . . . . . . . . . . 22 seletlnguge: Added dsphk and desphk . . . . . . . . . . . . . . . . . . . 24 Replaced gdef with def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 babel 3.0b General: Removed some problems in change log . . . . . . . . . . . . . . . . . . . . . . . 1 babel 3.0c General: Renamed elFsty and ltexhxFsty to Fom . . . . . . . . . . . . . . . . . 1 iflnguge: Added comment character after 5P . . . . . . . . . . . . . . . . . . . . . 22 seletlnguge: Made seletlnguge robust . . . . . . . . . . . . . . . . . . . . . 23 babel 3.0d dnoopterr: Added a percent sign to remove unwanted white space . . . . . . . . 30 General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 dodstyle: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . 57 iflnguge: Removed space hacks and use of difundefined . . . . . . . . . . . 22 Removed superuous expndfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 proessdlnguge: Added the collection of pattern names. . . . . . . . . . . . . . 32

RUH

Reinserted expndfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Removed superuous expndfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . seletlnguge: Removed space hacks and use of difundefined . . . . . . . . Removed superuous expndfter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.1 General: Added the support for active characters and for extending a macro . . . Removed denition of ifdrestoneol . . . . . . . . . . . . . . . . . . . . . . . . . . . Removed the need for ltexhx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ddto: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . redonfigfile: Removed the extra if control sequence . . . . . . . . . . . . . . . Removed use of toksH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . seletlnguge: originle should only be executed once . . . . . . . . . . . babel 3.2 General: Some Changes by br . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dddilet: Added relx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ddlnguge: Added a 7, removed y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eldeginsve: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eldsve: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eldsvent: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . eldsvevrile: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lddddspeil: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldremovedspeil: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iflnguge: Rephrased ifnum test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . seletlnguge: Modied to allow arguments that start with an escape character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.2a General: Fixups of the code and documentation . . . . . . . . . . . . . . . . . . . . . . . originle: Set originle to empty, because it should be expandable. redonfigfile: Free macro space for proessdlnguge . . . . . . . . . . . . . seletlnguge: Added relx as rst command to stop an expansion if protet is empty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added three expndfters to save macro space for originle . . . . . . . Moved denition of originle before extrs lang .............. Set originle to empty, because it should be expandable. . . . . . . . . . . Simplied the modication to allow the use in a write command . . . . . . . babel 3.2b llowhyphens: Moved macro from language denition les . . . . . . . . . . . . . . svedsfdq: Moved macro from language denition les . . . . . . . . . . . . . . . . setdlowdox: Moved macro from language denition les . . . . . . . . . . . . . . . babel 3.2c eldsve: missing backslash led to errors when executing originle . . babel 3.2d eldsve: saving in eldi and restoring from deldi doesn't work very well... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.2e General: Added slovak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.3 General: hedpgenme should be pgenme . . . . . . . . . . . . . . . . . . . . . . . . Added catalan and galician . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added turkish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Included driver le, and prepared for distribution . . . . . . . . . . . . . . . . . . . . babel 3.4 General: Added bahasa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added language denition le for bahasa . . . . . . . . . . . . . . . . . . . . . . . . . . .

32 32 24 24 1 57 1 50 34 34 25 1 22 21 49 49 49 49 35 36 22 23 1 30 35 24 25 25 25 23 50 51 51 49

49 73 61 73 73 1 73 1

RUI

babel 3.4b General: Added a small driver to be able to process just this le . . . . . . . . . . . Use the ltxdoc class instead of article . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.4c General: lhyphen.cfg has become lthyphen.cfg . . . . . . . . . . . . . . . . . . . . . . . . babel 3.4e A dnolnerr: Use kgeirror in L TEX 2 mode . . . . . . . . . . . . . . . . . . . . dnoptterns: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . proessdlnguge: Added code to detect assignments to left- and righthyphenmin in the patternle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rovidesvnguge: Redid the identication code, provided dummy denition of rovidespile for plain TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.4g dtestdef: Moved the def inside the macrocode environment . . . . . . . . . . . babel 3.5a dnoopterr: Added dtivted to log active characters . . . . . . . . . . . . . . . . General: Added a system shorthand for the right quote . . . . . . . . . . . . . . . . . Added breton, irish, scottish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Changed extension of language denition les to ldf . . . . . . . . . . . . . . . . . Provided common code to handle the active double quote . . . . . . . . . . . . . . Replaced 16 system shorthands to deal with hex numbers by one . . . . . . . . ldtivte: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lddetivte: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldmindlnguge: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldprdmds: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldsetdlnguge: write the language change to the auxiliary les . . . . . . . . inititedtivedhr: Added a check for right quote and adapt prdmds if necessary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mindlnguge: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.5b General: Added brazilian as alternative for brazil . . . . . . . . . . . . . . . . . . . . . . Added lsorbian, usorbian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the estonian option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lthyphen.cfg has become hyphen.cfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . inititedtivedhr: Renamed macro . . . . . . . . . . . . . . . . . . . . . . . . . . . pgeref: Made ref and pgeref robust (PR1353) . . . . . . . . . . . . . . . . . . proessdlnguge: Added optional reading of le with hyphenation exceptions proessdline: added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . proessdsynonym: added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . redonfigfile: Now add a spe and a / character . . . . . . . . . . . . . . . . . seletlnguge: Added an extra level of expansion to separate the switching mechanism from writing to aux les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Addedd default setting of hyphenmin parameters . . . . . . . . . . . . . . . . . . . . Changed the name of the internal macro to seletlnguge . . . . . . . . . . Separated the setting of the hyphenmin values . . . . . . . . . . . . . . . . . . . . . . Store the name of the current language in a control sequence instead of passing the whole macro construct to strip the escape character in the argument of seletlnguge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.5c dnoopterr: Added missing closing brace . . . . . . . . . . . . . . . . . . . . . . . . . . . General: Changed the order of including the language les somewhat (PR1652)

A Updated for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 ddto: Changed to use toks register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

1 71 15 30 30 32 14 63 30 45 73 16 1 45 42 42 30 45 24 38 36 30 16 73 16 15 36 64 33 31 31 34 23 25 23 25

23 30 73

RUP

corrected a few typos (PR1652) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Repaired a typo (itlaic, PR1652) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.5d General: Added british as an alternative for english with a preference for british hyphenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added options to inuence behaviour of active acute and grave accents . . . . Load frenhFldf when it is found instead of frenhFldf . . . . . . . . . . . . . Load language denition les after the check for the hyphenation patterns . Merged glyphs.dtx into this le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . tivedprefix: dproteteddmd has vanished from ltoutenFdtx . . . . . . . delredshorthnd: Make a `note' when a shorthand with an argument is dened. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . foreignlnguge: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . inititedtivedhr: Skip the language-level active char with argument if no shorthands with arguments were dened . . . . . . . . . . . . . . . . . . . . . . . . . Skip the user-level active char with argument if no shorthands with arguments were dened . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lodlolfg: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pgeref: use a dierent control sequence while making ref and pgeref robust . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . otherlnguge: environment added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.5e otherlnguge: changed name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.5f diitem: Now use ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ditex: Now use ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dtestdef: Complete rewrite of this macro as the same character ended up with dierent category codes in the labels that are being compared. Now use mening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use stripdprefix only on ldtemp when it is not relx . . . . . . . . . . General: Added a system shorthand for the left quote . . . . . . . . . . . . . . . . . . Added the greek option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . No need to reset the category code of the tilde as inititedtivedhr now correctly deals with active characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use the le frenhFldf from Daniel Flipo for french support . . . . . . . repaired a typo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . replaced tmp, ldtmp and ldtemp with ldtemp . . . . . . . . . . . . . . lisshorthnd: New command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . lddis: Macro moved from language denition les . . . . . . . . . . . . . . . . . ldredefine: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldredefineroust: Dene Bfoo instead of foo . . . . . . . . . . . . . . . . . . . Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldsetdlnguge: Now also dene lngugenme at this level . . . . . . . . . . ldtestdtoken: macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iite: Now use ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ht: New denition of dj, see PR 2058 . . . . . . . . . . . . . . . . . . . . . . . . . . . . frq: corrected spelling of quilsinglFFF . . . . . . . . . . . . . . . . . . . . . . . . . . now use textormth in these denitions . . . . . . . . . . . . . . . . . . . . . . . . . frqq: corrected spelling of quillemotFFF . . . . . . . . . . . . . . . . . . . . . . . . . . now use textormth in these denitions . . . . . . . . . . . . . . . . . . . . . . . . . inititedtivedhr: Deal correctly with already active characters, provide top level expansion and dene all lower level expansion macros outside of the else branch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 51

16 18 16 16 1 41 42 26 40 39 70 64 26 26 65 64

63 63 63 45 16 46 16 1 1 43 51 61 62 62 24 37 64 53 54 54 54 54

37

RUQ

restore the lode of the tie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Restore the category code of a shorthand char at end of package . . . . . . . . 38 store the lode of the tie before changing it . . . . . . . . . . . . . . . . . . . . . . 38 use peekdtoken to check whether it is safe to proceed . . . . . . . . . . . . . 40, 41 lowerdumlut: Added a llowhyphens . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 removed llowhyphens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 newlel: Now use ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 noite: Now use ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 pgeref: Now use ldredefineroust . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 redene Bref if it exists instead of ref . . . . . . . . . . . . . . . . . . . . . . . . . . 64 A redene setref instead of ref and pgeref in L TEX 2 . . . . . . . . . . . . . 64 Reverse the previous change as it inhibits the use of active characters in labels 64 peekdtoken: macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 proessdlnguge: Use empty instead of dempty as the latter is unknown in plain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 rovidesvnguge: Need to temporarily change the denition of rovidespile for December 1995 release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Store version in fileversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 redonfigfile: Moved the ddling with dump to plinFdtx as it is no A longer needed for L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 seletlnguge: Added a missing percent character . . . . . . . . . . . . . . . . . . 23 Moved check for escape character one level down in the expansion . . . . . . . 23 otherlngugeB: environment added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 babel 3.5g General: Added denition of fel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Added greek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Added option afrikaans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Removed the use of ptternsdloded altogether . . . . . . . . . . . . . . . . . . . 31 A replaced undefined with dundefined to be consistent with L TEX . . . . . . . 1 ifthenelse: Redenition of ifthenelse added to circumvent problems with pgeref in the argument of isodd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 inititedtivedhr: Top level expansion of normldhr hr where char is already active, should be the expansion of the active character, not the active character itself as this causes an endless loop . . . . . . . . . . . . . . . . . 37 nfssdtodes: Need to add the double quote and acute characters to nfssdtodes to prevent problems when reading in .fd les . . . . . . . . . . . . . . . . . . . . . . 69 proessdline: Simplied code, removing ldeqd . . . . . . . . . . . . . . . . . . . 31 rovidesvnguge: Save a few csnames; use ldtemp instead of rovidespile and store message in toksV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 babel 3.6a ddvpgeref: Redenition of ddvpgeref added to circumvent problems with active X in the argument of vref when vrioref is used . . . . . . . . . . . . . 68 General: Added welsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Removed eldoredloded, no longer needed with the advent of vdfsnit 19 ldfdfinish: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 ldfdquit: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 vdfsnit: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 mindlnguge: mindlnguge now also sets lngugenme and ldlngugenme for use by other packages in the preamble of a document . . . . . . . . . . . . . . 30 seletlnguge: Check for the existence of dteFFF instead of ldFFF . . . 24 babel 3.6b ddto: Also check if control sequence expands to relx . . . . . . . . . . . . . . . 50 babel 3.6c General: When vdfsnit is undened we need to load elFdef from elFsty 16

RUR

might not be dened; assume english is language 0 . . . . . . . . . . . . . . . . . . babel 3.6d foreigndlnguge: Added relx to prevent disappearance of the rst token after this command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . New macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . set the language shorthands to `none' before switching on the extras . . . . . . foreignlnguge: Introduced foreigndlnguge . . . . . . . . . . . . . . . . . . . . seletlnguge: set the language shorthands to `none' before switching on the extras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . otherlngugeB: Introduced foreigndlnguge . . . . . . . . . . . . . . . . . . . . . babel 3.6e General: Added option frenchb an alias for francais . . . . . . . . . . . . . . . . . . . . Added options UKenglish and USenglish . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.6f General: Added option KeepShorthandsActive . . . . . . . . . . . . . . . . . . . . . . . . . ldredefinedlong: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ifthenelse: ifthenelse needs to be long . . . . . . . . . . . . . . . . . . . . . . . . . inititedtivedhr: Made restoring of the category code of shorthand characters optional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.6h redonfigfile: Added a couple of expndfters to copy the contents of toksV into everyjo instead of the reference . . . . . . . . . . . . . . . . . . . . . babel 3.6i dnewldel: Now redene dnewldel instead of dliitem and newlel . dtestdef: dsfedtivesflse is now part of the label denition . . . . . . . Make sure that shorthands don't get expanded at the wrong moment. . . . . General: Added basque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added default option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the Basque option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the ukrainian option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the possibility to have a loptsFfg le with option declarations. . ldfterfi: Made ldfterelse and ldfterfi long . . . . . . . . . . . ldtestdtoken: renamed ldtoken to ldtestdtoken to prevent a clash with ArabTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . delredshorthnd: Make it possible to distinguish the constructed control sequences for the case with argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ifthenelse: Now reset the @safe@actives switch inside the 2nd and 3rd arguments of ifthenelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . inititedtivedhr: Make shorthands active during Fux le processing . Remove the use of peekdtoken again . . . . . . . . . . . . . . . . . . . . . . . . . . 40, Remove the use of peekdtoken again and make the FFFtivedrgFFF commands long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ltinenoding: Macro added, moved from Fldf les . . . . . . . . . . . . . . . . . . ltintext: Macro added, moved from Fldf les . . . . . . . . . . . . . . . . . . . . . mrkright: Added redenition of mrkFFF commands . . . . . . . . . . . . . . . . peekdtoken: Renamed testdtoken to ldtestdtoken to prevent a clash with ArabTEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . systemdgroup: Have a user group called `user' by default . . . . . . . . . . . . . . . textltin: Macro added, moved from Fldf les . . . . . . . . . . . . . . . . . . . . . babel 3.6k ltinenoding: Use T1 encoding when it is a known encoding . . . . . . . . . . .

ldmindlnguge: When hyphenFfg is not loaded in the format ldenglish

30

27 26 27 26 25 26 16 17 18 62 67 38

35 62 63 63 73 17 16 17 17 36 37 42 67 39 41 40 19 20 65 37 43 20 20

RUS

babel 3.6l General: Don't load elFdef now, but rather dene vdfsnit temporarily in order to load elFdef at the right time, preventing problems with the temporary denition of ldredefine . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.6m ltinenoding: Can't use difpkgeloded need to parse dfilelist . . . babel 3.6n ltinenoding: Added a check for `manual' selection of I encoding, without loading fonten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . moved checking for fontenc right to the top of elFsty . . . . . . . . . . . . . . babel 3.6o General: Moved the rest of the font encoding related denitions to their original place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.6p General: Added the ngerman and naustrian options . . . . . . . . . . . . . . . . . . . . babel 3.6q ltinenoding: Better solution then parsing dfilelist, use difldded . . babel 3.6r General: We need to load elFdef right now as rovidesvnguge needs to be dened before the Fldf les are read and the reason for for 3.6l has been removed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.6s iite: Need to determine `online' which denition of iite is needed . babel 3.6u ltinenoding: Moved this code to elFdef . . . . . . . . . . . . . . . . . . . . . . babel 3.6v ldiite: Macro ldiite added . . . . . . . . . . . . . . . . . . . . . . . . . . lditedhoie: Macro lditedhoie added . . . . . . . . . . . . . . . . . . . iite: Also check for ite it can't handle dsfedtivesflse in its second argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.7a dnewldel: Call dsfedtivestrue directly . . . . . . . . . . . . . . . . . . . . . . . dtestdef: Removed dsfedtivesflse from the label denition . . . . . . . General: Added icelandic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the hebrew option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the icelandic option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the polutonikogreek option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . No longer dene the control sequence ueephorthndsetive . . . . . . . . . . Now need packages t1enc and supertabular to be loaded; the documentation for icelandic needs its Fldf le to be present . . . . . . . . . . . . . . . . . . . . . . llowhyphens: Make llowhyphens a no-op for T1 fontencoding . . . . . . . . . ldswithdsh: Added command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . foreignlnguge: Added executing originle . . . . . . . . . . . . . . . . . . . . grq: Make the denition of grq dependent on the font encoding . . . . . . . . . grqq: Make the denition of grqq dependent on the font encoding . . . . . . . iflnguge: Now evaluate the ifnum test after the fi from the ifx test and use dfirstoftwo and dseondoftwo . . . . . . . . . . . . . . . . . . . . . . . . . . . inititedtivedhr: Commented out peek@token and testdtoken as short hands are made expandable again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use difpkgewith to determine whether shorthand characters need to remain active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A ve: Make TEX and L TEX logos encoding-independent . . . . . . . . . . . . . . . proessdlnguge: Read pattern les in a group . . . . . . . . . . . . . . . . . . . . .

16 20

20 20

20 17 20

do

16 64 20 65 65 64 62 63 73 17 17 16 18 71 50 44 26 54 54 22 36 38 67 32

RUT

in plain formats because of babel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Removed superuous braces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 shorthndoff: Added command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 shorthndon: Added command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 babel 3.7b General: Added Latin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Added the latin option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 iflnguge: Slight enhancement: added braces around rst argument of ldfterfi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 babel 3.7c General: Added an error message for when no language option was specied . . 18 Added hebrew and serbian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Added support for language attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Added ukrainian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 dene dddilet before loading plinFdef here . . . . . . . . . . . . . . . . . . . 19 No longer us a redenition of an internal macro, just check ldmindlnguge and load elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Removed redenition of dromn and domn . . . . . . . . . . . . . . . . . . . . . . 67 set the correct language attribute for polutoniko greek . . . . . . . . . . . . . . . . 16 inititedtivedhr: Only execute inititedtivedhr once for each character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 mrkright: Avoid expanding the arguments by storing them in token registers 65 Removed the use of heddlng (PR 2990) . . . . . . . . . . . . . . . . . . . . . . . . 65 proessdlnguge: Added the execution of the contents of toksd . . . . . . . . 33 Also store lngugenme for possible later use in proessdsynonym . . . . . 32 need to set hyphenmin values globally . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Only set hyphenmin values when the pattern le changed them . . . . . . . . . 33 Set lefthyphenmin to mdne inside the group; explicitly set the hyphenmin parameters for language 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 proessdline: added an extra argument in order to prevent a trailing space from becoming part of the control sequence when dening a synonym (PR 2851) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 proessdsynonym: Now also store hyphenmin parameters for language synonyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Use a token register to temporarily store a command to set hyphenmin parameters for the synonym which is dened before the rst pattern le is processed 31 babel 3.7d General: Fixed a few typos in hnges entries which made typesetting the code impossible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 inititedtivedhr: Make sure the active character doesn't get expanded more then once by the edef by adding expndfterstripdprefixmening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 babel 3.7e General: Added missing hebrew les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 ldlerdttris: When ldttriutes is undened this should be a no-op 49 inititedtivedhr: pass the argument on with braces in order to prevent it from breaking up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 previous change was rubbish; use let instead of edef . . . . . . . . . . . . . . . 37 hyphenrules: Added environment hyphenrules . . . . . . . . . . . . . . . . . . . . . . . 27 babel 3.7f General: Added bulgarian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Added samin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Added the bulgarian option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

rovidesvnguge: Added macro to prevent problems with unexpected rovidespile

RUU

ldgetden: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldifttriuteset: macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldprimds: Need to redene primds as well as plain TEX's denition uses next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldsetdlnguge: Macro ldsetdlnguge introduced . . . . . . . . . . . . . . ifthenelse: pgeref needs to have its babel denition reinstated in the second

Added the

samin option

......................................

17 33 47 45 24

Introduced an extra level of expansion in the denition of an active caret . . 38 Make an exception for the active caret which needs an extra level of expansion 39 remove the braces again . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 The redenition needs to take place one level higher, primds needs to be redened. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 proessdlnguge: Allow for the encoding to be used as part of the language name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 providehyphenmins: added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 svedsfdq: PR3119, don't start a paragraph in a local group . . . . . . . . . . . . 51 seletlnguge: Use ftergroup to keep the language grouping correct in auxiliary les PR3091 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 babel 3.7g ditex: The shorthands need to be deactivated for the second argument of ditex only. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 General: Added option acadian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Added option canadian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Added option canadien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 inititedtivedhr: use textormth to get rid of the fi (PR 3266) . . . 38 babel 3.7h General: Added a number of missing comment characters which caused spurious white space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 babel 3.7j General: only load frenhFldf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ldpopdlnguge: Introduce the language stack mechanism . . . . . . . . . . . . 23 Now use the language stack mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 pyisqxvexqeqi: Dene pyisqxvexqeqi unconditionally . . . . . . . . . . . . 69 sustitutefontfmily: create le with lowercase name . . . . . . . . . . . . . . . . 18 textltin: added levevmode to prevent a paragraph starting inside the group 20 otherlnguge: rely on seletlnguge to keep track of the nesting . . . . . 26 useshorthnds: The change from 11/112001 was incomplete . . . . . . . . . . . . 43 When TEX has seen a character its category code is xed; need to use a `standin' for the call of ldtivte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 babel 3.7k textltin: Use helreextpontgomnd . . . . . . . . . . . . . . . . . . . . . . . . . . 20 babel 3.7m dmkoth: added ldrestoredtives to the mark . . . . . . . . . . . . . . . . . . 66 dnoopterr: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 General: Added the interlingua option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 ldpopdlnguge: Removed the superuous empty denition of ldpopdlnguge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 ldrestoredtives: New macro added . . . . . . . . . . . . . . . . . . . . . . . . . . 42 mrkright: added ldrestoredtives to the mark . . . . . . . . . . . . . . . . . 65 seletlnguge: Check for the existence of both ldFFF and dteFFF . . . . 24

inititedtivedhr: Added an extra shorthand combination on user level to catch an interfering protet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Insert a check for math mode in the denition of normldhr9 . . . . . . . . 38

and third arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

RUV

babel 3.7o

pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.8a General: Added interlingua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Also load package url . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.8b ldshdselet: Added command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . delredshorthnd: We need to support shorthands with and without argument in dierent groups; added the name of the group to the storage macro . . . . frq: Made flq and frq fontencoding dependent . . . . . . . . . . . . . . . . . . . . frqq: Made flqq and frqq fontencoding dependent . . . . . . . . . . . . . . . . . grq: Made glq fontencoding dependent as well . . . . . . . . . . . . . . . . . . . . . grqq: Made grqq fontencoding dependent as well . . . . . . . . . . . . . . . . . . . . hhline: added string to prevent unwanted expansion of the colon . . . . . . . inititedtivedhr: Now use ldshdselet . . . . . . . . . . . . . . . . . . 39, babel 3.8c dmkoth: No need to add anything to an empty mark, prevented this by checking the contents of the arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General: Added option australian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added the newzealand option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mrkright: No need to add anything to an empty mark; prevented this by checking the contents of the argument . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.8e General: Many enhancements to the text by Andrew Young . . . . . . . . . . . . . . . babel 3.8f dmkoth: Make the denition independent of the original denition; expand lngugenme before passing it into the token registers . . . . . . . . . . . . . . mrkright: Make the denition independent of the original denition; expand lngugenme before passing it into the token registers . . . . . . . . . . . . . . babel 3.8g ef: We also need to adapt ef which needs to be able to uppercase the rst letter of the expansion of ref . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.8h General: added malay, meyaluy and bahasam for the Bahasa Malaysia support . Added albanian and bahasam . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Added option albanian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . added synonyms indonesian, indon and bahasai for the original bahasa (indonesia) support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . babel 3.8j dmkoth: Added setting of dmkoth (PR 3826) . . . . . . . . . . . . . . . . . . . . . . ldswithdshdon: Added a group in order to protect the current lowercase code of the tilde (PR 3851) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . pdfstringdefhislegommnds: Inform hyperref to use shorthands at system level (PR4006) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . hyphenrules: Also set the hyphenmin paramters to the correct value (PR3997) babel 3.8l ldmindlnguge: Use ldptterns . . . . . . . . . . . . . . . . . . . . . . . . . . . ldptterns: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

tivedprefix: Added handling of the situation where protet is set to dunexpndledprotet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ldfdfinish: Also restore the category code of the equals sign . . . . . . . . . . . ldfdquit: Also restore the category code of the equals sign . . . . . . . . . . . . . vdfsnit: make sure the equals sign has its default category code . . . . . . . . . vrefpgenum: Added redenition of vrefpgenum which deals with ranges of

41 29 29 28 68 73 71 41 42 54 54 54 54 68 40

66 16 17 65 1

66 65

68 16 73 16 16 66 45 69 27 30 27

RUW

bahasa-0.9c General: Now use dptterns to produce the warning . . . . . . . . . . . . . . 446, 449 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446, 449 bahasa-1.0b A ptionshs: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . 447 A ptionshsm: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 450 bahasa-1.0d General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446, 449 ptionshs: Replaced `Proof' by `Bukti' (PR2214) . . . . . . . . . . . . . . . 447 ptionshsm: Replaced `Proof' by `Bukti' (PR2214) . . . . . . . . . . . . . . 450 bahasa-1.0e General: Moved the denition of ttode right to the beginning. . . . 446, 449 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . 448, 451 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . 446, 449 hshyphenmins: use hshyphenmins to store the correct values . . . . 448 hsmhyphenmins: use hsmhyphenmins to store the correct values . . 450 bahasa-1.0f dtehs: Use edef to dene tody . . . . . . . . . . . . . . . . . . . . . . . . . . 447 dtehsm: Use edef to dene tody . . . . . . . . . . . . . . . . . . . . . . . . . 450 bahasa-1.0g dtehs: Februari should be spelled as Pebruari . . . . . . . . . . . . . . . . . . 447 dtehsm: Februari should be spelled as Pebruari . . . . . . . . . . . . . . . . . 450 bahasa-1.0h hshyphenmins: Now use providehyphenmins to provide a default value 448 hsmhyphenmins: Now use providehyphenmins to provide a default value 450 ptionshs: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . 447 ptionshsm: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 450 bahasa-1.0i ptionshs: Inserted translation for Glossary . . . . . . . . . . . . . . . . . . . 447 ptionshsm: Inserted translation for Glossary . . . . . . . . . . . . . . . . . . 450 bahasa-v1.0k General: Make it possible that this le is loaded by variuos options . . . . . . . 446 bahasam-0.9f General: A number of changes to make this specic to Bahasa Mayasia . . . . 449 bahasam-1.0k ptionshsm: Inserted changes from Awangku Merali . . . . . . . . . . . . . 450 dtehsm: Februari restored to BM spelling; see Collins Kamus Dwibahasa 2005 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 bahasam-v1.0j General: Make it possible that this le is loaded by variuos options . . . . . . . 449 bahasa 1.0f dtehs: use def instead of edef to save memory . . . . . . . . . . . . . . . 447 dtehsm: use def instead of edef to save memory . . . . . . . . . . . . . . 450 basque-1.0b General: Removed empty groups after guillemot characters . . . . . . . . . . . . . 231 dtesque: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 230 basque-1.0c dtesque: xed typo in April's name . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

foreigndlnguge: use ldptterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 seletlnguge: Use ldptterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 hyphenrules: Use ldptterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

RVH

basque-1.0d basque-1.0e

noextrssque: Deactivate shorthands ouside of Basque

.............

230 230 229

basque-1.0f General: Changed url's for the patterns le . . . . . . . . . . . . . . . . . . . . . . . . . 229 ptionssque: Added translation for Glossary . . . . . . . . . . . . . . . . . . . . 229 bbplain-0.1 General: Added redenition of dump to add a message to everyjo . . . . . . 453 bbplain-1.0c General: Add execution of degindoumenthook to dpremlemds . . . . . . 454 Added denition of lodlolfg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Moved the dump code here from elFdtx . . . . . . . . . . . . . . . . . . . . . . 453 bbplain-1.0d General: Also reset category codes after loading the conguration le as etindyfkge is undened in this case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 bbplain-1.0e General: Added the newommnd code . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 Provide a more complete emulation of helreoustgommnd and newommnd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 bbplain-1.0f General: added dempty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 Added textquotedlright and textquoteright . . . . . . . . . . . . . . . . . 461 Added denition of sriptsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 Consistently use dundefined instead of undefined . . . . . . . . . . . . . . . . 453 Use toksV instead of ptternsdloded . . . . . . . . . . . . . . . . . . . . . . . . 454 bbplain-1.0g General: Added ss and i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 bbplain-1.0h General: Only load the necessary parts into the format, let this le be read agian by babel.def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453 bbplain-1.0i A General: doument is not a L TEX2.09-only command; AMSTEXdenes it too; A now use dztryf to detect L TEX2.09 . . . . . . . . . . . . . . . . . . . . . . . . . . 454 bbplain-1.0j General: degindoumenthook might already be dened . . . . . . . . . . . . . . . 455 A Add the denition of degindoumenthook to the L TEX2.09 format . . . . 454 bbplain-1.0k General: newount is an outer command, can't use it inside an if construct 457 missing dundefined added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 bbplain-1.0l General: Mixed up the denition of dtempnt . . . . . . . . . . . . . . . . . . . . . 457 bbplain-1.0m General: Set ifdfilesw to ifflse only for plain TEX . . . . . . . . . . . . . . . 455 bbplain-1.0n General: Added dseondoftwo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 Added the source for the format wrapper les . . . . . . . . . . . . . . . . . . . . . 452 Repaired typo and added missing endsnme . . . . . . . . . . . . . . . . . . . . . 455 bbplain-1.0o General: Added denition of ind . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 bbplain-1.0p General: Added difldded as a no-op . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457

squehyphenmins: Now use providehyphenmins to provide a default value ptionssque: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . .

RVI

bbplain-1.0q General: Added difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 bbplain-1.0r General: Added textquotedlleft and textquoteleft . . . . . . . . . . . . . . 461 breton-1.0 General: First release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 breton-1.0b A ptionsreton: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . . 99 noextrsreton: Use the new mechanism for dealing with active chars . . . . 100 breton-1.0c General: Postpone the helreextgompositegommnds untill etfeginhoument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 breton-1.0e General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 102 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . . 99 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 99 breton-1.0f dtereton: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 100 breton-1.0g noextrsreton: Deactivate shorthands ouside of Breton . . . . . . . . . . . . . . 100 breton-1.0h ptionsreton: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 bulgarian-0.99 General: This is a prerelease version of this le. Features needing further testing are removed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 bulgarian-1.0b extrsulgrin: Now use providehyphenmins to provide a default value 351 bulgarian-1.0c General: Added missing closing brace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 dq: repaired typo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 bulgarian-1.0d General: Change denition of th only for this language . . . . . . . . . . . . . . . 353 bulgarian-1.0e dsh: Two occurences of emp were changed into tab followed by emp . . . . 350 catalan-1.1

ptionstln: hedpgenme should be pgenme . . . . . . . . . . . . . . . 200 catalan-2.0 General: Removed code to load ltexhxFom . . . . . . . . . . . . . . . . . . . . . . . 200 ptionstln: Added some names . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 extrstln: Macro completely rewritten . . . . . . . . . . . . . . . . . . . . . . . 201 noextrstln: Macro completely rewritten . . . . . . . . . . . . . . . . . . . . . 201 catalan-2.0b General: Incorporated the changes from spnishFsty . . . . . . . . . . . . . . . . . 199 catalan-2.1 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 catalan-2.1d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 200 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 ptionstln: Added a few missing translations . . . . . . . . . . . . . . . . . 200 textute: Renamed from ute as that is a mthent . . . . . . . . . . . . 202

RVP

catalan-2.2a General: All the code to deal with active characters is now in elFdef . . . 203 extrstln: Handling of active characters completely rewritten . . . . . . 201 noextrstln: All the code for handling active characters is now moved to elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 catalan-2.2b General: Changed mathmode denition of acute shorthands to expand to a single prime followed by the next character in the input . . . . . . . . . . . . . . . . . . 204 Made the activation of the grave and acute accents optional . . . . . . . . . . . 199 A ptionstln: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 200 dtetln: Month names in lowercase . . . . . . . . . . . . . . . . . . . . . . . . . . 200 vgem: Added support for typing the catalan ela geminada with the macros lgem and vgem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 noextrstln: Make activating the accent characters optional . . . . . . . . 201 up: Added denition of macro up, which can be used to type ordinals . . . . 206 catalan-2.2c General: Added '' as an axtra shorthand, removed 'n as a shorthand . . . . . . 204 Added shorthands for guillemets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 cedile now produced by double quote shorthand . . . . . . . . . . . . . . . . . . . 203 Removed the use of the tilde for catalan . . . . . . . . . . . . . . . . . . . . . . . . . 199 catalan-2.2d ptionstln: added translation of Proof . . . . . . . . . . . . . . . . . . . . . . 200 Translations revised . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200 catalan-2.2e General: Added `` as an axtra shorthand . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 Added vertical bar as argument to active acute . . . . . . . . . . . . . . . . . . . . 204 vFv: Added redenition of l and v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 noextrstln: Need to split up the difpkgewith statements . . . . . 201 Now give the apostrophe a lowercase code . . . . . . . . . . . . . . . . . . . . . . . . 201 up: Now use textsupersript and make up robust . . . . . . . . . . . . . . . . 206 catalan-2.2f General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199 vgem: Added a check for math mode as the use of lgem and vgem in math mode is not sensible. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 catalan-2.2g General: Moved the denition of ttode right to the beginning. . . . . . . 199 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 200 catalan-2.2h noextrstln: Added some comment signs to prevent unwanted spaces in the output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 catalan-2.2i General: Removed empty groups after guillemot characters . . . . . . . . . . . . . 203 dtetln: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 200 catalan-2.2k General: A wrong hnges entry made typesetting impossible . . . . . . . . . . 199 catalan-2.2l noextrstln: Don't forget do deactivate the shorthands . . . . . . . . . . . 201 Make sure that the grave accent has catcode 12 before it is made tive . 201 catalan-2.2m ptionstln: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 200

RVQ

catalan-2.2n

catalan-2.2o vFv: Postpone the redenition of l and v until begin document to prevent overwriting by fontenc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 catalan-2.2p ptionstln: Inserted translation for Glossary . . . . . . . . . . . . . . . . . . 200 changes-1.0f General: The hyphen char needs to appear at the beginning of the line as well. 232 croatian-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.0c General: Removed some typos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 286 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 ptionsrotin: Added seenme, lsonme and prefenme . . . . . . 286 croatian-1.2 ptionsrotin: hedpgenme should be pgenme . . . . . . . . . . . . . . 286 croatian-1.3 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3d ptionsrotin: Added a few translations . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3e A ptionsrotin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 286 croatian-1.3f ptionsrotin: Added translation of Proof . . . . . . . . . . . . . . . . . . . . . 286 dterotin: in croatian language, the genitive for the name of the month has to be used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3g General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 287 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 286 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 286 croatian-1.3h dterotin: sijev{}nj should be seijv{}nj and there should be a period after the year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3i ptionsrotin: Replaced some of the translations with `better' words . . 286 dterotin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . 286 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3j dterotin: changed od into or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3k ptionsrotin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 286 croatian-1.3l ptionsrotin: Inserted translation for Glossary . . . . . . . . . . . . . . . . . 286 czech-1.0a General: Renamed babel.sty in babel.com . . . . . . . . . . . . . . . . . . . . . . . . . . 288 czech-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 289

tlnhyphenmins: Set the hyphenation parameters both to two as required by hyphFtex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

RVR

czech-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 289 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 ptionszeh: Added seenme, lsonme and prefenme . . . . . . . . . 290 czech-1.1a noextrszeh: Removed typo, q was restored twice, once too many. . . . . 291 czech-1.2 General: Included some features from Kasal's czech.sty . . . . . . . . . . . . . . . . 288 czech-1.3 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 czech-1.3d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 289 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 czech-1.3e noextrszeh: now use ldfrenhsping and ldnonfrenhsping 291 A Use L TEX's v and r accent commands . . . . . . . . . . . . . . . . . . . . . . . . . 291 czech-1.3f A ptionszeh: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . . 290 czech-1.3g ptionszeh: Fixed two errors and provided translation for `proof' . . . . . 290 czech-1.3h General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 300 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 289 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 288 czech-1.3i dtezeh: Use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 290 czech-1.3j ptionszeh: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 czech-1.3k ptionszeh: Added translation for Glossary . . . . . . . . . . . . . . . . . . . . . 290 czech-3.0 General: Added default for setting hyphenmin parameters. Values taken from A CSL TEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 A Implemented the functionality of CSL TEX's czech.sty. The version number was bumped to 3.0 to minimize confusion by being higher than the last version of A CSL TEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288 ptionszeh: Updated some translations. Former translations were: `Dodatek' for ppendixnme and `Index' for indexnme. Also removed spurious colon at the end of nme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290 czech-3.1 sdemdsh: ensure correct catcode for the saved hyphen . . . . . . . . . . . . . . . 294 sdsplitttr: attribute added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 noextrszeh: move lngugeshorthnds here, so that the language group is always initialized correctly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 splithyphens: activate with split hyphens and deactivate with standard hyphens, not vice versa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 danish-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . danish-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . .

235 235

RVS

danish-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 235 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 ptionsdnish: Added seenme, lsonme and prefenme . . . . . . . . 235 danish-1.2 ptionsdnish: hedpgenme should be pgenme . . . . . . . . . . . . . . . . 235 danish-1.2b ptionsdnish: Added a few translations . . . . . . . . . . . . . . . . . . . . . . . . 235 danish-1.3 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 danish-1.3a dtednish: Added `.' to denition of tody . . . . . . . . . . . . . . . . . . . . . . 236 danish-1.3c ptionsdnish: Included some revisions from Peter Busk Larsen . . . . . . . 235 danish-1.3f General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 235 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 danish-1.3g General: Added the active double quote character as suggested by Peter Busk Laursen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 danish-1.3h A ptionsdnish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . 235 extrsdnish: Added ldfrenhsping . . . . . . . . . . . . . . . . . . . . . . . . 236 noextrsdnish: Added ldnonfrenhsping . . . . . . . . . . . . . . . . . . . 236 danish-1.3i ptionsdnish: Added translation of `Proof' . . . . . . . . . . . . . . . . . . . . . . 235 danish-1.3j General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 237 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 235 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 235 extrsdnish: Added denition of 4~ and 4a . . . . . . . . . . . . . . . . . . . . . . 237 Changed denition of 49 to print  instead of  . . . . . . . . . . . . . . . . . . . . 236 danish-1.3k dtednish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 236 extrsdnish: Removed empty groups after double quote and guillemot characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 danish-1.3m extrsdnish: Deactivate shorthands ouside of Danish . . . . . . . . . . . . . . . 236 danish-1.3n ptionsdnish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . 235 danish-1.3o ptionsdnish: Added translation of `Glossary' . . . . . . . . . . . . . . . . . . . . 235 danish-1.3p englishhyphenmins: Added default for setting of hyphenmin parameters . . 235 danish-1.3q E: Added redenition of E from duthFldf . . . . . . . . . . . . . . . . . . . . . . . . 237 englishhyphenmins: Set lefthyphenmin to two . . . . . . . . . . . . . . . . . . . . . 235 extrsdnish: Added denition of 4G from duthFldf . . . . . . . . . . . . . . . . 237 dutch-2.0a General: Added checking of format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

RVT

dutch-2.0b General: Added extrasdutch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-2.0c General: Added grqq macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-2.1 General: reect change to version 2.1 in babel and changes in german v2.3 . . . dutch-2.1a General: Incorporated Nico's comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-2.1b General: Incorporated more comments by Nico . . . . . . . . . . . . . . . . . . . . . . . dutch-2.1c General: Fixed some typos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-2.2 General: Fixed problem with the use of 4 in moving arguments while 4 is active dutch-2.3 dtrem: dieresis instead of entIPU . . . . . . . . . . . . . . . . . . . . . . . . . . General: dieresis instead of entIPU . . . . . . . . . . . . . . . . . . . . . . . . . . When using PostScript fonts with the Adobe font-encoding, the dieresis-accent is located elsewhere, modied code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . noextrsfrikns: Added dieresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-2.3a General: Modied the documentation somewhat . . . . . . . . . . . . . . . . . . . . . . dutch-3.0 General: Modied for babel 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use dddilet if language undened . . . . . . . . . . . . . . . . . . . . . . . dutch-3.0a General: Removed some problems in change log . . . . . . . . . . . . . . . . . . . . . . dutch-3.0b extrsfrikns: added some comment chars to prevent white space . . . . . . noextrsfrikns: added some comment chars to prevent white space . . . . dutch-3.1 General: Removed bug found by van der Meer . . . . . . . . . . . . . . . . . . . . . . . dutch-3.1a ptionsduth: pgenme should be hedpgenme . . . . . . . . . . . . . . . . . Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dteduth: Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . . extrsfrikns: Removed glol denitions . . . . . . . . . . . . . . . . . . . . . noextrsfrikns: Removed glol denitions . . . . . . . . . . . . . . . . . . . . dutch-3.2 General: added case for 4y and 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . extrsfrikns: Save all redened macros . . . . . . . . . . . . . . . . . . . . . . . . noextrsfrikns: Try to restore everything to its former state . . . . . . . . . dutch-3.2a General: Added reset of catcode of @ before endinput. . . . . . . . . . . . . . . . . Renamed babel.sty in babel.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.2b General: removed typo (allowhpyhens) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.2c General: Removed code to load ltexhxFom . . . . . . . . . . . . . . . . . . . . . . . . removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81, dutch-3.3 General: Rewritten parts of the code to use the new features of babel version 3.1 extrsfrikns: Macro complete rewritten . . . . . . . . . . . . . . . . . . . . . . . . noextrsfrikns: Macro complete rewritten . . . . . . . . . . . . . . . . . . . . . .

81 81 81 81 81 81 81 84 84 81 83 81 81 82 81 83 83 81 82 82 82 83 83 84 83 83 81 81 84 81 82 81 83 83

RVU

dutch-3.3a

to use it . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Moved code to the beginning of the le and added seletlnguge call . . ptionsduth: added seenme and lsonme . . . . . . . . . . . . . . . . . . . . . dutch-3.3b General: Added warning, if no dutch patterns loaded . . . . . . . . . . . . . . . . . . . ptionsduth: added prefenme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . extrsfrikns: modied handling of dospeils and dsnitize . . . . . noextrsfrikns: modied handling of dospeils and dsnitize . . . . dutch-3.4b General: moved denition of llowhyphens, setdlowdox and svedsfdq to elFom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.5 ptionsduth: hedpgenme should be pgenme . . . . . . . . . . . . . . . . . dutch-3.6 General: Update or LaTeX2e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.6c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . . Removed the use of filedte, moved identication after the loading of babel.def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.7a General: Moved identication code to the top of the le . . . . . . . . . . . . . . . . . Moved the denition of ij and st to glyphsFdef . . . . . . . . . . . . . . . . . . moved the denition of the double quote character at the baseline to glyhpsFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use helredqduth to dene the functions of the active double quote Removed dlqq, ddlqq, drqq, ddrqq and dieresis . . . . . . . . . . . . . . . Rewrote the code with respect to the active double quote character . . . . . . The support macros for the active double quote have been moved to elFdef Use ddot instead of dwerwve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use more general mechanism of delredshorthnd . . . . . . . . . . . . . . . . friknshyphenmins: use duthhyphenmins to store the correct values . . . st: Changed the kerning in the faked ij to match the dc-version of it . . . . . . dutch-3.7b General: Added 44 shorthand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.7c ptionsduth: We need the 4 to be active while dening ptionsduth . . dutch-3.7d A ptionsduth: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . . . dutch-3.7f General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.8a General: Merged in the denitions for `afrikaans' . . . . . . . . . . . . . . . . . . . . . . Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . this needs a more complicated check as `afrikaans' may or may not have its own hyphenation patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . noextrsfrikns: Made all denitions dependant on gurrentyption . . . . dutch-3.8b ptionsduth: Use few4ys instead of fewijs . . . . . . . . . . . . . . . . . . . . . . . dutch-3.8c General: Added the 4 shorthand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

dtrem: renamed dumlut to dtrem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 General: Added svedsfdq macro from germanb and rewrote all quote macros

84 81 82

82 82 83 83

84 82 81 82 81 81 84 84 84 84 81 84 84 84 84 53 84 82 82

81 81 85 82 83 82 84

RVV

dutch-3.8e General: Added a shorthand with the slash character . . . . . . . . . . . . . . . . . . . Forgot to replace `german' by `dutch' when copying denition for 4 . . . . . . Removed empty groups after double quote characters . . . . . . . . . . . . . . . . dtefrikns: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . dteduth: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . dutch-3.8h friknshyphenmins: Now use providehyphenmins to provide a default value ptionsduth: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . dutch-3.8i E: E should use ldllowhyphens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . General: 4G should use ldllowhyphens . . . . . . . . . . . . . . . . . . . . . . . . . . english-2.0a General: Added checking of format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-2.1 General: Reect changes in babel 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-2.1a General: Incorporated Nico's comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-2.1b General: merged englishFsty into this le . . . . . . . . . . . . . . . . . . . . . . . . english-2.1c General: xed typo in denition for american language found by Werenfried Spit (nspit@fys.ruu.nl) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-2.1d General: Fixed some typos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.0 General: Modied for babel 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use dddilet for american . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use dddilet if language undened . . . . . . . . . . . . . . . . . . . . . . . english-3.0a General: Removed bug found by van der Meer . . . . . . . . . . . . . . . . . . . . . . . english-3.0b General: Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ptionsenglish: pgenme should be hedpgenme . . . . . . . . . . . . . . . . Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dtemerin: Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . dteenglish: Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . english-3.0c General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . . english-3.0d General: removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.1 General: Rewrote parts of the code to use the new features of babel version 3.1 english-3.1a ptionsenglish: added seenme and lsonme . . . . . . . . . . . . . . . . . . . english-3.1b ptionsenglish: added prefenme . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.2 ptionsenglish: hedpgenme should be pgenme . . . . . . . . . . . . . . . . english-3.3 A General: Update or L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

85 84 84 83 83 82 82 84 82 85 85

86 86 86 86

86 86 86 87 86 86 87 88 88 89 88 86 86 86 88 88 88 86

RVW

english-3.3c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . . Removed the use of filedte and moved the identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.3d General: Only dene american as a dialect when no separate patterns have been loaded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.3e A ptionsenglish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . english-3.3g General: Allow british as the name of the UK patterns . . . . . . . . . . . . . . . . . Allow USenglish as the name of the american patterns . . . . . . . . . . . . . . . . Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ptionsenglish: Construct control sequence on the y . . . . . . . . . . . . . . . dteenglish: Construct control sequence on the y . . . . . . . . . . . . . . . . . . . noextrsenglish: Construct control sequences on the y . . . . . . . . . . . . . . . english-3.3h General: Moved the denition of ttode right to the beginning. . . . . . . . Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . . english-3.3i dtemerin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . dteenglish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . english-3.3j General: Also allow american english hyphenation patterns to be used for `english' Ensure that ldenglish is alway dened . . . . . . . . . . . . . . . . . . . . . . . . ptionsenglish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . dteenglish: Make sure that the value of tody is correct for both options `american' and `USenglish' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.3k General: Added support for canadian . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86, english-3.3l General: Added missing backslash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . english-3.3m englishhyphenmins: Added default for setting of hyphenmin parameters . . . english-3.3n General: Added support for australian and newzealand . . . . . . . . . . . . . . . 86, dteustrlin: Add australian date . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dteenglish: Added support for `Australian' and `Newzealand' . . . . . . . . . . english-3.3o General: Make sure that british patterns are used if they were loaded . . . . . . . dteenglish: Explicitly choose the UK form of date . . . . . . . . . . . . . . . . . . esperant0-1.4o noextrsespernto: Moved the check for math to babel.def . . . . . . . . . . . . . esperanto-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . . esperanto-1.0b General: Removed use of mketletter . . . . . . . . . . . . . . . . . . . . . . . . . . . esperanto-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . . Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86 86

87 88 86 87 86 88 88 89 86 89 86 89 89 88 88 86 87 88 88 87 87 87 87 89 88 87 88 77 76 76 76 76

RWH

ptionsespernto: Added seenme, lsonme and prefenme . . . . . . 76 esperanto-1.2 General: Included code from esperntFsty . . . . . . . . . . . . . . . . . . . . . . . . . . 76 esperanto-1.3 ptionsespernto: hedpgenme should be pgenme . . . . . . . . . . . . . . 76 Repaired a number of mistakes, indicated by D. Ederveen . . . . . . . . . . . . . 76 dteespernto: Removed the capitals from tody . . . . . . . . . . . . . . . . . . . 77 esperanto-1.4a A General: Updated for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 ptionsespernto: added missing closing brace . . . . . . . . . . . . . . . . . . . . . 76 esperanto-1.4d General: Removed the use of filedte, moved Identication after loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Use dnoptterns for the warning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 esperanto-1.4e General: Moved identication code to the top of the le . . . . . . . . . . . . . . . . . 76 esperanto-1.4f General: Corrected typos (PR1652) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 esperanto-1.4g A ptionsespernto: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 76 esperanto-1.4h General: Added a few shorthands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 esperanto-1.4i General: Moved the denition of ttode right to the beginning. . . . . . . . 76 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . . 76 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 ptionsespernto: Replaced `Proof' by `Pruvo' PR 2207 . . . . . . . . . . . . . . 76 esperanto-1.4j General: xed typo in table caption (funtion instead of function) . . . . . . . . . . 76 esperanto-1.4k dteespernto: Removed Rthe use of edef again . . . . . . . . . . . . . . . . . . . 77 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . 77 esperanto-1.4l General: Added a shorthand denition on system level . . . . . . . . . . . . . . . . . . 77 esperanto-1.4n noextrsespernto: Added a check for math mode to the denition of the shorthand character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 esperanto-1.4p ptionsespernto: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 76 esperanto-1.4q ptionsespernto: Added translation for Glossary . . . . . . . . . . . . . . . . . . 76 esper: Removed the extra level of expansion for more than ve items, as was A done in L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 esperanto-1.4t esper: Added the missing `r' in these macros . . . . . . . . . . . . . . . . . . . . . . . . 78 estonian-1.0b General: corrected typos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 estonian-1.0c A ptionsestonin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 280 estonian-1.0d General: The second argument was missing in the denition of some of the doublequote shorthands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282

RWI

case and space factor codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 estonian-1.0e General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 282 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 279 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 279 estonian-1.0f General: Removed empty groups after double quote and guillemot characters 282 dteestonin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . 280 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 280 estonian-1.0g General: use ldtdone instead of ldnext . . . . . . . . . . . . . . . . . . . . . . 281 estonian-1.0h ptionsestonin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 280 estoninhyphenmins: Now use providehyphenmins to provide a default value 281 nnish-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 258 nnish-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 258 nnish-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 258 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 ptionsfinnish: hedpgenme should be pgenme . . . . . . . . . . . . . . . 258 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 258 nnish-1.1.2 ptionsfinnish: Added translations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 nnish-1.2 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 nnish-1.3c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 258 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 nnish-1.3d General: Removed a few references to elFom . . . . . . . . . . . . . . . . . . . . . 258 nnish-1.3e dtefinnish: Added a`.' after the number of the day . . . . . . . . . . . . . . . . . 259 nnish-1.3f finishhyphenmins: use finnishhyphenmins to store the correct values . . . 260 noextrsfinnish: Added the setting of frenhsping . . . . . . . . . . . . . . 259 Added the setting of more hyphenation parameters, according to PR1027 . 259 nnish-1.3g E: Added change of E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 A ptionsfinnish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 258 noextrsfinnish: Added the active double quote . . . . . . . . . . . . . . . . . . . 259 nnish-1.3h ptionsfinnish: Added nnish word for `Proof' . . . . . . . . . . . . . . . . . . . 258 nnish-1.3i General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 260 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 258 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 258

ptionsestonin: Added translation of `Proof' . . . . . . . . . . . . . . . . . . . . 280 noextrsestonin: Removed the code that changes category, lower case, uper

RWP

nnish-1.3k

characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . nnish-1.3m noextrsfinnish: Added misisng closing brace . . . . . . . . . . . . . . . . . . . . . nnish-1.3n E: llowhyphens should have been ldllowhyphens . . . . . . . . . . . . . . ptionsfinnish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . finishhyphenmins: Now use providehyphenmins to provide a default value noextrsfinnish: Deactive shorthands ouside of Finnish . . . . . . . . . . . . . . nnish-1.3o ptionsfinnish: Provided translation for Glossary . . . . . . . . . . . . . . . . . nnish-1.3p noextrsfinnish: 4a should also use ldllowhyphens . . . . . . . . . . . . . nnish-1.3q General: Small documentation x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

dtefinnish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . 259 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 259 noextrsfinnish: Removed empty groups after double quote and guillemot

260 260

260 258 260 260 258 260 258

galician 4.3 General: FFF is removed and instead dots and dots are changed, by redening ldot, dot and textellipsis or dots . . . . . . . . . . . . . . . . . . . . . . 213 sin, rsin and sinh are set to produce the same as sen, rsen and senh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Added ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 cosec and senh moved from gliinopertors to the main group . . . . . 215 Removed the shorthand for . It existed in medieval galician-portuguese, but that does not seem a reason to be included here. . . . . . . . . . . . . . . . . . . 209 Removed the shorthands "er and "ER, they don't exist in galician. . . . . . . 220 Removed the Spanish et sign. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Set the default to unspedopertors . . . . . . . . . . . . . . . . . . . . . . . . . . 215 Set the default to do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 german-2.6l General: Making germanb behave like german needs some more work besides dening gurrentyption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-1.0a General: Incorporated Nico's comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-1.0b General: xed typo in denition for austrian language found by Werenfried Spit nspitdfysFruuFnl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-1.0c General: Fixed some typos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-1.1 General: When using PostScript fonts with the Adobe fontencoding, the dieresisaccent is located elsewhere, modied code . . . . . . . . . . . . . . . . . . . . . . . . 90 noextrsustrin: Added dieresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 germanb-1.1a General: Modied the documentation somewhat . . . . . . . . . . . . . . . . . . . . . . 90 germanb-2.0 General: Modied for babel 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Now use dddilet for austrian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Now use dddilet if language undened . . . . . . . . . . . . . . . . . . . . . . . 91 germanb-2.0a General: Removed some problems in change log . . . . . . . . . . . . . . . . . . . . . . 90

RWQ

germanb-2.0b

germanb-2.1 General: Removed bug found by van der Meer . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-2.2 General: Removed global assignments, brought uptodate with germnFtex v2.3d 90 ptionsustrin: pgenme should be hedpgenme . . . . . . . . . . . . . . . 91 Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 extrsustrin: Save all redened macros . . . . . . . . . . . . . . . . . . . . . . . . . 92 noextrsustrin: Try to restore everything to its former state . . . . . . . . . . 92 germanb-2.2a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-2.2d General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 germanb-2.3 General: Rewritten parts of the code to use the new features of babel version 3.1 90 germanb-2.3e General: Added svedsfdq macro and rewrote all quote macros to use it . . . 93 Added warning, if no german patterns loaded . . . . . . . . . . . . . . . . . . . . . . 91 Brought up-to-date with germnFtex v2.3e (plus some bug xes) [br] . . . . . 90 ptionsustrin: Added prefenme, seenme and lsonme . . . . . . . 91 dtegermn: Added monthdgermn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 germanb-2.3h General: moved denition of llowhyphens, setdlowdox and svedsfdq to elFom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 germanb-2.4 ptionsustrin: hedpgenme should be pgenme . . . . . . . . . . . . . . . 91 germanb-2.5 A General: Update or L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-2.5c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . . 91 Removed the use of filedte and moved the identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 germanb-2.6a General: umlutlow and umluthigh moved to glyphsFdtx, as well as newumlut (now lowerdumlut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Moved all quotation characters to glyphsFdtx . . . . . . . . . . . . . . . . . . . . . . 93 Moved the identication to the top of the le . . . . . . . . . . . . . . . . . . . . . . 90 Rewrote the code that handles the active double quote character . . . . . . . . 90 Use ddot instead of dwerwve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 noextrsustrin: All the code to handle the active double quote has been moved to elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Removeed Q as it is no longer in germnFldf . . . . . . . . . . . . . . . . . . . . . . 92 use germnhyphenmins to store the correct values . . . . . . . . . . . . . . . . . . . 92 germanb-2.6b A ptionsustrin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 91 germanb-2.6c General: added the llowhyphens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Moved germnddqddis to babel.def, calling it lddis . . . . . . . . . . . . . 93 noextrsustrin: Use decimal number instead of hat-notation as the hat may be activated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 germanb-2.6d General: Moved the denition of ttode right to the beginning. . . . . . . . 90

extrsustrin: added some comment chars to prevent white space . . . . . . 92 noextrsustrin: added some comment chars to prevent white space . . . . . 92

RWR

Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . . 91 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ptionsustrin: Construct control sequence on the y . . . . . . . . . . . . . . 91 noextrsustrin: Construct control sequence extrsgermn or extrsustrin on the y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 germanb-2.6f General: Copied the coding for 4f from german.dtx version 2.5d . . . . . . . . . . 94 use instead of , removed braces after ss . . . . . . . . . . . . . . . . . . . . . 93 k: Now use shorthndon and shorthndoff . . . . . . . . . . . . . . . . . . . . . . 94 dteustrin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . 92 dtegermn: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . . 92 germanb-2.6i noextrsustrin: Deactivate shorthands ouside of German . . . . . . . . . . . . 92 germanb-2.6j ptionsustrin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 91 noextrsustrin: Now use providehyphenmins to provide a default value 92 germanb-2.6k noextrsustrin: Turn frenchspacing on, as in germnFsty . . . . . . . . . . . . 93 germanb-2.6m General: Correted a typo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 greek-1.0b General: Moved the denition of ttode right to the beginning . . . . . . . 109 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 110 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 textgreek: Added a level of braces to keep encoding change local . . . . . . . . 111 greek-1.0c greekdtilde: Added command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 greek-1.1 qrtody: Added macro qrtody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 greek-1.1a dtegreek: Fixed typo, yktwr9iou instead of yktor9iou . . . . . . . . . . . . 112 greekdelph: removed two superuous @'s which made dlph undened . . 114 greek-1.1b noextrsgreek: Added setting of uodes (after kdgreekFsty) . . . . . . . . . 116 Added shorthand for hrPSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Made tilde expand to a tilde with tode IP . . . . . . . . . . . . . . . . . . . . 117 greek-1.1c General: Added a couple of symbols, needed for greeknumerl . . . . . . . . . . 117 noextrsgreek: xed two typos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 greek-1.1d dtegreek: Macro grdmonth now produces the name of the month . . . . . . 112 greek-1.1e General: Added caption name for proof . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 Most symbols are removed and are now dened in package grsymb . . . . . . 117 grdmonth: Macro added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 noextrsgreek: Added lowercase code for v . . . . . . . . . . . . . . . . . . . . . . . 116 Added uppercase code for special letter v. Uppercase code for accents is now Wf, instead of ff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

RWS

Shorthand is changed. Active character is now hrISW . . . . . . . . . . . . . 116 greek-1.2 General: Added caption names for polutonikogreek . . . . . . . . . . . . . . . . . 112 Classical Greek is now a dialect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 grddgreek: Added macro dtepolutonikogreek . . . . . . . . . . . . . . . . . . . 112 Added macro grdldmonth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 noextrsgreek: Added lowercase codes for modern greek . . . . . . . . . . . . 116 Added uppercase codes for modern Greek. The old codes are now for Polutoniko Greek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Denitions for modern Greek are now the denitions of Polutoniko Greek 116 greek-1.2a General: lename lgrenFdef now lowercase . . . . . . . . . . . . . . . . . . . . . . . . 111 dtegreek: Use edef to dene tody . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 noextrsgreek: Need shorthand to exist for monotoniko Greek, not polutoniko Greek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 greek-1.2b General: Classical Greek is now called Polutoniko Greek. The previous name was at least misleading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 dtegreek: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 grdnumdiii: No longer use in the expansion of the grdnumdx macros as they ned to be expandable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 greek-1.2c General: Package grsymb has been eliminated because the CB fonts v2.0 do not inlcude certain symbols and so the remaining symbol denitions have been moved here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 This version conforms to version 2.0 of the CB fonts and consequently we added a few new symbol-producing commands . . . . . . . . . . . . . . . . . . . . . . . . . 109 greek-1.2e greekdomn: Moved redenition of dromn back to the language specic le 114 greek-1.2f ltxdmp: Now switch the denition of 8 from extrsgreek . . . . . . . . . . . 115 greek-1.3a General: polutoniko is now an attribute to Greek, no longer a `dialect' . . . . . 109 grddgreek: removed macro dtepolutonikogreek . . . . . . . . . . . . . . . . . 112 greek-1.3b greeknumerl: Added expndfter and numer (PR3000) in order to make a counter an acceptable argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 greek-1.3c ltxdmp: Added a missing opening brace . . . . . . . . . . . . . . . . . . . . . . . . . . 115 greek-1.3d General: Fixed typo, l9epe ep9ish instead of l9pe ep9ish . . . . . . 111, 112 greekdomn: dromn and domn need to be added to extrspolutonikogreek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 greek-1.3e greekdomn: dromn and domn need not be in extrspolutonikogreek when they are already in extrsgreek . . . . . . . . . . . . . . . . . . . . . . . . . 114 noextrsgreek: extrsgreek and extrspolutonikogreek should be complementary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 greek-1.3f General: Added some code to make older documents work . . . . . . . . . . . . . . 110 greek-1.3g General: noextrspolutonikogreek was missing . . . . . . . . . . . . . . . . . . . . 110 greek-1.3h ptionsgreek: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

RWT

greek-1.3i

greekhyphenmins: Now use providehyphenmins to provide a default value

111

correctly in headers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 greek-1.3j noextrsgreek: Because other languages might make the caret active, we can't use the double caret notation here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 Ues the tilde as an alias for character 159 . . . . . . . . . . . . . . . . . . . . . . . . 116 greek-1.3k greekdtilde: Make sure the character `' is not active during the denition of greekdtilde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 textgreek: Added levevmode as was done with ltintext . . . . . . . . . . 111 greek-1.3l A General: Commented these lines out as this change has made it into L TEX itself. 117 heb209 1.0a General: Initial version. Provides hebrew_newcode, hebrew_oldcode and heA brew_p style les for L TEX 2.09 (by Boris Lavva) . . . . . . . . . . . . . . . . . 444 hebfdd-1.0a General: Initial version. Supports only 7-bit LHE font encoding and all available Hebrew TEX fonts (by Boris Lavva) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 hebfdd-1.0b General: xed lhecmr.fd to use oldjaf10 for a slanted font available Hebrew TEX fonts (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 hebfdd-1.1a General: Adding 8-bit HE8 fonts. Note that most of them cannot be distributed A with hebL TEX (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 hebfdd-1.2a General: Adding congurations for the Culmus fonts, currently 0.90 (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427 hebfdd-1.2b General: Reinstated the test whether LHE or HE8 is to be used . . . . . . . . . . 427 hebinp 1.0a General: Initial version. Provides 8859-8, cp862, cp1255, and old 7-bit input encodings (by Boris Lavva) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 hebinp 1.1 General: Renamed hebrew letters: lef to helef etc. (by Tzafrir Cohen) 419 hebinp 1.1a General: Renamed CP1255 nikud pth to hepth et. Added the macro hislexikud - may not be a good idea (by Tzafrir Cohen) . . . . . . . . . . 419 hebrew-1.2c General: Typo's in the docstrip guards made HE8nachlieli.fd unusable . . . . . 427 hebrew-2.0b ptionsherew: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . 379 hebrew-2.3h herewenoding: Make LHE the default encoding for compatibility reasons 379 hebrew 0.1 A General: Preliminary L TEX Hebrew option (by Sergio Fogel) . . . . . . . . . . . . 377 hebrew 0.2 General: Corrections and additions (by Rama Porrat) . . . . . . . . . . . . . . . . . 377 hebrew 0.6 General: Additions (by Yael Dubinsky) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

ptionsgreek: The nal sigma in all names appears as `s' instead of `c'. . . 111 noextrsgreek: uc code of `v' is switched to V so that mixed text appears

RWU

hebrew 1.2 General: Bilingual tables, penalties, documentation and more changes (by Yaniv Bargury) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.30 General: Font selection, various (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.31 General: Bug xes (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.32 General: Made font-change command for numbers `protet'ed (by Alon Ziv) 377 hebrew 1.33 General: Made refstepounter work using dltor (by Alon Ziv) . . . . . . . . 377 hebrew 1.34 General: Moved font loading to another le. Added minse. Made all text A strings be produced by control codes (similar to L TEX2.09 Mar '92). Fixed noindent (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.35 General: Moved the texts to a le selected by the current encoding (by Alon Ziv) 377 hebrew 1.36 General: Use TEX tricks to redene the without keeping old denitions. Use only deng for direction/font change (removed dltor). Switched from use of minse to code taken from babel system (by Alon Ziv) . . . . . . . . 377 hebrew 1.37 General: Use dddround in dening font size commands. Small bug xes (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.38 General: everypr changed so that noindent works unmodied (by Alon Ziv, thanks to Chris Rowley) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.39 General: Redened primitive sectioning commands. Changed inlude so it nds Fh, Fxet, and Fltx les (no extension needed). Reinstated use of dltor (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.40 General: Added the drkets hack (by Alon Ziv) . . . . . . . . . . . . . . . . . . 377 hebrew 1.41 General: Reworked towards using NFSS2. Changed some macro names to be more logical: renamed dltor to dnumer, deng to dltin, and (in herewFldf) dhe to dherew (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 1.42 General: Made list environments work better. Fixed thebibliography environment (by Alon Ziv) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.0a A General: Completely rewritten for L TEX 2 and babel support. Various input and font encodings (with NFSS2) are supported too. The original herewFsty is divided to a number of packages and denition les for better readability and extensibility. Added some user- and code-level documentation inside the A Fdtx and Ffdd les, and L TEX-driven installation with herewFins (by Boris Lavva) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.0b herewhyphenmins: Now use providehyphenmins to provide a default value 379 hebrew 2.1 General: corrections from Sivan Toledo: sender name in letter, and section name in headings. (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377

RWV

hebrew 2.2 General: renamed hebrew letters to heb* (e.g.: alef renamed to hebalef) (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.3 General: added several diflssloded{slides} to allow the use of the slides class. (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.3a General: The documentation should now be built ne (broken since at least 2.1, and probably 2.0) (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.3b General: minor clean-ups. The documentation builds now with no warnings. Also removed from the caption macro (added in 2.1) Added internal densuredv and densured (Is there a real need for them? Maybe should they be exposed?) (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.3c General: a temporary x to the gim macro. Should be replaced by stu from hebcal. (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.3d General: Initial support for the prosper class. Added rinorl . (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 hebrew 2.3e General: Removing hebtech from this distriution (not relevant to babel), added reltexinoding. some docs cleanup (by Tzafrir Cohen) . . . . . . . . . . . 377 hebrew 2.3f General: redened list instead of redening every environment that uses it. some pscolor handling, removed HeblatexEncoding (don't use 2.3e) (by Tzafrir Cohen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 icelandic-1.1 General: Added denitions for old icelandic. . . . . . . . . . . . . . . . . . . . . . . . . 242 icelandic-1.1a General: Added denitions for formatting numbers in Icelandic and some extra utilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 icelandic-1.1b General: Added references to various publications used . . . . . . . . . . . . . . . . 243 icelandic-1.1c General: Removed code already present in elFdef . . . . . . . . . . . . . . . . . 238 dteielndi: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . 241 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 241 icelandic-1.1e noextrsielndi: Deactivate shorthands ouside of Icelandic . . . . . . . . . . 240 icelandic-1.1f ptionsielndi: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 240 noextrsielndi: Now use providehyphenmins to provide a default value 240 icelandic-1.1g ptionsielndi: Added translation for Glossary . . . . . . . . . . . . . . . . . 240 Only use 7-bit ASCII characters in order to keep the texts input encoding independant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 irish-1.0b General: Corrected typo (PR1652) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 irish-1.0c A ptionsirish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . . 105 irish-1.0e General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 106

RWW

Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 105 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 105 irish-1.0f ptionsirish: Added missing translations provided in PR 2719 . . . . . . . . 105 dteirish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 106 irishhyphenmins: Added denition of hyphenmins . . . . . . . . . . . . . . . . . . 105 irish-1.0h ptionsirish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 irishhyphenmins: Now use providehyphenmins to provide a default value 105 italian-0.99 General: First version, from english.doc . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.0 General: Modied for babel 3.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Now use dddilet if language undened . . . . . . . . . . . . . . . . . . . . . . 153 italian-1.0a General: removed typo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.0b General: Removed bug found by van der Meer . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.0c ptionsitlin: pgenme should be hedpgenme . . . . . . . . . . . . . . . 153 Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 dteitlin: Removed glol denitions . . . . . . . . . . . . . . . . . . . . . . . . 154 italian-1.0d ptionsitlin: `contiene' substitued by `Allegati' as suggested by Marco Bozzo (fyydgixw). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 italian-1.0e General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.0h General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 153 italian-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 153 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 ptionsitlin: hedpgenme should be pgenme . . . . . . . . . . . . . . . 153 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 153 italian-1.2 General: Update for LaTeXe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.2b ptionsitlin: Changed some of the words following suggestions from Claudio Beccari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 itlinhyphenmins: Added setting of left and righthyphenmin according to Claudio Beccari's suggestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 noextrsitlin: Added setting of club- and widowpenalty . . . . . . . . . . . . 154 Added setting of nalhyphendemerits . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 italian-1.2e General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 153 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.2f General: Updated for babel 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.2g A ptionsitlin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 153

SHH

italian-1.2h

italian-1.2i General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 161 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 153 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 152 italian-1.2j General: Added braces around second arg of vdfsnit . . . . . . . . . . . . . . . . 153 italian-1.2l General: Added unit, p, and ped macros . . . . . . . . . . . . . . . . . . . . . . . 152 Added useful macros for fullling ISO 31/XI regulations . . . . . . . . . . . . . 157 noextrsitlin: Changed example begl'italiani (obsolete spelling) with another, nell'altezza, that behaves the same way . . . . . . . . . . . . . . . . . . . 154 italian-1.2m General: Added support for etymological hyphenation . . . . . . . . . . . . . . . . . 152 Support for etymological hyphenation . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 itlinhyphenmins: Now use providehyphenmins to provide a default value 154 italian-1.2n General: Added several commands for the caporali double quotes and for simplifying the accented vowel input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Completely modied etymological hyphenation facility . . . . . . . . . . . . . . . 152 Completely new etymological hyphenation facility . . . . . . . . . . . . . . . . . . 155 italian-1.2o General: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.2p General: Removed redenition of ddd since its functionality has been introduced into the kernel of LaTeX 2001/06/01 . . . . . . . . . . . . . . . . . . 152, 158 italian-1.2q General: Added test for avoiding conict with package units.sty; adjusted caporali functionality, since the previous one did not work with the standard (although obsolete) slides class le . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Redened the caporali machinery so as to avoid incompatibilities with the slides class, as there are no Cyrillic slides fonts as there are for Latins script 158 ped: Added testing for avoiding conicts with the units.sty package . . . . . . 157 italian-1.2r itdwm: Added norek to itddwm and corrected itdnext . . . . . . . . . . 156 italian-1.2s General: Corrected email of CB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 italian-1.2t noextrsitlin: Added dlupenlty to the italian specic settings, otherwise any sectioning command restores it to the default value valid for english and most other languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 latin-0.99 General: Added shortcuts for breve, macron, and etymological hyphenation (CB) First version, from italian.dtx (CB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . latin-1.2 General: Added suggestions from Krzysztof Konrad elechowski (CB) . . . . . latin-2.0 General: Completely new etymological hyphenation (CB) . . . . . . . . . . . . . . latin-2.0a General: Revised by JB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

ptionsitlin: Added translation of `Proof' . . . . . . . . . . . . . . . . . . . . . noextrsitlin: Now give the apostrophe a lowercase code . . . . . . . . . . .

153 154

163 163 163 163 163

SHI

ltinhyphenmins: Now use providehyphenmins to provide a default value 166 latin-2.0b General: Simplied shortcuts for etymological hyphenation; modied breve and macro shortcuts; language attribute medieval declared . . . . . . . . . . . . . . 163 latin-2.0c General: Restored caret and equals sign category codes before exiting . . . . . 163 latin-2.0d General: Restored caret and equals sign category codes before exiting . . . . . 163 latin-2.0e General: Introduced the language attribute `withprosodicmarks'; modied use of breve and macron shortcuts in order to avoid possible conicts with other packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 latin-2.0f dteltin: Added a comment character to prevent unwanted space . . . . . . 165 latin-2.0g General: Added a norek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170 vtinwrksyff: Added two commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 rosodiwrks: changed llowhyphens to ldllowhyphens . . . . . . . . . 168 latin-2.0h vtinwrksyff: Added missing backslash . . . . . . . . . . . . . . . . . . . . . . . . . 169 Removed the setting of vtinwrksyff from extrsltin . . . . . . . . . . 169 latin-2.0i General: Corrected the dlupenlty problem . . . . . . . . . . . . . . . . . . . . . 163 latin-2.0j General: Added a missing comment char and a missing closing brace . . . . . . 163 latin-2.0k vtinwrksyff: Set the vtinwrksFFF commands equal to the rosodiwrksFF commands for compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 rosodiwrks: Restore category codes rather then return them to their TEX default values. And do that outside of the command denition . . . . . . . . 169 Use tive instead of 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 rosodiwrksyff: Save current category codes of equals sign and caret in order to restore them later . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 lsorbian-0.1 General: First version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368 lsorbian-1.0b A ptionslsorin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 368 lsorbian-1.0d General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 369 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 368 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 368 lsorbian-1.0e newdtelsorin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . 369 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 369 lsorbian-1.0f ptionslsorin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 368 lsorbian-1.0g General: Make this work for more than one option name . . . . . . . . . . . . . . . 369 Make this work for more than one option name. . . . . . . . . . . . . . . . . . . . 369 This le can be loaded under more than one name. . . . . . . . . . . . . . . . . . 368 ptionslsorin: Make this work for more than one option name. . . . . . . 368 newdtelsorin: Make this work for more than one option name. . . . . . . . 369 olddtelsorin: Make this work for more than one option name. . . . . . . . 369

SHP

magyar-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 261 magyar-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 262 magyar-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 262 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 ptionsmgyr: hedpgenme should be pgenme . . . . . . . . . . . . . . . . 263 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 263 magyar-1.1c ptionsmgyr: Added translations, xed typos . . . . . . . . . . . . . . . . . . . . 263 ondtemgyr: The date number should not be followed by a dot. . . . . . . . 264 magyar-1.1d General: Further spelling corrections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 dtemgyr: Rewritten to produce the correct date format . . . . . . . . . . . . . 263 ondtemgyr: Renamed from dtemgyr; nolonger redenes tody. . . . 264 magyar-1.1e General: Still more spelling corrections . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 magyar-1.2 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 magyar-1.3c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 262 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 magyar-1.3e A ptionsmgyr: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . 263 magyar-1.3f ptionsmgyr: translated Proof and replaced some translations . . . . . . . 263 magyar-1.3g General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 magyar-1.3h General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 278 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 262 magyar-1.4a General: order inverting in headings/titles/captions; denite article handling; active char for special hyphenation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 ptionsmgyr: the initial letter of fejezet, tblzat, rsz, lsd changed to lowercase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 dtemgyr: Use numerdy instead of ifse construct . . . . . . . . . . . . 263 magyar-1.4b ptionsmgyr: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . 263 magyar-1.4c General: Make sure that the grave accent has catcode 12 before it is made tive 277 magyar-1.4d General: Corrected checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 The else clause got outside of the if statement, breaking the Hungarian support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262 magyar-1.4f hundtempdef: Added defsfedtivesflse as a x for PR3426 . . . . . . 272 magyar-1.4g General: Further change to make it work when neither ldmgyr nor ldhugrin are dened . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

SHQ

magyar-1.4h magyar-1.4i

ptionsmgyr: Inserted translation for Glossary . . . . . . . . . . . . . . . . . . .

263

fnumdtle: Use norekspe instead of tilde . . . . . . . . . . . . . . . . . . . . 264 magyar-1.4j General: Added missing comment characters in the redenitions of psdhedings to prevent spurious spaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
ngermab-v2.6n

ptionsnustrin: Corrected typo ptionnsgermn . . . . . . . . . . . . . . . . 95 ngermanb-2.6f General: Renamed from germnFldf; language names changed from germn and ustrin to ngermn and nustrin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 ngermanb-2.6j noextrsnustrin: Deactivate shorthands ouside of German . . . . . . . . . . . 96 ngermanb-2.6k ptionsnustrin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 95 noextrsnustrin: Now use providehyphenmins to provide a default value 96 ngermanb-2.6m noextrsnustrin: Turn frenchspacing on, as in germnFsty . . . . . . . . . . . 97 norks-2.0h ptionsnynorsk: Changed nme and lsonme . . . . . . . . . . . . . . . . . 248 norsk-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 247 norsk-1.0c General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 247 norsk-1.1a General: Added a warning when no hyphenation patterns were loaded. . . . . . 247 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 ptionsnorsk: Added seenme, lsonme and prefenme . . . . . . . . . 248 ptionsnynorsk: Added seenme, lsonme and prefenme . . . . . . . 248 norsk-1.1b ptionsnorsk: hedpgenme should be pgenme . . . . . . . . . . . . . . . . 248 ptionsnynorsk: hedpgenme should be pgenme . . . . . . . . . . . . . . . 248 norsk-1.1c General: Added a couple of translations (from Per Norman Oma, TeX@itk.unit.no) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 norsk-1.2a A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 norsk-1.2d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 247 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 norsk-1.2f A ptionsnorsk: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . . 248 norskhyphenmins: Added setting of hyphenmin parameters . . . . . . . . . . . . 247 norsk-1.2g ptionsnorsk: Replaced `Proof' by its translation . . . . . . . . . . . . . . . . . . 248 ptionsnynorsk: Replaced `Proof' by its translation . . . . . . . . . . . . . . . . 248 norsk-1.2h General: Moved the denition of ttode right to the beginning. . . . . . . 247 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 247

SHR

Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 norsk-1.2i dtenorsk: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 249 norsk-2.0a General: Describe the use of double quote as active character . . . . . . . . . . . . 247 Made double quote character active . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 norskhyphenmins: Changed setting of hyphenmin parameters to 2 2 . . . . . . 247 norsk-2.0b General: added the french double quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Copied the coding for 4f from germanb.dtx version 2.6g . . . . . . . . . . . . . 250 norsk-2.0c General: Deactivate shorthands ouside of Norsk . . . . . . . . . . . . . . . . . . . . . 249 norsk-2.0d General: Shorthands are the same for both spelling variants, no need to use gurrentyption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Use ldllowhyphens in 4E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 norsk-2.0e ptionsnorsk: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . 248 ptionsnynorsk: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 248 norskhyphenmins: Now use providehyphenmins to provide a default value 247 norsk-2.0g ptionsnorsk: Replaced `Glossary' by its translation . . . . . . . . . . . . . . . . 248 ptionsnynorsk: Replaced `Glossary' by its translation . . . . . . . . . . . . . . 248

textpl: Initially execute `textpl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 polish-1.1c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 301 Removed the use of filedte and moved identication after the loading of babel.def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 polish-1.1d General: The dqmacro for C used 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 polish-1.2a A General: Don't modify rm and friends for L TEX 2 , take seletfont instead 304 polish-1.2b A ptionspolish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . 301 polish-1.2d General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 306 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 301 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 301 io: Use the constructed version of the characters only in OT1; use proper characters in T1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 sk: sk is meant to be used in horizontal mode; so leave vertical mode if necessary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 so: This macro is meant to be used in horizontal mode; so leave vertical mode if necessary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 sp: sp is meant to be used in horizontal mode; so leave vertical mode if necessary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 polish-1.2e General: Removed empty groups after double quote and guillemot characters 305

polish-1.0a

SHS

polish-1.2f

ptionspolish: Added translation for Proof and changed translation of Contents

polish-1.2h polish-1.2i

dtepolish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . mdqoff: Now use shorthndon and shorthndoff . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 302 302 306 302

noextrspolish: Deactivate shorthands ouside of Polish . . . . . . . . . . . . . .

in the output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 polish-1.2j polishzx: Added support for two notationstyles for kropka and accented z . 305 polish-1.2k polishzx: Fixed a typo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 polish-1.2l General: Changed closing quote . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 portuges-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 171 portuges-1.0b General: Removed use of cs@ifundened . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 portuges-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 171 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 ptionsportuges: hedpgenme should be pgenme . . . . . . . . . . . . . . 172 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 172 portuges-1.2 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 portuges-1.2d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 171 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 portuges-1.2e ptionsportuges: Added a few missing translations . . . . . . . . . . . . . . . . . 172 portuges-1.2g General: Enhanced support for brasilian . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 ptionsrzil: The captions for brasilian and portuguese are dierent now 173 extrsportuges: Added the denition of some 4 shorthands . . . . . . . . . . . 174 ord: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ord: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 portugeshyphenmins: Added setting of hyphenmin values . . . . . . . . . . . . . 174 r: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 ro: Added macro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 portuges-1.2h A ptionsportuges: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 172 portuges-1.2i A ptionsrzil: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . 173 ptionsportuges: Substituted `Prova' for `Proof' . . . . . . . . . . . . . . . . . . 172 portuges-1.2j General: Moved the denition of ttode right to the beginning. . . . . . . 171 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 171 ow use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

ptionspolish: inme and refnme were swapped . . . . . . . . . . . . . . 301 Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 dtepolish: A missing comment character caused an unwanted space character

SHT

Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 portuges-1.2k dterzil: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 173 dteportuges: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . 173 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 173 noextrsportuges: Removed empty groups after guillemot characters . . . . 174 portuges-1.2m ptionsrzil: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . 173 ptionsportuges: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 173 noextrsportuges: Deactivate shorthands ouside of Basque . . . . . . . . . . . . 174 portugeshyphenmins: Now use providehyphenmins to provide a default value 174 portuges-1.2n dterzil: Removed spurious space after dezembro . . . . . . . . . . . . . . . . . 173 dteportuges: Removed spurious space after Dezembro . . . . . . . . . . . . . . . 173 portuges-1.2o portugeshyphenmins: Set righthyphenmin to 3 if not provided by the pattern le. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 portuges-1.2p ptionsportuges: Substituted `Glossrio' for `Glossary' . . . . . . . . . . . . . . 173 portuges-1.2q ptionsrzil: Substituted `Glossrio' for `Glossary' . . . . . . . . . . . . . . . . 173 romanian-1.0a General: Renamed babel.sty in babel.com . . . . . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 233 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 ptionsromnin: hedpgenme should be pgenme . . . . . . . . . . . . . . 233 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 233 Translation errors found by Robert Juhasz xed . . . . . . . . . . . . . . . . . . . 233 dteromnin: Translation errors found by Robert Juhasz xed . . . . . . . . . 233 romanian-1.2 General: Update for LaTeX2e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.2d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 233 Removed the use of filedte and moved identication after the loading of babel.def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.2e General: Updated for babel release 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.2f A ptionsromnin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 233 romanian-1.2g ptionsromnin: Added translation of `Proof' . . . . . . . . . . . . . . . . . . . . 233 romanian-1.2h General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 234 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 233 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 233 romanian-1.2i dteromnin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . 233

SHU

Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.2k ptionsromnin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 233 romanian-1.2l ptionsromnin: Added translation for Glossary . . . . . . . . . . . . . . . . . . 233 russianb-1.1a extrsrussin: Use ddot instead of dwerwve . . . . . . . . . . . . . . . . . 337 use russinhyphenmins to store the correct values . . . . . . . . . . . . . . . . . 339 Use the new mechanism for dealing with active characters . . . . . . . . . . . . 335 russindshdcd: Use new hefineetivexoerg . . . . . . . . . . . . . . . . . . . . . 336 Use the more general mechanism of delredshorthnd . . . . . . . . . . . . . 336 systemdshdYd: Added system level shorthands . . . . . . . . . . . . . . . . . . . . . . 337 russianb-1.1b extrsrussin: Added switch to vx encoding . . . . . . . . . . . . . . . . . . . . . 334 russindshdcd: Updated to reect the latest french denitions . . . . . . . . . 336 vertimdfont: Added changing of vertimdfont . . . . . . . . . . . . . . . . . 334 russianb-1.1c General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328 russianb-1.1d General: Moved the denition of ttode right to the beginning. . . . . . . 328 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 329 russianb-1.1e General: Added closing brace to second argument of vdfsnit . . . . . . . . . . . 329 russianb-1.1f General: Added denitions of Cyrillic emdash stu and thinspace . . . . . . . . . 328 extrsrussin: Add commands for switch on/o doublequote activeness. Borrowed from german. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Add macro for thinspace between initials . . . . . . . . . . . . . . . . . . . . . . . . . 339 Added a hook to insert space or not before `double punctuation' (from frenchb). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335, 336 Rearranging of cyrillic emdash stu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 phoff: One more chance to avoid spaces before double punctuation . . . . . 337 russindshdcd: changed to kern.1em (space bit thinner) . . . . . . . . . . . . . . 336 Added a hook to insert space or not before `double punctuation' (from frenchb). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 russianb-1.1k General: replaced all penltydw with norek . . . . . . . . . . . . . . . . . . . . 328 russianb-1.1l General: Made not using inputenc a warning instead of an error . . . . . . . . . . 332 russianb-1.1m ptionsrussin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 334 extrsrussin: Now use providehyphenmins to provide a default value . . 339 russianb-1.1n General: As this code generates a textfont 7 error it is commented out for now. 331 russianb-1.1o ltintext: ltintext is already dened by the core of babel . . . . . . . . . . 332 textltin: textltin already dened by the core of babel . . . . . . . . . . . . 332 russianb-1.1q General: Change denition of th only for this language . . . . . . . . . . . . . . . 340 russianb-1.1r extrsrussin: Removed the commanet character before the next code line, see R3669 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

SHV

samin-1.0b

ptionssmin: Provided the translation for glossary . . . . . . . . . . . . . . . . . 256 scottish-1.0b General: Corrected typos (PR1652) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 scottish-1.0c A ptionssottish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 107 scottish-1.0d General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 108 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 107 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 107 scottish-1.0e dtesottish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . 107 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 107 scottish-1.0g ptionssottish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 107 serbian-1.0b General: Added suggestions for shorthands and so on from Jankovic Slobodan 307 noextrsserin: Introduced the active 4 . . . . . . . . . . . . . . . . . . . . . . . . . 308 serbian-1.0c noextrsserin: Deactivate shorthands ouside of Serbian . . . . . . . . . . . . 308 serbian-1.0d ptionsserin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 307 noextrsserin: Changed denition of 4E to be the same as for other languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 slovak-1.0 General: First version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 slovak-1.2 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 slovak-1.2b General: Added setting of left- and righthyphenmin . . . . . . . . . . . . . . . . . . . 314 slovak-1.2d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 312 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 slovak-1.2e General: Now use slovkhyphenmins . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 A noextrsslovk: Use L TEX's v accent command . . . . . . . . . . . . . . . . . . . 314 slovak-1.2g A ptionsslovk: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . . 313 slovak-1.2i General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 324 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 311 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 310 slovak-1.2j dteslovk: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 313 slovak-1.2k ptionsslovk: Repaired a few spelling mistakes . . . . . . . . . . . . . . . . . . . 313 dteslovk: Repaired a spelling mistake . . . . . . . . . . . . . . . . . . . . . . . . . . 313

samin-1.0c

ptionssmin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . sminhyphenmins: use providehyphenmins . . . . . . . . . . . . . . . . . . . . . . .

256 256

SHW

slovak-1.2l General: Now use providehyphenmins to provide a default value . . . . . . . . 314 ptionsslovk: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . 313 slovak-1.3a General: Added contributed shorthand denitions . . . . . . . . . . . . . . . . . . . . 310 noextrsslovk: Make three characters available for shorthands . . . . . . . . 314 slovak-3.0 General: Changed default righthyphenmin to 3 characters. . . . . . . . . . . . . 314 A Implemented the functionality of CSL TEX's slovak.sty. The version number was bumped to 3.0 to minimize confusion by being higher than the last version of A CSL TEX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 ptionsslovk: Updated some translations. Former translations were: `vod' for prefenme, `Referencie' for refnme, `Index' for indexnme, `Obrzok' for figurenme, `Prlohy' for enlnme, `CC' for nme, `Komu' for hedtonme, `Strana' for pgenme . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 noextrsslovk: now use ldfrenhsping and ldnonfrenhsping 313 slovak-3.1 sdemdsh: ensure correct catcode for the saved hyphen . . . . . . . . . . . . . . . 318 sdsplitttr: attribute added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 noextrsslovk: move lngugeshorthnds here, so that the language group is always initialized correctly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 splithyphens: activate with split hyphens and deactivate with standard hyphens, not vice versa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 slovene-1.0a General: Renamed babel.sty in babel.com . . . . . . . . . . . . . . . . . . . . . . . . . . 325 slovene-1.0b General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 325 slovene-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 325 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 ptionsslovene: hedpgenme should be pgenme . . . . . . . . . . . . . . . 325 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 325 slovene-1.2 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 slovene-1.2b ptionsslovene: Added extra translations from Josef Leydold, leydolddsttrixPFwuEwienFFt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 slovene-1.2d General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 325 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 slovene-1.2f noextrsslovene: Introduced the active 4 . . . . . . . . . . . . . . . . . . . . . . . . . 326 slovene-1.2g A ptionsslovene: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 325 slovene-1.2h ptionsslovene: Added translation of `Proof' . . . . . . . . . . . . . . . . . . . . . 325 slovene-1.2i General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 327 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 325 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 325 Replaced `Slovanian' with correct `Slovenian' . . . . . . . . . . . . . . . . . . . . . . 325 noextrsslovene: removed shorthand for 4v as it is not needed for slovenian 326

SIH

slovene-1.2j

characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 slovene-1.2l noextrsslovene: Deactivate shorthands ouside of Slovene . . . . . . . . . . . . 326 slovene-1.2m ptionsslovene: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 325 spanish-5.0e General: Two acutes in a row should be turned into a double right quote . . . 192 spanish 5.0a General: Reimplemented in full, which some parts rewritten from scratch. Added the es- mechanism and the mexico option. Many bug xes. . . . . . . . . . . . 180 spanish 5.0d General: Fixed two bugs: misplaced subscripts with lim and the like; problem with romn and hyperref. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 swedish-1.0a General: Renamed elFsty in elFom . . . . . . . . . . . . . . . . . . . . . . . . 252 swedish-1.0b ptionsswedish: added denition for enlnme . . . . . . . . . . . . . . . . . . . 253 made denition of refnme pluralis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 removed type in denition of ontentsnme . . . . . . . . . . . . . . . . . . . . . . 253 swedish-1.0c General: Removed use of difundefined . . . . . . . . . . . . . . . . . . . . . . . . . . 252 swedish-1.1 General: Added a warning when no hyphenation patterns were loaded. . . . . . 252 Brought up-to-date with babel 3.2a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 ptionsswedish: hedpgenme should be pgenme . . . . . . . . . . . . . . . 253 Added seenme, lsonme and prefenme . . . . . . . . . . . . . . . . . . . . 253 swedish-1.1b ptionsswedish: Added translations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 swedish-1.2 General: Update for LaTeX2e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 swedish-1.3d General: Now use dnoptterns to producew the warning . . . . . . . . . . . . . . 252 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 ptionsswedish: Changed to snme endsnme, to make upperse do the right thing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 swedish-1.3e General: Update for release 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 ptionsswedish: Changed lsonme from `se oks' . . . . . . . . . . . . . . . 253 extrsswedish: Added ldfrenhsping . . . . . . . . . . . . . . . . . . . . . . . 254 noextrsswedish: Added ldnonfrenhsping . . . . . . . . . . . . . . . . . . 254 swedishhyphenmins: use swedishhyphenmins to store the correct values . . 254 swedish-1.3f A ptionsswedish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 253 swedish-1.3g ptionsswedish: Replaced `Proof' by its translation . . . . . . . . . . . . . . . . 253 swedish-2.0 General: Introduced active double quote . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 noextrsswedish: Added active double quote character . . . . . . . . . . . . . . . 254

dteslovene: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . 326 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 326 noextrsslovene: Removed empty groups after double quote and guillemot

SII

swedish-2.1 General: Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . 255 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 252 Replaced undefined with dundefined and empty with dempty for consisA tency with L TEX, moved the denition of ttode right to the beginning. 252 swedish-2.2 dteswedish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 253 swedish-2.2b noextrsswedish: Deactivate shorthands ouside of Swedish . . . . . . . . . . . . 254 swedish-2.3a General: added llowhyphens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 changed denition of 4a, E and 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 ptionsswedish: Added full stop after Bil . . . . . . . . . . . . . . . . . . . . . . 253 dtesdmy: Command added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 dtesymd: Command added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 swedish-2.3b ptionsswedish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . 253 swedish-2.3c ptionsswedish: Provided translation for Glossary . . . . . . . . . . . . . . . . . 253 swedish-2.3d General: Fixed a hnges entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

ptionsturkish: hedpgenme should be pgenme . . . . . . . . . . . . . . . 374 turkish-1.2 A General: Update for L TEX 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 turkish-1.2b ptionsturkish: Added braces behind i in strings . . . . . . . . . . . . . . . . . 374 dteturkish: Added braces behind i in strings . . . . . . . . . . . . . . . . . . . . 375 turkish-1.2c General: Now use dnoptterns to produce the warning . . . . . . . . . . . . . . . 374 Removed the use of filedte and moved identication after the loading of elFdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 turkish-1.2d dteturkish: removed extra closing brace, mont should be month . . . . . . 375 turkishdshdXd: Added missing def . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 turkish-1.2e extrsturkish: Completely rewrote macro . . . . . . . . . . . . . . . . . . . . . . . . 375 noextrsturkish: now use ldfrenhsping and ldnonfrenhsping 375 turkishdshdXd: Use the new mechanism of delredshorthnd . . . . . . . . 375 turkish-1.2f A ptionsturkish: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . . 374 turkish-1.2h General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374 turkish-1.2i General: Moved the denition of ttode right to the beginning. . . . . . . 374 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376 ow use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . . 374 turkish-1.2j ptionsturkish: Added and modied translations . . . . . . . . . . . . . . . . . . 374 dteturkish: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . 375 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 375

turkish-1.1

SIP

turkish-1.2k turkish-1.2l

ptionsturkish: Incorporated some more corrections

...............

374 375 374

turkish-1.2m

dteturkish: removed dot from the date format . . . . . . . . . . . . . . . . . . . .

ptionsturkish: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . .

ptionsukrinin: replace gus with gss in uthornme . . . . . . 358 ukraineb-1.1e General: replaced all penltydw with norek . . . . . . . . . . . . . . . . . . . . 354 ukraineb-1.1f General: Made not using inputenc a warning instead of an error . . . . . . . . . . 358 ukraineb-1.1g ptionsukrinin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . 358 extrsukrinin: Now use providehyphenmins to provide a default value 365 ukraineb-1.1h ptionsukrinin: Added translation for `Glossary' . . . . . . . . . . . . . . . . 358 ukraineb-1.1i General: As this code generates a textfont 7 error it is commented out for now. 357 ukraineb-1.1j ltintext: ltintext is already dened by the core of babel . . . . . . . . . . 358 textltin: ltintext is already dened by the core of babel . . . . . . . . . . 358 ukraineb-1.1k General: Change denition of th only for this language . . . . . . . . . . . . . . . 366 usorbian-0.1 General: First version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 usorbian-0.1b A General: Made it possible to run through L TEX; added wp and removed extra endmro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 usorbian-0.1c ptionsusorin: Removed two typos (Kapitel and Dodatki) . . . . . . . . . . 370 usorbian-1.0a General: Removed stu that has been moved to elFdef . . . . . . . . . . . . . 372 usorbian-1.0b A ptionsusorin: Added proofnme for AMS-L TEX . . . . . . . . . . . . . . . 370 usorbian-1.0c General: Now use lddis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 usorbian-1.0d General: Replaced undefined with dundefined and empty with dempty for A consistency with L TEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370 usorbian-1.0e General: Moved the denition of ttode right to the beginning. . . . . . . 370 Now use ldfdfinish to wrap up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Now use vdfsnit to perform initial checks . . . . . . . . . . . . . . . . . . . . . . . 370 usorbian-1.0f General: Removed empty groups after double quote and guillemot characters 372 usorbian-1.0g k: Now use shorthndon and shorthndoff . . . . . . . . . . . . . . . . . . . . . 373 newdteusorin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . 371 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 371 olddteusorin: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . 371 Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . . 371

ukraineb-1.1d

SIQ

usorbian-1.0h usorbian-1.0i

extrsusorin: Deactivate shorthands ouside of Upper Sorbian . . . . . . . .

371 370 372 370 373 370 370 371 371 371 371

usorbian-1.0j General: Check for the option lowersorbian . . . . . . . . . . . . . . . . . . Make this work for more than one option name . . . . . . . . . . . . . This le can be loaded under more than one name. . . . . . . . . . . ptionsusorin: Make this work for more than one option name extrsusorin: Make this work for more than one option name . newdteusorin: Make this work for more than one option name olddteusorin: Make this work for more than one option name usorbian-1.0k extrsusorin: Make sure the caret has the right tdoe . . . .

ptionsusorin: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . extrsusorin: Now use providehyphenmins to provide a default value .
.... .... .... ... .... .... .... ... 371, ... ... ... ... ...

.......

v2.0 General: prindentppx not changed if already dened (required by JA for cahgut.cls). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Added warning for OT1 encoding. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 AtBeginDocument, save again the denitions of the `list' and `itemize' environments and the values of labelitems. As of frenchb v.1.6, `ORI' values were set when reading frenchb.ldf, later changes were ignored. . . . . . . . . . . . . . 150 Footnotes are now printed by default ` la franaise' for the whole document. 139 New command frenhsetup added for global customisation. . . . . . . . . . 142 s: hox dropped, replaced by kernHpt. . . . . . . . . . . . . . . . . . . . . . . . . 132 ptionsfrenh: `Fig.' changed to `Figure' and `Tab.' to `Table'. . . . . . . . . 135 Set gptioneprtor in extrsfrenh now instead of ptionsfrenh because it has to be reset when leaving French. . . . . . . . . . . . . . . . . . . . 135 dtefrenh: 2 'relx' added in tody's denition. . . . . . . . . . . . . . . . . . 130 pftextellipsis: Added special case for LY1 encoding, see bug report from Bruno Voisin (2004/05/18). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 nomre: nomre requires now numprint.sty. . . . . . . . . . . . . . . . . . . . . . . . 134 v2.0b General: Footnotes: Just do nothing (except warning) when the bigfoot package is loaded. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 v2.0c General: hinpesnprenhxumers added for compatibility with frenchb-1.x. 135 Option ThinSpaceInFrenchNumbers added. . . . . . . . . . . . . . . . . . . . . . . . 142 There is no need to dene here numprint's command npstylefrenh, it will be redened `AtBeginDocument' by pfproessdoptions. . . . . . . . . . . . 135 v2.0d General: Options og and fg changed: limit the denition to French so that quote characters can be used in German. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 v2.0e General: New option: StandardLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 v2.0f General: StandardLayout option had no eect on lists. Test moved to pfproessdoptions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Two typos corrected in option StandardLists: [false] [true] and StandardLayout StandardLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 v2.0g General: Revert previous change to StandardLayout. This option must set the three ags pfeduevistpingflse, pfgomptstemizeflse, and

SIR

pftndrdstemveltrue instead of pftndrdviststrue, so that later options can still change their value before executing pfproessdoptions. Same thing for option StandardLists. . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 tndrdvyout: Flag ifpftndrdvyout not checked by pfproessdoptions, low-level ags have to be set one by one. . . . . . . . . . . . . . . . . . . . . . . . . 141 v2.1a General: Command fup added to produce better superscripts than textsupersript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 New option: FrenchSuperscripts to dene up as fup or as textsupersript. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 New option: LowercaseSuperscripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 dtefrenh: tody changed (correction in 2.0 was wrong: tody was printed without spaces in toc). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 v2.1b General: Disable some commands in bookmarks. . . . . . . . . . . . . . . . . . . . . . 150 fup: Command fup changed to use real superscripts from fourier v. 1.6. . . 130 v2.1c General: Added commands xos and nos. . . . . . . . . . . . . . . . . . . . . . . . . . 132 degres: Provide a temporary denition (hyperref safe) of degres in case it has to be expanded in the preamble (by beamer's title command for instance). 133 up: Provide a temporary denition (hyperref safe) of up in case it has to be expanded in the preamble (by beamer's title command for instance). . . 130 v2.1d General: Argument of rovidesvnguge changed above from `french' to `frenchb' (otherwise listfiles prints no date/version information). The real name of current language (french) as to be corrected before calling vdfsnit. 124 Avoid warning  end occurred when ifx ... incomplete with LaTeX-2.09. 125 v2.2a General: The global layout of the document is no longer changed when frenchb is not the last option of babel (ldmindlnguge). Suggested by Ulrike Fischer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Values of ags ifpfeduevistping, ifpfgomptstemize, ifpftndrdstemvels, ifpfsndentpirst, ifpfprenhpootnotes, ifpfeutopepootnotes changed: default now means `StandardLayout', it will be changed to `FrenchLayout' AtEndOfPackage only if french is ldmindlnguge. . . . . . . . . . . . . . 142 When frenchb is babel's last option, French becomes the document's main language, so GlobalLayoutFrench applies. . . . . . . . . . . . . . . . . . . . . . . . . 142 fup: newif and newdimen moved before ifvee to avoid an error with plainTeX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 v3.8a lowerdumlut: Use levevmodegroup to prevent problems when this command occurs in vertical mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 umluthigh: Use levevmodegroup to prevent problems when this command occurs in vertical mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 v3.8d dnotshorthnd: Error message added . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
welsh-1.0b

welsh-1.0c

dtewelsh: use def instead of edef . . . . . . . . . . . . . . . . . . . . . . . . . . . . Use edef to dene tody to save memory . . . . . . . . . . . . . . . . . . . . . .

104 104 103 103

ptionswelsh: Added glossrynme . . . . . . . . . . . . . . . . . . . . . . . . . . . welshhyphenmins: Now use providehyphenmins to provide a default value

SIS

welsh-1.0d

ptionswelsh: Provided the translation for Glossary . . . . . . . . . . . . . . . . dtewelsh: removed `a viz' from the denition of tody . . . . . . . . . . . . . .

103 104

SIT

S-ar putea să vă placă și