Changes

Jump to navigation Jump to search
no edit summary
* '''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/.fonts;:/usr/share/fonts</code>
:* Add it to your .bashrc or shell equivalent to make the declaration permanent.
;2. Run ConTeXt to index the files and the fonts :
</texcode>
;3. Check by looking for the specific font you want to use next. A common example:
<texcode>mtxrun --script font fonts --list --file all --pattern=*helvetica*</texcode>
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}}
:* it's good to add <code>*default</code> to 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>
</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]
# 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
# It's done! Now, two lines at the beginning of any input will declare to typeset with the new fonts:
<texcode>
\usetypescriptfile[mynotoserif]% this is the 'some-name-you-like' part of the saved filename\setupbodyfont[mynotoserif]% 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 be 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