[XeTeX] Nested \textit in an italic fontinstance

Jonathan Kew jonathan_kew at sil.org
Wed Sep 13 12:10:13 CEST 2006

On 13 Sep 2006, at 10:52 am, Will Robertson wrote:
>> As a result, "Myriad Pro Italic/I" should be exactly the same as
>> "Myriad Pro Italic", I think. And \2 exactly the same as \1 in your
>> above example. And \textit to have no effect at all when used in
>> {\itshape ... \textit{...}}.
> Don't let Peter confuse you. The original poster's email demonstrated
> that "{\textit{Italic \textit{Italic Too}}}" behaves *correctly* for
>   "\fontspec{Myriad Pro}"

Right. A single fontspec declaration sets up a whole family, and  
behaves correctly (including the nested use of \textit, which differs  
from nested use of \emph).

> But in his example (simplified)
>   "\fontspec{Myriad Pro Italic} Italic \textit{Surely this should  
> be Italic too?}"
> it's the automatically found "italic" shape of "Myriad Pro Italic"
> (which doesn't make sense) that is returning the font to upright.

Yup. And I think this primarily demonstrates that the OP wasn't fully  
understanding how fontspec works, and was trying to manually declare  
stuff that FS already handles internally. Of course, FS does support  
this, but not quite in the way he was trying.

> (In a perverse way, the italic shape of a slanted font could in  
> argument
> be claimed to be an upright one.)
> But the behaviour of the /I suffix is nothing to do with me :)

Indeed; that's my code. :)

Currently, /I attempts to find the associated italic face for a non- 
italic one, or the associated non-italic if given an italic face as  
the starting point. I could, of course, change it to be ignored in  
the latter case; how it works is pretty much an arbitrary decision on  
my part. I don't see any strong reason to change the current "toggle"  
behavior, though; it certainly doesn't prevent fontspec (or any other  
package) doing the right thing.

Incidentally, you might expect /B to act similarly, toggling bold on  
or off, but it doesn't. Instead, it always tries to find a bolder  
version of the font that was given. This is because some families  
have many more than two weights, so even though the "base" font is  
"bold", there may still be a bolder one available. So the /B modifier  
always tries to find a bolder face, and does nothing if you're  
already at the boldest member of the family. But I haven't seen any  
font families with multiple levels of italic-ness, so didn't see any  
reason to try and make /I behave that way.


More information about the XeTeX mailing list