Hi folks,
I recently reviewed all the fonts installed on my system and found that
fontconfig cache does not include TeX OpenType or TrueType fonts installed under
/usr/share/texmf-dist/fonts/{open,true}type/, non-'Microsoft Corp' Windows fonts
including those labelled 'Microsoft supplied font', .TTF, .ttc, and .ot[cf], but
does cache those in the Windows/Fonts/Deleted subdirectory.
I run the attached permanent postinstall local script to pick up all those fonts
the official script does not, clean up old broken links, link the font files
into /usr/share/fonts/windows/ and /usr/share/fonts/{open,true}type/texmf-dist/
as appropriate, then mkfontscale fonts.scale and mkfontdir fonts.dir in each.
Please consider changing the official current stable permanent postinstall
script to include these font installation directories, plus any others that
maintainers may be aware of outside /usr/share/fonts/.
These would include fonts in Octave, Python, Ruby package directories: not all
in /usr/share/fonts/ or my texmf-dist links, and those are may be duplicated
from actual font packages, so would the best approach for these require the font
packages, provide a standard location font subpackage linked to the package
directory, or suggestions?
/usr/lib/python2.7/site-packages/reportlab/fonts/
/usr/lib/python2.7/site-packages/sphinx_rtd_theme/static/fonts/
/usr/lib/python2.7/site-packages/sphinx_rtd_theme/static/fonts/Lato/
/usr/lib/python2.7/site-packages/sphinx_rtd_theme/static/fonts/RobotoSlab/
/usr/lib/python3.6/site-packages/sphinx_rtd_theme/static/fonts/
/usr/lib/python3.6/site-packages/sphinx_rtd_theme/static/fonts/Lato/
/usr/lib/python3.6/site-packages/sphinx_rtd_theme/static/fonts/RobotoSlab/
/usr/lib/python3.7/site-packages/sphinx_rtd_theme/static/fonts/
/usr/lib/python3.7/site-packages/sphinx_rtd_theme/static/fonts/Lato/
/usr/lib/python3.7/site-packages/sphinx_rtd_theme/static/fonts/RobotoSlab/
/usr/lib/python3.8/site-packages/sphinx_rtd_theme/static/fonts/
/usr/lib/python3.8/site-packages/sphinx_rtd_theme/static/fonts/Lato/
/usr/lib/python3.8/site-packages/sphinx_rtd_theme/static/fonts/RobotoSlab/
/usr/lib/python3.9/site-packages/matplotlib/mpl-data/fonts/ttf/
/usr/lib/python3.9/site-packages/reportlab/fonts/
/usr/lib/python3.9/site-packages/sphinx_rtd_theme/static/fonts/
/usr/lib/python3.9/site-packages/sphinx_rtd_theme/static/fonts/Lato/
/usr/lib/python3.9/site-packages/sphinx_rtd_theme/static/fonts/RobotoSlab/
/usr/share/gems/doc/activesupport-5.1.6/rdoc/fonts/
/usr/share/gems/doc/coffee-rails-4.2.2/rdoc/fonts/
/usr/share/gems/doc/coffee-script-2.4.1/rdoc/fonts/
/usr/share/gems/doc/coffee-script-source-1.10.0/rdoc/fonts/
/usr/share/gems/doc/erubis-2.7.0/rdoc/fonts/
/usr/share/gems/doc/execjs-2.5.2/rdoc/fonts/
/usr/share/gems/doc/sass-3.5.6/rdoc/fonts/
/usr/share/gems/doc/uglifier-3.1.13/rdoc/fonts/
/usr/share/gems/gems/rdoc-6.7.0/lib/rdoc/generator/template/darkfish/fonts/
/usr/share/octave/8.4.0/fonts/
--
Take care. Thanks, Brian Inglis Calgary, Alberta, Canada
La perfection est atteinte Perfection is achieved
non pas lorsqu'il n'y a plus rien à ajouter not when there is no more to add
mais lorsqu'il n'y a plus rien à retirer but when there is no more to cut
-- Antoine de Saint-Exupéry#!/bin/dash
# zp_l_fontconfig_cache.dash - update Windows non-MS Corp ttf, TTF, ttc, and
otf font links and rebuild font cache
winfontsdir=/usr/share/fonts/windows
cache=/var/cache/fontconfig
mscorp='Microsoft Corp'
win="$(cygpath -UW)/Fonts" # ln to /proc/cygdrive in case mount changes
later
/bin/mkdir -p $winfontsdir
# remove any broken links (-L -type l together)
/usr/bin/find -L $winfontsdir -type l -delete
# fontconfig handles ttc TrueType collections and otf OpenType fonts and otc
collections
# find Windows non-MS Corp .ttf, all .TTF, .ttc, .otf, and .otc fonts and link
between fonts dirs
# Notes:
# DUBAI-*, MTEXTRA, others are 'Microsoft supplied font';
# all *.TTF are 'Microsoft Corp'; some are also 'Microsoft supplied font';
# .../Fonts may have Deleted subdirectory;
# grep -L returns names of files with no pattern matches;
/usr/bin/find "$win" -maxdepth 1 -type f \
\( -name '*.ttf' -exec /bin/grep -FaL "$mscorp" '{}' + \) \
-o \( -name '*.TTF' -print \) \
-o \( -iname '*.ttc' -print \) \
-o \( -iname '*.ot[cf]' -print \) | \
while read f
do
[ -e "$winfontsdir/${f##*/}" ] || /bin/ln -st $winfontsdir/ "$f"
done
/usr/bin/mkfontscale $winfontsdir
/usr/bin/mkfontdir $winfontsdir
for type in opentype truetype
do
texfontsdir=/usr/share/fonts/$type/texmf-dist
/bin/mkdir -p $texfontsdir
# remove any broken links (-L -type l together)
/usr/bin/find -L $texfontsdir -type l -delete
dist=/usr/share/texmf-dist/fonts/$type
# fontconfig handles ttc TrueType collections and otf OpenType fonts and
otc collections
# find .ttf, .TTF, .ttc, .otf, .otc fonts and link between fonts dirs
/usr/bin/find "$dist" -type f -iname '*.[ot]t[cf]' | \
while read f
do
[ -e "$texfontsdir/${f##*/}" ] || /bin/ln -rst $texfontsdir/ "$f"
done
/usr/bin/mkfontscale $texfontsdir
/usr/bin/mkfontdir $texfontsdir
done
# get cache file suffix currently -le64.cache-9 from latest fontconfig dll
dll=$(/bin/ls -rv /bin/cygfontconfig-*.dll | /usr/bin/head -n1)
suf=$(/bin/grep -Eao '[[:graph:]]*\.cache-[[:graph:]]+' $dll)
# cleanup cache every install - can become 100k+ files using GBs
/bin/rm -f $cache/*$suf
/usr/bin/find $cache -iname "*$suf" -delete
# reset and cache system dirs
/usr/libexec/fc-cache-1 -rs || :
# ensure TAG later for cleanup cron job
/usr/bin/touch -c $cache/CACHEDIR.TAG