ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Adding small caps font to Xserif definition
@ 2009-11-06 21:30 Roland
  2009-11-06 22:12 ` Hans Hagen
  0 siblings, 1 reply; 3+ messages in thread
From: Roland @ 2009-11-06 21:30 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Hi all,

I'm typesetting a book with ConTeXt and XeTeX (LuaTex has been choking
on some statements and I didn't find the time to debug it).

I've gotten XeTeX to find Mac fonts through the simple Xserif
definition, but now I want to add a dedicated small caps font.

I've been checking out lots of typescripts documentation but I get
discouraged by their levels of complexity - I'm sure they're very
powerful but all the documentation out there still doesn't tell me
what all the different lines actually do and why there have to be so
many of them...

My minimal test script is as follows:

\enableregime[utf]
\setupcapitals[title=no,sc=no]
\definetypeface[ecolayout][rm][Xserif][EconomistTT]
\setupbodyfont[ecolayout, 11pt]
\starttext
Lorem ipsum dolor sit amet, {\sc consectetur adipisicing elit},
\cap{sed do eiusmod tempor incididunt}
\stoptext

This shows everything in EconomistTT, with the "consectetur" part in
normal sentence case and the "sed do..." part in simulated small caps.

I can also print everything up to sed... in real small caps by adding
\definetypeface[ecolayout][sc][Xserif][EconomistTTSC] (which I guess
is equivalent to just replacing "EconomistTT" with "EconomistTTSC" in
the test script above.

But how do I tell XeTeX to use EconomistTT for all normal letters but
EconomistTTSC when the \sc type switch is on?

Thanks so much for your help!
Roland

[output below]



TeXExec | processing document '/[...]/minimal_ntg.tex'
TeXExec | no ctx file found
TeXExec | tex processing method: context
TeXExec | TeX run 1
TeXExec | writing option file minimal_ntg.top
TeXExec | using randomseed 755
TeXExec | tex engine: xetex
TeXExec | tex format: cont-en
This is XeTeXk, Version 3.1415926-2.2-0.999.7 (Web2C 7.5.6)
 \write18 enabled.
 file:line:error style messages enabled.
entering extended mode
(/[...]/minimal_ntg.tex

ConTeXt  ver: 2009.10.28 19:27 MKII  fmt: 2009.10.29  int: english/english

system          : cont-new loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-new.tex
systems         : beware: some patches loaded from cont-new.tex

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-new.mkii
))
system          : cont-fil loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-fil.tex
loading         : ConTeXt File Synonyms
)
system          : cont-sys.rme loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/user/cont-sys.rme
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-tmf.tex
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-tmf.mkii
))
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-siz.tex
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-siz.mkii
))
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-otf.tex
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-otf.mkii
))
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-xtx.tex)
)
system          : minimal_ntg.top loaded
(./minimal_ntg.top)
bodyfont        : 12pt rm is loaded
language        : patterns nl->default:default->1->2:2 us->default:default->2->
2:3 de->default:default->3->3:3 da->default:default->4->2:2 sv->default:default
->5->2:2 gb->default:default->6->2:2 fr->default:default->7->2:2 es->default:de
fault->8->2:2 ca->default:default->9->2:2 it->default:default->10->2:2 la->defa
ult:default->11->2:2 pt->default:default->12->2:2 ro->default:default->13->2:2
pl->default:default->14->2:2 cs->default:default->15->2:2 sk->default:default->
16->2:2 hr->default:default->17->2:2 sl->default:default->18->2:2 tr->default:d
efault->19->2:2 agr->default:default->21->2:2 fi->default:default->22->2:2 hu->
default:default->23->2:2 ru->default:default->25->2:2 uk->default:default->26->
3:3 loaded
specials        : dvips loaded
language        : language en is active
specials        : loading definition file dpx

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/spec-dpx.mkii
specials        : loading definition file fdf

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/spec-fdf.mkii
))
specials        : loading definition file xet

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/spec-xet.mkii
)
regimes         : mapping utf to utf-8
(./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo)
(./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo)
(./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo)
publications    : file minimal_ntg.bbl not found, waiting for bibtex
(./minimal_ntg.tuo)
systems         : begin file minimal_ntg at line 6
fonts           : resetting map file list
fonts           : using map file: original-base
fonts           : using map file: lm-math
fonts           : using map file: lm-rm
fonts           : using map file: texnansi-base
fonts           : using map file: ec-base
fonts           : using map file: qx-base
fonts           : using map file: t5-base
fonts           : using map file: 8r-base
fonts           : using map file: original-ams-base
fonts           : using map file: original-ams-euler
fonts           : using map file: original-public-lm

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/sort-def.mkii
)
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/sort-lan.mkii
) [1.1]
systems         : end file minimal_ntg at line 8
system          : cont-err loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-err.tex
systems         : no file 'cont-sys.tex', using 'cont-sys.rme' instead

** WARNING ** Could not open config file "dvipdfmx.cfg".
stdin -> minimal_ntg.pdf
[1]
5290 bytes written
) )
(see the transcript file for additional information)
Output written on minimal_ntg.pdf (1 page).
Transcript written on minimal_ntg.log.
TeXUtil | parsing file minimal_ntg.tui
TeXUtil | shortcuts : 169
TeXUtil | expansions: 308
TeXUtil | reductions: 0
TeXUtil | divisions : 0
TeXUtil | loaded files: 1
TeXUtil | temporary files: 0
TeXUtil | commands: 21
TeXUtil | programs: 0
TeXUtil | tuo file saved
TeXExec | TeX run 2
TeXExec | writing option file minimal_ntg.top
TeXExec | using randomseed 755
TeXExec | tex engine: xetex
TeXExec | tex format: cont-en
This is XeTeXk, Version 3.1415926-2.2-0.999.7 (Web2C 7.5.6)
 \write18 enabled.
 file:line:error style messages enabled.
entering extended mode
(/Users/rs/Desktop/Dropbox/B/BerlinPaper/BookConTeXt/minimal_ntg.tex

ConTeXt  ver: 2009.10.28 19:27 MKII  fmt: 2009.10.29  int: english/english

system          : cont-new loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-new.tex
systems         : beware: some patches loaded from cont-new.tex

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-new.mkii
))
system          : cont-fil loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-fil.tex
loading         : ConTeXt File Synonyms
)
system          : cont-sys.rme loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/user/cont-sys.rme
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-tmf.tex
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-tmf.mkii
))
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-siz.tex
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-siz.mkii
))
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-otf.tex
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-otf.mkii
))
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/type-xtx.tex)
)
system          : minimal_ntg.top loaded
(./minimal_ntg.top)
bodyfont        : 12pt rm is loaded
language        : patterns nl->default:default->1->2:2 us->default:default->2->
2:3 de->default:default->3->3:3 da->default:default->4->2:2 sv->default:default
->5->2:2 gb->default:default->6->2:2 fr->default:default->7->2:2 es->default:de
fault->8->2:2 ca->default:default->9->2:2 it->default:default->10->2:2 la->defa
ult:default->11->2:2 pt->default:default->12->2:2 ro->default:default->13->2:2
pl->default:default->14->2:2 cs->default:default->15->2:2 sk->default:default->
16->2:2 hr->default:default->17->2:2 sl->default:default->18->2:2 tr->default:d
efault->19->2:2 agr->default:default->21->2:2 fi->default:default->22->2:2 hu->
default:default->23->2:2 ru->default:default->25->2:2 uk->default:default->26->
3:3 loaded
specials        : dvips loaded
language        : language en is active
specials        : loading definition file dpx

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/spec-dpx.mkii
specials        : loading definition file fdf

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/spec-fdf.mkii
))
specials        : loading definition file xet

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/spec-xet.mkii
)
regimes         : mapping utf to utf-8
(./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo)
(./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo)
(./minimal_ntg.tuo) (./minimal_ntg.tuo) (./minimal_ntg.tuo)
publications    : file minimal_ntg.bbl not found, waiting for bibtex
(./minimal_ntg.tuo)
systems         : begin file minimal_ntg at line 6
fonts           : resetting map file list
fonts           : using map file: original-base
fonts           : using map file: lm-math
fonts           : using map file: lm-rm
fonts           : using map file: texnansi-base
fonts           : using map file: ec-base
fonts           : using map file: qx-base
fonts           : using map file: t5-base
fonts           : using map file: 8r-base
fonts           : using map file: original-ams-base
fonts           : using map file: original-ams-euler
fonts           : using map file: original-public-lm

(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/sort-def.mkii
)
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/sort-lan.mkii
) [1.1]
systems         : end file minimal_ntg at line 8
system          : cont-err loaded
(/Applications/ConTeXtMinimals/tex/texmf-context/tex/context/base/cont-err.tex
systems         : no file 'cont-sys.tex', using 'cont-sys.rme' instead

** WARNING ** Could not open config file "dvipdfmx.cfg".
stdin -> minimal_ntg.pdf
[1]
5289 bytes written
) )
(see the transcript file for additional information)
Output written on minimal_ntg.pdf (1 page).
Transcript written on minimal_ntg.log.
TeXUtil | parsing file minimal_ntg.tui
TeXUtil | shortcuts : 169
TeXUtil | expansions: 308
TeXUtil | reductions: 0
TeXUtil | divisions : 0
TeXUtil | loaded files: 1
TeXUtil | temporary files: 0
TeXUtil | commands: 21
TeXUtil | programs: 0
TeXUtil | tuo file saved
TeXExec | runtime: 8.912883
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Adding small caps font to Xserif definition
  2009-11-06 21:30 Adding small caps font to Xserif definition Roland
@ 2009-11-06 22:12 ` Hans Hagen
  2009-11-08  8:43   ` Wolfgang Schuster
  0 siblings, 1 reply; 3+ messages in thread
From: Hans Hagen @ 2009-11-06 22:12 UTC (permalink / raw)
  To: mailing list for ConTeXt users

Roland wrote:
> Hi all,
> 
> I'm typesetting a book with ConTeXt and XeTeX (LuaTex has been choking
> on some statements and I didn't find the time to debug it).
> 
> I've gotten XeTeX to find Mac fonts through the simple Xserif
> definition, but now I want to add a dedicated small caps font.
> 
> I've been checking out lots of typescripts documentation but I get
> discouraged by their levels of complexity - I'm sure they're very
> powerful but all the documentation out there still doesn't tell me
> what all the different lines actually do and why there have to be so
> many of them...

you only need to look in the type-otf (tex and mkii) typescripts

in most cases a typescript is simple (just mapping filenames onto 
internal names like Serif)

as you use xetex there is no need to worry about encodings (which is 
what complicates for instance pdftex related typescripts as there are 
many encodings and several naming schemes around)

i don't know if Wolfgangs simple fonts module works with xetex

Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Adding small caps font to Xserif definition
  2009-11-06 22:12 ` Hans Hagen
@ 2009-11-08  8:43   ` Wolfgang Schuster
  0 siblings, 0 replies; 3+ messages in thread
From: Wolfgang Schuster @ 2009-11-08  8:43 UTC (permalink / raw)
  To: mailing list for ConTeXt users

[-- Attachment #1: t-selectfont.tex --]
[-- Type: application/octet-stream, Size: 14008 bytes --]

%D \module
%D   [     file=t-selectfont,
%D      version=2009.11.08,
%D        title=\CONTEXT\ User Module,
%D     subtitle=Simplefonts,
%D       author=Wolfgang Schuster,
%D         date=\currentdate,
%D    copyright=Wolfgang Schuster,
%D        email=schuster.wolfgang@googlemail.com,
%D      license=Public Domain]

\writestatus{loading}{ConTeXt User Module / Simplefonts}

\unprotect

\startmodule[simplefonts]

%D Constants and variables

\startinterface all
  \setinterfaceconstant {regular}                 {regular}
  \setinterfaceconstant {italic}                  {italic}
  \setinterfaceconstant {slanted}                 {slanted}
  \setinterfaceconstant {bold}                    {bold}
  \setinterfaceconstant {bolditalic}              {bolditalic}
  \setinterfaceconstant {boldslanted}             {boldslanted}
  \setinterfaceconstant {caps}                    {caps}
  \setinterfaceconstant {scale}                   {scale}
  \setinterfaceconstant {features}                {features}
  \setinterfaceconstant {regularfont}             {regularfont}
  \setinterfaceconstant {italicfont}              {italicfont}
  \setinterfaceconstant {slantedfont}             {slantedfont}
  \setinterfaceconstant {boldfont}                {boldfont}
  \setinterfaceconstant {bolditalicfont}          {bolditalicfont}
  \setinterfaceconstant {boldslantedfont}         {boldslantedfont}
  \setinterfaceconstant {capsfont}                {capsfont}
  \setinterfaceconstant {regularfeatures}         {regularfeatures}
  \setinterfaceconstant {italicfeatures}          {italicfeatures}
  \setinterfaceconstant {slantedfeatures}         {slantedfeatures}
  \setinterfaceconstant {boldfeatures}            {boldfeatures}
  \setinterfaceconstant {bolditalicfeatures}      {bolditalicfeatures}
  \setinterfaceconstant {boldslantedfeatures}     {boldslantedfeatures}
  \setinterfaceconstant {smallcapsfeatures}       {smallcapsfeatures}
  \setinterfaceconstant {capsfeatures}            {capsfeatures}
  \setinterfaceconstant {typeface}                {typeface}
\stopinterface

\startinterface all
  \setinterfacevariable {simplefonts}             {simplefonts}
  \setinterfacevariable {simplefont}              {simplefont}
  \setinterfacevariable {style}                   {style}
  \setinterfacevariable {suffix}                  {suffix}
  \setinterfacevariable {serif}                   {serif}
  \setinterfacevariable {sans}                    {sans}
  \setinterfacevariable {mono}                    {mono}
  \setinterfacevariable {math}                    {math}
  \setinterfacevariable {mainfont}                {mainfont}
  \setinterfacevariable {sansfont}                {sansfont}
  \setinterfacevariable {monofont}                {monofont}
  \setinterfacevariable {mathfont}                {mathfont}
  \setinterfacevariable {handwritingfont}         {handwritingfont}
  \setinterfacevariable {calligraphicfont}        {calligraphicfont}
  \setinterfacevariable {handwriting}             {handwriting}
  \setinterfacevariable {calligraphy}             {calligraphy}
  \setinterfacevariable {fontfamily}              {fontfamily}
  \setinterfacevariable {alternative}             {alternative}
\stopinterface

\startinterface all
  \setinterfaceelement  {set}                     {set}
\stopinterface

%D System constants

\definesystemconstant {Handwriting}
\definesystemconstant {Calligraphy}

%D Module setup

\setupmodule
  [\c!size=\!!twelvepoint,
   \c!style=\c!rm]

%D Namespace

\def\????sf{@@@@sf}

%D Counter

\newcounter\simplefonts!typeface
\newcounter\simplefonts!fontfamily

%D Boolean

\newif\if!!donesimplefonts

%D Comma value lists

\def\simplefonts!commands
  {\v!mainfont,\v!sansfont,\v!monofont,\v!mathfont,\v!handwritingfont,\v!calligraphicfont}

\def\simplefonts!alternative
  {\c!regular,\c!italic,\c!slanted,\c!bold,\c!bolditalic,\c!boldslanted,\c!caps}

%D \macros
%D   {simplefontparameter,namedsimplefontparameter,
%D    setupsimplefonts,presetsimplefonts}
%D
%D Internal helper macros

\def\simplefontparameter       #1{\csname\????sf\currentsimplefont#1\endcsname}
\def\namedsimplefontparameter#1#2{\csname\????sf                #1#2\endcsname}

\def\setupsimplefonts
  {\dosingleempty\dosetupsimplefonts}

\def\dosetupsimplefonts[#1]% first argument is optional
  {\iffirstargument\getparameters[\????sf][#1]\fi
   \if!!donesimplefonts\simplefonts@bodyfont\fi}

\def\presetsimplefonts[#1]%
  {\getparameters
     [#1]
     [\c!regularfont=,
      \c!italicfont=,
      \c!slantedfont=,
      \c!boldfont=,
      \c!bolditalicfont=,
      \c!boldslantedfont=,
      \c!capsfont=,
      \c!features=\@@@@sffeatures,
      \c!regularfeatures=\simplefontparameter\c!features,
      \c!italicfeatures=\simplefontparameter\c!features,
      \c!slantedfeatures=\simplefontparameter\c!features,
      \c!boldfeatures=\simplefontparameter\c!features,
      \c!bolditalicfeatures=\simplefontparameter\c!features,
      \c!boldslantedfeatures=\simplefontparameter\c!features,
      \c!smallcapsfeatures=\@@@@sfsmallcapsfeatures,
      \c!capsfeatures=\simplefontparameter\c!smallcapsfeatures,
      \c!scale=1.0]}

\letvalue{\????sf:\v!style :\v!serif      }\c!rm
\letvalue{\????sf:\v!style :\v!sans       }\c!ss
\letvalue{\????sf:\v!style :\v!mono       }\c!tt
\letvalue{\????sf:\v!style :\v!math       }\c!mm
\letvalue{\????sf:\v!style :\v!handwriting}\c!hw
\letvalue{\????sf:\v!style :\v!calligraphy}\c!cg

\letvalue{\????sf:\v!suffix:\v!serif      }\s!Serif
\letvalue{\????sf:\v!suffix:\v!sans       }\s!Sans
\letvalue{\????sf:\v!suffix:\v!mono       }\s!Mono
\letvalue{\????sf:\v!suffix:\v!handwriting}\s!Handwriting
\letvalue{\????sf:\v!suffix:\v!calligraphy}\s!Calligraphy

\setvalue{\????sf:\v!alternative:\c!regular    }{}
\setvalue{\????sf:\v!alternative:\c!italic     }{/I}
\setvalue{\????sf:\v!alternative:\c!slanted    }{/I}
\setvalue{\????sf:\v!alternative:\c!bold       }{/B}
\setvalue{\????sf:\v!alternative:\c!bolditalic }{/BI}
\setvalue{\????sf:\v!alternative:\c!boldslanted}{/BI}
\setvalue{\????sf:\v!alternative:\c!caps       }{}

\definetypescriptsynonym[latinmodernmath][latin-modern] % do I need more of them

\def\sf@style      #1{\csname\????sf:\v!style      :#1\endcsname}
\def\sf@suffix     #1{\csname\????sf:\v!suffix     :#1\endcsname}
\def\sf@alternative#1{\csname\????sf:\v!alternative:#1\endcsname}

\starttexdefinition simplefonts@typeface #1#2#3

    \definetypeface
        [#1]
        [\sf@style{\namedsimplefontparameter{#3}\c!style}]
        [\namedsimplefontparameter{#3}\c!style]
        [#2]
        [\s!default]
        [rscale=\namedsimplefontparameter{#3}\c!scale]

\stoptexdefinition

\starttexdefinition simplefonts@family #1

    \simplefonts@typeface{#1}{\v!mainfont                                    }{\v!mainfont        }
    \simplefonts@typeface{#1}{\v!sansfont                                    }{\v!sansfont        }
    \simplefonts@typeface{#1}{\v!monofont                                    }{\v!monofont        }
    \simplefonts@typeface{#1}{\namedsimplefontparameter\v!mathfont\c!typeface}{\v!mathfont        }
    \simplefonts@typeface{#1}{\v!handwritingfont                             }{\v!handwritingfont }
    \simplefonts@typeface{#1}{\v!calligraphicfont                            }{\v!calligraphicfont}

\stoptexdefinition

\starttexdefinition simplefonts@typescript #1#2

    \startexpanded

        \@NX\starttypescript[#1][#2]

            \simplefonts@fontsynonym{\sf@suffix{#1}\empty        }{\c!regular    }
            \simplefonts@fontsynonym{\sf@suffix{#1}\s!Italic     }{\c!italic     }
            \simplefonts@fontsynonym{\sf@suffix{#1}\s!Slanted    }{\c!slanted    }
            \simplefonts@fontsynonym{\sf@suffix{#1}\s!Bold       }{\c!bold       }
            \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldItalic }{\c!bolditalic }
            \simplefonts@fontsynonym{\sf@suffix{#1}\s!BoldSlanted}{\c!boldslanted}    
            \simplefonts@fontsynonym{\sf@suffix{#1}\s!Caps       }{\c!caps       }

        \@NX\stoptypescript

    \stopexpanded

\stoptexdefinition

\starttexdefinition simplefonts@scripttypescript #1#2

    \startexpanded

        \@NX\starttypescript[#1][#2]

            \simplefonts@fontsynonym{\sf@suffix{#1}}{\c!regular}

        \@NX\stoptypescript

    \stopexpanded

\stoptexdefinition

\starttexdefinition simplefonts@fontsynonym #1#2

    \@NX\definefontsynonym
        [#1]
        [\simplefontparameter{#2}]
        [\s!features=\simplefontparameter{#2\s!features}]

\stoptexdefinition

\starttexdefinition simplefonts@bodyfont

    \doglobal\increment\simplefonts!typeface

    \simplefonts@family{\v!simplefonts:\simplefonts!typeface}

    \setupbodyfont[\v!simplefonts:\simplefonts!typeface,\@@@@sfstyle,\@@@@sfsize]

\stoptexdefinition

\starttexdefinition simplefonts@definetextfont [#1][#2][#3][#4]

    \edef\currentsimplefont{#1}\edef\currenttypeface{#2}

    \presetsimplefonts[\????sf\currentsimplefont]

    \getparameters[\????sf\currentsimplefont][#4]

    \startprocesscommacommand[\simplefonts!alternative]

        \doifsomethingelse{\simplefontparameter{##1\s!font}}
            {\doifinstringelse{*}{\simplefontparameter{##1\s!font}}
                {\setevalue{\????sf#1##1}{name:#3\@EAEAEA\gobbleoneargument\csname\????sf\currentsimplefont##1\s!font\endcsname}}
                {\setevalue{\????sf#1##1}{name:\simplefontparameter{##1\s!font}}}}
            {\setevalue{\????sf#1##1}{name:#3\sf@alternative{##1}}}

    \stopprocesscommacommand

    \simplefonts@typescript{\simplefontparameter\c!style}{#1}

    \ifx\currenttypeface\v!simplefonts

        % don't create a typeface and set bodyfont when the module is loaded

        \if!!donesimplefonts\simplefonts@bodyfont\fi

    \else

        \simplefonts@typeface{#2}{#1}{#1}

    \fi

\stoptexdefinition

\starttexdefinition simplefonts@definescriptfont [#1][#2][#3][#4]

    \edef\currentsimplefont{#1}\edef\currenttypeface{#2}

    \presetsimplefonts[\????sf\currentsimplefont]

    \getparameters[\????sf\currentsimplefont][#4]

    \startprocesscommacommand[\c!regular]

        \setvalue{\????sf#1##1}{name:#3}

    \stopprocesscommacommand

    \simplefonts@scripttypescript{\simplefontparameter\c!style}{#1}

    \ifx\currenttypeface\v!simplefonts

        % don't create a typeface and set bodyfont when the module is loaded

        \if!!donesimplefonts\simplefonts@bodyfont\fi

    \else

        \simplefonts@typeface{#2}{#1}{#1}

    \fi

\stoptexdefinition

\starttexdefinition simplefonts@definemathfont [#1][#2][#3][#4]

    \edef\currentsimplefont{#1}\edef\currenttypeface{#2}

    \presetsimplefonts[\????sf\currentsimplefont]

    \getparameters[\????sf\currentsimplefont][#4]

    \lowercase{\unspacestring#3\to\!!simplefont}

    \letvalue{\????sf\currentsimplefont\c!typeface}\!!simplefont

    \ifx\currenttypeface\v!simplefonts

        % don't create a typeface and set bodyfont when the module is loaded

        \if!!donesimplefonts\simplefonts@bodyfont\fi

    \else

        \simplefonts@typeface{#2}{#1}{#1}

    \fi

\stoptexdefinition

%D \macros
%D   {definefontcommand}

\def\definefontcommand
  {\dotripleempty\dodefinefontcommand}

\def\dodefinefontcommand[#1][#2][#3]%
  {\getparameters[\????sf#1][\c!style=\v!serif,#3]%
   \processaction
     [\namedsimplefontparameter{#1}\c!style]
     [      \v!serif=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont  [#1][#2]},
             \v!sans=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont  [#1][#2]},
             \v!mono=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont  [#1][#2]},
             \v!math=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definemathfont  [#1][#2]},
      \v!handwriting=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definescriptfont[#1][#2]},
      \v!calligraphy=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definescriptfont[#1][#2]},
          \s!unknown=>\setvalue{\e!set#1}{\doquadrupleempty\simplefonts@definetextfont  [#1][#2]}]}

\definefontcommand[\v!mainfont        ][\v!simplefonts][\c!style=\v!serif      ]
\definefontcommand[\v!sansfont        ][\v!simplefonts][\c!style=\v!sans       ]
\definefontcommand[\v!monofont        ][\v!simplefonts][\c!style=\v!mono       ]
\definefontcommand[\v!mathfont        ][\v!simplefonts][\c!style=\v!math       ]
\definefontcommand[\v!handwritingfont ][\v!simplefonts][\c!style=\v!handwriting]
\definefontcommand[\v!calligraphicfont][\v!simplefonts][\c!style=\v!calligraphy]

%D \macros
%D   {definesimplefonttypeface}

\def\definesimplefonttypeface
  {\dotripleempty\dodefinesimplefonttypeface}

\def\dodefinesimplefonttypeface[#1][#2][#3]%
  {\getparameters[\????sf#1][\c!style=\v!serif,#3]%
   \processaction
     [\namedsimplefontparameter{#1}\c!style]
     [      \v!serif=>{\simplefonts@definetextfont  [#1][#1][#2][#3]},
             \v!sans=>{\simplefonts@definetextfont  [#1][#1][#2][#3]},
             \v!mono=>{\simplefonts@definetextfont  [#1][#1][#2][#3]},
             \v!math=>{\simplefonts@definemathfont  [#1][#1][#2][#3]},
             \v!math=>{\simplefonts@definemathfont  [#1][#1][#2][#3]},
      \v!handwriting=>{\simplefonts@definescriptfont[#1][#1][#2][#3]},
      \v!calligraphy=>{\simplefonts@definescriptfont[#1][#1][#2][#3]},
          \s!unknown=>{\simplefonts@definetextfont  [#1][#1][#2][#3]}]}

%D Default setup

\setupsimplefonts
  [\c!size=\moduleparameter\v!simplefonts\c!size,
   \c!style=\moduleparameter\v!simplefonts\c!style,
   \c!features=\v!default,
   \c!smallcapsfeatures=\v!smallcaps]

%D Default fonts

\setmainfont        [Latin Modern Roman]
\setsansfont        [Latin Modern Sans]
\setmonofont        [Latin Modern Mono]
\setmathfont        [Latin Modern Math]
\sethandwritingfont [Latin Modern Roman] % neither handwritten nor calligraphic are available
\setcalligraphicfont[Latin Modern Roman] % for Latin Modern but I need a default font for them

\!!donesimplefontstrue

\stopmodule

\protect \endinput

[-- Attachment #2: Type: text/plain, Size: 329 bytes --]


Am 06.11.2009 um 23:12 schrieb Hans Hagen:

> i don't know if Wolfgangs simple fonts module works with xetex

no, the simplefonts module is mkiv only but i attached a stripped
down version which can be used with xetex

\usemodule[selectfont]

\setmainfont[EconomistTT][capsfont=EconomistTTSC]

\starttext
...
\stoptext

Wolfgang

[-- Attachment #3: Type: text/plain, Size: 486 bytes --]

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2009-11-08  8:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-06 21:30 Adding small caps font to Xserif definition Roland
2009-11-06 22:12 ` Hans Hagen
2009-11-08  8:43   ` Wolfgang Schuster

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).