On Jan 20, 2008 1:54 PM, Wolfgang Schuster wrote:
On Sun, 20 Jan 2008 11:21:32 +0100 Roland
wrote: Hi,
I am fairly new to both ConTeXt (and XeTeX) but I've already been very impressed with the active user community and the amount of documentation available, as well as with the sheer userfriendliness of ConTeXt when compared to LaTeX. Now I'm trying to get into fonts, but activating a Postscript Type 1 font seems to go beyond my abilities and the wiki documentation on http://wiki.contextgarden.net/Fonts_in_XeTeX . Perhaps anybody can help?
I have a Postscript type 1 font family called Eco, consisting of Eco101Roman, Eco102Italic, Eco301Bold and some others. FontBook shows these names identically as PostScript name, Full Name and Family name (which means Fontbook is unaware that they are a family, but this is not the topic here).
The fonts can be used with any Mac application and they also work fine in a LaTeX-fontspec-XeTeX combination: the following minimal LaTeX file produces the text as desired in Eco101Roman.
1 %!TEX TS-program = xelatex 2 %!TEX encoding = UTF-8 Unicode 3 \documentclass[12pt]{article} 4 \usepackage{fontspec} 5 \defaultfontfeatures{Scale=MatchLowercase} 6 \setromanfont[Mapping=tex-text]{Eco101Roman} 7 \setsansfont[Mapping=tex-text]{Skia} 8 \setmonofont{Courier} 9 \author{Roland} 10 \title{XeTeX test} 11 12 \begin{document} 13 \maketitle 14 \section{This is a new section} 15 Let's try to \emph{write} this. 16 17 Lorem ipsum dolor sit amet, consectetur adipisicing elit, 40 \end{document}
On ConTeXt however, I cannot get the font to be recognised. Please see my testfile below, in which I tried to (a) compile it with a self-installed TrueType font (which works) (b) tried to select Eco101Roman directly (which produces a ** ERROR ** Invalid font) and (c) tried to select the font through a typescript (which produces a "Metric (TFM) file or installed font not found.")
What am I doing wrong? How can I get these fonts to work (and make ConTeXt treat them as a proper family too?)
Looking forward to your ideas! Roland
1 % ====================== 2 % = Various font tests = 3 % ====================== 4 5 %% TRUETYPE -- works fine 6 %\definetypeface[myfont][rm][Xserif][LegacySerifLT-Book] 7 8 %% TYPE1 without typescript 9 %\definetypeface[myfont][rm][Xserif][Eco101Roman]
Xserif will not work if the font is not designed properly (grouped into the same family). Does \bf, \bi etc. work if you use \setromanfont[Mapping=tex-text]{Eco101Roman} in XeLaTeX (I guess not).
20 %% TYPE1 with typescript 21 \starttypescript[serif][eco][uc]
Leave "[uc]" out. It is not needed (any more). No other font encoding is supported in XeTeX.
22 \definefontsynonym [Eco-Roman]['Eco101Roman:mapping=tex-text'][encoding=uc]
That was the old deprecated syntax. Now the same can be expressed with % put font name for an installed font here \definefontsynonym[Eco-Roman][name:Eco101Roman][features=default] or % put filename here if kpathsea can find the file in [texmf]/fonts/opentype/[something] \definefontsynonym[Eco-Roman][file:Eco101Roman][features=default] features=default implies "mapping=tlig" (which replaces "mapping=tex-text") and handles endash, emdash and apostrophe (ligatures like `? -> reversed question mark, ,, -> quotation mark, ... from tex-text are not present since we considered them unnecessary)
23 \definefontsynonym [Eco-Italic] ['Eco102Italic:mapping=tex-text'][encoding=uc] 24 \definefontsynonym [Eco-Bold] ['Eco301Bold:mapping=tex-text'][encoding=uc] 25 \stoptypescript
Same for all of them.
26 \usetypescript[eco] 27 \definetypeface[myfont][rm][Xserif][Eco-Roman] 28 %% produces 29 %% ./hello.tex:35: Font \*myfont12ptrmtfrm*:=Eco-Roman:mapping=tex-text at 12.0pt 30 %% not loadable: Metric (TFM) file or installed font not found. 31 %% <to be read again>
The same comment as above: Xserif won't work for a font which is not designed properly.
33 34 \starttext 35 \switchtobodyfont[myfont,18pt] 36 \section{Testing font} 37 This is plain text \bf{This is bold text} \it{This is bold italic text} 38 39 \stoptext
Try the following setup, please the field for the BoldItalic font by yourself because you forgot to tell the name for the style.
\starttypescript[serif][eco] \definefontsynonym[Serif] [Eco-Regular] \definefontsynonym[SerifBold] [Eco-Bold] \definefontsynonym[SerifItalic] [Eco-Italic] \definefontsynonym[SerifBoldItalic][Eco-BoldItalic] \stoptypescript
\starttypescript[serif][eco] \definefontsynonym[Eco-Regular] [Eco101Roman] \definefontsynonym[Eco-Bold] [Eco301Bold] \definefontsynonym[Eco-Italic] [Eco102Italic] \definefontsynonym[Eco-BoldItalic][...]
Right, but use the syntax described above. (add [features=default] if you want to use endash, emdash, ... and prepend name: or file:)
\stoptypescript
\starttypescript[eco] \definetypeface[\typescriptone][rm][serif][eco][default] \stoptypescript
\usetypescript[eco] \setupbodyfont[eco]
\starttext normal text, {\bf bold text}, {\em italic text} and {\bi bolditalic text}. \stoptext
Wolfgang
Mojca