Difference between revisions of "Use fonts distributed with ConTeXt"

From Wiki
Jump to navigation Jump to search
(3 intermediate revisions by the same user not shown)
(No difference)

Revision as of 21:22, 3 June 2020


First, have a look at the 21 provided fonts and the associated typescript name:

Change the font used in the document

To change the font used in the entire document (including headers and footers), use \setupbodyfont and the associated typescript name.

\setupbodyfont[thetypescriptname]

By default, the font is used at 11pt. To change the font size, specify the font size with the the typescript name. For example, to switch to 10pt, use:

\setupbodyfont[typescriptname, 10pt]

By default, the serif (or roman) style of the font is used. To switch to sans serif style, add ss to \setupbodyfont:

\setupbodyfont[typescriptname, ss]

These options can be combined. So, to get sans serif font at 12pt, use:

\setupbodyfont[typescriptname, ss, 12pt]


To learn how to use different alternative styles of a given font, like regular / bold / italic, see the Font_Switching in the Basics.

Example

  • Let see what give the defaults:
    \setupbodyfont[10pt]
    
    \startbuffer[line]
    The quick brown fox jumps over the lazy dog
    \stopbuffer
    
    \startlines
    \normal{\getbuffer[line]}
    \italic{\getbuffer[line]}
    \bold{\getbuffer[line]}
    \bolditalic{\getbuffer[line]}
    \stoplines
    
  • And let's view the difference with Tex Gyre Pagella Serif font:
    \setupbodyfont[pagella,10pt]
    
    \startbuffer[line]
    The quick brown fox jumps over the lazy dog
    \stopbuffer
    
    \startlines
    \normal{\getbuffer[line]}
    \italic{\getbuffer[line]}
    \bold{\getbuffer[line]}
    \bolditalic{\getbuffer[line]}
    \stoplines
    

You can switch to any other font with \switchtobodyfont.

How to mix the provided fonts

#1. With \definefontfamily, give a name to the set of fonts you want to use, and indicate a first font.
  • Let's start with a Serif font, for which TeX practice is to refer to them as rm for Roman
\definefontfamily[MyFontIdentifier][rm][familynameoftheseriffont]
  • !!! WARNING !!!, , it's not the typescript name that we have to use, but the family name of the font
    • see under each preview in the overview table
    • or use mtxrun --script font --list --file -pattern=*typescriptname* like mtxrun --script font --list --file -pattern=*pagella*
#2. For the other fonts, just continue to add them to your font family.
  • ss for Sans Serif, tt for TypewriTer, mm for MatheMatics.
\definefontfamily[MyFontIdentifier][ss][familynameofthesansseriffont]
\definefontfamily[MyFontIdentifier][tt][familynameofthemonospacedfont]
\definefontfamily[MyFontIdentifier][mm][familynameofthemathfont]
  • As you see, a limit here is that in TeX practice, we only have one roman, one sans serif... per font family.
  • in order to use more fonts, like width variation ("condensed",...), and weight variation ("light",...), we have to define other font family (MyFontIdentifier-condensed, MyFontIdentifier-light), and to switch between them along the document, with \switchtobodyfont.
#3. Declare your font family as the default for your document with \setupbodyfont, as you would do for a typescript.
\setupbodyfont[MyFontIdentifier]


Example

  • This basic input is typeset with the default font, Latin Modern:
    \setupbodyfont[12pt]
    
    
    
    
    
    {\rm    The quick brown fox jumps over the lazy dog}\\
    {\rm\bf The quick brown fox jumps over the lazy dog}\\
    {\rm\it The quick brown fox jumps over the lazy dog}\\
    \\
    {\ss    The quick brown fox jumps over the lazy dog}\\
    {\ss\bf The quick brown fox jumps over the lazy dog}\\
    {\ss\it The quick brown fox jumps over the lazy dog}\\
    \\
    {\tt    The quick brown fox jumps over the lazy dog}\\
    {\tt\bf The quick brown fox jumps over the lazy dog}\\
    {\tt\it The quick brown fox jumps over the lazy dog}\\
    \\
    Inline math: $x = \frac{y}{2z} + x_{\text{center}}$\\
    
  • And let's view the difference with our new set of fonts:
    \setupbodyfont[12pt]
    \definefontfamily [MyFontIdentifier] [rm] [texgyrepagella]
    \definefontfamily [MyFontIdentifier] [ss] [texgyreadventor]
    \definefontfamily [MyFontIdentifier] [tt] [texgyrecursor]
    \definefontfamily [MyFontIdentifier] [mm] [stixtwomath]
    \setupbodyfont[MyFontIdentifier]
    {\rm    The quick brown fox jumps over the lazy dog}\\
    {\rm\bf The quick brown fox jumps over the lazy dog}\\
    {\rm\it The quick brown fox jumps over the lazy dog}\\
    \\
    {\ss    The quick brown fox jumps over the lazy dog}\\
    {\ss\bf The quick brown fox jumps over the lazy dog}\\
    {\ss\it The quick brown fox jumps over the lazy dog}\\
    \\
    {\tt    The quick brown fox jumps over the lazy dog}\\
    {\tt\bf The quick brown fox jumps over the lazy dog}\\
    {\tt\it The quick brown fox jumps over the lazy dog}\\
    \\
    Inline math: $x = \frac{y}{2z} + x_{\text{center}}$\\