Difference between revisions of "Fonts"

From Wiki
Jump to navigation Jump to search
(32 intermediate revisions by the same user not shown)
Line 1: Line 1:
= How to use one of the provided fonts: 4 steps, 10 sec. =
+
* [[Use_the_fonts_of_the_distribution_(2020)]]
 +
** [[Use_the_fonts_of_the_distribution_complexe]] (to delete after)
 +
* [[Use_fonts_not_provided_by_the_distribution_(2020)]]
  
; #1. First, be aware of the [[ConTeXt distribution's Fonts|21 fonts provided]] and their "nickname".
 
:* If required, you can [[Mtxrun#fonts| regenerate the font database]] <code>mtxrun --script font --reload --force</code>
 
 
; #2. Give a name to the set of fonts you want to use and select a first font
 
:* Use the command {{cmd|definefontfamily}}.
 
:* Let's take an example, for a Serif font, for which TeX practice is to refer to them as '''roman''' (=rm)
 
:* <texcode>\definefontfamily[MyFontIdentifier][rm][nickname of the serif font]</texcode>
 
 
; #3. Declare it as your default font family for your document
 
:* Use the command with {{cmd|setupbodyfont}}
 
:* <texcode>\setupbodyfont[MyFontIdentifier]</texcode>
 
 
; #4. Specify the font size
 
:* <texcode>\setupbodyfont[xxpt]</texcode>
 
 
To learn how to use different alternative styles of a given font, like regular / bold / italic, see the [[Font_Switching]] in the [[Basics]].
 
 
== Example ==
 
{{TwoColumnsUnderLevel1
 
|
 
Let see what give the defaults:
 
<context source=yes>
 
\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}\\
 
</context>
 
|
 
And let's add the two lines, using Tex Gyre Pagella Serif font (ref:texgyrepagella):
 
<context source=yes>
 
\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}\\
 
</context>
 
}}
 
 
= 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)
 
:* <texcode>\definefontfamily[MyFontIdentifier][ss][refcode to the sans serif font]</texcode>
 
:* for a monospaced font, for which TeX practice is to refer to them as '''TypewriTer''' (=tt)
 
:* <texcode>\definefontfamily[MyFontIdentifier][tt][refcode to the monospaced font]</texcode>
 
:* for a math font, for which TeX practice is to refer to them as '''MatheMatics''' (=mm)
 
:* <texcode>\definefontfamily[MyFontIdentifier][mm][refcode to the math font]</texcode>
 
:* 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 ==
 
{{TwoColumnsUnderLevel1
 
|
 
This basic input is typeset with the default font, Latin Modern:
 
<context source=yes>
 
\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}\\
 
</context>
 
|
 
And by adding the two lines discussed above, and using the reference to Tex Gyre Pagella Serif font (texgyrepagella) we obtain:
 
<context source=yes>
 
\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}\\
 
</context>
 
}}
 
 
= How to use my new font: 6 steps, 3 minutes =
 
 
Let's take a example, we want to use [https://fonts.google.com/specimen/Noto+Serif Noto Serif].
 
 
; #1. Download
 
:*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
 
 
; #2. Store them is a dedicated folder
 
:* create a "Noto-serif" in the ConTeXt distribution <code>tex/texmf-fonts</code>.
 
:* unzip and store the .ttf file in <code>tex/texmf-fonts/Noto-serif/</code>.
 
 
; #3. Regenerate ConTeXt databases
 
:* the file database:  <code>mtxrun --generate</code>
 
:* the fonts database: <code>mtxrun --script font --reload</code>
 
 
; #4. Check if the 4 files are identified by ConTeXt now:
 
:* <code>mtxrun --script font --list --file -pattern=*noto*</code>
 
 
; #5. Define them as a new typescript (ConTeXt vocabulary) in your input file.
 
:* Use the commands {{cmd|starttypescript}} and {{cmd|definefontsynonym}} to declare
 
 
<texcode>
 
\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
 
</texcode>
 
 
; #6. Define them as part of your font family, here as a roman
 
<texcode>
 
\definefontfamily [MyFontIdentifier] [rm] [notoserif]
 
</texcode>
 
 
 
Finally, we have:
 
 
<texcode>
 
\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}\\
 
</texcode>
 
 
And it gives:
 
 
[[File:result_of_test_with_noto-serif.png]]
 
  
 
= Next ? =
 
= Next ? =
Line 175: Line 24:
  
 
and you will switch between each other with \switchtobodyfont[notoserifscxxx] like it's done [[ConTeXt_distribution's_Fonts#Overview| for this example of the available fonts]].
 
and you will switch between each other with \switchtobodyfont[notoserifscxxx] like it's done [[ConTeXt_distribution's_Fonts#Overview| 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
 +
 +
  
  
Line 196: Line 71:
 
* Mono — Regular
 
* Mono — Regular
 
* Mono — Regular Italic
 
* Mono — Regular Italic
 +
 +
Style, see the font chapter, of the never really issued Reference Manual:
 +
* [http://pmrb.free.fr/contextref.pdf#&#91;145,{%22name%22:%22Fit%22}&#93; in the whole manual]
 +
* [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf#&#91;3,{%22name%22:%22Fit%22}&#93; as a separate document] section "Simple font definitions"
  
 
== Already prepared typescript files ==
 
== Already prepared typescript files ==
Line 211: Line 90:
  
  
 +
weight light, regular, medium, bold, extra...
 +
width : condensed, Semi Condensed , regular, Semi Extended , Extended
 +
shape : regular, italic
 +
caps : regular, smallcaps
 +
 +
= Liens =
 +
 +
* [[Style_and_Color_Parameters]]
 +
* {{cmd|definefontfamily}}
 +
* {{cmd|definedfont}}
 +
 +
I just have realised that \definefont requires fontname of font not identifier neither familyname.
 +
 +
https://source.contextgarden.net/tex/context/fonts/mkiv
  
 
{{todo|naming conventions for definefontssymonym ?}}
 
{{todo|naming conventions for definefontssymonym ?}}
  
 
{{todo:How to use font from your system.}}
 
{{todo:How to use font from your system.}}

Revision as of 14:38, 1 June 2020


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.

https://source.contextgarden.net/tex/context/fonts/mkiv


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


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