Open main menu

Difference between revisions of "Fonts"

 
(206 intermediate revisions by 5 users not shown)
Line 1: Line 1:
= How to use one of the provided fonts: 4 steps, 10 sec. =
+
{| class="wikitable" style="margin:auto; width: 70%;"
 
+
|-
; #1. First, be aware of the [[ConTeXt distribution's Fonts|21 fonts provided]] and their "nickname".
+
! style="width: 50%"| Tutorials (learning)
:* If required, you can [[Mtxrun#fonts| regenerate the font database]] <code>mtxrun --script font --reload --force</code>
+
! style="width: 50%"| How-to guides (goals)
 
+
|-
; #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:
+
* [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
<context source=yes>
+
* [https://articles.contextgarden.net/journal/2018/83-94.pdf <i>Font installation example: IBM Plex (2018)</i>] by Taco Hoekwater and Pavneet Arora
\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. =
+
* See below on this [[Fonts#How-to_guides|Fonts central page]]
 
+
* [[:Category:Fonts | Wiki pages in Fonts category]]
; #1. Very similarly to above, just select a second font
+
|-
:* for a Sans Serif font, for which TeX practice is to refer to them as '''Sans Serif''' (=ss)
+
! Explanation (understanding) !! Reference (information)
:* <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>
 
 
 
 
 
== Example ==
 
{{TwoColumnsUnderLevel1
 
 
|
 
|
This basic input is typeset with the default font, Latin Modern:
+
* [http://www.pragma-ade.nl/general/manuals/fonts-mkiv.pdf 2016 Fonts manual, all the details] for advanced users
<context source=yes>
+
* [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf the 2013 font chapter] as a separate document
\setupbodyfont[12pt]
+
* [http://pmrb.free.fr/contextref.pdf#&#91;145,{%22name%22:%22Fit%22}&#93; 2013 reference manual] never officially released, with the 2013 font chapter
{\rm    The quick brown fox jumps over the lazy dog}\\
+
|
{\rm\bf The quick brown fox jumps over the lazy dog}\\
+
The [[:Category:Command/Fonts | commands in Fonts category]]
{\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 shoud 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>
 
 
 
[[File: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] [notoserifsc-extralight]
 
* \starttypescript [serif] [notoserifsc-light]
 
* \starttypescript [serif] [notoserifsc]
 
* \starttypescript [serif] [notoserifmedium]
 
 
 
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
 
 
 
== Already prepared typescript files ==
 
 
 
== I just want to use fonts of my system ==
 
 
 
== I want use specific features ==
 
  
* Small caps
+
= How-to guides =  
* Ligatures
 
* Kerning
 
* expansion=quality
 
* protrusion=quality,
 
* other: tlig, ccmp, fonts-mkiv.pdf page 65.
 
  
 +
* '''[[Fonts/Use fonts distributed with ConTeXt| Use fonts distributed with ConTeXt]]'''
 +
** How to use the [[Fonts/ConTeXt distribution's Fonts|21 provided fonts]].
 +
** These are the basics you may want to start with, in 2 or 3 steps, less than 3 minutes.
 +
* '''[[Fonts/Use_the_fonts_you_want| Use any other font ]]'''
 +
** Case 1: Quick "one shot" (< 5min.)
 +
** Case 2: Comprehensive approach (~10min.)
 +
* '''[[Fonts/Font Switching| "Font Switching", or "how-to use the different fonts within your document"]]'''
 +
** 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...
 +
* '''[[Fonts/Featuresets|OpenType features]]''' for some common options for {{cmd|definefontfeature}} like:
 +
** '''[[Fonts/Ligatures|Ligatures]]'''
 +
** '''[[Fonts/Protrusion]]''' (also known as hanging or font handling)
 +
* '''[[Fonts/Typescripts examples|Typescripts examples]]'''
 +
* Technical details
 +
** [[Fonts/Optical Size | How to set up a font family with optical size options]]
 +
** [[Fonts/Fontsize | What defines the size in a font]] ('natural' size. 'design' size)
 +
** Get examples from [https://source.contextgarden.net/?search=s-fonts- s-fonts- files], that you can compile and/or use as module for own fonts (with lua font goodies)
  
 +
== To tidy ==
  
{{todo|naming conventions for definefontssymonym ?}}
+
* Work is also needed to merge content from [[Fonts/Fonts_in_LuaTeX| Fonts in LuaTeX]] in the pages above.
 +
* For older content, refering to mkii, we keep a [[Fonts - Old Content|specific zone in the wiki]].
  
{{todo:How to use font from your system.}}
+
[[Category:Fonts]]

Latest revision as of 20:18, 17 May 2024

Tutorials (learning) How-to guides (goals)
Explanation (understanding) Reference (information)

The commands in Fonts category

How-to guides

To tidy