Difference between revisions of "Fonts"

From Wiki
Jump to navigation Jump to search
m (Text replacement - "pragma-ade.com" to "pragma-ade.nl")
 
(200 intermediate revisions by 3 users not shown)
Line 1: Line 1:
= #1. How to use the provided fonts in 5 sec. =
+
__NOTOC__
  
# First, be aware of the 21 fonts provided by the [[ConTeXt distribution's Fonts]].
+
Using fonts with TeX was once a Jedi fight, before XeTeX and LuaTeX development. Nowadays, using fonts is simple.
#* If required, you can [[Mtxrun#fonts| regenerate the font database]] <code>mtxrun --script font --reload --force</code>
 
<!------>
 
# Give a name to the font family you want to use for both with {{cmd|definefontfamily}}. It will be called the '''typescript identifier'''
 
#* For example, for a Serif font, for which TeX practice is to refer to them as '''roman''' (=rm)
 
#* <texcode>\definefontfamily[MyFontIdentifier][rm][refcode to the serif font]</texcode>
 
<!------>
 
# Declare it as your default font family for your document, with {{cmd|setupbodyfont}}, and specify the font size.
 
#* \setupbodyfont[MyFontIdentifier at xxpt]
 
  
<context source=yes text="This produces:"">
+
= Using fonts =  
\definefontfamily [MyFontIdentifier] [rm] [gentium]
 
\setupbodyfont[MyFontIdentifier]
 
The quick brown fox jumps over the lazy dog
 
</context>
 
  
<context source=yes text="To compare with default (i.e. with Latin Modern:"">
+
You will find here the preliminary steps before actually playing with the fonts in your input file.
The quick brown fox jumps over the lazy dog
+
At the end, with one or two commands, you will make your document enable to use any fonts available on your computer.
</context>
 
  
  
<context source=yes text="This produces:"">
+
{{TwoColumnsHighlight
%= Specific layout for rendering on the wiki
+
|
\definepapersize[sheet][width=16cm,height=11cm]
+
=== [[Use fonts distributed with ConTeXt| Use fonts distributed with ConTeXt]] ===  
\setuppapersize[sheet]
+
* How to use the [[ConTeXt distribution's Fonts|21 provided fonts]].
\setuplayout[topspace=0.5mm,           
+
* These are the basics you may want to start with, in 2 or 3 steps, less than 3 minutes.
            backspace=0.5mm,
+
|
            header=0pt,
+
=== [[Use_the_fonts_you_want| Use any other font ]] ===
            headerdistance=0pt,
+
* Case 1: Quick "one shot" (< 5min.)
            footer=0pt,
+
* Case 2: Comprehensive approach (~10min.)
            footerdistance=0pt,
+
}}
            width=15cm,
 
            height=11cm]
 
%
 
\definefontfamily [latinmodernroman] [rm] [latinmodernroman]
 
\definefontfamily [latinmodernsans]  [rm] [latinmodernsans]
 
\definefontfamily [latinmodernmono]  [rm] [latinmodernmono]
 
\definefontfamily [texgyreadventor]  [rm] [texgyreadventor]
 
\definefontfamily [texgyrebonum]    [rm] [texgyrebonum]
 
\definefontfamily [texgyrecursor]    [rm] [texgyrecursor]
 
\definefontfamily [texgyrechorus]    [rm] [texgyrechorus]
 
\definefontfamily [texgyrepagella]  [rm] [texgyrepagella]
 
\definefontfamily [texgyreshola]    [rm] [texgyreshola]
 
\definefontfamily [texgyretermes]    [rm] [texgyretermes]
 
\definefontfamily [dejavuserif]      [rm] [dejavuserif]
 
\definefontfamily [dejavusans]      [rm] [dejavusans]
 
\definefontfamily [dejavusansmono]  [rm] [dejavusansmono]
 
\definefontfamily [gentium]          [rm] [gentium]
 
\setupbodyfont[latinmodernroman]
 
%
 
\setupbodyfont[12pt]  %== Doesn't in the wiki if different, but ok on https://live.contextgarden.net/
 
%
 
\starttext
 
%
 
\startitemize[n,packed]
 
                                    \item The quick brown fox jumps over the lazy dog (default)\\
 
\switchtobodyfont[latinmodernroman] \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[latinmodernsans]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[latinmodernmono]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyreadventor]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrebonum]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrechorus]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrecursor]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrepagella]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyreshola]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyretermes]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[dejavuserif]      \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[dejavusans]      \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[dejavusansmono]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[gentium]          \item The quick brown fox jumps over the lazy dog\\
 
\stopitemize
 
  
  
\stoptext
+
The actual use of fonts within your document is detailed in '''[[Font Switching]]''':
</context>
+
* how to define font size,
 +
* how to use alternative styles like regular / bold / italic / small caps
 +
* how to switch between serif, sans serif, monospaced, or to another fonts with {{cmd|switchtobodyfont}}
 +
* how to underline, strike...
  
 +
= Advanced stuff =
  
 +
== The Manuals ==
  
 +
* [http://www.pragma-ade.nl/general/manuals/fonts-mkiv.pdf 2016 Fonts manual, all the details] for advanced users
 +
* [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf the 2013 font chapter] as a separate document
 +
* [http://pmrb.free.fr/contextref.pdf#&#91;145,{%22name%22:%22Fit%22}&#93; 2013 reference manual] never officially released, with the 2013 font chapter
  
#* There is mainly 2 major kind of fonts you want to setup : '''serif''' and '''sans serif'''.
+
== Deep dive into typescripts ==
  
#* the command {{cmd|rm}} , as Roman, will switch to Serif font
+
* [[Typescripts examples]] look at the existing examples to build your own Typescripts.
#* the command {{cmd|ss}} , as Sans Serif, will switch to Sans Serif font
+
* [[Featuresets]], and here some of common option for {{cmd|definefontfeature}}
 +
** <code>onum=yes</code> for old style numbers, vs <code>lnum=yes</code> for lining numbers
 +
** <code>kern=yes</code> for kerning
 +
** See [[Ligatures]] (2017). <code>liga=yes</code> for common ligature and <code>dlig=yes</code> for discretionary ligature (like st), <code>calt=yes</code> for contextual alternates.
 +
** for small caps, the font must propose Caps variation like "EBGaramondSC12-Regular.otf" et "AlegreyaSC-Regular.otf"
 +
** [https://helpx.adobe.com/fonts/using/open-type-syntax.html Syntax for OpenType features] from Adobe
 +
* [[Fontsize|What defines the size in a font?]] (2019)
 +
* [[Optical Size|How to set up a font family with optical size options]]
 +
* [[Protrusion]] (also known as hanging or font handling) is a more subtle typographic effect  (2012 need update).
  
 +
* [https://source.contextgarden.net/?search=s-fonts- the source browser] for s-fonts- files, that a user can run (to get an example) or use as module for own fonts
 +
* Lua Font Goodies with examples.
  
<context source=yes text="This produces:"">
 
%= Specific layout for rendering on the wiki
 
\definepapersize[sheet][width=16cm,height=11cm]
 
\setuppapersize[sheet]
 
\setuplayout[topspace=0.5mm,           
 
            backspace=0.5mm,
 
            header=0pt,
 
            headerdistance=0pt,
 
            footer=0pt,
 
            footerdistance=0pt,
 
            width=15cm,
 
            height=11cm]
 
%
 
\definefontfamily [latinmodernroman] [rm] [latinmodernroman]
 
\definefontfamily [latinmodernsans]  [rm] [latinmodernsans]
 
\definefontfamily [latinmodernmono]  [rm] [latinmodernmono]
 
\definefontfamily [texgyreadventor]  [rm] [texgyreadventor]
 
\definefontfamily [texgyrebonum]    [rm] [texgyrebonum]
 
\definefontfamily [texgyrecursor]    [rm] [texgyrecursor]
 
\definefontfamily [texgyrechorus]    [rm] [texgyrechorus]
 
\definefontfamily [texgyrepagella]  [rm] [texgyrepagella]
 
\definefontfamily [texgyreshola]    [rm] [texgyreshola]
 
\definefontfamily [texgyretermes]    [rm] [texgyretermes]
 
\definefontfamily [dejavuserif]      [rm] [dejavuserif]
 
\definefontfamily [dejavusans]      [rm] [dejavusans]
 
\definefontfamily [dejavusansmono]  [rm] [dejavusansmono]
 
\definefontfamily [gentium]          [rm] [gentium]
 
\setupbodyfont[latinmodernroman]
 
%
 
\setupbodyfont[12pt]  %== Doesn't in the wiki if different, but ok on https://live.contextgarden.net/
 
%
 
\starttext
 
%
 
\startitemize[n,packed]
 
                                    \item The quick brown fox jumps over the lazy dog (default)\\
 
\switchtobodyfont[latinmodernroman] \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[latinmodernsans]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[latinmodernmono]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyreadventor]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrebonum]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrechorus]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrecursor]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyrepagella]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyreshola]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[texgyretermes]    \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[dejavuserif]      \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[dejavusans]      \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[dejavusansmono]  \item The quick brown fox jumps over the lazy dog\\
 
\switchtobodyfont[gentium]          \item The quick brown fox jumps over the lazy dog\\
 
\stopitemize
 
  
 +
Finally, for older content, refering to mkii, we keep a [[Fonts - Old Content|specific zone in the wiki]]. Work is also need to merge content of [[Fonts_in_LuaTeX]] here.
  
\stoptext
+
 
</context>
+
* {{cmd|definefontfamily}}
 +
* {{cmd|definedfont}}
 +
 
 +
 
 +
[[Category:Fonts]]

Latest revision as of 08:26, 2 July 2022


Using fonts with TeX was once a Jedi fight, before XeTeX and LuaTeX development. Nowadays, using fonts is simple.

Using fonts

You will find here the preliminary steps before actually playing with the fonts in your input file. At the end, with one or two commands, you will make your document enable to use any fonts available on your computer.



The actual use of fonts within your document is detailed in Font Switching:

  • how to define font size,
  • how to use alternative styles like regular / bold / italic / small caps
  • how to switch between serif, sans serif, monospaced, or to another fonts with \switchtobodyfont
  • how to underline, strike...

Advanced stuff

The Manuals

Deep dive into typescripts

  • the source browser for s-fonts- files, that a user can run (to get an example) or use as module for own fonts
  • Lua Font Goodies with examples.


Finally, for older content, refering to mkii, we keep a specific zone in the wiki. Work is also need to merge content of Fonts_in_LuaTeX here.