Difference between revisions of "Fonts"

From Wiki
Jump to navigation Jump to search
(65 intermediate revisions by the same user not shown)
Line 1: Line 1:
* [[Use_the_fonts_of_the_distribution_(2020)]]
+
__NOTOC__
** [[Use_the_fonts_of_the_distribution_complexe]] (to delete after)
 
* [[Use_fonts_not_provided_by_the_distribution_(2020)]]
 
  
 +
Using fonts with TeX was once a Jedi fight, before (2013 / 2015 ?) and LuaTeX development.
  
= Using a newly downloaded font  =
+
= Nowadays, Fonts are a piece of cake =  
  
== Quickly use one of the styles (3 steps, 1 min.) ==
+
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 of available on your computer.
  
Let's take a example, we want to use [https://fonts.google.com/specimen/Noto+Serif Noto Serif]. The google website enable us to download a zip file with the 4 alternative styles:
+
{{ThreeColumnsHighlight
* Regular 400
+
|
* Regular 400 italic
+
=== [[Use_fonts_provided_with_ConTeXt|#1 Use fonts provided with ConTeXt]] ===
* Bold 700
+
Really the basics, in 2 or 3 steps, less than 1 minute.
* Bold 700 italic
+
|
 +
=== [[Use fonts found on the web|#2 Use fonts found on the web]] ===
 +
Also the basics, in 2 or 3 steps, less than 5 minutes.
 +
|
 +
=== [[Use_fonts_of_your_Operating_System|#3 Use fonts of your Operating System]] ===
 +
Few preliminary commands, then it's as easy as '''#2'''
 +
}}
  
; #1. 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>.
 
  
; #2. Regenerate ConTeXt databases
+
The actual use of fonts within your document are details in [[Font_Switching]]:
:* the file database:  <code>mtxrun --generate</code>
+
* how to define font size,
:* the fonts database: <code>mtxrun --script font --reload</code>
+
* how to use alternative styles like regular / bold / italic / small caps
:* and check the situation <code>mtxrun --script font --list --file -pattern=*noto*</code>:
+
* how to switch between serif, sans serif, monospaced, or to another fonts with {{cmd|switchtobodyfont}}
<texcode>familyname  weight  style    width    variant  fontname              filename                  subfont  fontweight
+
* how to underline, strike...
  
notoserif    bold    normal  normal  normal    notoserifbold        NotoSerif-Bold.ttf
+
= Advanced stuff =
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
 
</texcode>
 
  
; #3. Your are done! You can use the font anywhere on in your input files.
+
{{todo| continue to link with existing and up-to-date wiki material + references to manuals + improve structure}}
:* Use the commands {{cmd|definedfont}}
 
<texcode>
 
\definedfont[file:NotoSerif-BoldItalic at 12pt]
 
The quick brown fox jumps over the lazy dog
 
</texcode>
 
[[File:result_of_test_with_noto-serif_one.png]]
 
  
== Use all the styles (3 steps, 1 min.) ==
+
== A little bit further ==
  
; #1. Define them as a new typescript (ConTeXt vocabulary) in your input file.
+
Vocabulary, What is the scope of ==> reference to manuals pages ?
:* Use the commands {{cmd|starttypescript}} and {{cmd|definefontsynonym}} to declare
+
* a font
 +
* a style
 +
* a fontfamily
 +
* a typeface
 +
* a typescript
 +
* a typescriptcollection
  
<texcode>
+
How to work with fonts which include:
\starttypescript [serif] [notoserif]
+
* different weights (light, extra-light, dark, extra-bold)
  \definefontsynonym[NotoSerif-Regular]        [file:NotoSerif-Regular]
+
* different widths (condensed, expanded)
  \definefontsynonym[NotoSerif-Italic]         [file:NotoSerif-Italic]
+
* different style (inline, shadowed, outline)
  \definefontsynonym[NotoSerif-Bold]            [file:NotoSerif-Bold]
+
* [[Fontsize|What defines the size in a font?]] (2019)
  \definefontsynonym[NotoSerif-BoldItalic]     [file:NotoSerif-BoldItalic]
+
* [[Optical Size]] ('''!!! WARNING !!!''' 2010 = TO KEEP OR NOT ?)
\stoptypescript
 
</texcode>
 
  
; #2. Define them as part of your font family, here as a roman
+
== Deep dive into typescripts ==
<texcode>
 
\definefontfamily [MyFontIdentifier] [rm] [notoserif]
 
</texcode>
 
  
; #3. You are done! Finally, we have the following input file:
+
* [https://source.contextgarden.net/?search=type-imp- the source browser] for type-imp- files.
 +
* [[Alegreya Typescript]]: a quite complete example (2019), MkIV for the Alegreya fonts by Huerta Tipográfica / Juan Pablo del Peral, downloadable from [https://fonts.google.com/?query=Alegreya Google Fonts].
 +
* [[Fraktur_fonts|Summary of experiences of three Fraktur]] (2019)
 +
* [[Typescripts_examples]] (Cf Thomas Hala)
 +
* Using Font Fallbacks (and perhaps a different page for Fallbacks for math fonts)
 +
* Creating virtual math fonts from type 1 fonts (still needed?)
  
<texcode>
+
== Activate fonts features ==
\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]
+
* Small caps
 
+
* [[Ligatures]] (2017)
\setupbodyfont[MyFontIdentifier]
+
* protrusion
\setupbodyfont[12pt]
+
* old style numbers
{\rm    The quick brown fox jumps over the lazy dog}\\
+
* Kerning
{\rm\bf The quick brown fox jumps over the lazy dog}\\
+
* [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
{\rm\it The quick brown fox jumps over the lazy dog}\\
+
* Lua Font Goodies with examples.
</texcode>
 
 
 
And it gives:
 
  
[[File:result_of_test_with_noto-serif.png]]
 
  
= Next ? =
 
  
== You want to play with bigger set of font ? ==
+
* Font chapter of the reference manual
 +
** [http://www.pragma-ade.com/general/manuals/cont-enp.pdf#&#91;106,{%22name%22:%22Fit%22}&#93; 2001 reference manual] ('''!!! WARNING !!!''' TO KEEP OR NOT TO KEEP)
 +
** [http://pmrb.free.fr/contextref.pdf#&#91;145,{%22name%22:%22Fit%22}&#93; 2013 reference manual] never officially released, with a font chapter
 +
** [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf the 2013 font chapter] as a separate document
  
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 [[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
 
 
 
 
 
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:
 
* [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 ==
 
 
== 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 =
 
 
* [[Style_and_Color_Parameters]]
 
 
* {{cmd|definefontfamily}}
 
* {{cmd|definefontfamily}}
 
* {{cmd|definedfont}}
 
* {{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:How to use font from your system.}}
 

Revision as of 20:50, 1 June 2020


Using fonts with TeX was once a Jedi fight, before (2013 / 2015 ?) and LuaTeX development.

Nowadays, Fonts are a piece of cake

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 of available on your computer.


The actual use of fonts within your document are details 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


TODO: continue to link with existing and up-to-date wiki material + references to manuals + improve structure (See: To-Do List)


A little bit further

Vocabulary, What is the scope of ==> reference to manuals pages ?

  • a font
  • a style
  • a fontfamily
  • a typeface
  • a typescript
  • a typescriptcollection

How to work with fonts which include:

  • different weights (light, extra-light, dark, extra-bold)
  • different widths (condensed, expanded)
  • different style (inline, shadowed, outline)
  • What defines the size in a font? (2019)
  • Optical Size (!!! WARNING !!! 2010 = TO KEEP OR NOT ?)

Deep dive into typescripts

Activate fonts features

  • Small caps
  • Ligatures (2017)
  • protrusion
  • old style numbers
  • Kerning
  • 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.