Difference between revisions of "Fonts"

From Wiki
Jump to navigation Jump to search
Line 236: Line 236:
  
 
Style, see the font chapter, of the never really issued Reference Manual:
 
Style, see the font chapter, of the never really issued Reference Manual:
* [http://pmrb.free.fr/contextref.pdf#&#[145,{%22name%22:%22Fit%22}] in the whole manual]
+
* [http://pmrb.free.fr/contextref.pdf#[145,{%22name%22:%22Fit%22}] in the whole manual]
* [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf#[4,{%22name%22:%22Fit%22}] as a separate document]
+
* [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf#[3,{%22name%22:%22Fit%22}] as a separate document] section "Simple font definitions"
  
 
== Already prepared typescript files ==
 
== Already prepared typescript files ==

Revision as of 14:12, 1 June 2020

How to use one of the provided fonts: 4 steps, 10 sec.

#1. First, be aware of the 21 fonts provided and their "nickname".
#2. Give a name to the set of fonts you want to use and select a first font
  • Use the command \definefontfamily.
  • Let's take an example, for a Serif font, for which TeX practice is to refer to them as roman (=rm)
  • \definefontfamily[MyFontIdentifier][rm][nickname of the serif font]
#3. Declare it as your default font family for your document
#4. Specify the font size
  • \setupbodyfont[xxpt]

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[12pt]
    {The quick brown fox jumps over the lazy dog}\\
    {\bf The quick brown fox jumps over the lazy dog}\\
    {\it The quick brown fox jumps over the lazy dog}\\
    
  • And let's add the two lines, using Tex Gyre Pagella Serif font (ref:texgyrepagella):
    \definefontfamily [MyFontIdentifier] [rm] [texgyrepagella]
    \setupbodyfont[MyFontIdentifier]
    \setupbodyfont[12pt]
    {The quick brown fox jumps over the lazy dog}\\
    {\bf The quick brown fox jumps over the lazy dog}\\
    {\it The quick brown fox jumps over the lazy dog}\\
    

How to use more than one of the provided fonts: 1 step, 5 sec.

#1. Very similarly to above, just add more font in your font family.
  • for a Sans Serif font, for which TeX practice is to refer to them as Sans Serif (=ss)
  • \definefontfamily[MyFontIdentifier][ss][refcode to the sans serif font]
  • for a monospaced font, for which TeX practice is to refer to them as TypewriTer (=tt)
  • \definefontfamily[MyFontIdentifier][tt][refcode to the monospaced font]
  • for a math font, for which TeX practice is to refer to them as MatheMatics (=mm)
  • \definefontfamily[MyFontIdentifier][mm][refcode to the math font]
  • the limit is that in TeX practice, we only have one roman, one sans serif, per font family.
  • in order to use more (like variation condensed, extralight etc...) we have to define other font family (MyFontIdentifier-condensed, MyFontIdentifier-light)

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}\\
    
  • And by adding the two lines discussed above, and using the reference to Tex Gyre Pagella Serif font (texgyrepagella) we obtain:
    \definefontfamily [MyFontIdentifier] [rm] [texgyrepagella]
    \definefontfamily [MyFontIdentifier] [ss] [texgyreadventor]
    \definefontfamily [MyFontIdentifier] [tt] [texgyrecursor]
    \setupbodyfont[MyFontIdentifier]
    \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}\\
    

Using a newly downloaded font

Quickly use one of the styles (3 steps, 1 min.)

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 styles:

  • 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 on in your input files.
\definedfont[file:NotoSerif-BoldItalic at 12pt]
The quick brown fox jumps over the lazy dog

result of test with noto-serif one.png

Use all the styles (3 steps, 1 min.)

#1. Define them as a new typescript (ConTeXt vocabulary) in your input file.
\starttypescript [serif] [notoserif]
  \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. Define them as part of your font family, here as a roman
\definefontfamily [MyFontIdentifier] [rm] [notoserif]
#3. You are done! Finally, we have the following input file
\starttypescript [serif] [notoserif]
  \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

\definefontfamily [MyFontIdentifier] [rm] [notoserif]

\setupbodyfont[MyFontIdentifier]
\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}\\

And it gives:

result of test with noto-serif.png

Next ?

You want to play with bigger set of font ?

For example, how to use the 7 weights of Noto Serif SC ?

  • Extra-light 200
  • Light 300
  • Regular 400
  • Medium 500
  • Semi-bold 600
  • Bold 700
  • Black 900

You have to define specific name like

  • \starttypescript [serif] [notoserifscextralight]
  • \starttypescript [serif] [notoserifsclight]
  • \starttypescript [serif] [notoserifscreg]
  • \starttypescript [serif] [notoserifscmed]

and you will switch between each other with \switchtobodyfont[notoserifscxxx] like it's done for this example of the available fonts.

There are any ready to go typpescript file, tex/texmf-context/tex/context/fonts/mkiv/ for example :

  • Included
    • DejaVu with \setupbodyfont[dejavu] or condensed version with \setupbodyfont[dejavu-condensed]
    • Gentium with \setupbodyfont[gentium]
    • Iwona with \setupbodyfont[iwona]
    • Kurier with \setupbodyfont[kurier]
    • Latin Modern with \setupbodyfont[latinmodern]
    • Gentium with \setupbodyfont[gentium]
  • Non included
    • Sabon MT with \setupbodyfont[sabon]
    • Cambria with \setupbodyfont[cambria]
    • Garamond with \setupbodyfont[ebgaramond]
    • Zapfino MT with \setupbodyfont[zapfino]
    • Optima Nova with \setupbodyfont[optima-nova], or \setupbodyfont[optima-nova-light] \setupbodyfont[optima-nova-medium]
    • Palatino Nova with \setupbodyfont[palatino-nova], or \setupbodyfont[palatino-nova-light] \setupbodyfont[palatino-nova-medium], and \setupbodyfont[palatino-sans] \setupbodyfont[palatino-informal]
    • Liberation with \setupbodyfont[liberation]
    • Libertine with \setupbodyfont[liberatine]
    • Lucida with \setupbodyfont[lucida-opentype] OR \setupbodyfont[lucida]
    • Minion with \setupbodyfont[minion]
    • MacOSx default: baskerville, gillsans, futura, helvetica-neue and -ultralight, -light, -boldcondensed, ...
    • IMB plex :
      • plex, -thin, -extralight, -light, -text, -medium, -semibold, -bold
      • ibmplexnarrow, -thin, -extralight, -light



You have to define "definefontfallback"

A quite complete example: Alegreya_Typescript

And to swith during

I want IBM Plex

  • Sans — Thin
  • Sans — Thin Italic
  • Sans — Regular
  • Sans — Regular Italic
  • Sans — Bold
  • Sans — Bold Italic
  • Sans Condensed — Regular
  • Sans Condensed — Regular Italic
  • Serif — Regular
  • Serif — Regular Italic
  • Mono — Regular
  • Mono — Regular Italic

Style, see the font chapter, of the never really issued Reference Manual:

Already prepared typescript files

I just want to use fonts of my system

I want use specific features

  • Small caps
  • Ligatures
  • Kerning
  • expansion=quality
  • protrusion=quality,
  • other: tlig, ccmp, fonts-mkiv.pdf page 65.


weight light, regular, medium, bold, extra... width : condensed, Semi Condensed , regular, Semi Extended , Extended shape : regular, italic caps : regular, smallcaps

Liens

I just have realised that \definefont requires fontname of font not identifier neither familyname.



TODO: naming conventions for definefontssymonym ? (See: To-Do List)


Template:todo:How to use font from your system.