[XeTeX] Checking if a font exists
Heiko Oberdiek
heiko.oberdiek at googlemail.com
Mon Aug 30 09:32:14 CEST 2010
On Mon, Aug 30, 2010 at 08:22:53AM +0100, Jonathan Kew wrote:
> On 30 Aug 2010, at 05:56, Wilfred van Rooijen wrote:
>
> > The (more dificult) solution could be to make a shell script which will run the compilation of the xelatex source and detect whether or not the run was succesfull - if not, change the input file to the other font and retry.
>
> I'm surprised no-one has suggested the straightforward, pure-xetex approach: something along these lines (untested).....
>
> \def\myfont{"Myriad Pro"}
> \def\myfallback{"Arial"}
> \count255=\interactionmode
> \batchmode
> \font\foo=\myfont\space at 10pt
> \ifx\foo\nullfont
> \font\foo = \myfallback\space at 10pt
> \ifx\foo\nullfont
> \errorstopmode
> \errmessage{no suitable font found}
> \else
> \let\myfont=\myfallback
> \fi
> \fi
> \interactionmode=\count255
> % and now proceed to use \myfont.....
* It takes lots of time if the font cannot be found.
* kpsathea complains "Invalid fontname `Myriad Pro', contains ' '
* The error code is set because of the error message, if the
font cannot be found.
Yours sincerely
Heiko Oberdiek
More information about the XeTeX
mailing list