Difference between revisions of "Fonts"

From ArchWiki
Jump to navigation Jump to search
m (OS X is now called macOS)
m (no more plus in gtk)
 
(168 intermediate revisions by 54 users not shown)
Line 6: Line 6:
 
[[ja:フォント]]
 
[[ja:フォント]]
 
[[ru:Fonts]]
 
[[ru:Fonts]]
[[tr:Yazıtipleri]]
+
[[zh-hans:Fonts]]
[[zh-CN:Fonts]]
+
[[zh-hant:Fonts]]
[[zh-TW:Fonts]]
 
 
{{Related articles start}}
 
{{Related articles start}}
 
{{Related|Font configuration}}
 
{{Related|Font configuration}}
{{Related|Infinality}}
+
{{Related|Linux console#Fonts}}
{{Related|Java Runtime Environment Fonts}}
+
{{Related|Java Runtime Environment fonts}}
 
{{Related|Metric-compatible fonts}}
 
{{Related|Metric-compatible fonts}}
 +
{{Related|Microsoft fonts}}
 
{{Related articles end}}
 
{{Related articles end}}
  
From [[Wikipedia:Computer font|Wikipedia]]: "A computer font (or font) is an electronic data file containing a set of glyphs, characters, or symbols such as dingbats."
+
From [[Wikipedia:Computer font]]: "A computer font (or font) is an electronic data file containing a set of glyphs, characters, or symbols such as dingbats."
  
 
Note that certain font licenses may impose some legal limitations.
 
Note that certain font licenses may impose some legal limitations.
Line 26: Line 26:
 
;Outline or ''vector'' fonts: Use Bézier curves, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size.
 
;Outline or ''vector'' fonts: Use Bézier curves, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size.
  
=== Common extensions ===
+
=== Bitmap formats ===
  
* {{ic|bdf}} and {{ic|bdf.gz}} – bitmap fonts, ''b''itmap ''d''istribution ''f''ormat and gzip compressed {{ic|bdf}}
+
* [[Wikipedia:Glyph Bitmap Distribution Format|Bitmap Distribution Format]] (BDF) by Adobe
* {{ic|pcf}} and {{ic|pcf.gz}} – bitmaps, ''p''ortable ''c''ompiled ''f''ont and gzip compressed {{ic|pcf}}
+
* [[Wikipedia:Portable Compiled Format|Portable Compiled Format]] (PCF) by Xorg
* {{ic|psf}}, {{ic|psfu}}, {{ic|psf.gz}} and {{ic|psfu.gz}} – bitmaps, ''P''C ''s''creen ''f''ont, ''P''C ''s''creen ''f''ont ''U''nicode and the gzipped versions (not compatible with X.Org)
+
* [[Wikipedia:PC Screen Font|PC Screen Font]] (PSF) used by the Kernel for console fonts, not supported by Xorg (for Unicode PSF files the extension is {{ic|psfu}})
* {{ic|pfa}} and {{ic|pfb}} – outline fonts, ''P''ostScript ''f''ont ''A''SCII and ''P''ostScript ''f''ont ''b''inary. PostScript fonts carry built-in printer instructions.
 
* {{ic|ttf}} – outline, ''T''rue''T''ype ''f''ont. Originally designed as a replacement for the PostScript fonts.
 
* {{ic|otf}} – outline, ''O''pen''T''ype ''f''ont. TrueType with PostScript typographic instructions.
 
  
For most purposes, the technical differences between TrueType and OpenType can be ignored, some fonts with a {{ic|ttf}} extension are actually OpenType fonts.
+
These formats can also be gzipped. See [[#Bitmap]] for the available bitmap fonts.
 +
 
 +
=== Outline formats ===
 +
 
 +
* [[Wikipedia:PostScript fonts|PostScript fonts]] by Adobe – has various formats, e.g: Printer Font ASCII (PFA) and Printer Font Binary (PFB)
 +
* [[Wikipedia:TrueType|TrueType]] by Apple and Microsoft (file extension: {{ic|ttf}})
 +
* [[Wikipedia:OpenType|OpenType]] by Microsoft, built on TrueType (file extensions: {{ic|otf}}, {{ic|ttf}})
 +
 
 +
For most purposes, the technical differences between TrueType and OpenType can be ignored.
  
 
=== Other formats ===
 
=== Other formats ===
Line 41: Line 46:
 
The typesetting application, ''TeX,'' and its companion font software, ''Metafont,'' render characters using their own methods. Some of the file extensions used for fonts by these two programs are {{ic|*pk}}, {{ic|*gf}}, {{ic|mf}} and {{ic|vf}}.
 
The typesetting application, ''TeX,'' and its companion font software, ''Metafont,'' render characters using their own methods. Some of the file extensions used for fonts by these two programs are {{ic|*pk}}, {{ic|*gf}}, {{ic|mf}} and {{ic|vf}}.
  
''FontForge,'' a font editing application, can store fonts in its native text-based format, {{ic|sfd}}, ''s''pline ''f''ont ''d''atabase.
+
[https://fontforge.github.io/en-US/ FontForge] ({{Pkg|fontforge}}), a font editing application, can store fonts in its native text-based format, {{ic|sfd}}, ''s''pline ''f''ont ''d''atabase.
  
 
The [http://www.w3.org/TR/SVG/fonts.html SVG] format also has its own font description method.
 
The [http://www.w3.org/TR/SVG/fonts.html SVG] format also has its own font description method.
Line 51: Line 56:
 
=== Pacman ===
 
=== Pacman ===
  
Fonts and font collections in the enabled repositories can be installed using [[pacman]]. Available fonts may be found by using:
+
Fonts and font collections in the enabled repositories can be installed using [[pacman]].
$ pacman -Ss font
 
  
Or to search for {{ic|ttf}} fonts only:
+
Available fonts may be found by [[pacman#Querying package databases|querying packages]] (e.g. for {{ic|font}} or {{ic|ttf}}).
$ pacman -Ss ttf
 
  
 
=== Creating a package ===
 
=== Creating a package ===
  
You should give pacman the ability to manage your fonts, which is done by creating an Arch package. These can also be shared with the community in the [[AUR]]. Here is an example of how to create a basic package. To learn more about building packages, read [[PKGBUILD]].
+
You should give pacman the ability to manage your fonts, which is done by creating an Arch package. These can also be shared with the community in the [[AUR]]. The packages to install fonts are particularly similar; simply taking an existing [https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/adobe-source-code-pro-fonts package] as template should work well. To learn about how to modify it for your font, please refer to [[Creating packages]].
 
 
The family name of a font file can be aquired with the use of {{ic|fc-query}} for example: {{ic|fc-query -f '%{family[0]}\n' /path/to/file}}. The formatting is described in the FcPatternFormat(3) manual.
 
 
 
{{hc|PKGBUILD|<nowiki>
 
pkgname=fontname-fonts
 
pkgver=1.0
 
pkgrel=1
 
pkgdesc="Some description"
 
arch=(any)
 
depends=(fontconfig xorg-font-utils)
 
source=("http://someurl.org/$pkgname.tar.bz2")
 
install=$pkgname.install
 
 
 
package() {
 
  install -Dm644 $pkgname/font.otf "$pkgdir"/usr/share/fonts/family_name/font.otf
 
  install -Dm644 $pkgname/font_bold.otf "$pkgdir"/usr/share/fonts/family_name/font_bold.otf
 
}
 
</nowiki>}}
 
 
 
{{hc|fontname-fonts.install|<nowiki>
 
post_install() {
 
  fc-cache -s
 
}
 
 
 
post_upgrade() {
 
  post_install
 
}
 
  
post_remove() {
+
The family name of a font file can be aquired with the use of {{ic|fc-query}} for example: {{ic|fc-query -f '%{family[0]}\n' /path/to/file}}. The formatting is described in {{man|3|FcPatternFormat}}.
  post_install
 
}
 
</nowiki>}}
 
  
 
=== Manual installation ===
 
=== Manual installation ===
Line 97: Line 70:
 
The recommended way of adding fonts that are not in the repositories to your system is described in [[#Creating a package]]. This gives pacman the ability to remove or update them at a later time. Fonts can alternately be installed manually as well.
 
The recommended way of adding fonts that are not in the repositories to your system is described in [[#Creating a package]]. This gives pacman the ability to remove or update them at a later time. Fonts can alternately be installed manually as well.
  
To install fonts system-wide (available for all users), move the folder to the {{ic|/usr/share/fonts/}} directory. The files need to be readable by every user, use [[chmod]] to set the correct permissions (i.e. at least {{ic|0444}} for files and {{ic|0555}} for directories). To install fonts for only a single user, use {{ic|~/.local/share/fonts}} ({{ic|~/.fonts/}} is now deprecated).
+
To install fonts system-wide (available for all users), move the folder to the {{ic|/usr/share/fonts}} directory. The files need to be readable by every user, use [[chmod]] to set the correct permissions (i.e. at least {{ic|0444}} for files and {{ic|0555}} for directories). To install fonts for only a single user, use {{ic|~/.local/share/fonts/}} ({{ic|~/.fonts/}} is now deprecated).
  
 
For Xserver to load fonts directly (as opposed to the use of a ''font server'') the directory for your newly added font must be added with a FontPath entry. This entry is located in the ''Files'' section [[Xorg#Configuration|of your Xorg configuration file]] (e.g. {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/xorg.conf}}). See [[#Older applications]] for more detail.
 
For Xserver to load fonts directly (as opposed to the use of a ''font server'') the directory for your newly added font must be added with a FontPath entry. This entry is located in the ''Files'' section [[Xorg#Configuration|of your Xorg configuration file]] (e.g. {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/xorg.conf}}). See [[#Older applications]] for more detail.
  
Then update the fontconfig font cache: (usually unnecessary as software using the fontconfig library do this.)
+
Then update the fontconfig font cache: (usually unnecessary as software using the fontconfig library does this)
  
 
  $ fc-cache
 
  $ fc-cache
Line 107: Line 80:
 
=== Older applications ===
 
=== Older applications ===
  
With older applications that do not support fontconfig (e.g. GTK+ 1.x applications, and {{ic|xfontsel}}) the index will need to be created in the font directory:
+
With older applications that do not support fontconfig (e.g. GTK 1.x applications, and {{ic|xfontsel}}) the index will need to be created in the font directory:
  
 
  $ mkfontscale
 
  $ mkfontscale
Line 129: Line 102:
 
  $ xlsfonts | grep fontname
 
  $ xlsfonts | grep fontname
  
{{note|Many packages will automatically configure Xorg to use the font upon installation. If that is the case with your font, this step is not necessary.}}
+
{{Note|Many packages will automatically configure Xorg to use the font upon installation. If that is the case with your font, this step is not necessary.}}
  
 
This can also be set globally in {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/X11/xorg.conf.d}}.
 
This can also be set globally in {{ic|/etc/X11/xorg.conf}} or {{ic|/etc/X11/xorg.conf.d}}.
Line 157: Line 130:
 
If you are seeing errors similar to this and/or seeing blocks instead of characters in your application then you need to add fonts and update the font cache. This example uses the {{Pkg|ttf-liberation}} fonts to illustrate the solution (after successful installation of the package) and runs as root to enable them system-wide.
 
If you are seeing errors similar to this and/or seeing blocks instead of characters in your application then you need to add fonts and update the font cache. This example uses the {{Pkg|ttf-liberation}} fonts to illustrate the solution (after successful installation of the package) and runs as root to enable them system-wide.
 
   
 
   
# fc-cache
+
{{hc|# fc-cache|
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
+
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
+
/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs
+
/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
+
/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs
+
/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs
/var/cache/fontconfig: cleaning cache directory
+
/var/cache/fontconfig: cleaning cache directory
fc-cache: succeeded
+
fc-cache: succeeded
 +
}}
  
 
You can test for a default font being set like so:
 
You can test for a default font being set like so:
  
# fc-match
+
{{hc|$ fc-match|
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
+
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"
 +
}}
  
== Console fonts ==
+
== Font packages ==
  
{{Note|This section is about the [[Wikipedia:Linux console|Linux console]]. For alternative console solutions offering more features (full Unicode fonts, modern graphics adapters etc.), see [[fbterm]], [[KMSCON]] or similar projects.}}
+
This is a selective list that includes many font packages from the [[AUR]] along with those in the official repositories. Fonts are tagged "Unicode" if they have wide Unicode support, see the project or  
 +
Wikipedia pages for detail.
  
By default, the [[Wikipedia:Virtual console|virtual console]] uses the kernel built-in font with a [[Wikipedia:CP437|CP437]] character set,<sup>[https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/vt/Makefile#n4]</sup> but this can be easily changed.
+
The [https://github.com/ternstor/distrofonts Archfonts Python script] can be used to generate an overview of all the TTF fonts found in the official repositories / the AUR (the image generation is done using {{AUR|ttf2png}}).
  
The [[Wikipedia:Linux console|Linux console]] uses UTF-8 encoding by default, but because the standard VGA-compatible framebuffer is used, a console font is limited to either a standard 256, or 512 glyphs. If the font has more than 256 glyphs, the number of colours is reduced from 16 to 8. In order to assign correct symbol to be displayed to the given Unicode value, a special translation map, often called ''unimap'', is needed. Nowadays most of the console fonts have the ''unimap'' built-in, historically it had to be loaded separately.
+
=== Bitmap ===
  
The {{Pkg|kbd}} package provides tools to change virtual console font and font mapping. Available fonts are saved in the {{ic|/usr/share/kbd/consolefonts/}} directory, those ending with ''.psfu'' or ''.psfu.gz'' have a Unicode translation map built-in.
+
{{Note|{{Pkg|pango}} 1.44 [https://blogs.gnome.org/mclasen/2019/05/25/pango-future-directions/ dropped support for FreeType in favor or HarfBuzz] thus [https://blogs.gnome.org/mclasen/2019/08/07/pango-1-44-wrap-up/ losing support for bitmap fonts], so applications like e.g. {{Pkg|gnome-terminal}} will not work with such fonts anymore, showing rectangles instead of glyphs. See {{Bug|63297}}, [https://gitlab.gnome.org/GNOME/pango/issues/386 Pango issue #386] and [https://github.com/harfbuzz/harfbuzz/issues/1897 HarfBuzz issue #1897].}}
  
Keymaps, the connection between the key pressed and the character used by the computer, are found in the subdirectories of {{ic|/usr/share/kbd/keymaps/}}, see [[Keyboard configuration in console]] for details.
+
* Default 8x16
 +
* [http://www.dcmembers.com/jibsen/download/61/ Dina] ({{Pkg|dina-font}}) – 6pt, 8pt, 9pt, 10pt, monospaced, based on Proggy
 +
* [http://openlab.jp/efont/unicode/ Efont] ({{AUR|efont-unicode-bdf}}) – 10px, 12px, 14px, 16px, 24px, normal, bold and italic
 +
* [http://font.gohu.org/ Gohu] ({{AUR|gohufont}}) – 11px, 14px, normal and bold
 +
* [http://artwizaleczapka.sourceforge.net/ Lime] ({{AUR|artwiz-fonts}})
 +
* [http://tobiasjung.name/profont/ ProFont] ({{AUR|ttf-profont-iix}}) – 10px, 11px, 12px, 15px, 17px, 22px, 29px, normal
 +
* [[Wikipedia:Proggy programming fonts|Proggy]] ({{AUR|proggyfonts}}) – has different variants
 +
* [http://www.fial.com/~scott/tamsyn-font/ Tamsyn] ({{Pkg|tamsyn-font}})
 +
* [http://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}}) ({{Pkg|terminus-font-otb}}) - OpenType Bitmap (OTB) variant works with Pango 1.44
 +
* [https://github.com/lucy/tewi-font Tewi] ({{AUR|bdf-tewi-git}})
 +
* [http://unifoundry.com/unifont.html Unifont] ([[Wikipedia:Unicode font#Comparison of fonts|most extensive]] Unicode coverage of any font) ({{Pkg|bdf-unifont}})
  
{{Note|Replacing the font can cause issues with programs that expect a standard VGA-style font, such as those using line drawing graphics.}}
+
=== Latin script ===
  
=== Previewing and testing ===
+
==== Families ====
  
{{Tip|An organized library of images for previewing is available: [http://alexandre.deverteuil.net/pages/consolefonts/ Linux console fonts screenshots].}}
+
* [[Wikipedia:Luxi fonts|Luxi fonts]] ({{Pkg|font-bh-ttf}}) – X.Org Luxi fonts
 +
* [[Wikipedia:Bitstream Vera|Bitstream Vera]] ({{Pkg|ttf-bitstream-vera}}) – serif, sans-serif, and monospace
 +
* [https://quoteunquoteapps.com/courierprime/ Courier Prime] ({{AUR|ttf-courier-prime}}) – Courier font alternative optimized for screenplays
 +
* [[Wikipedia:Croscore fonts|Croscore fonts]] ({{Pkg|ttf-croscore}}) – Google's substitute for Windows' Arial, Times New Roman, and Courier New
 +
* [[Wikipedia:DejaVu fonts|DejaVu fonts]] ({{Pkg|ttf-dejavu}}) – Bitstream Vera modified for greater Unicode coverage
 +
* [[Wikipedia:Droid (font)|Droid]] ({{Pkg|ttf-droid}}) – default font for older Android versions
 +
* [[Wikipedia:Roboto|Roboto]] ({{Pkg|ttf-roboto}}) – default font for newer Android versions
 +
* [[Wikipedia:Noto fonts|Google Noto]] ({{Pkg|noto-fonts}}) – Unicode
 +
* [[Wikipedia:Liberation fonts|Liberation fonts]] ({{Pkg|ttf-liberation}}) – free metric-compatible substitute for the Arial, Arial Narrow, Times New Roman and Courier New fonts found in Windows and Microsoft Office products
 +
* [[Wikipedia:Ubuntu Font Family|Ubuntu Font Family]] ({{Pkg|ttf-ubuntu-font-family}})
 +
* [[Microsoft fonts]] ({{AUR|ttf-ms-win10}}) – Windows 10 fonts
 +
Legacy Microsoft font packages:
 +
* [http://corefonts.sourceforge.net/ Microsoft fonts] ({{AUR|ttf-ms-fonts}}) – Andalé Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman
 +
* Vista fonts ({{AUR|ttf-vista-fonts}}) – Consolas, Calibri, Candara, Corbel, Cambria, Constantia
  
The available glyphs or letters in the font can also be viewed as a table with using ''showconsolefont'':
+
==== Monospaced ====
  
$ showconsolefont
+
For more monospaced fonts see [[#Bitmap]] and [[#Families]].
  
The ''setfont'' utility may be used to temporarily change the font, so that the user can consider its permanent use. Just pass the name of the font (they are located in {{ic|/usr/share/kbd/consolefonts/}}). For example:
+
* [http://www.marksimonson.com/fonts/view/anonymous-pro Anonymous Pro] ({{Pkg|ttf-anonymous-pro}}, included in {{AUR|ttf-google-fonts-git}})
 +
* [https://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released Envy Code R] ({{AUR|ttf-envy-code-r}})
 +
* Fantasque Sans Mono ({{Pkg|ttf-fantasque-sans-mono}}, {{Pkg|otf-fantasque-sans-mono}})
 +
* [[Wikipedia:Fira Sans|Fira Mono]] ({{Pkg|ttf-fira-mono}}, {{Pkg|otf-fira-mono}}) – designed for Firefox OS
 +
* [https://github.com/tonsky/FiraCode Fira Code] ({{Pkg|ttf-fira-code}}, {{Pkg|otf-fira-code}}) – with programming ligatures
 +
* [[Wikipedia:GNU FreeFont|FreeMono]] ({{Pkg|gnu-free-fonts}}) - Unicode
 +
* [https://sourcefoundry.org/hack/ Hack] ({{Pkg|ttf-hack}}) - an open source monospaced font, used as the default in KDE Plasma
 +
* [[Wikipedia:Inconsolata|Inconsolata]] ({{Pkg|ttf-inconsolata}}, included in {{AUR|ttf-google-fonts-git}}) - inspired by Consolas
 +
* [https://leonardo-m.livejournal.com/77079.html Inconsolata-g] ({{AUR|ttf-inconsolata-g}}) - adds some programmer-friendly modifications
 +
* [https://be5invis.github.io/Iosevka/ Iosevka] ({{AUR|ttf-iosevka}}) – slender sans-serif and slab-serif typeface inspired by Pragmata Pro, M+ and PF DIN Mono, designed to be the ideal font for programming; it supports programming ligatures and over 2000 latin, greek, cyrillic, phonetic and PowerLine glyphs
 +
* [[Wikipedia:Lucida Typewriter|Lucida Typewriter]] (included in package {{AUR|jre}})
 +
* [[Wikipedia:Menlo (typeface)|Menlo]] (derivative: {{AUR|ttf-meslo}}) - default monospaced font of OS X
 +
* [[Wikipedia:Monaco (typeface)|Monaco]] ({{AUR|ttf-monaco}}) - proprietary font designed by Apple for OS X
 +
* Monofur ({{AUR|ttf-monofur}})
 +
* [https://madmalik.github.io/mononoki Mononoki] ({{AUR|ttf-mononoki}})
 +
* [[Wikipedia:Source_Code_Pro|Source Code Pro]] ({{Pkg|adobe-source-code-pro-fonts}}, included in {{AUR|ttf-google-fonts-git}})
  
$ setfont lat2-16 -m 8859-2
+
Relevant websites:
  
Note that the font name is case-sensitive, so type it ''exactly'' as you see it. If the newly changed font is not suitable, a return to the default font with the following command (even if the console display is totally unreadable, this command will still work, just type the command "blindly"):
+
* [http://hivelogic.com/articles/top-10-programming-fonts Dan Benjamin's Top 10 Programming Fonts].
 +
* [http://www.lowing.org/fonts/ Trevor Lowing's font list]
 +
* [https://www.slant.co/topics/67/~what-are-the-best-programming-fonts Slant: What are the best programming fonts?]
 +
* [https://stackoverflow.com/questions/4689/recommended-fonts-for-programming Stack Overflow: Recommended fonts for programming]
  
$ setfont
+
==== Sans-serif ====
  
{{Note|''setfont'' only works on the console currently being used. Any other consoles, active or inactive, remain unaffected.}}
+
* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=andika Andika] ({{AUR|ttf-andika}})
 +
* [[Wikipedia:GNU FreeFont|FreeSans]] ({{Pkg|gnu-free-fonts}}) - Unicode
 +
* [https://github.com/rsms/inter Inter UI] ({{AUR|ttf-inter-ui}}) – designed for user interfaces
 +
* [[Wikipedia:Linux Libertine|Linux Biolinum]] ({{Pkg|ttf-linux-libertine}}) – free substitute for Times New Roman
 +
* [[Wikipedia:PT Sans|PT Sans]] ({{AUR|ttf-google-fonts-git}}) - 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic
 +
* [[Wikipedia:Source Sans Pro|Source Sans Pro]] ({{Pkg|adobe-source-sans-pro-fonts}})
 +
* [[Wikipedia:Tahoma (typeface)|Tahoma]] ({{AUR|ttf-tahoma}})
  
=== Persistent configuration ===
+
==== Serif ====
  
The {{ic|FONT}} variable in {{ic|/etc/vconsole.conf}} is used to set the font at boot, persistently for all consoles. See {{ic|man 5 vconsole.conf}} for details.
+
* [http://www.georgduffner.at/ebgaramond/ EB Garamond] ({{AUR|otf-eb-garamond}})
 +
* [[Wikipedia:GNU FreeFont|FreeSerif]] ({{Pkg|gnu-free-fonts}}) - Unicode
 +
* [[Wikipedia:Gentium|Gentium]] ({{Pkg|ttf-gentium}}) - Unicode: Latin, Greek, Cyrillic, Phonetic Alphabet
 +
* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) - Unicode: Latin, Greek, Cyrillic, Hebrew
  
For displaying characters such as ''Č, ž, đ, š'' or ''Ł, ę, ą, ś'' using the font {{ic|lat2-16.psfu.gz}}:
+
==== Unsorted ====
  
{{hc|/etc/vconsole.conf|2=
+
{{Style|This section should be absorbed into the Monospace/Serif/Sans-Serif structure}}
...
 
FONT=lat2-16
 
FONT_MAP=8859-2
 
}}
 
  
It means that second part of ISO/IEC 8859 characters are used with size 16. You can change font size using other values (e.g. {{ic|lat2-08}}). For the regions determined by 8859 specification, look at the [[wikipedia:ISO/IEC_8859#The_Parts_of_ISO.2FIEC_8859|Wikipedia table]].
+
* {{AUR|ttf-cheapskate}} - Font collection from ''dustismo.com''
 
+
* {{Pkg|ttf-junicode}} - Junius font containing almost complete medieval latin script glyphs
To use the specified font in early userspace, use the {{ic|consolefont}} hook in {{ic|/etc/mkinitcpio.conf}}. See [[Mkinitcpio#HOOKS]] for more information.
+
* {{AUR|ttf-mph-2b-damase}} - Covers full plane 1 and several scripts
 
+
* {{Pkg|xorg-fonts-type1}} - IBM Courier and Adobe Utopia sets of [[Wikipedia:PostScript fonts|PostScript fonts]]
If the fonts seems to not change on boot, or change only temporarily, it is most likely that they got reset when graphics driver was initialized and console was switched to framebuffer. To avoid this, load your graphics driver earlier. See for example [[Kernel mode setting#Early KMS start]], [https://bbs.archlinux.org/viewtopic.php?id=145765] or other ways to setup your framebuffer before {{ic|/etc/vconsole.conf}} is applied.
+
* {{AUR|all-repository-fonts}} - Meta package for all fonts in the official repositories.
 
+
* {{AUR|ttf-google-fonts-git}} - a huge collection of free fonts (including Ubuntu, Inconsolata, Roboto, etc.) - Note: Your font dialog might get very long as >100 fonts will be added.
== Font packages ==
 
 
 
This is a selective list that includes many font packages from the [[AUR]] along with those in the official repositories. Fonts are tagged "Unicode" if they have wide Unicode support, see the project or Wikipedia pages for detail.
 
 
 
Github user Ternstor has created a python script that generates HTML documents with PNG images of all the fonts in the AUR and the official repositories: [https://github.com/ternstor/distrofonts/blob/master/archfonts.py].
 
 
 
=== Ancient Scripts ===
 
 
 
*{{AUR|ttf-ancient-fonts}} - Font containing Unicode symbols for Aegean, Egyptian, Cuneiform, Anatolian, Maya, and Analecta scripts
 
 
 
=== Braille ===
 
 
 
*{{Pkg|ttf-ubraille}} - Font containing Unicode symbols for ''braille''
 
 
 
=== Emoji and symbols ===
 
  
A section of the Unicode standard is designated for pictographic characters called "emoji".
+
=== Non-latin scripts ===
  
* {{AUR|emojione-color-font}} - a complete, independent, open-source emoji set focused on design correctness
+
==== Ancient Scripts ====
* {{AUR|twemoji-color-font}} - Twitter's open-sourced emoji glyphs
 
* {{Pkg|ttf-symbola}} - provides many Unicode symbols, including emoji, in outline style
 
* {{Pkg|noto-fonts-emoji}} - Google's own emoji font, like on Android or Google Hangouts. Some newer additions to Unicode appear to render poorly with Noto fonts.
 
  
[[wikipedia:Emoticon#Japanese_style|Kaomoji]] are sometimes referred to as "Japanese emoticons" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: {{Pkg|ttf-freefont}}, {{Pkg|ttf-arphic-uming}}, and {{Pkg|ttf-indic-otf}}.
+
* {{AUR|ttf-ancient-fonts}} - Font containing Unicode symbols for Aegean, Egyptian, Cuneiform, Anatolian, Maya, and Analecta scripts
  
==== Arabic & Urdu ====
+
==== Arabic ====
  
 
* {{AUR|ttf-amiri}} - A classical Arabic typeface in Naskh style poineered by Amiria Press
 
* {{AUR|ttf-amiri}} - A classical Arabic typeface in Naskh style poineered by Amiria Press
 +
* {{AUR|ttf-arabeyes-fonts}} - Collection of free Arabic fonts
 
* {{AUR|ttf-qurancomplex-fonts}} - Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah
 
* {{AUR|ttf-qurancomplex-fonts}} - Fonts by King Fahd Glorious Quran Printing Complex in al-Madinah al-Munawwarah
* {{AUR|ttf-arabeyes-fonts}} - Collection of free Arabic fonts
+
* {{AUR|ttf-sil-lateef}} - Unicode Arabic font from [[wikipedia:SIL_International|SIL]]
* {{AUR|ttf-sil-lateef}} - Unicode Arabic font from SIL
+
* {{AUR|ttf-sil-scheherazade}} - Unicode Arabic font from SIL (Alternative for Traditional Arabic font)
* {{AUR|ttf-sil-scheherazade}} - Unicode Arabic font from SIL
 
* {{AUR|ttf-urdufonts}} - Urdu fonts (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) and font configuration to set Jameel Noori Nastaleeq as default font for Urdu
 
  
==== Burmese ====
+
==== Braille ====
  
* {{AUR|ttf-my-paduk}} - Padauk font for Myanmar/Birmania
+
* {{AUR|ttf-ubraille}} - Font containing Unicode symbols for ''braille''
* {{AUR|ttf-myanmar-fonts}} - 121 Fonts from myordbok.com
 
  
 
==== Chinese, Japanese, Korean, Vietnamese ====
 
==== Chinese, Japanese, Korean, Vietnamese ====
  
 
===== Pan-CJK =====
 
===== Pan-CJK =====
 +
 +
* Adobe Source Han fonts - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look.
 +
** {{Pkg|adobe-source-han-sans-otc-fonts}} - Sans fonts
 +
** {{Pkg|adobe-source-han-serif-otc-fonts}} - Serif fonts
 
* {{Pkg|noto-fonts-cjk}} - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look. It is currently a rebadged version of {{Pkg|adobe-source-han-sans-otc-fonts}}.
 
* {{Pkg|noto-fonts-cjk}} - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look. It is currently a rebadged version of {{Pkg|adobe-source-han-sans-otc-fonts}}.
* {{Pkg|adobe-source-han-sans-otc-fonts}} - Large collection of fonts which comprehensively support Simplified Chinese, Traditional Chinese, Japanese, and Korean, with a consistent design and look.
 
  
===== (Mainly) Chinese =====
+
===== Chinese =====
 +
 
 +
{{Move|Localization/Chinese#Fonts|It makes sense to group language-specific things together.|section=Move CJK and Indic fonts to Localization subpages}}
  
* {{Pkg|adobe-source-han-sans-cn-fonts}} - Simplified Chinese OpenType/CFF fonts
+
* adobe source han fonts
* {{Pkg|adobe-source-han-sans-tw-fonts}} - Traditional Chinese OpenType/CFF fonts
+
** {{Pkg|adobe-source-han-sans-cn-fonts}} - Simplified Chinese OpenType/CFF Sans fonts
* {{Pkg|wqy-microhei}} - A Sans-Serif style high quality CJKV outline font.
+
** {{Pkg|adobe-source-han-sans-tw-fonts}} - Traditional Chinese OpenType/CFF Sans fonts
* {{Pkg|wqy-zenhei}} - Hei Ti Style (sans-serif) Chinese Outline font embedded with bitmapped Song Ti (also supporting Japanese (partial) and Korean characters).
+
** {{Pkg|adobe-source-han-serif-cn-fonts}} - Simplified Chinese OpenType/CFF Serif fonts
* {{Pkg|ttf-arphic-ukai}} - ''Kaiti'' (brush stroke) Unicode font (enabling anti-aliasing is suggested)
+
** {{Pkg|adobe-source-han-serif-tw-fonts}} - Traditional Chinese OpenType/CFF Serif fonts
* {{Pkg|ttf-arphic-uming}} - ''Mingti'' (printed) Unicode font
+
* noto Chinese fonts
 +
** {{AUR|noto-fonts-sc}} - Noto CJK-SC fonts for Simplified Chinese
 +
** {{AUR|noto-fonts-tc}} - Noto CJK-TC fonts for Traditional Chinese
 +
* wqy fonts
 +
** {{Pkg|wqy-microhei}} - WenQuanYi Micro Hei font family (also known as Hei, Gothic or Dotum) is a sans-serif style derived from Droid Sans Fallback, it offers high quality CJK outline font and it is extremely compact (~5M).
 +
** {{Pkg|wqy-zenhei}} - Hei Ti Style (sans-serif) Chinese Outline font embedded with bitmapped Song Ti (also supporting Japanese (partial) and Korean characters).
 +
** {{Pkg|wqy-bitmapfont}} - Bitmapped Song Ti (serif) Chinese font.
 +
* arphic fonts
 +
** {{Pkg|ttf-arphic-ukai}} - ''Kaiti'' (brush stroke) Unicode font (enabling anti-aliasing is suggested)
 +
** {{Pkg|ttf-arphic-uming}} - ''Mingti'' (printed) Unicode font
 
* {{Pkg|opendesktop-fonts}} - ''New Sung'' font, previously is ttf-fireflysung package
 
* {{Pkg|opendesktop-fonts}} - ''New Sung'' font, previously is ttf-fireflysung package
* {{Pkg|wqy-bitmapfont}} - Bitmapped Song Ti (serif) Chinese font
+
* {{Pkg|ttf-hannom}} - Chinese and Vietnamese ttf fonts
* {{Pkg|ttf-hannom}} - Chinese and Vietnamese TrueType font
+
* Standart fonts of the Republic of China ministry of education in Taiwan
* {{AUR|ttf-i.bming}} - CJK serif font that emphasis on an old-style typeface
+
** {{AUR|ttf-tw}} - Kai and Song traditional Chinese font from the Ministry of Education of Taiwan
* {{AUR|ttf-tw}} - Kai and Song traditional Chinese font from the Ministry of Education of Taiwan
+
** {{AUR|ttf-twcns-fonts}} Chinese TrueType fonts by Ministry of Education of Taiwan government, support CNS11643 standard, including Kai and Sung fontface.
 +
* Windows Chinese fonts
 +
** {{AUR|ttf-ms-win8-zh_cn}} - windows8 simple Chinese fonts。
 +
** {{AUR|ttf-ms-win8-zh_tw}} - windows8 traditional Chinese fonts。
 +
** {{AUR|ttf-ms-win10-zh_cn}} - windows10 simple Chinese fonts。
 +
** {{AUR|ttf-ms-win10-zh_tw}} - windows10 traditional Chinese fonts。
 +
* {{AUR|ttf-i.bming}} - CJK serif font that emphasis on an old-style typeface.
  
 
===== Japanese =====
 
===== Japanese =====
 +
 +
{{Move|Localization/Japanese#Fonts|It makes sense to group language-specific things together.|section=Move CJK and Indic fonts to Localization subpages}}
  
 
* {{Pkg|adobe-source-han-sans-jp-fonts}} - Japanese OpenType/CFF fonts
 
* {{Pkg|adobe-source-han-sans-jp-fonts}} - Japanese OpenType/CFF fonts
 
* {{Pkg|otf-ipafont}} - Formal style Japanese Gothic (sans-serif) and Mincho (serif) fonts set; one of the highest quality open source font. Default of openSUSE-ja.
 
* {{Pkg|otf-ipafont}} - Formal style Japanese Gothic (sans-serif) and Mincho (serif) fonts set; one of the highest quality open source font. Default of openSUSE-ja.
 +
* {{Pkg|ttf-hanazono}} - A free Japanese kanji font, style Mincho (serif).
 
* {{Pkg|ttf-sazanami}} - Japanese free TrueType font. This is outdated and not maintained any more, but may be defined as a fallback font on several environments.
 
* {{Pkg|ttf-sazanami}} - Japanese free TrueType font. This is outdated and not maintained any more, but may be defined as a fallback font on several environments.
* {{Pkg|ttf-hanazono}} - A free Japanese kanji font, style Mincho (serif).
 
* {{AUR|ttf-vlgothic}} - Japanese Gothic fonts. Default of Debian/Fedora/Vine Linux
 
* {{AUR|ttf-mplus}} - Modern Gothic style Japanese outline fonts. It includes all of Japanese Hiragana/Katakana, Basic Latin, Latin-1 Supplement, Latin Extended-A, IPA Extensions and most of Japanese Kanji, Greek, Cyrillic, Vietnamese with 7 weights (proportional) or 5 weights (monospace).
 
 
* {{AUR|ttf-koruri}} - Japanese TrueType font obtained by mixing {{AUR|ttf-mplus}} and Open Sans
 
* {{AUR|ttf-koruri}} - Japanese TrueType font obtained by mixing {{AUR|ttf-mplus}} and Open Sans
 
* {{AUR|ttf-monapo}} - Japanese fonts to show [[wikipedia:2channel_Shift_JIS_art|2channel Shift JIS art]] properly.
 
* {{AUR|ttf-monapo}} - Japanese fonts to show [[wikipedia:2channel_Shift_JIS_art|2channel Shift JIS art]] properly.
 +
* {{AUR|ttf-mplus}} - Modern Gothic style Japanese outline fonts. It includes all of Japanese Hiragana/Katakana, Basic Latin, Latin-1 Supplement, Latin Extended-A, IPA Extensions and most of Japanese Kanji, Greek, Cyrillic, Vietnamese with 7 weights (proportional) or 5 weights (monospace).
 +
* {{AUR|ttf-vlgothic}} - Japanese Gothic fonts. Default of Debian/Fedora/Vine Linux
  
 
===== Korean =====
 
===== Korean =====
 +
 +
{{Move|Localization/Korean#Fonts|It makes sense to group language-specific things together.|section=Move CJK and Indic fonts to Localization subpages}}
  
 
* {{Pkg|adobe-source-han-sans-kr-fonts}} - Korean OpenType/CFF fonts
 
* {{Pkg|adobe-source-han-sans-kr-fonts}} - Korean OpenType/CFF fonts
 
* {{Pkg|ttf-baekmuk}} - Collection of Korean TrueType fonts
 
* {{Pkg|ttf-baekmuk}} - Collection of Korean TrueType fonts
 +
* {{AUR|spoqa-han-sans}} - Source Han Sans customized by Spoqa
 +
* {{AUR|ttf-d2coding}} - D2Coding fixed width TrueType font made by Naver
 
* {{AUR|ttf-nanum}} - Nanum series TrueType fonts
 
* {{AUR|ttf-nanum}} - Nanum series TrueType fonts
 
* {{AUR|ttf-nanumgothic_coding}} - Nanum series fixed width TrueType fonts
 
* {{AUR|ttf-nanumgothic_coding}} - Nanum series fixed width TrueType fonts
* {{AUR|ttf-d2coding}} - D2Coding fixed width TrueType font made by Naver
+
* {{AUR|ttf-kopub}}/{{AUR|otf-kopub}} - Korean TrueType/OpenType fonts by Korea Publisher Society
* {{AUR|spoqa-han-sans}} - Source Han Sans customized by Spoqa
+
* {{AUR|ttf-kopubworld}}/{{AUR|otf-kopubworld}} - Multilingual (Korean, Yethangul, Chinese extended, Japanese, Latin extended, Cyrillic, Arabic, Hebrew, Devanagari) TrueType/OpenType fonts by Korea Publisher Society
 +
* {{AUR|ttf-unfonts-core-ibx}} - A collection of Korean TrueType fonts by KLDP
 +
 
 +
===== Vietnamese =====
 +
 
 +
* {{Pkg|ttf-hannom}} - Vietnamese TrueType font for chữ Nôm characters
  
 
==== Cyrillic ====
 
==== Cyrillic ====
  
See also [[#Monospaced]], [[#Sans-serif]] and [[#Serif]].
+
See also [[#Latin script]].
  
 +
* {{AUR|ttf-paratype}} - Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL license
 
* {{AUR|otf-russkopis}} - A free OpenType cursive font for Cyrillic script
 
* {{AUR|otf-russkopis}} - A free OpenType cursive font for Cyrillic script
* {{AUR|ttf-paratype}} - Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL license
 
  
 
==== Greek ====
 
==== Greek ====
Line 316: Line 349:
 
==== Hebrew ====
 
==== Hebrew ====
  
 +
* {{AUR|opensiddur-hebrew-fonts}} - Large collection of Open-source licensed Hebrew fonts
 
* {{AUR|culmus}} - Nice collection of free Hebrew fonts
 
* {{AUR|culmus}} - Nice collection of free Hebrew fonts
  
 
==== Indic ====
 
==== Indic ====
  
* {{Pkg|ttf-freebanglafont}} - Font for Bangla
+
{{Move|Localization/Indic#Fonts|It makes sense to group language-specific things together.|section=Move CJK and Indic fonts to Localization subpages}}
* {{Pkg|ttf-indic-otf}} - Indic OpenType Fonts collection (containing ttf-freebanglafont)
+
 
: (This one contains a "look of disapproval" that might be more to your liking than the {{Pkg|bdf-unifont}} one mentioned elsewhere in this document)
+
* {{AUR|ttf-freebanglafont}} - Font for Bangla
 +
* {{Pkg|ttf-indic-otf}} - Indic OpenType Fonts collection (containing ttf-freebanglafont), provides the character [http://www.fileformat.info/info/unicode/char/ca0/index.htm U+0CA0] ""
 
* {{AUR|lohit-fonts}} - Indic TrueType fonts from Fedora Project (containing Oriya Fonts and more)
 
* {{AUR|lohit-fonts}} - Indic TrueType fonts from Fedora Project (containing Oriya Fonts and more)
 
* {{AUR|ttf-devanagarifonts}} - Devanagari TrueType fonts (contains 283 fonts)
 
* {{AUR|ttf-devanagarifonts}} - Devanagari TrueType fonts (contains 283 fonts)
* {{AUR|ttf-gujrati-fonts}} - TTF Gujarati fonts (Avantika,Gopika,Shree768)
 
 
* {{AUR|ttf-gurmukhi-fonts_sikhnet}} - TrueType Gurmukhi fonts (gurbaniwebthick,prabhki)
 
* {{AUR|ttf-gurmukhi-fonts_sikhnet}} - TrueType Gurmukhi fonts (gurbaniwebthick,prabhki)
 
* {{AUR|ttf-gurmukhi_punjabi}} - TTF Gurmukhi / Punjabi (contains 252 fonts)
 
* {{AUR|ttf-gurmukhi_punjabi}} - TTF Gurmukhi / Punjabi (contains 252 fonts)
 +
* {{AUR|ttf-gujrati-fonts}} - TTF Gujarati fonts (Avantika,Gopika,Shree768)
 
* {{AUR|ttf-kannada-font}} - Kannada, the language of Karnataka state in India
 
* {{AUR|ttf-kannada-font}} - Kannada, the language of Karnataka state in India
 +
* {{AUR|ttf-lklug}} - Sinhala Unicode font
 
* {{AUR|ttf-tamil}} - Tamil Unicode fonts
 
* {{AUR|ttf-tamil}} - Tamil Unicode fonts
 +
* {{AUR|ttf-urdufonts}} - Urdu fonts (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) and font configuration to set Jameel Noori Nastaleeq as default font for Urdu
 +
* {{AUR|fonts-smc-malayalam}} - Malayalam Unicode Fonts released by 'Swathanthra Malayalam Computing' (contains 11 fonts).
  
 
==== Khmer ====
 
==== Khmer ====
Line 336: Line 374:
 
* [https://www.google.com/fonts/specimen/Hanuman Hanuman] ({{AUR|ttf-google-fonts-git}})
 
* [https://www.google.com/fonts/specimen/Hanuman Hanuman] ({{AUR|ttf-google-fonts-git}})
  
==== Lao ====
+
==== Mongolic and Tungusic ====
  
* {{AUR|ttf-lao}} - Lao TTF font (Phetsarath_OT)
+
* {{AUR|ttf-abkai}} - Fonts for Sibe, Manchu and Daur scripts (incomplete, currently in development)
* {{AUR|ttf-lao-fonts}} - Lao TTF fonts, both Unicode and non-Unicode for Windows
 
  
 
==== Persian ====
 
==== Persian ====
  
* {{AUR|ttf-irfonts}} - Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts series.
+
* {{AUR|persian-fonts}} - Meta package for installing all Persian fonts in AUR.
* {{AUR|ttf-borna}} - Borna Rayaneh Persian B font series.
+
* {{AUR|borna-fonts}} - Borna Rayaneh Co. Persian B font series.
* {{AUR|ttf-sina}} - Sina Pardazesh Persian font series.
+
* {{AUR|iran-nastaliq-fonts}} - A free Unicode calligraphic Persian font.
 +
* {{AUR|iranian-fonts}} - Iranian-Sans and Iranian-Serif Persian font family.
 +
* {{AUR|ir-standard-fonts}} - Iran Supreme Council of Information and Communication Technology (SCICT) standard Persian fonts.
 +
* {{AUR|persian-hm-ftx-fonts}} - A Persian font series derived from X Series 2, Metafont and FarsiTeX fonts with Kashida feature.
 +
* {{AUR|persian-hm-xs2-fonts}} - A Persian font series derived from X Series 2 fonts with Kashida feature.
 +
* {{AUR|sina-fonts}} - Sina Pardazesh Co. Persian font series.
 +
* {{AUR|gandom-fonts}}, {{AUR|parastoo-fonts}}, {{AUR|sahel-fonts}}, {{AUR|samim-fonts}}, {{AUR|shabnam-fonts}}, {{AUR|tanha-fonts}}, {{AUR|vazir-fonts}}, {{AUR|vazir-code-fonts}} - Beautiful Persian fonts made by Ali Rasti Kerdar.
 
* {{AUR|ttf-yas}} - The Yas Persian font series (with '''hollow zero''').
 
* {{AUR|ttf-yas}} - The Yas Persian font series (with '''hollow zero''').
 
* {{AUR|ttf-x2}} - Free fonts with support for Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman).
 
* {{AUR|ttf-x2}} - Free fonts with support for Persian, Arabic, Urdu, Pashto, Dari, Uzbek, Kurdish, Uighur, old Turkish (Ottoman) and modern Turkish (Roman).
* {{AUR|ttf-iran-nastaliq}} - A free Unicode calligraphic Persian font created by Iran Supreme Council of Information and Communication Technology (SCICT).
 
* {{AUR|ttf-vazir}}, {{AUR|ttf-samim}}, {{AUR|ttf-tanha}}, {{AUR|ttf-shabnam}}, {{AUR|ttf-gandom}}, {{AUR|ttf-parastoo}} - Beautiful Persian fonts made by Ali Rasti Kerdar.
 
* {{AUR|ttf-persian-hm-xs2}} - An improved and corrected font series derived from {{AUR|ttf-x2}} Persian font series with Kashida feature.
 
* {{AUR|ttf-persian-hm-ftx}} - An improved and corrected font series derived from {{AUR|ttf-x2}} Persian font series, Metafont and FarsiTeX fonts with Kashida feature.
 
* {{AUR|ttf-iranian-sans}} and {{AUR|ttf-iranian-serif}} - A family of fonts, designed by support from Iranian National Initiative for Free and Open Source Software to provide a good looking and free font for Persian script.
 
* {{AUR|persian-fonts}} - Meta package for installing all Persian fonts in AUR.
 
  
==== Sinhala ====
+
==== Tai–Kadai ====
  
* {{AUR|ttf-lklug}} - Sinhala Unicode font
+
* {{AUR|fonts-tlwg}} - Collection of scalable Thai fonts
 +
* {{AUR|ttf-lao}} - Lao TTF font (Phetsarath_OT)
 +
* {{AUR|ttf-lao-fonts}} - Lao TTF fonts, both Unicode and non-Unicode for Windows
  
==== Thai ====
+
==== Tibeto-Burman ====
  
* {{Pkg|ttf-tlwg}} - Collection of scalable Thai fonts
+
* {{Pkg|ttf-tibetan-machine}} - Tibetan Machine TTFont
 +
* {{AUR|ttf-myanmar-fonts}} - 121 Fonts from myordbok.com
  
==== Tibetan ====
+
=== Emoji and symbols ===
  
* {{Pkg|ttf-tibetan-machine}} - Tibetan Machine TTFont
+
A section of the Unicode standard is designated for pictographic characters called "emoji".
 +
 
 +
* {{Pkg|noto-fonts-emoji}} - Google's own emoji font, like on Android or Google Hangouts.
 +
* {{AUR|ttf-symbola}} - provides many Unicode symbols, including emoji, in outline style.
 +
* {{Pkg|ttf-joypixels}} - Unicode 12 compliant Emoji font (formerly EmojiOne)
 +
* {{AUR|ttf-twemoji-color}} - Twitter's open-sourced emoji glyphs.
 +
 
 +
[[wikipedia:Emoticon#Japanese_style|Kaomoji]] are sometimes referred to as "Japanese emoticons" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: {{Pkg|gnu-free-fonts}}, {{Pkg|ttf-arphic-uming}}, and {{Pkg|ttf-indic-otf}}.
  
 
=== Math ===
 
=== Math ===
  
 
* {{Pkg|font-mathematica}} - Mathematica fonts by Wolfram Research, Inc.
 
* {{Pkg|font-mathematica}} - Mathematica fonts by Wolfram Research, Inc.
 +
* {{Pkg|texlive-core}} and {{Pkg|texlive-fontsextra}} contain many math fonts such as Latin Modern Math and [[Wikipedia:STIX Fonts project|STIX Fonts]]. See [[TeX Live#Making fonts available to Fontconfig]] for configuration.
 +
* {{AUR|otf-stix}} - A standalone, more recent version of STIX
 +
* {{Pkg|otf-latin-modern}}, {{Pkg|otf-latinmodern-math}} - Improved version of Computer Modern fonts as used in LaTeX
 +
* {{AUR|ttf-computer-modern-fonts}}, {{AUR|otf-cm-unicode}} - [[wikipedia:Computer Modern|Computer Modern]] (of TeX fame)
 
* {{AUR|ttf-mathtype}} - MathType fonts
 
* {{AUR|ttf-mathtype}} - MathType fonts
* {{AUR|ttf-computer-modern-fonts}}, {{AUR|otf-cm-unicode}} - [[wikipedia:Computer Modern|Computer Modern]] (of TeX fame)
 
* {{AUR|otf-latin-modern}}, {{AUR|otf-latinmodern-math}} - Improved version of Computer Modern fonts as used in LaTeX
 
* {{Pkg|texlive-core}} and {{Pkg|texlive-fontsextra}} contain many math fonts such as Latin Modern Math and [[Wikipedia:STIX Fonts project|STIX Fonts]]. See [[TeX Live#Fonts]] for configuration.
 
* {{AUR|otf-xits}} - An OpenType implementation of [[Wikipedia:STIX Fonts project|STIX Fonts]] with support for maths written from right to left.
 
  
=== Metric-compatible fonts ===
+
=== Other operating system fonts ===
 +
 
 +
* {{AUR|ttf-mac-fonts}} - Apple MacOS TrueType fonts
  
 
See [[Metric-compatible fonts]], which lists available alternatives for [[Microsoft fonts]].
 
See [[Metric-compatible fonts]], which lists available alternatives for [[Microsoft fonts]].
 
=== Apple macOS fonts ===
 
 
* {{AUR|ttf-mac-fonts}} - macOS TrueType fonts
 
 
=== Monospaced ===
 
 
Here are some suggestions. Every user has their own favorite, so experiment to find yours.
 
If you are in a hurry, you read Dan Benjamin's blog post: [http://hivelogic.com/articles/top-10-programming-fonts ''Top 10 Programming Fonts''].
 
 
Here is a long list of fonts by Trevor Lowing: http://www.lowing.org/fonts/.
 
 
A comparison with images on Slant: [http://www.slant.co/topics/67/~what-are-the-best-programming-fonts What are the best programming fonts?]
 
 
And a Stack Overflow question with some images: [http://stackoverflow.com/questions/4689/recommended-fonts-for-programming Recommended fonts for programming]
 
 
==== TrueType ====
 
 
* [[Wikipedia:Andalé Mono|Andalé Mono]] ({{AUR|ttf-ms-fonts}})
 
* [http://www.marksimonson.com/fonts/view/anonymous-pro Anonymous Pro] ({{pkg|ttf-anonymous-pro}}, included in {{AUR|ttf-google-fonts-git}})
 
* [[Wikipedia:Bitstream Vera|Bitstream Vera Mono]] ({{Pkg|ttf-bitstream-vera}})
 
* [[Wikipedia:Consolas|Consolas]] ({{AUR|ttf-vista-fonts}}) - Windows programming font
 
* [[Wikipedia:Courier New|Courier New]] ({{AUR|ttf-ms-fonts}})
 
* Cousine ({{AUR|ttf-chromeos-fonts}} or {{AUR|ttf-google-fonts-git}}) - Chrome/Chromium OS replacement for Courier New (metric-compatible)
 
* [[Wikipedia:DejaVu fonts|DejaVu Sans Mono]] ({{Pkg|ttf-dejavu}}) - Unicode
 
* [[Wikipedia:Droid (font)|Droid Sans Mono]] ({{Pkg|ttf-droid}}, included in {{AUR|ttf-google-fonts-git}})
 
* [https://damieng.com/blog/2008/05/26/envy-code-r-preview-7-coding-font-released Envy Code R] ({{AUR|ttf-envy-code-r}})
 
* Fantasque Sans Mono ({{AUR|ttf-fantasque-sans}} or {{AUR|ttf-fantasque-sans-git}})
 
* [[Wikipedia:GNU FreeFont|FreeMono]] ({{Pkg|ttf-freefont}}) - Unicode
 
* [[Wikipedia:Inconsolata|Inconsolata]] ({{Pkg|ttf-inconsolata}}, included in {{AUR|ttf-google-fonts-git}}) - Excellent programming font
 
* [[Wikipedia:Inconsolata|Inconsolata-g]] ({{AUR|ttf-inconsolata-g}}) - adds some programmer-friendly modifications
 
* [[Wikipedia:Liberation fonts|Liberation Mono]] ({{Pkg|ttf-liberation}}) - Replacement for Courier New, based on Cousine (metric-compatible)
 
* [[Wikipedia:Lucida Typewriter|Lucida Typewriter]] (included in package {{AUR|jre}})
 
* [[Wikipedia:Monaco (typeface)|Monaco]] ({{AUR|ttf-monaco}}) - Popular programming font on OSX/Textmate
 
* Monofur ({{AUR|ttf-monofur}})
 
* [[Wikipedia:Source_Code_Pro|Source Code Pro]] ({{pkg|adobe-source-code-pro-fonts}})
 
* [[Wikipedia:Fira_Sans|Fira Mono]] ({{pkg|ttf-fira-mono}})
 
 
==== Bitmap ====
 
 
* Default 8x16
 
* Dina ({{Pkg|dina-font}})
 
* [http://font.gohu.org/ Gohu] ({{AUR|gohufont}})
 
* Lime ({{Pkg|artwiz-fonts}})
 
* [[Wikipedia:ProFont|ProFont]] ({{Pkg|profont}})
 
* [[Wikipedia:Proggy Programming Fonts|Proggy Programming Fonts]] ({{AUR|proggyfonts}})
 
* Tamsyn ({{Pkg|tamsyn-font}})
 
* [http://terminus-font.sourceforge.net/ Terminus] ({{Pkg|terminus-font}})
 
* [https://github.com/lucy/tewi-font Tewi] ({{AUR|bdf-tewi-git}})
 
* Unifont (glyphs like (look of disapproval)) ({{Pkg|bdf-unifont}})
 
 
=== Sans-serif ===
 
 
* [http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=andika Andika] ({{AUR|ttf-andika}})
 
* [[Wikipedia:Arial|Arial]] ({{AUR|ttf-ms-fonts}})
 
* [[Wikipedia:Arial Black|Arial Black]] ({{AUR|ttf-ms-fonts}})
 
* Arimo ({{AUR|ttf-chromeos-fonts}} or {{AUR|ttf-google-fonts-git}}) - Chrome/Chromium OS replacement for Arial (metric-compatible)
 
* [[Wikipedia:Calibri|Calibri]] ({{AUR|ttf-vista-fonts}})
 
* [[Wikipedia:Candara|Candara]] ({{AUR|ttf-vista-fonts}})
 
* [[Wikipedia:Corbel (typeface)|Corbel]] ({{AUR|ttf-vista-fonts}})
 
* [[Wikipedia:DejaVu fonts|DejaVu Sans]] ({{Pkg|ttf-dejavu}}) - Unicode
 
* [[Wikipedia:Droid (font)|Droid Sans]] ({{Pkg|ttf-droid}}, included in {{AUR|ttf-google-fonts-git}})
 
* [[Wikipedia:GNU FreeFont|FreeSans]] ({{Pkg|ttf-freefont}}) - Unicode
 
* [[Wikipedia:Impact (typeface)|Impact]] ({{AUR|ttf-ms-fonts}})
 
* [[Wikipedia:Liberation fonts|Liberation Sans]] ({{Pkg|ttf-liberation}}) Replacement for Arial, based on Arimo (metric-compatible)
 
* [[Wikipedia:Linux Libertine|Linux Biolinum]] ({{Pkg|ttf-linux-libertine}})
 
* [[Wikipedia:Lucida Sans|Lucida Sans]] ({{AUR|ttf-ms-fonts}})
 
* [[Wikipedia:Microsoft Sans Serif|Microsoft Sans Serif]] ({{AUR|ttf-ms-fonts}})
 
* [[Wikipedia:PT Sans|PT Sans]] ({{AUR|ttf-google-fonts-git}}) - 3 major variations: normal, narrow, and caption - Unicode: Latin, Cyrillic
 
* [[Wikipedia:Source Sans Pro|Source Sans Pro]] ({{pkg|adobe-source-sans-pro-fonts}})
 
* [[Wikipedia:Tahoma (typeface)|Tahoma]] ({{AUR|ttf-tahoma}})
 
* [[Wikipedia:Trebuchet MS|Trebuchet]] ({{AUR|ttf-ms-fonts}})
 
* [[Wikipedia:Ubuntu Font Family|Ubuntu Font Family]] ({{Pkg|ttf-ubuntu-font-family}})
 
* [[Wikipedia:Verdana|Verdana]] ({{AUR|ttf-ms-fonts}})
 
 
=== Script ===
 
 
* [[Wikipedia:Comic Sans|Comic Sans]] ({{AUR|ttf-ms-fonts}})
 
 
=== Serif ===
 
 
* [[Wikipedia:Cambria (typeface)|Cambria]] ({{AUR|ttf-vista-fonts}})
 
* [[Wikipedia:Constantia (typeface)|Constantia]] ({{AUR|ttf-vista-fonts}})
 
* [[Wikipedia:DejaVu fonts|DejaVu Serif]] ({{Pkg|ttf-dejavu}}) - Unicode
 
* [[Wikipedia:Droid (font)|Droid Serif]] ({{Pkg|ttf-droid}}, included in {{AUR|ttf-google-fonts-git}})
 
* [[Wikipedia:GNU FreeFont|FreeSerif]] ({{Pkg|ttf-freefont}}) - Unicode
 
* [[Wikipedia:Gentium|Gentium]] ({{Pkg|ttf-gentium}}) - Unicode: Latin, Greek, Cyrillic, Phonetic Alphabet
 
* [[Wikipedia:Georgia (typeface)|Georgia]] ({{AUR|ttf-ms-fonts}})
 
* [[Wikipedia:Liberation fonts|Liberation Serif]] ({{Pkg|ttf-liberation}}) - Replacement for Times New Roman, based on Tinos (metric-compatible)
 
* [[Wikipedia:Linux Libertine|Linux Libertine]] ({{Pkg|ttf-linux-libertine}}) - Unicode: Latin, Greek, Cyrillic, Hebrew
 
* [[Wikipedia:Times New Roman|Times New Roman]] ({{AUR|ttf-ms-fonts}})
 
* Tinos ({{AUR|ttf-chromeos-fonts}} or {{AUR|ttf-google-fonts-git}}) - Chrome/Chromium OS replacement for Times New Roman (metric-compatible)
 
 
=== Unsorted ===
 
 
{{Style|This section should be absorbed into the Monospace/Serif/Sans-Serif structure}}
 
 
* {{AUR|ttf-google-fonts-git}} - a huge collection of free fonts (including ubuntu, inconsolata, droid, etc.) - Note: Your font dialog might get very long as >100 fonts will be added.
 
* {{Pkg|ttf-mph-2b-damase}} - Covers full plane 1 and several scripts
 
* {{Pkg|font-bh-ttf}} - X.Org Luxi fonts
 
* {{Pkg|ttf-cheapskate}} - Font collection from ''dustismo.com''
 
* {{Pkg|ttf-junicode}} - Junius font containing almost complete medieval latin script glyphs
 
* {{Pkg|xorg-fonts-type1}} - IBM Courier and Adobe Utopia sets of [[Wikipedia:PostScript fonts|PostScript fonts]]
 
* {{AUR|all-repository-fonts}} - Meta package for all fonts in the official repositories.
 
  
 
== Fallback font order with X11 ==
 
== Fallback font order with X11 ==
Line 505: Line 450:
 
{{Tip|If you use a Chinese locale, set {{ic|LC_LANG}} to {{ic|und}} to make this work. Otherwise both English and Chinese text will be rendered in the Chinese font.}}
 
{{Tip|If you use a Chinese locale, set {{ic|LC_LANG}} to {{ic|und}} to make this work. Otherwise both English and Chinese text will be rendered in the Chinese font.}}
  
You can add a section for sans-serif and monospace as well. For more informations, have a look at the fontconfig manual.
+
You can add a section for sans-serif and monospace as well. For more information, have a look at the fontconfig manual.
  
 
See also [[Font configuration#Replace or set default fonts]].
 
See also [[Font configuration#Replace or set default fonts]].
Line 525: Line 470:
 
=== List all installed fonts ===
 
=== List all installed fonts ===
  
You can use the following command to list all installed fonts that are available on your system.  
+
You can use the following command to list all installed Fontconfig fonts that are available on your system.  
  
 
  $ fc-list
 
  $ fc-list
  
=== Lists installed fonts for a particular language ===
+
=== List installed fonts for a particular language ===
  
Applications and browsers select and display fonts depending upon fontconfig preferences and available font glyph for Unicode text. To list installed fonts for a particular language, issue a command {{ic|<nowiki>fc-list :lang="two letter language code"</nowiki>}}. For instance, to list installed Arabic fonts or fonts supporting Arabic glyph:
+
Applications and browsers select and display fonts depending upon fontconfig preferences and available font glyph for Unicode text. To list installed fonts for a particular language, issue a command {{ic|1=fc-list :lang="''two letter language code''"}}. For instance, to list installed Arabic fonts or fonts supporting Arabic glyph:
{{hc|$ fc-list -f '%{file}\n' :lang&#61;ar|2=
+
 
<nowiki>
+
{{hc|1=$ fc-list -f '%{file}\n' :lang=ar|2=
 
/usr/share/fonts/TTF/FreeMono.ttf
 
/usr/share/fonts/TTF/FreeMono.ttf
 
/usr/share/fonts/TTF/DejaVuSansCondensed.ttf
 
/usr/share/fonts/TTF/DejaVuSansCondensed.ttf
Line 539: Line 484:
 
/usr/share/fonts/TTF/DejaVuSansMono.ttf
 
/usr/share/fonts/TTF/DejaVuSansMono.ttf
 
/usr/share/fonts/TTF/FreeSerif.ttf
 
/usr/share/fonts/TTF/FreeSerif.ttf
</nowiki>
 
 
}}
 
}}
 +
 +
=== List installed fonts for a particular Unicode character ===
 +
 +
To search for monospace fonts supporting a particular Unicode codepoint:
 +
 +
$ fc-match -s monospace:charset=1F4A9
  
 
=== Set terminal font on-the-fly ===
 
=== Set terminal font on-the-fly ===
  
{{Expansion|Which terminals specifically support this method? Where is the documentation for the escape codes?}}
+
{{Expansion|Where is the documentation for the escape codes?}}
  
For terminal emulators that use {{ic|Xresources}}, fonts can be set by using escape sequences. Specifically, echo {{ic|\033]710;$font\007}} to change the normal font ({{ic|*font}} in {{ic|~/.Xresources}}), and replace {{ic|710}} with {{ic|711}}, {{ic|712}}, and {{ic|713}} to change the {{ic|*boldFont}}, {{ic|*italicFont}}, and {{ic|*boldItalicFont}}, respectively.
+
For terminal emulators that use [[X resources]], e.g. [[xterm]] or [[rxvt-unicode]], fonts can be set by using escape sequences. Specifically, {{ic|echo -e "\033]710;$font\007"}} to change the normal font ({{ic|*font}} in {{ic|~/.Xresources}}), and replace {{ic|710}} with {{ic|711}}, {{ic|712}}, and {{ic|713}} to change the {{ic|*boldFont}}, {{ic|*italicFont}}, and {{ic|*boldItalicFont}}, respectively.
  
{{ic|$font}} can be anything the terminal emulator will support.
+
{{ic|$font}} uses the same syntax as in {{ic|~/.Xresources}} and can be anything the terminal emulator will support. (Example: {{ic|1=xft:dejavu sans mono:size=9}})
  
 
=== Application-specific font cache ===
 
=== Application-specific font cache ===
  
Matplotlib ({{pkg|python-matplotlib}} or {{pkg|python2-matplotlib}}) uses its own font cache, so after updating fonts, be sure to remove {{ic|$HOME/.matplotlib/fontList.cache}},  
+
Matplotlib ({{Pkg|python-matplotlib}} or {{Pkg|python2-matplotlib}}) uses its own font cache, so after updating fonts, be sure to remove {{ic|~/.matplotlib/fontList.cache}}, {{ic|~/.cache/matplotlib/fontList.cache}}, {{ic|~/.sage/matplotlib-1.2.1/fontList.cache}}, etc. so it will regenerate its cache and find the new fonts [http://matplotlib.1069221.n5.nabble.com/getting-matplotlib-to-recognize-a-new-font-td40500.html].
{{ic|$HOME/.cache/matplotlib/fontList.cache}}, {{ic|$HOME/.sage/matplotlib-1.2.1/fontList.cache}}, etc. so it will regenerate its cache and find the new fonts [http://matplotlib.1069221.n5.nabble.com/getting-matplotlib-to-recognize-a-new-font-td40500.html].
 
  
 
== See also ==
 
== See also ==
  
 
* [http://behdad.org/text/ State of Text Rendering]
 
* [http://behdad.org/text/ State of Text Rendering]
 +
* [https://fontlibrary.org/en Font Library] - Fonts under Free licenses
 +
* [https://screenshots.debian.net/packages?search=fonts&show=with Fonts on screenshots.debian.net]

Latest revision as of 16:09, 15 August 2019

From Wikipedia:Computer font: "A computer font (or font) is an electronic data file containing a set of glyphs, characters, or symbols such as dingbats."

Note that certain font licenses may impose some legal limitations.

Font formats

Most computer fonts used today are in either bitmap or outline data formats.

Bitmap fonts
Consist of a matrix of dots or pixels representing the image of each glyph in each face and size.
Outline or vector fonts
Use Bézier curves, drawing instructions and mathematical formulae to describe each glyph, which make the character outlines scalable to any size.

Bitmap formats

These formats can also be gzipped. See #Bitmap for the available bitmap fonts.

Outline formats

  • PostScript fonts by Adobe – has various formats, e.g: Printer Font ASCII (PFA) and Printer Font Binary (PFB)
  • TrueType by Apple and Microsoft (file extension: ttf)
  • OpenType by Microsoft, built on TrueType (file extensions: otf, ttf)

For most purposes, the technical differences between TrueType and OpenType can be ignored.

Other formats

The typesetting application, TeX, and its companion font software, Metafont, render characters using their own methods. Some of the file extensions used for fonts by these two programs are *pk, *gf, mf and vf.

FontForge (fontforge), a font editing application, can store fonts in its native text-based format, sfd, spline font database.

The SVG format also has its own font description method.

Installation

There are various methods for installing fonts.

Pacman

Fonts and font collections in the enabled repositories can be installed using pacman.

Available fonts may be found by querying packages (e.g. for font or ttf).

Creating a package

You should give pacman the ability to manage your fonts, which is done by creating an Arch package. These can also be shared with the community in the AUR. The packages to install fonts are particularly similar; simply taking an existing package as template should work well. To learn about how to modify it for your font, please refer to Creating packages.

The family name of a font file can be aquired with the use of fc-query for example: fc-query -f '%{family[0]}\n' /path/to/file. The formatting is described in FcPatternFormat(3).

Manual installation

The recommended way of adding fonts that are not in the repositories to your system is described in #Creating a package. This gives pacman the ability to remove or update them at a later time. Fonts can alternately be installed manually as well.

To install fonts system-wide (available for all users), move the folder to the /usr/share/fonts directory. The files need to be readable by every user, use chmod to set the correct permissions (i.e. at least 0444 for files and 0555 for directories). To install fonts for only a single user, use ~/.local/share/fonts/ (~/.fonts/ is now deprecated).

For Xserver to load fonts directly (as opposed to the use of a font server) the directory for your newly added font must be added with a FontPath entry. This entry is located in the Files section of your Xorg configuration file (e.g. /etc/X11/xorg.conf or /etc/xorg.conf). See #Older applications for more detail.

Then update the fontconfig font cache: (usually unnecessary as software using the fontconfig library does this)

$ fc-cache

Older applications

With older applications that do not support fontconfig (e.g. GTK 1.x applications, and xfontsel) the index will need to be created in the font directory:

$ mkfontscale
$ mkfontdir

Or to include more than one folder with one command:

$ for dir in /font/dir1/ /font/dir2/; do xset +fp $dir; done && xset fp rehash

Or if fonts were installed in a different sub-folders under the e.g. /usr/share/fonts:

$ for dir in * ; do if [  -d  "$dir"  ]; then cd "$dir";xset +fp "$PWD" ;mkfontscale; mkfontdir;cd .. ;fi; done && xset fp rehash

At times the X server may fail to load the fonts directory and you will need to rescan all the fonts.dir files:

# xset +fp /usr/share/fonts/misc # Inform the X server of new directories
# xset fp rehash                # Forces a new rescan

To check that the font(s) is included:

$ xlsfonts | grep fontname
Note: Many packages will automatically configure Xorg to use the font upon installation. If that is the case with your font, this step is not necessary.

This can also be set globally in /etc/X11/xorg.conf or /etc/X11/xorg.conf.d.

Here is an example of the section that must be added to /etc/X11/xorg.conf. Add or remove paths based on your particular font requirements.

# Let X.Org know about the custom font directories
Section "Files"
    FontPath    "/usr/share/fonts/100dpi"
    FontPath    "/usr/share/fonts/75dpi"
    FontPath    "/usr/share/fonts/cantarell"
    FontPath    "/usr/share/fonts/cyrillic"
    FontPath    "/usr/share/fonts/encodings"
    FontPath    "/usr/share/fonts/misc"
    FontPath    "/usr/share/fonts/truetype"
    FontPath    "/usr/share/fonts/TTF"
    FontPath    "/usr/share/fonts/util"
EndSection

Pango Warnings

When Pango is in use on your system it will read from fontconfig to sort out where to source fonts.

(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='common'
(process:5741): Pango-WARNING **: failed to choose a font, expect ugly output. engine-type='PangoRenderFc', script='latin'

If you are seeing errors similar to this and/or seeing blocks instead of characters in your application then you need to add fonts and update the font cache. This example uses the ttf-liberation fonts to illustrate the solution (after successful installation of the package) and runs as root to enable them system-wide.

# fc-cache
/usr/share/fonts: caching, new cache contents: 0 fonts, 3 dirs
/usr/share/fonts/TTF: caching, new cache contents: 16 fonts, 0 dirs
/usr/share/fonts/encodings: caching, new cache contents: 0 fonts, 1 dirs
/usr/share/fonts/encodings/large: caching, new cache contents: 0 fonts, 0 dirs
/usr/share/fonts/util: caching, new cache contents: 0 fonts, 0 dirs
/var/cache/fontconfig: cleaning cache directory
fc-cache: succeeded

You can test for a default font being set like so:

$ fc-match
LiberationMono-Regular.ttf: "Liberation Mono" "Regular"

Font packages

This is a selective list that includes many font packages from the AUR along with those in the official repositories. Fonts are tagged "Unicode" if they have wide Unicode support, see the project or Wikipedia pages for detail.

The Archfonts Python script can be used to generate an overview of all the TTF fonts found in the official repositories / the AUR (the image generation is done using ttf2pngAUR).

Bitmap

Note: pango 1.44 dropped support for FreeType in favor or HarfBuzz thus losing support for bitmap fonts, so applications like e.g. gnome-terminal will not work with such fonts anymore, showing rectangles instead of glyphs. See FS#63297, Pango issue #386 and HarfBuzz issue #1897.

Latin script

Families

Legacy Microsoft font packages:

  • Microsoft fonts (ttf-ms-fontsAUR) – Andalé Mono, Courier New, Arial, Arial Black, Comic Sans, Impact, Lucida Sans, Microsoft Sans Serif, Trebuchet, Verdana, Georgia, Times New Roman
  • Vista fonts (ttf-vista-fontsAUR) – Consolas, Calibri, Candara, Corbel, Cambria, Constantia

Monospaced

For more monospaced fonts see #Bitmap and #Families.

Relevant websites:

Sans-serif

Serif

Unsorted

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: This section should be absorbed into the Monospace/Serif/Sans-Serif structure (Discuss in Talk:Fonts#)

Non-latin scripts

Ancient Scripts

  • ttf-ancient-fontsAUR - Font containing Unicode symbols for Aegean, Egyptian, Cuneiform, Anatolian, Maya, and Analecta scripts

Arabic

Braille

  • ttf-ubrailleAUR - Font containing Unicode symbols for braille

Chinese, Japanese, Korean, Vietnamese

Pan-CJK
Chinese

Tango-go-next.pngThis article or section is a candidate for moving to Localization/Chinese#Fonts.Tango-go-next.png

Notes: It makes sense to group language-specific things together. (Discuss in Talk:Fonts#Move CJK and Indic fonts to Localization subpages)
  • adobe source han fonts
  • noto Chinese fonts
  • wqy fonts
    • wqy-microhei - WenQuanYi Micro Hei font family (also known as Hei, Gothic or Dotum) is a sans-serif style derived from Droid Sans Fallback, it offers high quality CJK outline font and it is extremely compact (~5M).
    • wqy-zenhei - Hei Ti Style (sans-serif) Chinese Outline font embedded with bitmapped Song Ti (also supporting Japanese (partial) and Korean characters).
    • wqy-bitmapfont - Bitmapped Song Ti (serif) Chinese font.
  • arphic fonts
  • opendesktop-fonts - New Sung font, previously is ttf-fireflysung package
  • ttf-hannom - Chinese and Vietnamese ttf fonts
  • Standart fonts of the Republic of China ministry of education in Taiwan
    • ttf-twAUR - Kai and Song traditional Chinese font from the Ministry of Education of Taiwan
    • ttf-twcns-fontsAUR Chinese TrueType fonts by Ministry of Education of Taiwan government, support CNS11643 standard, including Kai and Sung fontface.
  • Windows Chinese fonts
  • ttf-i.bmingAUR - CJK serif font that emphasis on an old-style typeface.
Japanese

Tango-go-next.pngThis article or section is a candidate for moving to Localization/Japanese#Fonts.Tango-go-next.png

Notes: It makes sense to group language-specific things together. (Discuss in Talk:Fonts#Move CJK and Indic fonts to Localization subpages)
  • adobe-source-han-sans-jp-fonts - Japanese OpenType/CFF fonts
  • otf-ipafont - Formal style Japanese Gothic (sans-serif) and Mincho (serif) fonts set; one of the highest quality open source font. Default of openSUSE-ja.
  • ttf-hanazono - A free Japanese kanji font, style Mincho (serif).
  • ttf-sazanami - Japanese free TrueType font. This is outdated and not maintained any more, but may be defined as a fallback font on several environments.
  • ttf-koruriAUR - Japanese TrueType font obtained by mixing ttf-mplusAUR and Open Sans
  • ttf-monapoAUR - Japanese fonts to show 2channel Shift JIS art properly.
  • ttf-mplusAUR - Modern Gothic style Japanese outline fonts. It includes all of Japanese Hiragana/Katakana, Basic Latin, Latin-1 Supplement, Latin Extended-A, IPA Extensions and most of Japanese Kanji, Greek, Cyrillic, Vietnamese with 7 weights (proportional) or 5 weights (monospace).
  • ttf-vlgothicAUR - Japanese Gothic fonts. Default of Debian/Fedora/Vine Linux
Korean

Tango-go-next.pngThis article or section is a candidate for moving to Localization/Korean#Fonts.Tango-go-next.png

Notes: It makes sense to group language-specific things together. (Discuss in Talk:Fonts#Move CJK and Indic fonts to Localization subpages)
Vietnamese
  • ttf-hannom - Vietnamese TrueType font for chữ Nôm characters

Cyrillic

See also #Latin script.

  • ttf-paratypeAUR - Font family by ParaType: sans, serif, mono, extended cyrillic and latin, OFL license
  • otf-russkopisAUR - A free OpenType cursive font for Cyrillic script

Greek

Almost all Unicode fonts contain the Greek character set (polytonic included). Some additional font packages, which might not contain the complete Unicode set but utilize high quality Greek (and Latin, of course) typefaces are:

  • otf-gfsAUR - Selection of OpenType fonts from the Greek Font Society
  • ttf-mgopenAUR - Professional TrueType fonts from Magenta

Hebrew

Indic

Tango-go-next.pngThis article or section is a candidate for moving to Localization/Indic#Fonts.Tango-go-next.png

Notes: It makes sense to group language-specific things together. (Discuss in Talk:Fonts#Move CJK and Indic fonts to Localization subpages)
  • ttf-freebanglafontAUR - Font for Bangla
  • ttf-indic-otf - Indic OpenType Fonts collection (containing ttf-freebanglafont), provides the character U+0CA0 "ಠ"
  • lohit-fontsAUR - Indic TrueType fonts from Fedora Project (containing Oriya Fonts and more)
  • ttf-devanagarifontsAUR - Devanagari TrueType fonts (contains 283 fonts)
  • ttf-gurmukhi-fonts_sikhnetAUR - TrueType Gurmukhi fonts (gurbaniwebthick,prabhki)
  • ttf-gurmukhi_punjabiAUR - TTF Gurmukhi / Punjabi (contains 252 fonts)
  • ttf-gujrati-fontsAUR - TTF Gujarati fonts (Avantika,Gopika,Shree768)
  • ttf-kannada-fontAUR - Kannada, the language of Karnataka state in India
  • ttf-lklugAUR - Sinhala Unicode font
  • ttf-tamilAUR - Tamil Unicode fonts
  • ttf-urdufontsAUR - Urdu fonts (Jameel Noori Nastaleeq (+kasheeda), Nafees Web Naskh, PDMS Saleem Quran Font) and font configuration to set Jameel Noori Nastaleeq as default font for Urdu
  • fonts-smc-malayalamAUR - Malayalam Unicode Fonts released by 'Swathanthra Malayalam Computing' (contains 11 fonts).

Khmer

Mongolic and Tungusic

  • ttf-abkaiAUR - Fonts for Sibe, Manchu and Daur scripts (incomplete, currently in development)

Persian

Tai–Kadai

  • fonts-tlwgAUR - Collection of scalable Thai fonts
  • ttf-laoAUR - Lao TTF font (Phetsarath_OT)
  • ttf-lao-fontsAUR - Lao TTF fonts, both Unicode and non-Unicode for Windows

Tibeto-Burman

Emoji and symbols

A section of the Unicode standard is designated for pictographic characters called "emoji".

  • noto-fonts-emoji - Google's own emoji font, like on Android or Google Hangouts.
  • ttf-symbolaAUR - provides many Unicode symbols, including emoji, in outline style.
  • ttf-joypixels - Unicode 12 compliant Emoji font (formerly EmojiOne)
  • ttf-twemoji-colorAUR - Twitter's open-sourced emoji glyphs.

Kaomoji are sometimes referred to as "Japanese emoticons" and are composed of characters from various character sets, including CJK and Indic fonts. For example, the following set of packages covers most of existing kaomoji: gnu-free-fonts, ttf-arphic-uming, and ttf-indic-otf.

Math

Other operating system fonts

See Metric-compatible fonts, which lists available alternatives for Microsoft fonts.

Fallback font order with X11

Fontconfig automatically chooses a font that matches the current requirement. That is to say, if one is looking at a window containing English and Chinese for example, it will switch to another font for the Chinese text if the default one does not support it.

Fontconfig lets every user configure the order they want via $XDG_CONFIG_HOME/fontconfig/fonts.conf. If you want a particular Chinese font to be selected after your favorite Serif font, your file would look like this:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<alias>
   <family>serif</family>
   <prefer>
     <family>Your favorite Latin Serif font name</family>
     <family>Your Chinese font name</family>
   </prefer>
 </alias>
</fontconfig>
Tip: If you use a Chinese locale, set LC_LANG to und to make this work. Otherwise both English and Chinese text will be rendered in the Chinese font.

You can add a section for sans-serif and monospace as well. For more information, have a look at the fontconfig manual.

See also Font configuration#Replace or set default fonts.

Font alias

There are several font aliases which represent other fonts in order that applications may use similar fonts. The most common aliases are: serif for a font of the serif type (e.g. DejaVu Serif); sans-serif for a font of the sans-serif type (e.g. DejaVu Sans); and monospace for a monospaced font (e.g. DejaVu Sans Mono). However, the fonts which these aliases represent may vary and the relationship is often not shown in font management tools, such as those found in KDE and other desktop environments.

To reverse an alias and find which font it is representing, run:

$ fc-match monospace
DejaVuSansMono.ttf: "DejaVu Sans Mono" "Book"

In this case, DejaVuSansMono.ttf is the font represented by the monospace alias.

Tips and tricks

List all installed fonts

You can use the following command to list all installed Fontconfig fonts that are available on your system.

$ fc-list

List installed fonts for a particular language

Applications and browsers select and display fonts depending upon fontconfig preferences and available font glyph for Unicode text. To list installed fonts for a particular language, issue a command fc-list :lang="two letter language code". For instance, to list installed Arabic fonts or fonts supporting Arabic glyph:

$ fc-list -f '%{file}\n' :lang=ar
/usr/share/fonts/TTF/FreeMono.ttf
/usr/share/fonts/TTF/DejaVuSansCondensed.ttf
/usr/share/fonts/truetype/custom/DroidKufi-Bold.ttf
/usr/share/fonts/TTF/DejaVuSansMono.ttf
/usr/share/fonts/TTF/FreeSerif.ttf

List installed fonts for a particular Unicode character

To search for monospace fonts supporting a particular Unicode codepoint:

$ fc-match -s monospace:charset=1F4A9

Set terminal font on-the-fly

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Where is the documentation for the escape codes? (Discuss in Talk:Fonts#)

For terminal emulators that use X resources, e.g. xterm or rxvt-unicode, fonts can be set by using escape sequences. Specifically, echo -e "\033]710;$font\007" to change the normal font (*font in ~/.Xresources), and replace 710 with 711, 712, and 713 to change the *boldFont, *italicFont, and *boldItalicFont, respectively.

$font uses the same syntax as in ~/.Xresources and can be anything the terminal emulator will support. (Example: xft:dejavu sans mono:size=9)

Application-specific font cache

Matplotlib (python-matplotlib or python2-matplotlib) uses its own font cache, so after updating fonts, be sure to remove ~/.matplotlib/fontList.cache, ~/.cache/matplotlib/fontList.cache, ~/.sage/matplotlib-1.2.1/fontList.cache, etc. so it will regenerate its cache and find the new fonts [1].

See also