ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
Cc: Michel Bovani <michel.bovani@wanadoo.fr>
Subject: fourier
Date: Fri, 19 Sep 2003 13:54:46 +0200	[thread overview]
Message-ID: <5.2.0.9.1.20030919134352.020162b0@server-1> (raw)

Hi,

I've added support for the excelent new fourier fonts by Michel Bovani, 
based on utopia. So, we have another math font!

   \usetypescript[fourier][ec] \setupbodyfont[fourier]

   \starttext test $x=1+\sqrt{x}$ test \type {test} \stoptext

I expect math experts to look into math-fou.tex and complete the vectors.

== from here only for font lovers ==

Now, since these fonts have quite some expert and oldstyle options, it 
makes sense to think of how to use them.

Michel cleverly defined:

   \definefontsynonym [Fourier-Regular]      [futr8t]  [encoding=ec]
   \definefontsynonym [Fourier-Slanted]      [futro8t]  [encoding=ec]
   \definefontsynonym [Fourier-Italic]       [futri8t] [encoding=ec]
   \definefontsynonym [Fourier-RegularCaps]  [futrc8t]  [encoding=ec]
   \definefontsynonym [Fourier-Bold]         [futb8t]  [encoding=ec]
   \definefontsynonym [Fourier-BoldSlanted]  [futbo8t]  [encoding=ec]
   \definefontsynonym [Fourier-BoldItalic]   [futbi8t] [encoding=ec]
   \definefontsynonym [Fourier-BoldCaps]     [futbc8t]  [encoding=ec]
   \definefontsynonym [Fourier-Regular-Expert]      [futr9e]  [encoding=ec]
   \definefontsynonym [Fourier-Slanted-Expert]      [futro9e]  [encoding=ec]
   \definefontsynonym [Fourier-Italic-Expert]       [futri9e] [encoding=ec]
   \definefontsynonym [Fourier-RegularCaps-Expert]  [futrc9e]  [encoding=ec]
   \definefontsynonym [Fourier-Semi-Expert]         [futs9e]  [encoding=ec]
   \definefontsynonym [Fourier-SemiSlanted-Expert]  [futso9e]  [encoding=ec]
   \definefontsynonym [Fourier-SemiItalic-Expert]   [futsi9e] [encoding=ec]
   \definefontsynonym [Fourier-SemiCaps-Expert]     [futsc9e]  [encoding=ec]
   \definefontsynonym [Fourier-Bold-Expert]         [futb9e]  [encoding=ec]
   \definefontsynonym [Fourier-BoldSlanted-Expert]  [futbo9e]  [encoding=ec]
   \definefontsynonym [Fourier-BoldItalic-Expert]   [futbi9e] [encoding=ec]
   \definefontsynonym [Fourier-Black-Expert]        [futc9e]  [encoding=ec]
   \definefontsynonym [Fourier-Regular-OldStyle]      [futr9d]  [encoding=ec]
   \definefontsynonym [Fourier-Slanted-OldStyle]      [futro9d]  [encoding=ec]
   \definefontsynonym [Fourier-Italic-OldStyle]       [futri9d] [encoding=ec]
   \definefontsynonym [Fourier-RegularCaps-OldStyle]  [futrc9d]  [encoding=ec]
   \definefontsynonym [Fourier-Semi-OldStyle]         [futs9d]  [encoding=ec]
   \definefontsynonym [Fourier-SemiSlanted-OldStyle]  [futso9d]  [encoding=ec]
   \definefontsynonym [Fourier-SemiItalic-OldStyle]   [futsi9d] [encoding=ec]
   \definefontsynonym [Fourier-SemiCaps-OldStyle]     [futsc9d]  [encoding=ec]
   \definefontsynonym [Fourier-Bold-OldStyle]         [futb9d]  [encoding=ec]
   \definefontsynonym [Fourier-BoldSlanted-OldStyle]  [futbo9d]  [encoding=ec]
   \definefontsynonym [Fourier-BoldItalic-OldStyle]   [futbi9d] [encoding=ec]
   \definefontsynonym [Fourier-Black-OldStyle]        [futc9d]  [encoding=ec]

and

  \definefontsynonym [Serif]               [Fourier-Regular]
   \definefontsynonym [SerifSlanted]               [Fourier-Slanted]
   \definefontsynonym [SerifItalic]    [Fourier-Italic]
   \definefontsynonym [SerifCaps]    [Fourier-RegularCaps]
   \definefontsynonym [SerifBold]    [Fourier-Bold]
   \definefontsynonym [SerifBoldSlanted]    [Fourier-BoldSlanted]
   \definefontsynonym [SerifBoldItalic]    [Fourier-BoldItalic]
   \definefontsynonym [SerifBoldCaps]    [Fourier-BoldCaps]
   \definefontsynonym 
[Serif-Expert]               [Fourier-Regular-Expert]
   \definefontsynonym 
[SerifSlanted-Expert]         [Fourier-Slanted-Expert]
   \definefontsynonym [SerifItalic-Expert]    [Fourier-Italic-Expert]
   \definefontsynonym [SerifCaps-Expert]    [Fourier-RegularCaps-Expert]
   \definefontsynonym [SerifSemiBold-Expert]    [Fourier-Semi-Expert]
   \definefontsynonym [SerifSemiSlanted-Expert]    [Fourier-SemiSlanted-Expert]
   \definefontsynonym [SerifSemiItalic-Expert]    [Fourier-SemiItalic-Expert]
   \definefontsynonym [SerifSemiCaps-Expert]    [Fourier-SemiCaps-Expert]
   \definefontsynonym [SerifBold-Expert]    [Fourier-Bold-Expert]
   \definefontsynonym 
[SerifBoldSlanted-Expert]    [Fourier-BoldSlanted-Expert]
   \definefontsynonym [SerifBoldItalic-Expert]    [Fourier-BoldItalic-Expert]
   \definefontsynonym [SerifBlack-Expert]    [Fourier-Black-Expert]
  \definefontsynonym [Serif-OldStyle]         [Fourier-Regular-OldStyle]
   \definefontsynonym [SerifSlanted-OldStyle]    [Fourier-Slanted-OldStyle]
   \definefontsynonym [SerifItalic-OldStyle]    [Fourier-Italic-OldStyle]
   \definefontsynonym [SerifCaps-OldStyle]    [Fourier-RegularCaps-OldStyle]
   \definefontsynonym [SerifSemiBold-OldStyle]  [Fourier-Semi-OldStyle]
   \definefontsynonym [SerifSemiSlanted-OldStyle] 
[Fourier-SemiSlanted-OldStyle]
   \definefontsynonym 
[SerifSemiItalic-OldStyle]   [Fourier-SemiItalic-OldStyle]
   \definefontsynonym 
[SerifSemiCaps-OldStyle]    [Fourier-SemiCaps-OldStyle]
   \definefontsynonym [SerifBold-OldStyle]    [Fourier-Bold-OldStyle]
   \definefontsynonym [SerifBoldSlanted-OldStyle] 
[Fourier-BoldSlanted-OldStyle]
   \definefontsynonym 
[SerifBoldItalic-OldStyle]    [Fourier-BoldItalic-OldStyle]
   \definefontsynonym [SerifBlack-OldStyle]    [Fourier-Black-OldStyle]
   \definefontsynonym 
[SerifBlackSlanted-OldStyle]    [Fourier-BlackSlanted-OldStyle]

with

\definebodyfont
[17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
[rm] [ tf=Serif sa 1,
it=SerifItalic sa 1,
sl=SerifSlanted sa 1,
sc=SerifCaps sa 1,
bf=SerifBold sa 1,
bi=SerifBoldItalic sa 1,
bs=SerifBoldSlanted sa 1,
bc=SerifBoldCaps sa 1,
bca=SerifBoldCaps sa a,
bcb=SerifBoldCaps sa b,
bcc=SerifBoldCaps sa c,
bcd=SerifBoldCaps sa d,
bcx=SerifBoldCaps sa x,
bcxx=SerifBoldCaps sa xx
]
\definebodyfont
[17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
[rmx] [ tf=Serif-Expert sa 1,
it=SerifItalic-Expert sa 1,
sl=SerifSlanted-Expert sa 1,
sc=SerifCaps-Expert sa 1,
db=SerifSemiBold-Expert sa 1,
dba=SerifSemiBold-Expert sa a,dbb=SerifSemiBold-Expert sa b,
dbc=SerifSemiBold-Expert sa c,dbd=SerifSemiBold-Expert sa d,
dbx=SerifSemiBold-Expert sa x,dbxx=SerifSemiBold-Expert sa xx,
di=SerifSemiItalic-Expert sa 1,
dia=SerifSemiItalic-Expert sa a,dib=SerifSemiItalic-Expert sa b,
dic=SerifSemiItalic-Expert sa c,did=SerifSemiItalic-Expert sa d,
dix=SerifSemiItalic-Expert sa x,dixx=SerifSemiItalic-Expert sa xx,
ds=SerifSemiSlanted-Expert sa 1,
dsa=SerifSemiSlanted-Expert sa a,dsb=SerifSemiSlanted-Expert sa b,
dsc=SerifSemiSlanted-Expert sa c,dsd=SerifSemiSlanted-Expert sa d,
dsx=SerifSemiSlanted-Expert sa x,dsxx=SerifSemiSlanted-Expert sa xx,
dc=SerifSemiCaps-Expert sa 1,
dca=SerifSemiCaps-Expert sa a,dcb=SerifSemiCaps-Expert sa b,
dcc=SerifSemiCaps-Expert sa c,dcd=SerifSemiCaps-Expert sa d,
dcx=SerifSemiCaps-Expert sa x,dcxx=SerifSemiCaps-Expert sa xx,
bf=SerifBold-Expert sa 1,
bi=SerifBoldItalic-Expert sa 1,
bs=SerifBoldSlanted-Expert sa 1,
eb=SerifBlack-Expert sa 1,
eba=SerifBlack-Expert sa a,ebb=SerifBlack-Expert sa b,
ebc=SerifBlack-Expert sa c,ebd=SerifBlack-Expert sa d,
ebx=SerifBlack-Expert sa x,ebxx=SerifBlack-Expert sa xx
]

\definebodyfont
[17.3pt,14.4pt,12pt,11pt,10pt,9pt,8pt,7pt,6pt,5pt,4pt]
[rmo] [ tf=Serif-OldStyle sa 1,
it=SerifItalic-OldStyle sa 1,
sl=SerifSlanted-OldStyle sa 1,
sc=SerifCaps-OldStyle sa 1,
db=SerifSemiBold-OldStyle sa 1,
dba=SerifSemiBold-OldStyle sa a,dbb=SerifSemiBold-OldStyle sa b,
dbc=SerifSemiBold-OldStyle sa c,dbd=SerifSemiBold-OldStyle sa d,
dbx=SerifSemiBold-OldStyle sa x,dbxx=SerifSemiBold-OldStyle sa xx,
di=SerifSemiItalic-OldStyle  sa 1,
dia=SerifSemiItalic-OldStyle  sa a,dib=SerifSemiItalic-OldStyle  sa b,
dic=SerifSemiItalic-OldStyle  sa c,did=SerifSemiItalic-OldStyle  sa d,
dix=SerifSemiItalic-OldStyle  sa x,dixx=SerifSemiItalic-OldStyle  sa xx,
ds=SerifSemiSlanted-OldStyle  sa 1,
dsa=SerifSemiSlanted-OldStyle  sa a,dsb=SerifSemiSlanted-OldStyle  sa b,
dsc=SerifSemiSlanted-OldStyle  sa c,dsd=SerifSemiSlanted-OldStyle  sa d,
dsx=SerifSemiSlanted-OldStyle  sa x,dsxx=SerifSemiSlanted-OldStyle  sa xx,
dc=SerifSemiCaps-OldStyle  sa 1,
dca=SerifSemiCaps-OldStyle  sa a,dcb=SerifSemiCaps-OldStyle  sa b,
dcc=SerifSemiCaps-OldStyle  sa c,dcd=SerifSemiCaps-OldStyle  sa d,
dcx=SerifSemiCaps-OldStyle  sa x,dcxx=SerifSemiCaps-OldStyle  sa xx,
eb=SerifBlack-OldStyle  sa 1,
eba=SerifBlack-OldStyle sa a,ebb=SerifBlack-OldStyle sa b,
ebc=SerifBlack-OldStyle sa c,ebd=SerifBlack-OldStyle sa d,
ebx=SerifBlack-OldStyle sa x,ebxx=SerifBlack-OldStyle sa xx,
bf=SerifBold-OldStyle  sa 1,
bi=SerifBoldItalic-OldStyle  sa 1,
bs=SerifBoldSlanted-OldStyle  sa 1
]

the following works quite well:

==== beware: it demonstrates that one can build much more font switches in 
the low level mechanism than one would expect! ====

\rm
\midaligned{\bcc Standard}
{\tf Text1234} {\tfa Text1234} {\tfb Text1234} {\tfc Text1234} {\tfx 
Text1234} {\tfxx Text1234}

{\it Text1234} {\ita Text1234} {\itb Text1234} {\itc Text1234} {\itx 
Text1234} {\itxx Text1234}
{\sl Text1234} {\sla Text1234} {\slb Text1234} {\slc Text1234} {\slx 
Text1234} {\slxx Text1234}
{\sc Text1234} {\sca Text1234} {\scb Text1234} {\scc Text1234} {\scx 
Text1234} {\scxx Text1234}
{\bf Text1234} {\bfa Text1234} {\bfb Text1234} {\bfc Text1234} {\bfx 
Text1234} {\bfxx Text1234}
{\bs Text1234} {\bsa Text1234} {\bsb Text1234} {\bsc Text1234} {\bsx 
Text1234} {\bsxx Text1234}
{\bi Text1234} {\bia Text1234} {\bib Text1234} {\bic Text1234} {\bix 
Text1234} {\bixx Text1234}
{\bc Text1234} {\bca Text1234} {\bcb Text1234} {\bcc Text1234} {\bcx 
Text1234} {\bcxx Text1234}
\page

\rmx
\midaligned{\dcc Expert}
{\tf Text1234} {\tfa Text1234} {\tfb Text1234} {\tfc Text1234} {\tfx 
Text1234} {\tfxx Text1234}
{\it Text1234} {\ita Text1234} {\itb Text1234} {\itc Text1234} {\itx 
Text1234} {\itxx Text1234}
{\sl Text1234} {\sla Text1234} {\slb Text1234} {\slc Text1234} {\slx 
Text1234} {\slxx Text1234}
{\sc Text1234} {\sca Text1234} {\scb Text1234} {\scc Text1234} {\scx 
Text1234} {\scxx Text1234}
{\bf Text1234} {\bfa Text1234} {\bfb Text1234} {\bfc Text1234} {\bfx 
Text1234} {\bfxx Text1234}
{\bs Text1234} {\bsa Text1234} {\bsb Text1234} {\bsc Text1234} {\bsx 
Text1234} {\bsxx Text1234}
{\bi Text1234} {\bia Text1234} {\bib Text1234} {\bic Text1234} {\bix 
Text1234} {\bixx Text1234}
{\db Text1234} {\dba Text1234} {\dbb Text1234} {\dbc Text1234} {\dbx 
Text1234} {\dbxx Text1234}
{\di Text1234} {\dia Text1234} {\dib Text1234} {\dic Text1234} {\dix 
Text1234} {\dixx Text1234}
{\ds Text1234} {\dsa Text1234} {\dsb Text1234} {\dsc Text1234} {\dsx 
Text1234} {\dsxx Text1234}
{\dc Text1234} {\dca Text1234} {\dcb Text1234} {\dcc Text1234} {\dcx 
Text1234} {\dcxx Text1234}
{\eb Text1234} {\eba Text1234} {\ebb Text1234} {\ebc Text1234} {\ebx 
Text1234} {\ebxx Text1234}
\page
\rmo
\midaligned{\dcc Old style}
{\tf Text1234} {\tfa Text1234} {\tfb Text1234} {\tfc Text1234} {\tfx 
Text1234} {\tfxx Text1234}

{\it Text1234} {\ita Text1234} {\itb Text1234} {\itc Text1234} {\itx 
Text1234} {\itxx Text1234}
{\sl Text1234} {\sla Text1234} {\slb Text1234} {\slc Text1234} {\slx 
Text1234} {\slxx Text1234}
{\sc Text1234} {\sca Text1234} {\scb Text1234} {\scc Text1234} {\scx 
Text1234} {\scxx Text1234}
{\bf Text1234} {\bfa Text1234} {\bfb Text1234} {\bfc Text1234} {\bfx 
Text1234} {\bfxx Text1234}
{\bs Text1234} {\bsa Text1234} {\bsb Text1234} {\bsc Text1234} {\bsx 
Text1234} {\bsxx Text1234}
{\bi Text1234} {\bia Text1234} {\bib Text1234} {\bic Text1234} {\bix 
Text1234} {\bixx Text1234}
{\db Text1234} {\dba Text1234} {\dbb Text1234} {\dbc Text1234} {\dbx 
Text1234} {\dbxx Text1234}
{\di Text1234} {\dia Text1234} {\dib Text1234} {\dic Text1234} {\dix 
Text1234} {\dixx Text1234}
{\ds Text1234} {\dsa Text1234} {\dsb Text1234} {\dsc Text1234} {\dsx 
Text1234} {\dsxx Text1234}
{\dc Text1234} {\dca Text1234} {\dcb Text1234} {\dcc Text1234} {\dcx 
Text1234} {\dcxx Text1234}
{\eb Text1234} {\eba Text1234} {\ebb Text1234} {\ebc Text1234} {\ebx 
Text1234} {\ebxx Text1234}

Now, another approach is to use typescripts and something

\definetypeface [fourier]        [serif] [rm] [fourier] ...
\definetypeface [fourier-expert] [serif] [rm] [fourier-expert] ...

etc, i.e. let expert and oldstyel live in their own namespace

For that i need to add a couple of more general mappings and this si what 
we should discuss:

how are we going to deal with 'black' 'oldstyle' 'expert' 'semi' in the 
sense of prefixes and suffixes? Actually,

   \definefontsynonym 
[Serif-Expert]               [Fourier-Regular-Expert]
   \definefontsynonym 
[SerifSlanted-Expert]         [Fourier-Slanted-Expert]
   \definefontsynonym [SerifItalic-Expert]    [Fourier-Italic-Expert]
   \definefontsynonym [SerifCaps-Expert]    [Fourier-RegularCaps-Expert]
   \definefontsynonym [SerifSemiBold-Expert]    [Fourier-Semi-Expert]
   \definefontsynonym [SerifSemiSlanted-Expert]    [Fourier-SemiSlanted-Expert]
   \definefontsynonym [SerifSemiItalic-Expert]    [Fourier-SemiItalic-Expert]
   \definefontsynonym [SerifSemiCaps-Expert]    [Fourier-SemiCaps-Expert]
   \definefontsynonym [SerifBold-Expert]    [Fourier-Bold-Expert]
   \definefontsynonym 
[SerifBoldSlanted-Expert]    [Fourier-BoldSlanted-Expert]
   \definefontsynonym [SerifBoldItalic-Expert]    [Fourier-BoldItalic-Expert]
   \definefontsynonym [SerifBlack-Expert]    [Fourier-Black-Expert]

can as well become

   \definefontsynonym [Serif]               [Fourier-Regular-Expert]
   \definefontsynonym [SerifSlanted]         [Fourier-Slanted-Expert]
   \definefontsynonym [SerifItalic]    [Fourier-Italic-Expert]
   \definefontsynonym [SerifCaps]    [Fourier-RegularCaps-Expert]
   \definefontsynonym [SerifSemiBold]    [Fourier-Semi-Expert]
   \definefontsynonym [SerifSemiSlanted]    [Fourier-SemiSlanted-Expert]
   \definefontsynonym [SerifSemiItalic]    [Fourier-SemiItalic-Expert]
   \definefontsynonym [SerifSemiCaps]    [Fourier-SemiCaps-Expert]
   \definefontsynonym [SerifBold]    [Fourier-Bold-Expert]
   \definefontsynonym [SerifBoldSlanted]    [Fourier-BoldSlanted-Expert]
   \definefontsynonym [SerifBoldItalic]    [Fourier-BoldItalic-Expert]
   \definefontsynonym [SerifBlack]    [Fourier-Black-Expert]

i.e. we don't need the -Expert here because it can live in a typeface; but 
how to deal with Black and Semi?

Hans
-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------
                        information: http://www.pragma-ade.com/roadmap.pdf
                     documentation: http://www.pragma-ade.com/showcase.pdf
-------------------------------------------------------------------------

             reply	other threads:[~2003-09-19 11:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-09-19 11:54 Hans Hagen [this message]
2003-09-19 14:30 ` fourier Adam Lindsay
2003-09-19 19:25   ` fourier Henning Hraban Ramm
2003-09-19 19:18 ` fourier Henning Hraban Ramm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5.2.0.9.1.20030919134352.020162b0@server-1 \
    --to=pragma@wxs.nl \
    --cc=michel.bovani@wanadoo.fr \
    --cc=ntg-context@ntg.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).