[XeTeX] Using different fonts for devanagari and latin characters

Mike Maxwell maxwell at umiacs.umd.edu
Sun Feb 12 16:58:14 CET 2012

On 2/12/2012 7:47 AM, Zdenek Wagner wrote:
> Another possibility is to use ucharclasses...
> This is a small sample (no need to change fonts manually):
> \documentclass[12pt]{article}
> \usepackage{fontspec}
> \usepackage[Devanagari]{ucharclasses}
> \setmainfont{Charis SIL}
> \setTransitionTo{Devanagari}{\fontspec[Script=Devanagari]{Nakula}}
> \begin{document}
> I can write in English और वाक्य का एक भाग हिंदी में हो सकता है।
> \end{document}

This sort of thing came up several years ago on this mailing list (I 
don't recall the date, but it was before the 19 Dec 2010 date on the 
current ucharclasses documentation).  Some people on the list said that 
this idea would break where there were ambiguous characters.  I presume 
that would mostly be punctuation.  Some Unicode blocks have their own 
punctuation (there's a danda, roughly the equivalent of a period = full 
stop, in the above text), but often other blocks use ASCII or extended 
Latin punctuation.  I don't suppose that's much of a problem with 
left-to-right scripts, but I can at least imagine it messing up 
right-to-left scripts.  A period or paren or comma in the middle of 
Arabic, Hebrew, or Thaana text, say.

I skimmed the documentation, but it doesn't mention this situation.  (It 
does mention potential problems with English and Vietnamese.)  However, 
there is a \setTransitionsForPunctuation (sxn 4.4), and maybe you could 
use this to work around the problem (if it is indeed a problem).

Has anyone worked with mixing L2R and R2L scripts using this, and if so, 
did you run into problems?
	Mike Maxwell
	maxwell at umiacs.umd.edu
	"My definition of an interesting universe is
	one that has the capacity to study itself."
         --Stephen Eastmond

More information about the XeTeX mailing list