|
|
(193 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: 100%;" |
− | | + | |- |
− | ; #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 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)
| + | ! 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>
| |
− | :* 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:
| + | * [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#[145,{%22name%22:%22Fit%22}] 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>
| |
− | }}
| |
− | | |
− | = Using a newly downloaded font (5 steps, 1 min.) =
| |
− | | |
− | 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:
| |
− | * Regular 400 | |
− | * Regular 400 italic
| |
− | * Bold 700
| |
− | * Bold 700 italic
| |
− | | |
− | ; #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 file database: <code>mtxrun --generate</code>
| |
− | :* the fonts database: <code>mtxrun --script font --reload</code>
| |
− | :* and check the situation <code>mtxrun --script font --list --file -pattern=*noto*</code>:
| |
− | <texcode>familyname weight style width variant fontname filename subfont fontweight
| |
− | | |
− | notoserif bold normal normal normal notoserifbold NotoSerif-Bold.ttf
| |
− | 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.
| |
− | :* Use the commands {{cmd|\definedfont}}
| |
− | <texcode>
| |
− | \definedfont[file:NotoSerif-BoldItalic at 18pt]
| |
− | </texcode>
| |
− | | |
− | | |
− | ; #6. 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>
| |
− | | |
− | ; #7. 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.
| |
− | | |
− | | |
− | | |
− | = Liens =
| |
| | | |
− | * [[Style_and_Color_Parameters]]
| + | = How-to guides = |
− | * {{cmd|definefontfamily}}
| |
− | * {{cmd|definedfont}}
| |
| | | |
− | I just have realised that \definefont requires fontname of font not identifier neither familyname.
| + | * '''[[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... |
| + | * '''[[Visual_Debugging#Fonts_and_Type | Visual help and debugging]]''' for Fonts |
| + | * '''[[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]] |