Babel, a multilingual package for use with LATEX's ... - linsrv.net
Babel, a multilingual package for use with LATEX's ... - linsrv.net
Babel, a multilingual package for use with LATEX's ... - linsrv.net
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
\SetCase<br />
{\uccode‘i="9D\relax<br />
\uccode"19=‘I\relax}<br />
{\lccode"9D=‘i\relax<br />
\lccode‘I="19\relax}<br />
\End<strong>Babel</strong>Commands<br />
(Note the mapping <strong>for</strong> OT1 is not complete.)<br />
\SetHyphenMap<br />
{〈to-lower-macros〉}<br />
New 3.9g Case mapping serves in T E X <strong>for</strong> two unrelated purposes: case<br />
trans<strong>for</strong>ms (upper/lower) and hyphenation. \SetCase handles the <strong>for</strong>mer, while<br />
hyphenation is handled by \SetHyphenMap and controlled <strong>with</strong> the <strong>package</strong> option<br />
hyphenmap. So, even if internally they are based on the same T E X primitive<br />
(\lccode), babel sets them separately.<br />
There are three helper macros to be <strong>use</strong>d inside \SetHyphenMap:<br />
• \<strong>Babel</strong>Lower{〈uccode〉}{〈lccode〉} is similar to \lccode but it’s ignored if<br />
the char has been set and saves the original lccode to restore it when<br />
switching the language (except <strong>with</strong> hyphenmap=first).<br />
• \<strong>Babel</strong>LowerMM{〈uccode-from〉}{〈uccode-to〉}{〈step〉}{〈lccode-from〉} loops<br />
though the given uppercase codes, using the step, and assigns them the<br />
lccode, which is also increased (MM stands <strong>for</strong> many-to-many).<br />
• \<strong>Babel</strong>LowerMO{〈uccode-from〉}{〈uccode-to〉}{〈step〉}{〈lccode〉} loops<br />
though the given uppercase codes, using the step, and assigns them the<br />
lccode, which is fixed (MO stands <strong>for</strong> many-to-one).<br />
An example is (which is redundant, beca<strong>use</strong> these assignments are done by both<br />
luatex and xetex):<br />
\SetHyphenMap{\<strong>Babel</strong>LowerMM{"100}{"11F}{2}{"101}}<br />
This macro is not intended to fix wrong mappings done by Unicode (which are the<br />
default in both xetex and luatex) – if an assignment is wrong, fix it directly.<br />
4 Compatibility and changes<br />
4.1 Compatibility <strong>with</strong> german.sty<br />
The file german.sty has been one of the sources of inspiration <strong>for</strong> the babel<br />
system. Beca<strong>use</strong> of this I wanted to include german.sty in the babel system. To be<br />
able to do that I had to allow <strong>for</strong> one incompatibility: in the definition of the macro<br />
\selectlanguage in german.sty the argument is <strong>use</strong>d as the 〈number〉 <strong>for</strong> an<br />
\ifcase. So in this case a call to \selectlanguage might look like<br />
\selectlanguage{\german}.<br />
In the definition of the macro \selectlanguage in babel.def the argument is <strong>use</strong>d<br />
as a part of other macronames, so a call to \selectlanguage now looks like<br />
\selectlanguage{german}. Notice the absence of the escape character. As of<br />
version 3.1a of babel both syntaxes are allowed.<br />
All other features of the original german.sty have been copied into a new file,<br />
called germanb.sty 20 .<br />
20 The ‘b’ is added to the name to distinguish the file from Partls’ file.<br />
27