Difference between revisions of "Fonts"

From ConTeXt wiki
(Hints by Language)
(Updated link for Junicode)
 
(27 intermediate revisions by 15 users not shown)
Line 1: Line 1:
 
< [[Visuals]] | [[Symbols]] >
 
< [[Visuals]] | [[Symbols]] >
 +
= How to use fonts in ConTeXt =
 +
'''The ConTeXt way of handling fonts are [[TypeScripts]].''' It’s a system of abstraction and aliases, which may seem “strange” at first for new users of ConTeXt.
 +
* If it fits your needs, consider first to use the former [[Simplefonts]] module, now in the core as {{src|font-sel.mkvi}}.
 +
* There is now a [http://context.aanhet.net/svn/contextman/context-reference/en/co-fonts.pdf manual chapter on fonts].
 +
* If you happen to use [[XeTeX]] then you can forget almost all the magic and start using your system fonts (see [[Fonts_in_XeTeX]]).
 +
* If you use [[LuaTeX]], see [[Fonts_in_LuaTeX]]
 +
* If you want to keep using [[pdfTeX]], read on.
  
Font handling in ConTeXt is “strange” for LaTeX users. It’s a system of abstraction and aliases, complex and mighty… But there’s help. If you happen to use [[XeTeX]], then you can forget almost all the magic and start using your system fonts (see [[Fonts_in_XeTeX]]). If you want to keep using [[pdfTeX]], read on:
+
= Font support & configuration =
 +
== Type 1 fonts ==
  
* '''The ConTeXt way of using fonts are [[TypeScripts]].'''
+
Type 1 fonts come in multiple files. The various components are:
* [http://www.pragma-ade.com/general/manuals/mtexfont.pdf font installation with texfont] by Pragma
+
 
* [http://www.pragma-ade.com/general/manuals/mfonts.pdf ConTeXt's font mechanism in detail] by Pragma
+
* '''.pfb''': "Printer Font, Binary".
* [http://tug.org/TUGboat/Articles/tb28-2/tb89mahajan.pdf ConTeXt basics for users: Font styles] by Aditya Mahajan (2007)
+
* '''.pfa''': "Printer Font, ASCII".
* [http://www.pragma-ade.com/general/manuals/mmakempy.pdf making outlines] by Pragma
+
* '''.pfm''': "Printer Font Metrics", binary.
* [http://pragma-ade.nl/fonttest.pdf Here] you can try out several TeX fonts online (PDF interface!)
+
* '''.afm''': "Adobe Font Metrics".
* Troubleshooting: solving [[TeXfont]] problems.
+
 
* Character [[Protrusion]] (also known as hanging or font handling) is a more subtle typographic effect.
+
Typically each font will have a set of outlines in a pfb or pfa file, and a set of metrics in a pfm or afm file.
* [[Font Handling Internals]]
+
 
* [http://homepage.mac.com/atl/tex/  Adam Lindsay's page] focuses on typography (OpenType, Unicode etc.), esp. on MacOS X
+
Which file variations are preferred depends on platform. Linux prefers pfa and afm (the ASCII versions). Windows prefers pfb and pfm (the binary versions). Mac OS X prefers pfm and afm.
* [http://home.salamander.com/~wmcclain/context-help.html Bill McClain's ConTeXt beginners page] has also a lot about fonts
+
 
 +
On the Mac, you may encounter old-style PostScript Type 1 fonts which have an extensionless file containing the font outlines. These are a relic from the days when bitmaps were used to display fonts on screen, and the PostScript was downloaded to the printer. Your best bet is to throw them away and get an up-to-date OpenType version, or use a font editing utility such as fontforge to convert them.
 +
 
 +
On Windows 7, the OS will identify only the .pfm file as the actual font. However, when you install the font, Windows invisibly locates the matching .pfb file from the same directory, and copies them both to the C:\Windows\Fonts directory.
 +
 
 +
* Using [[psnfss]] metrics in ConTeXt
 +
* Matt Gushee's introduction to [http://havenrock.com/textips/bookfonts.html virtual fonts], especially for getting expert fonts to work.
 +
* [[URW Garamond]]
 +
* [[Lucida]] : large font family designed by Bigelow & Holmes; suitable e.g. for presentations
 +
* [http://dl.contextgarden.net/myway/expertfonts.pdf Installing Expert Fonts: Minion Pro] by Idris Samawi Hamid; contains step-by-step instructions, from preinstallation to writing typescripts
 +
* [http://www.stormtype.com Storm Type Foundry] : [http://modules.contextgarden.net/stormfontsupport support] of selected fonts
 +
 
 +
== True Type fonts ==
 
* [http://tug.org/pracjourn/2005-2/schmitz/schmitz.pdf Integrating TrueType Fonts into ConTeXt] by Thomas A. Schmitz (PracTeX Journal)
 
* [http://tug.org/pracjourn/2005-2/schmitz/schmitz.pdf Integrating TrueType Fonts into ConTeXt] by Thomas A. Schmitz (PracTeX Journal)
 
* [[Installing a TrueType font, step by step]]. If you just need to install a TrueType font, this may be what you are looking for.
 
* [[Installing a TrueType font, step by step]]. If you just need to install a TrueType font, this may be what you are looking for.
* [http://dl.contextgarden.net/myway/expertfonts.pdf Installing Expert Fonts: Minion Pro] by Idris Samawi Hamid; contains step-by-step instructions, from preinstallation to writing typescripts
+
* [[Palatino Linotype under MKIV]].
* [[Pseudo Small Caps]] by Vit Zyka
+
 
* Matt Gushee's introduction to [http://havenrock.com/textips/bookfonts.html virtual fonts], especially for getting expert fonts to work.
+
== OpenType fonts ==
* [[URW Garamond]]
+
* [[otfinstall|otfinst - a script for using OpenType fonts in ConTeXt]]
* [[otfinstall|otfinst - a sample ruby script for using OpenType fonts in ConTeXt]]
+
 
* [[Understanding how fonts work in ConTeXt]]
+
== Basic Hints ==
  
=Basic Hints=
+
How to change to Palatino for text with Euler for math: [[Palatino with Euler for Math]]
  
 
''Some hints by Taco from the mailing list on 2005-11-20:''
 
''Some hints by Taco from the mailing list on 2005-11-20:''
Line 39: Line 59:
 
Another important thing is that it also does not share font map files with LaTeX and, specifically,
 
Another important thing is that it also does not share font map files with LaTeX and, specifically,
  
'''ConTeXt does not make pdfetex read <tt>pdftex.map</tt>.'''
+
'''ConTeXt does not make pdfeTeX read <tt>pdftex.map</tt>.'''
  
 
(this is at the root of a great many problems reported by users only familiar with PSNFSS)
 
(this is at the root of a great many problems reported by users only familiar with PSNFSS)
Line 59: Line 79:
 
There are ways to trick ConTeXt into using different conventions, but if you do that you are likely to run into trouble.
 
There are ways to trick ConTeXt into using different conventions, but if you do that you are likely to run into trouble.
  
=Configuration=
+
== Hints by Language ==
* Using [[psnfss]] metrics in ConTeXt
+
* general: [[Encodings and Regimes]]
* Matt Gushee about [http://havenrock.com/textips/bookfonts.html virtual fonts]
+
* [[Arabic and Hebrew]]
 +
* [[Chinese]]
 +
* [[Czech]]
 +
* [[Greek]]
 +
* [[Russian]]
 +
* [[Vietnamese]]
 +
 
 +
= Unsorted links =
 +
 
 +
* [http://www.pragma-ade.com/general/manuals/mtexfont.pdf font installation with texfont] by Pragma
 +
* [http://www.pragma-ade.com/general/manuals/mfonts.pdf ConTeXt's font mechanism in detail] by Pragma
 +
* [http://tug.org/TUGboat/Articles/tb28-2/tb89mahajan.pdf ConTeXt basics for users: Font styles] by Aditya Mahajan (2007)
 +
* [http://www.pragma-ade.com/general/manuals/mmakempy.pdf making outlines] by Pragma
 +
* [http://pragma-ade.com/specials/fonts/fontspecial-p.pdf Here] you can try out several TeX fonts online (PDF interface!)
 +
* Troubleshooting: solving [[TeXfont]] problems.
 +
* Character [[Protrusion]] (also known as hanging or font handling) is a more subtle typographic effect.
 +
* [[Font Handling Internals]]
 +
* [http://watershade.net/wmcclain/context-help.html Bill McClain's ConTeXt beginners page] has also a lot about fonts
 +
* [[Pseudo Small Caps]] by Vit Zyka
 +
* [[Understanding how fonts work in ConTeXt]]
 
* Fonts rely on [[Encodings and Regimes]], and it helps to know what happens underneath the hood, from time to time.
 
* Fonts rely on [[Encodings and Regimes]], and it helps to know what happens underneath the hood, from time to time.
 
* In newer distributions, map files belong in <tt>&hellip;/fonts/map/pdftex/context</tt>!
 
* In newer distributions, map files belong in <tt>&hellip;/fonts/map/pdftex/context</tt>!
 
* Don't forget to look at  [[cont-sys.tex]]!
 
* Don't forget to look at  [[cont-sys.tex]]!
  
= Available Free Fonts =
+
= Where to find fonts =
 +
 
 +
== Available Free Fonts ==
 +
* [http://www.georgduffner.at/ebgaramond/ EB Garamond] is still in development, but it has nice-looking oldstyle numbers.
 
* [http://ctan.tug.org/tex-archive/info/Free_Math_Font_Survey/survey.html Free Math Fonts] : overview of different free Math fonts; [http://www.geocities.com/hartke01/ links to other free fonts]
 
* [http://ctan.tug.org/tex-archive/info/Free_Math_Font_Survey/survey.html Free Math Fonts] : overview of different free Math fonts; [http://www.geocities.com/hartke01/ links to other free fonts]
* [http://greekfontsociety.org/ GFS Didot] : Latin, full set of polytonik Greek, small caps, oldstyle figures, full f-ligatures ([http://modules.contextgarden.net/gfsdidot Module for ConTeXt])
+
* [http://greekfontsociety.gr/ GFS Didot] : Latin, full set of polytonik Greek, small caps, oldstyle figures, full f-ligatures ([http://modules.contextgarden.net/gfsdidot Module for ConTeXt])
 
* [[TeX Gyre]] : a set of great text fonts by our GUST friends, based on URW's free PostScript standard fonts for GhostScript.
 
* [[TeX Gyre]] : a set of great text fonts by our GUST friends, based on URW's free PostScript standard fonts for GhostScript.
 
* [http://www.janusz.nowacki.strefa.pl/kurier.html Foto Alfa] : some TeX related fonts from Poland (Antykwa Toruńska. Antykwa Półtawskiego, Kurier, Iwona...)
 
* [http://www.janusz.nowacki.strefa.pl/kurier.html Foto Alfa] : some TeX related fonts from Poland (Antykwa Toruńska. Antykwa Półtawskiego, Kurier, Iwona...)
* [http://linuxlibertine.sourceforge.net Libertine Open Fonts Project]: GPL/OFL serif font
+
* [http://linuxlibertine.sourceforge.net Libertine Open Fonts Project]: GPL/OFL serif font [[Linux Libertine on mkiv|sample]]
 
* [http://scripts.sil.org SIL International] : great Unicode fonts for scholars by SIL (Gentium, Doulos, Charis, etc.)
 
* [http://scripts.sil.org SIL International] : great Unicode fonts for scholars by SIL (Gentium, Doulos, Charis, etc.)
 
* [http://ist-socrates.berkeley.edu/~pinax/greekkeys/GreekKeys.html GreekKeys] : links to polytonic Greek fonts
 
* [http://ist-socrates.berkeley.edu/~pinax/greekkeys/GreekKeys.html GreekKeys] : links to polytonic Greek fonts
 
* [http://scholarsfonts.net Scholar's Fonts] : Font for Scholars (Latin, Germanic languages, Greek, Hebrew and Linguistics)
 
* [http://scholarsfonts.net Scholar's Fonts] : Font for Scholars (Latin, Germanic languages, Greek, Hebrew and Linguistics)
* [http://www.engl.virginia.edu/OE/junicode/junicode.html Junicode] : Junius-Unicode, a font for medievalists
+
* [http://junicode.sourceforge.net/ Junicode] : Junius-Unicode, a font for medievalists
 
* [http://www.freelang.net/fonts/index.html FreeLang fonts] : fonts for exotic languages
 
* [http://www.freelang.net/fonts/index.html FreeLang fonts] : fonts for exotic languages
 
* [http://www.blambot.com Blambot] : Comic fonts
 
* [http://www.blambot.com Blambot] : Comic fonts
Line 85: Line 127:
 
* [http://kadyellebee.com/fonts/ Kristine's Font Organization] : find a font in a sorted directory
 
* [http://kadyellebee.com/fonts/ Kristine's Font Organization] : find a font in a sorted directory
 
* [http://www.fontlover.com FontLover] : font news portal site
 
* [http://www.fontlover.com FontLover] : font news portal site
* [http://www.stormtype.com/typefaces-fonts-shop/free.php Lido] : OpenType and TrueType typeface by Storm Type Foundry, free for non-commercial use. [http://modules.contextgarden.net/stormfontsupport Support].
+
* [http://www.stormtype.com/family-lido-stf.html Lido] : OpenType and TrueType typefaces by Storm Type Foundry, free for non-commercial use. [http://modules.contextgarden.net/stormfontsupport Support].
 
* [http://www.alanwood.net/unicode/fontsbyrange.html Alan Wood’s Unicode Resources] : find fonts by Unicode character range
 
* [http://www.alanwood.net/unicode/fontsbyrange.html Alan Wood’s Unicode Resources] : find fonts by Unicode character range
 
* [http://www.josbuivenga.demon.nl/ exljbris] Free Quality Font Foundry by Jos Buivenga
 
* [http://www.josbuivenga.demon.nl/ exljbris] Free Quality Font Foundry by Jos Buivenga
 
* [http://www.stixfonts.org/ STIX Fonts] Beta download of the STIX-Fonts
 
* [http://www.stixfonts.org/ STIX Fonts] Beta download of the STIX-Fonts
 +
* [http://www.fontsquirrel.com/ Font Squirrel] Handpicked free fonts for graphic designers with commercial-use licenses
 +
* [http://www.theleagueofmoveabletype.com/ The league of Moveable Type] : a collection of open source fonts
 +
* [http://www.1stwebdesigner.com/resources/65-popular-and-professional-free-fonts-for-creative-typography/ 65 Popular And Professional Free Fonts For Creative Typography] and [http://www.1stwebdesigner.com/resources/52-really-high-quality-free-fonts-for-modern-and-cool-design/ 52 Really High Quality Free Fonts For Modern And Cool Design]
 +
* [http://www.paratype.com/public/]: Public fonts for minority languages of Russia [[Paratype typescript for mkiv|sample]]
 
* ''... many more to be added ...''
 
* ''... many more to be added ...''
  
= NonFree Font Support =
 
* [[Lucida]] : large font family designed by Bigelow & Holmes; suitable e.g. for presentations
 
* [http://www.stormtype.com Storm Type Foundry] : [http://modules.contextgarden.net/stormfontsupport support] of selected fonts
 
 
=Hints by Language=
 
* general: [[Encodings and Regimes]]
 
* [[Arabic and Hebrew]] (Idris? other ArabTeX specialists?)
 
* [[Chinese]]
 
* [[Czech]]
 
* [[Greek]]
 
* [[Russian]]
 
* [[Vietnamese]]
 
  
 
[[Category:Fonts]]
 
[[Category:Fonts]]

Latest revision as of 20:30, 1 July 2014

< Visuals | Symbols >

How to use fonts in ConTeXt

The ConTeXt way of handling fonts are TypeScripts. It’s a system of abstraction and aliases, which may seem “strange” at first for new users of ConTeXt.

Font support & configuration

Type 1 fonts

Type 1 fonts come in multiple files. The various components are:

  • .pfb: "Printer Font, Binary".
  • .pfa: "Printer Font, ASCII".
  • .pfm: "Printer Font Metrics", binary.
  • .afm: "Adobe Font Metrics".

Typically each font will have a set of outlines in a pfb or pfa file, and a set of metrics in a pfm or afm file.

Which file variations are preferred depends on platform. Linux prefers pfa and afm (the ASCII versions). Windows prefers pfb and pfm (the binary versions). Mac OS X prefers pfm and afm.

On the Mac, you may encounter old-style PostScript Type 1 fonts which have an extensionless file containing the font outlines. These are a relic from the days when bitmaps were used to display fonts on screen, and the PostScript was downloaded to the printer. Your best bet is to throw them away and get an up-to-date OpenType version, or use a font editing utility such as fontforge to convert them.

On Windows 7, the OS will identify only the .pfm file as the actual font. However, when you install the font, Windows invisibly locates the matching .pfb file from the same directory, and copies them both to the C:\Windows\Fonts directory.

True Type fonts

OpenType fonts

Basic Hints

How to change to Palatino for text with Euler for math: Palatino with Euler for Math

Some hints by Taco from the mailing list on 2005-11-20:

Q: How up to date or out of date is the information in mfonts manual?

A: It looks like it is still quite up-to-date, but some of the examples it gives may no longer be the very best and latest way of doing things, and possibly there are some new developments that do not get as much attention as desired (like texfont, and the issues arising from font map files). Overall, the document appears accurate, though.

An important thing to remember is this:

ConTeXt does not share font metric conventions with LaTeX.

(at one point it started doing so, like supporting the Karl Berry naming scheme and the PSNFSS style font family names, but that has since been abandoned).

Another important thing is that it also does not share font map files with LaTeX and, specifically,

ConTeXt does not make pdfeTeX read pdftex.map.

(this is at the root of a great many problems reported by users only familiar with PSNFSS)

The preferred format for metric files in ConTeXt is

<vendor>/<familyname>/<encoding>-<fontname>.tfm

for metrics and

<encoding>-<vendor>-<familyname>.map

for the mapping files.

  • <fontname> is usually derived from the font source (afm or ttf),
  • <encoding> is a 'controlled' list, (see Encodings and Regimes)
  • <vendor> and <familyname> are user-supplied (at install time).

There are ways to trick ConTeXt into using different conventions, but if you do that you are likely to run into trouble.

Hints by Language

Unsorted links

Where to find fonts

Available Free Fonts