[XeTeX] "new-babel", was: Ancient Greek hyphenation

François Charette firmicus at ankabut.net
Mon Apr 23 12:50:43 CEST 2007

Apostolos Syropoulos wrote:
> I am sure we can come up with a name, maybe polyglotta...
Nice! But I would opt for *polyglossia*. Or perhaps (for the latinists): 
multiloquus or linguosus (meaning prolix, loquacious)? ... OK, I'm not 
serious here :-) Let's keep that discussion aside until "we" (whatever 
that means) come up with a real "post-babel" package.


Thanks Axel for your useful posting. I essentially agree with your 
> What is the purpose of the package?
> 1. Select hyphenation patterns for the selected language.
> 2. Select a font for this language.
> 3. Setup typing direction (LTR, RTL, TTB) (interface to bidi?)
Note that bidi only supports LTR and RTL, as it makes use of the 
primitives provided by e-TeX (beginR endR beginL endL). TTB can be 
achieved for CJK scripts by means of font features (e.g. 
RawFeature={vertical;script=kana} -- see threads in this mailing-list 
with "vertical" in the subject).
> 4. Enable OTF support for the selected language. (using fontspec?)
> 5. Enable language specific ligatures (and variants?) (again fontspec).
> 6. Selecting a color for the language, make that: Offer an interface to 
> issue arbitrary commands when selecting a language.
> 3 to 5 could be 2.1 to 2.3, see example below.
> How will this look like?
> \DefineLanguage[%
> hyphenation=german,		% Use traditional patterns
> %font=romanfont,		% romanfont is the default
> % Should the font properties be part of the language or is
> % it better to define a font for every language we use. The
> % later will be more portable to non-XeTeX systems.
> %direction=RTL,			% RTL is the default
> fontlanguage=DE,		% use OTF features for german
> commonligatures=on,		% use fi, fl ligatures
> %rareligature=off,		% don't use st, ck ligatures (default)
> startcommand={\color{red}} % Examples using the 20th century spelling
> 						% will be shown in red.
> ]{german20c}
> What will this package not support:
> - Non-Unicode font encodings.
> - Translated strings for various latex names. (For this we need the 
> doclang package which provides a \documentlanguage command.)
"doclang" is hypothetical, right? It should perhaps also support the 
additional strings defined in commonly-used classes other than the 
standard ones (memoir, koma-script family, etc).
> - Language specific date formats. (Use isodate, which already supports 
> different formats)
> - Language specific quotation marks, csquotes already offers these.
Our "new-babel" should handle all three packages I think (as options), 
making use of "doclang", isodate and csquotes when necessary. Note that 
in the case of dates, a lot more must be done for languages that make 
potential use of other calendar systems (Hebrew, Islamic, Iranian, 
Baha'i, Coptic, Ethiopic, Chinese, etc.) For Hebrew the code is 
available: it is already part of Babel. But for the rest I am sure 
nobody will volunteer to implement the algorithms of Reingold and 
Dershowitz as TeX macros!! In any case not me! ;-} This will probably 
become much easier with LuaTeX.


More information about the XeTeX mailing list