Use the fonts you want

From Wiki
Jump to navigation Jump to search

Quick use of a new font

Let's take a example, we want to use Noto Serif. The google website enable us to download a zip file with the 4 alternative variations (Regular 400, Regular 400 italic, Bold 700, Bold 700 italic).

#1. Store them is a dedicated folder
  • create a "Noto-serif" in the ConTeXt distribution tex/texmf-fonts.
  • unzip and store the .ttf file in tex/texmf-fonts/Noto-serif/.
#2. Regenerate ConTeXt databases
  • the file database: mtxrun --generate
  • the fonts database: mtxrun --script font --reload
  • and check the situation mtxrun --script font --list --file -pattern=*noto*:
familyname   weight   style    width    variant   fontname              filename                   subfont   fontweight

notoserif    bold     normal   normal   normal    notoserifbold         NotoSerif-Bold.ttf
notoserif    bold     italic   normal   normal    notoserifbolditalic   NotoSerif-BoldItalic.ttf
notoserif    normal   italic   normal   normal    notoserifitalic       NotoSerif-Italic.ttf
notoserif    normal   normal   normal   normal    notoserif             NotoSerif-Regular.ttf
#3. Your are done! You can use the font anywhere in your input files with \definedfont
\definedfont[file:NotoSerif-BoldItalic at 12pt]
The quick brown fox jumps over the lazy dog

result of test with noto-serif one.png


Use of the different font variations


#1. Define a new typescript in your input file, with \starttypescript.
  • Define the links between filenames and People-readable names with \definefontsynonym.
  • In this example, the typescript is called "mynotoserif".
\starttypescript [mynotoserif]
% \definefontsynonym[Human readable]       [file:filename without extension]
  \definefontsynonym[NotoSerif-Regular]    [file:NotoSerif-Regular]
  \definefontsynonym[NotoSerif-Italic]     [file:NotoSerif-Italic]
  \definefontsynonym[NotoSerif-Bold]       [file:NotoSerif-Bold]
  \definefontsynonym[NotoSerif-BoldItalic] [file:NotoSerif-BoldItalic]
\stoptypescript
#2. The boring step, define the links between ConTeXt basics names and the People-readable names.
  • It's good to add a fallback.
\starttypescript [mynotoserif]
  \setups[font:fallback:serif]          % security: if not found==> bask to defaults
% \definefontsynonym[ConTeXt bascics name] [Human readable]       [features=default]
  \definefontsynonym[Serif]                [NotoSerif-Regular]    [features=default]
  \definefontsynonym[SerifItalic]          [NotoSerif-Italic]     [features=default]
  \definefontsynonym[SerifBold]            [NotoSerif-Bold]       [features=default]
  \definefontsynonym[SerifBoldItalic]      [NotoSerif-BoldItalic] [features=default]
\stoptypescript
#3. Define the pack of the 4 variations as the roman typeface of the typescript "mynotoserif" 
\starttypescript [mynotoserif]
  \definetypeface [mynotoserif]    [rm] [serif] [mynotoserif]    [default]
\stoptypescript
#3. You are done! Finally, we have the following input file
\starttypescript [mynotoserif]
  \definefontsynonym[NotoSerif-Regular]    [file:NotoSerif-Regular]
  \definefontsynonym[NotoSerif-Italic]     [file:NotoSerif-Italic]
  \definefontsynonym[NotoSerif-Bold]       [file:NotoSerif-Bold]
  \definefontsynonym[NotoSerif-BoldItalic] [file:NotoSerif-BoldItalic]
\stoptypescript

\starttypescript [mynotoserif]
  \setups[font:fallback:serif]
  \definefontsynonym[Serif]                [NotoSerif-Regular]    [features=default]
  \definefontsynonym[SerifItalic]          [NotoSerif-Italic]     [features=default]
  \definefontsynonym[SerifBold]            [NotoSerif-Bold]       [features=default]
  \definefontsynonym[SerifBoldItalic]      [NotoSerif-BoldItalic] [features=default]
\stoptypescript

\starttypescript [mynotoserif]
  \definetypeface [mynotoserif]    [rm] [serif] [mynotoserif]    [default]
\stoptypescript

\setupbodyfont[mynotoserif]
\setupbodyfont[12pt]
{    The quick brown fox jumps over the lazy dog}\\
{\it The quick brown fox jumps over the lazy dog}\\
{\bf The quick brown fox jumps over the lazy dog}\\
{\bi The quick brown fox jumps over the lazy dog}\\

And it gives:

result of test with noto-serif.png

Install and use your new typescript definition

You will probably want to use the same customized typescript definition across different documents, so you have to install them in the distribution

  1. Save your file as type-(fontname|foundry).tex, for example here type-mynotoserif.tex
  2. Copy the typescript files into tex/texmf-fonts/tex/context/user/
  3. Run context --generate to update ConTeXt file database
  4. You are done!
  • Now, add \usetypescriptfile[mynotoserif] at the beginning of your input file, before \starttext
  • N\setupbodyfont[mynotoserif]

\setupbodyfont[12pt]