[XeTeX] Typographic consistency (was: CJK and ideographic font names)

Ross Moore ross at maths.mq.edu.au
Thu Sep 16 00:32:40 CEST 2004


Hi Paolo,

On 16/09/2004, at 4:19 AM, Paolo Matteucci wrote:

> Il giorno 14/set/04, alle 00:26, Ross Moore ha scritto:
>>
>> Here's how I overcame a similar problem with  OML/hoefl/m/n
>> that was related to the oldstyle numerals, I think:
>>
>> \DeclareFontShape{OML}{hoefl}{m}{n}%
>>    {<-> "Hoefler\space Text"}{}
>>
>> You should be able to do the same for TS1:
>>
>> \DeclareFontShape{TS1}{hoefl}{m}{n}%
>>    {<-> "Hoefler\space Text"}{}
>
> Actually, the latter doesn't seem to work, but the former does.
>
> On commenting out the line
>
> 	\usepackage{textcomp}
>
> and adding
>
> \DeclareFontShape{OML}{hoefl}{bx}{it}%
>    {<-> "Hoefler\space Text\space Black"}{}
>
> I was finally able to reproduce your output without errors.



>
> I just don't like the fact that, in order to obtain *upright* old 
> style numerals, you have to redefine {OML}...{it} to the corresponding 
> non-italic version... and what if I need to use both [bold] upright 
> and [bold] italic old digits?

Well, I was a bit lazy and redefined the font for OML.
It would be better to redefine the macro for \oldstylenums,
which currently looks like:

\oldstylenums=macro:
#1->\begingroup \spaceskip \fontdimen \tw@ \font \usefont 
{OML}{\rmdefault }
{\f at series }{it}\mathgroup \symletters #1\endgroup .
l.70 \show\oldstylenums

Notice how it explicitly calls for OML but with the upright font
assigned to \rmdefault .

That is because of where these characters are found in standard TeX 
fonts.


An appropriate redefinition would be:

\makeatletter
\renewcommand{\oldstylenums}[1]{%
   \begingroup
     \spaceskip\fontdimen\tw@\font %%%  is this relevant, with AAT fonts 
???
     \usefont{U}{\rmdefault}{\f at series}{n}%
     \mathgroup \symletters #1%
   \endgroup}
\makeatother

Where you need to ensure that your \rmdefault font is setup to use
the oldstyle numbers -- assuming that it has them; otherwise use
a different font here.



In fact "Hoefler Text" seems to have *only* oldstyle numerals,
so it is much simpler, in your example, to just use redefinitions
of the switches as follows:

    \let\oldstylenums\relax
    \let\textos\textrm

This cannot be expected to be sufficient with all choices of font.

In general, provided your normal text font supports oldstyle numerals,
and you don't want to use a mixture of oldstyle and newstyle,
there shouldn't be a need for a command such as  \oldstylenums .
But of course you have legacy documents using it, so a simple
redefinition as above (using \let ) should suffice.

If your normal text font does *not* support oldstyle, then you will
need to get them from a different font. You'll then need to have
a switch for upright and another for italiced versions.




Also, there should be a way to get rid of that  /o problem,
using a font specification. But I cannot find the right one.
This does *not* do it:

\DeclareFontShape{U}{hoefl}{m}{it}%
    {<-> "Hoefler\space Text\space Italic:%   has  /o -->  ø   ligature
  Ligatures=!Common\space Ligatures,!Rare\space 
Ligatures,!Diphthong\space Ligatures%;
     "}{}


>
> Thank you very much for help -and thank you, Bruno, for your tips on 
> rich fonts.


Hope this helps a bit more, and maybe someone else can
provide the right ideas for the missing bits.


Cheers,

	Ross

>
> 	Paolo
>
> _______________________________________________
> XeTeX mailing list
> postmaster at tug.org
> http://tug.org/mailman/listinfo/xetex
>
------------------------------------------------------------------------
Ross Moore                                         ross at maths.mq.edu.au
Mathematics Department                             office: E7A-419
Macquarie University                               tel: +61 +2 9850 8955
Sydney, Australia                                  fax: +61 +2 9850 8114
------------------------------------------------------------------------



More information about the XeTeX mailing list