Difference between revisions of "Fonts"

From Wiki
Jump to navigation Jump to search
(179 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= How to use one of the provided fonts: 4 steps, 10 sec. =
+
__NOTOC__
  
; #1. First, be aware of the [[ConTeXt distribution's Fonts|21 fonts provided]].
+
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>
 
  
; #2. Give a name to the set of fonts you want to use and select a first font
+
= Using fonts =  
:* Use the command {{cmd|definefontfamily}}. Sometimes, the name of the set of font is called the "typescript identifier"
 
:* 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][refcode to the serif font]</texcode>
 
  
; #3. Declare it as your default font family for your document
+
You will find here the preliminary steps before actually playing with the fonts in your input file.
:* Use the command with {{cmd|setupbodyfont}}
+
At the end, with one or two commands, you will make your document enable to use any fonts available on your computer.
:* <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]].
+
{{TwoColumnsHighlight
 
 
== Example ==
 
{{TwoColumnsUnderLevel1
 
 
|
 
|
Let see what give the defaults:
+
=== [[Use fonts distributed with ConTeXt| Use fonts distributed with ConTeXt]] ===
<context source=yes>
+
* How to use the [[ConTeXt distribution's Fonts|21 provided fonts]].
\setupbodyfont[12pt]
+
* These are the basics you may want to start with, in 2 or 3 steps, less than 3 minutes.
{The quick brown fox jumps over the lazy dog}\\
+
|  
{\bf The quick brown fox jumps over the lazy dog}\\
+
=== [[Use_the_fonts_you_want| Use any other font ]] ===
{\it The quick brown fox jumps over the lazy dog}\\
+
* Case 1: Quick "one shot" (< 5min.)
</context>
+
* Case 2: Comprehensive approach (~10min.)
|
 
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 select a second font
+
The actual use of fonts within your document is detailed in '''[[Font Switching]]''':
:* for a Sans Serif font, for which TeX practice is to refer to them as '''Sans Serif''' (=ss)
+
* how to define font size,
:* <texcode>\definefontfamily[MyFontIdentifier][ss][refcode to the sans serif font]</texcode>
+
* how to use alternative styles like regular / bold / italic / small caps
:* for a monospaced font, for which TeX practice is to refer to them as '''TypewriTer''' (=tt)
+
* how to switch between serif, sans serif, monospaced, or to another fonts with {{cmd|switchtobodyfont}}
:* <texcode>\definefontfamily[MyFontIdentifier][tt][refcode to the monospaced font]</texcode>
+
* how to underline, strike...
  
 +
= Advanced stuff =
  
== Example ==
+
== The Manuals ==
{{TwoColumnsUnderLevel1
+
 
|
+
* [http://www.pragma-ade.nl/general/manuals/fonts-mkiv.pdf 2016 Fonts manual, all the details] for advanced users
This basic input is typeset with the default font, Latin Modern:
+
* [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf the 2013 font chapter] as a separate document
<context source=yes>
+
* [http://pmrb.free.fr/contextref.pdf#&#91;145,{%22name%22:%22Fit%22}&#93; 2013 reference manual] never officially released, with the 2013 font chapter
\setupbodyfont[12pt]
+
* [https://meeting.contextgarden.net/2021/talks/2021-09-23/typescripts-presentation.pdf ''Handling fonts in ConTEXt (2021)''] ConTEXt-Meeting 15th, 2021, Willi Egger, 38 invaluable slides
{\rm    The quick brown fox jumps over the lazy dog}\\
+
** Where to Place a New Font in ConTEXt
{\rm\bf The quick brown fox jumps over the lazy dog}\\
+
** Using System Fonts
{\rm\it The quick brown fox jumps over the lazy dog}\\
+
** Finding a Fontname
\\
+
** Example: LATO
{\ss    The quick brown fox jumps over the lazy dog}\\
+
*** Using a Font with \definedfont
{\ss\bf The quick brown fox jumps over the lazy dog}\\
+
** Typescripts
{\ss\it The quick brown fox jumps over the lazy dog}\\
+
*** Creating a Typescript for a Third-Party Font
\\
+
*** Font Fallback System
{\tt    The quick brown fox jumps over the lazy dog}\\
+
*** Setting up a Typescript
{\tt\bf The quick brown fox jumps over the lazy dog}\\
+
*** Example: LATO
{\tt\it The quick brown fox jumps over the lazy dog}\\
+
*** Setting up the Lato-Font in a Document
</context>
+
*** Font Features
|
+
*** Switching on and off Font Features
And by adding the two lines discussed above, and using the reference to Tex Gyre Pagella Serif font (texgyrepagella) we obtain:
+
** The \definebodyfont command
<context source=yes>
+
** The \definebodyfontenvironment command
\definefontfamily [MyFontIdentifier] [rm] [texgyrepagella]
+
** Defining a Typeface
\definefontfamily [MyFontIdentifier] [ss] [texgyreadventor]
+
** The Complete Typescript File
\definefontfamily [MyFontIdentifier] [tt] [texgyrecursor]
+
** Font Classes
\setupbodyfont[MyFontIdentifier]
+
** The command \usebodyfont
\setupbodyfont[12pt]
+
** References
{\rm    The quick brown fox jumps over the lazy dog}\\
+
* [https://articles.contextgarden.net/journal/2018/83-94.pdf <i>Font installation example: IBM Plex (2018)</i>] by Taco Hoekwater and Pavneet Arora
{\rm\bf The quick brown fox jumps over the lazy dog}\\
+
** Installation
{\rm\it The quick brown fox jumps over the lazy dog}\\
+
** Understanding the mtxrun output
\\
+
** Testing a few font instances
{\ss    The quick brown fox jumps over the lazy dog}\\
+
** Font repertoire
{\ss\bf The quick brown fox jumps over the lazy dog}\\
+
** Feature discovery
{\ss\it The quick brown fox jumps over the lazy dog}\\
+
** Creating typescripts
\\
+
** Fallbacks
{\tt    The quick brown fox jumps over the lazy dog}\\
+
** Stylistic alternates and other features
{\tt\bf The quick brown fox jumps over the lazy dog}\\
+
 
{\tt\it The quick brown fox jumps over the lazy dog}\\
+
== Deep dive into typescripts ==
</context>
+
 
}}
+
* [[Typescripts examples]] look at the existing examples to build your own Typescripts.
 +
* [[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.
  
  
= How to use my new font =
+
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.
  
{{todo:How to use font from your system.}}
 
  
Let's take a example, we want to use [https://fonts.google.com/specimen/Noto+Serif Noto Serif].
+
* {{cmd|definefontfamily}}
 +
* {{cmd|definedfont}}
  
; 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
 
  
; Store them is a dedicated folder
+
[[Category:Fonts]]
:; 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>.
 

Revision as of 05:45, 17 May 2024


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

  • 2016 Fonts manual, all the details for advanced users
  • the 2013 font chapter as a separate document
  • 2013 reference manual never officially released, with the 2013 font chapter
  • Handling fonts in ConTEXt (2021) ConTEXt-Meeting 15th, 2021, Willi Egger, 38 invaluable slides
    • Where to Place a New Font in ConTEXt
    • Using System Fonts
    • Finding a Fontname
    • Example: LATO
      • Using a Font with \definedfont
    • Typescripts
      • Creating a Typescript for a Third-Party Font
      • Font Fallback System
      • Setting up a Typescript
      • Example: LATO
      • Setting up the Lato-Font in a Document
      • Font Features
      • Switching on and off Font Features
    • The \definebodyfont command
    • The \definebodyfontenvironment command
    • Defining a Typeface
    • The Complete Typescript File
    • Font Classes
    • The command \usebodyfont
    • References
  • Font installation example: IBM Plex (2018) by Taco Hoekwater and Pavneet Arora
    • Installation
    • Understanding the mtxrun output
    • Testing a few font instances
    • Font repertoire
    • Feature discovery
    • Creating typescripts
    • Fallbacks
    • Stylistic alternates and other features

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.