Changes

Jump to navigation Jump to search
no edit summary
The first step is to declare the storage locations of the fonts you want ConTeXt to consider.
Either way, ConTeXt will use fonts properly stored in its tree structure (for example, any fonts you would have downloaded from [https://www.fontsquirrel.com Fonts Squirrel] [https://fonts.google.com Google Fonts], or see [[Available Free Fonts]]).
* '''TeX users create a new folder for each new font in <code>tex/texmf-fonts/fonts/</code>''', following [http://tug.org/tds/ TeX Directory Structure].
** it helps the algorithms to deal with the incredibly wide variety of fonts's variables and parameters.
** People who handle a lot of fonts can be more structured by using *: <code>tex/texmf-fonts/fonts/truetype/vendor/fontfamily</code>.
But it it's very likely that you also want to use the '''fonts already available on your Operating System''':
;1. Specify where ConTeXt should looked for fonts, by setting the '''OSFONTDIR''' environment variable.
:* WINDOWS: <code>set OSFONTDIR=c:/windows/fonts/</code>
:* MAC: <code>export OSFONTDIR=/Library/Fonts/;:/System/Library/Fonts;:$HOME/Library/Fonts</code>:* GNU/LINUX: <code>export OSFONTDIR=$HOME/Library/Fonts/;.fonts:/Systemusr/Libraryshare/Fonts;$HOME/Library/Fontsfonts</code>
:* Add it to your .bashrc or shell equivalent to make the declaration permanent.
;2. Run ConTeXt to index the files:* update of and the file databasefonts : <codetexcode>mtxrun --generate</code>:* update of the fonts database: <code>mtxrun --script font --reload</codetexcode>;3. Check by looking for the specific font you want to use next:* a very . A common example :<codetexcode>mtxrun --script font fonts --list --file all --pattern=*helvetica*</codetexcode>
Now, let's learn how to use them for typesetting.
 
= Practical application #1 - Quick use of a new font =
Let's take a an example: we want to use [https://fonts.google.com/specimen/Noto+Serif Noto Serif].
If it is already installed on your computer, and you already updated the ConTeXt databases like shown previously, go directly to '''#2'''.
It not, you have to download and store it first. The Google website provides a zip file with the 4 alternative variations (Regular 400, Regular 400 italic, Bold 700, Bold 700 italic).
; #1. Store them is in a dedicated folder [[#Fonts location on your computer|indexed by ConTeXt]].
:* for example, create a "Noto-serif" in the ConTeXt distribution <code>tex/texmf-fonts/fonts/</code>.
:* unzip and store the .ttf file in <code>tex/texmf-fonts/fonts/Noto-serif/</code>.
; #2. Now you can check the ''fontname'' used to identify the fonts,
:*run <code>mtxrun --script font --list --file -pattern=*noto*</code>:. You should obtain something like<texcode>familyname weight style style width variant fontname filename subfont fontweight
notoserif bold bold normal normal normal normal notoserifbold NotoSerif-Bold.ttfnotoserif bold bold italic normal normal normal notoserifbolditalic NotoSerif-BoldItalic.ttfnotoserif normal italic normal normal normal notoserifitalic NotoSerif-Italic.ttfnotoserif normal normal normal normal normal notoserif NotoSerif-Regular.ttf
</texcode>
; #3. Your You are done! You can use the font anywhere in your input files with {{cmd|definedfont}} :* and it's good to add <code>*default</code> to enable benefit from default features, like for example [http://www.pragma-ade.com/general/manuals/fonts-mkiv.pdf#&#91;169,{%22name%22:%22Fit%22}&#93; kerning].
<texcode>
\definedfont[name:notoserifbolditalic*default at 12 pt]
= Practical application #2 - Use the different font variations =
* It's not nice to have to write \definedfont[filename:YourSuperFontyoursuperfont-WeightStyle weightstyle*default at xxpt] each time you want to use a particular font. * That why it's worth defining a '''typescript'''. It's just 3 steps, and less than 5 minutes. Then, you will be able to easily switch between fonts with {{cmd|tf}}, {{cmd|it}}, {{cmd|bf}}, {{cmd|bi}} (see [[Font_Switching#Font_styles_and_alternatives|Font styles and alternatives]]), and all the typesetting of your document will use a consistent set of fonts.* [[Typescripts_examples| Many typescripts are ready ]] for use on usual free and commercial fonts, and obviously for the [[ConTeXt_distribution's_Fonts|ConTeXt distribution's Fonts]].
</texcode>
; #2. The boring step, define the links between ''[https://github.com/contextgarden/context-mirror/blob/a0270f13065d116355a953c6f246cbba26289fc2/tex/context/base/mkiv/font-sel.lua#L514 ConTeXt basics names]'' and the ''People-readable names''.
:* It's good to add a fallback.
<texcode>
\starttypescript [mynotoserif]
\setups[font:fallback:serif] % security: if not found==> bask back to defaults% \definefontsynonym[ConTeXt bascics basics name] [Human readable] [features=default]
\definefontsynonym[Serif] [NotoSerif-Regular] [features=default]
\definefontsynonym[SerifItalic] [NotoSerif-Italic] [features=default]
[[File:result_of_test_with_noto-serif.png]]
 
= Install your new typescript to use it anywhere =
You will probably want to use your new customized typescript definition across different documents, so you have to install them in the distribution. Here is , we remind the definition.:
<texcode>
# Save your file as <code>type-(fontname|foundrysome-name-you-like).tex</code>, for example here <code>type-mynotoserif.tex</code>
# Copy the typescript files into <code>tex/texmf-fonts/tex/context/user/</code>
# Run <code>context --generate</code> to update ConTeXt file database
# You are It's done!Now, two lines at the beginning of any input will declare to typeset with the new fonts:<texcode>#* you can add \usetypescriptfile[mynotoserif] at % this is the beginning 'some-name-you-like' part of any input filethe saved filename#* and \setupbodyfont[mynotoserif] will declare % this is the first argument to \definetypeface</texcode> ====Note:==== The naming convention for typescript files has changed in LMTX <blockquote> There has been a change in the naming of typescript file, a simple <code>"type-"</code> prefix isn't anough anymore, you have to change it to <code>"type-imp-" </code>(e.g. type-imp-sourceserif.tex) to typeset with your new fontbe found by ConTeXt. Valid file extensions for a typescript file in LMTX (and MkIV) are "tex", "mkiv" and "mkxl"Wolfgang [20 Dec 2020]</blockquote>  [[Category:Fonts]]

Navigation menu