[XeTeX] (no subject)

Bruno Voisin bvoisin at mac.com
Fri May 5 01:33:04 CEST 2006


Le 4 mai 06 à 18:29, Christophe DAMAS a écrit :

> Excuse moi de te déranger, suite à ta réponse sur XeTeX.  
> Effectivement je suis bien en mode non étendu. J'ai refait le  
> format xetex pour inclure la césure française, mais je n'arrive pas  
> à comprendre la syntaxe avec cette mystérieuse étoile pour obtenir  
> un format en mode étendu. As-tu une idée ?

Given this may be a topic of interest for other XeTeX users, I'm  
answering in English and cc'ing the XeTeX list. For the non-French  
speakers, the problem is: the OP recompiled the XeTeX format to  
include French hyphenation, but doesn't know how to specify that  
extended mode must be activated (how to include the "*" before  
xetex.ini in the format creation command)).

The problem is, I don't really know myself. One solution seems to be  
to edit /Library/teTeX/share/texmf.local/web2c/fmtutil.cnf, by  
replacing the line:

xetex		xetex		-		*xetex.ini

with:

xetex		xetex		frhyph.tex	*xetex.ini

This should IIUC replace English hyphenation by French hyphenation,  
once you've re-run "sudo -H fmtutil-sys".

However, it should be possible to do better, by having the XeTeX  
format include several hyphenation patterns. There seem to be several  
solutions:

- Use babel and the file /Library/teTeX/share/texmf.local/tex/generic/ 
config/language.dat: edit it to select the languages you're  
interested in, then edit the above line to become:

xetex		xetex		language	*xetex.ini

recompile the formats using fmtutil-sys. However, that probably  
wouldn't work as you would need to modify the initialization file  
xetex.ini into some hybrid including the modifications done when  
turning plain.tex into bplain.tex. Another problem would be to manage  
to activate the selection of hyphenation patterns in babel while  
disactivating all of its other functions.

- Use the standard plain TeX interface, based on \language and  
\selectlanguage, to switch between hyphenation patterns. Problem is,  
I don't really understand this interface any longer. I just spent two  
full hours looking at the TeXbook and the various babel and etex  
mechanisms for dealing with multiple hyphenation files, and I feel  
none the wiser. I found in an old source file of mine:

\def\american{\language=0}
\def\british{\language=1}
\def\french{\language=2}
\american

but I've unfortunately lost the accompanying initialization file,  
used by INITEX to create the corresponding format, telling that the  
first loaded pattern is hyphen.tex, the second ukhyphen.tex and the  
third frhyph.tex. How to specify to INITEX that these files are read,  
and that the definition of \language0 begins here (ie when hyphen.tex  
is read), \language1 there (ie when ukhyphen.tex is read) and  
\language2 up there (ie when frhyph.tex is read)? Moreover, I can't  
get the difference between \language and \selectlanguage.

Another possible solution, given XeTeX is (I believe) based on eTeX,  
would be to modify xetex.ini to call /Library/teTeX/share/texmf.tetex/ 
tex/plain/etex/etex.src (defining \uselanguage and \addlanguage),  
which would make it possible to use /Library/teTeX/share/texmf.tetex/ 
tex/plain/config/language.def, as allowed in fmtutil.cnf, for  
specifying the loaded hyphenation patterns at the time of the  
creation of the XeTeX format.

Your original question was maybe oriented towards direct creation of  
xetex.fmt using xeinitex, not fmtutil-sys. I must admit I've no idea  
about the syntax: "xeinitex *xetex.ini" could work, but I've no idea  
how to specify exactly the name of the resulting .fmt file (the same  
as xetex.ini with the extension changed?) or the hyphenation pattern 
(s) to be loaded (by editing xetex.ini?).

Hope this helps nonetheless,

Bruno



More information about the XeTeX mailing list