Difference between revisions of "Fonts"
Jump to navigation
Jump to search
(Created page with " ConTeXt distribution's Fonts") |
|||
(76 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | = How to use one of the provided fonts: 4 steps, 10 sec. = | ||
− | [[ConTeXt distribution's Fonts]] | + | ; #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 ? = | ||
+ | |||
+ | == 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 [[ConTeXt_distribution's_Fonts#Overview| for this example of the available fonts]]. | ||
+ | |||
+ | |||
+ | 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 | ||
+ | * Ligatures | ||
+ | * Kerning | ||
+ | * expansion=quality | ||
+ | * protrusion=quality, | ||
+ | * other: tlig, ccmp, fonts-mkiv.pdf page 65. | ||
+ | |||
+ | |||
+ | |||
+ | {{todo|naming conventions for definefontssymonym ?}} | ||
+ | |||
+ | {{todo:How to use font from your system.}} |
Revision as of 21:09, 31 May 2020
Contents
How to use one of the provided fonts: 4 steps, 10 sec.
- #1. First, be aware of the 21 fonts provided and their "nickname".
-
- If required, you can regenerate the font database
mtxrun --script font --reload --force
- If required, you can regenerate the font database
- #2. Give a name to the set of fonts you want to use and select a first font
-
- Use the command \definefontfamily.
- Let's take an example, for a Serif font, for which TeX practice is to refer to them as roman (=rm)
\definefontfamily[MyFontIdentifier][rm][nickname of the serif font]
- #3. Declare it as your default font family for your document
-
- Use the command with \setupbodyfont
\setupbodyfont[MyFontIdentifier]
- #4. Specify the font size
-
\setupbodyfont[xxpt]
To learn how to use different alternative styles of a given font, like regular / bold / italic, see the Font_Switching in the Basics.
Example
-
Let see what give the defaults:
\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}\\
-
And let's add the two lines, using Tex Gyre Pagella Serif font (ref:texgyrepagella):
\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}\\
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)
\definefontfamily[MyFontIdentifier][ss][refcode to the sans serif font]
- for a monospaced font, for which TeX practice is to refer to them as TypewriTer (=tt)
\definefontfamily[MyFontIdentifier][tt][refcode to the monospaced font]
- for a math font, for which TeX practice is to refer to them as MatheMatics (=mm)
\definefontfamily[MyFontIdentifier][mm][refcode to the math font]
- 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
-
This basic input is typeset with the default font, Latin Modern:
\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}\\
-
And by adding the two lines discussed above, and using the reference to Tex Gyre Pagella Serif font (texgyrepagella) we obtain:
\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}\\
How to use my new font: 6 steps, 3 minutes
Let's take a example, we want to use 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
- The google website enable us to download a zip file with the 4 alternative styles:
- #2. Store them is a dedicated folder
-
- create a "Noto-serif" in the ConTeXt distribution
tex/texmf-fonts
. - unzip and store the .ttf file in
tex/texmf-fonts/Noto-serif/
.
- create a "Noto-serif" in the ConTeXt distribution
- #3. Regenerate ConTeXt databases
-
- the file database:
mtxrun --generate
- the fonts database:
mtxrun --script font --reload
- the file database:
- #4. Check if the 4 files are identified by ConTeXt now
-
mtxrun --script font --list --file -pattern=*noto*
- #5. Define them as a new typescript (ConTeXt vocabulary) in your input file.
-
- Use the commands \starttypescript and \definefontsynonym to declare
\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
- #6. Define them as part of your font family, here as a roman
\definefontfamily [MyFontIdentifier] [rm] [notoserif]
Finally, we have:
\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}\\
And it gives:
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.
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
- Ligatures
- Kerning
- expansion=quality
- protrusion=quality,
- other: tlig, ccmp, fonts-mkiv.pdf page 65.
TODO: naming conventions for definefontssymonym ? (See: To-Do List) |