- Is there a unix command line tool that can analyze font files?
- 2 Answers 2
- 📑 Как посмотреть все доступные шрифты в терминале (CLI)?
- Посмотреть все доступные шрифты в Linux с помощью CLI
- Быстро вывести список всех доступных шрифтов
- Подробный вывод списка доступных шрифтов
- Использование команды fc-list
- How can I determine which fonts are installed from the command line, and what is the easiest way to install more?
- 4 Answers 4
Is there a unix command line tool that can analyze font files?
Given a directory of font files (TTF and OTF) I’d like to inspect each font and determine what style (regular, italic, bold, bold-italic) it is. Is there a command line tool for unix flavored operating systems that can do this? Or does anyone know how to extract the metadata from a TTF or OTF font file?
2 Answers 2
I think you’re looking for otfinfo. There doesn’t seem to be an option to get at the Subfamily directly, but you could do:
otfinfo --info *.ttf | grep Subfamily
Note that a number of the fonts I looked at use «Oblique» instead of «Italic».
Perfect, thanks! For those interested I’m on OS X and installed it via brew with brew install lcdf-typetools
FWIW, the MacPorts package is also called lcdf-typetools (and is a dependency of texlive-fontutils , so it may already be installed for people using TeX).
In Linux, if you have .ttf fonts, you most probably also have fontconfig, which comes with the fc-scan utility. You can parse the output for the information you want, or use the badly documented —format option.
fc-scan --format "% : %\n" /usr/share/fonts/truetype/msttcorefonts/arialbd.ttf
Some properties are listed in multiple languages. For example, % may be a list. In that case, % will list the languages. If that shows you your language in fourth position in the list, you can use % as the format string to print the full name in only that language.
This language stuff being quite inconvenient, I ended up writing a full Perl script to list the info I wanted in only one language:
#!/usr/bin/perl use strict; my $VERSION = 0.1; my $debug = 1; my @wanted = qw(foundry family fullname style weight slant width spacing file); my @lang_dependent = qw(family fullname style); my $lang = "en"; my $separator = ", "; use File::Basename; use Data::Dumper; $Data::Dumper::Sortkeys = 1; my $me = basename $0; die "Usage: $me FILENAME\n" unless @ARGV; my $fontfile = shift; unless (-f $fontfile) < die "Bad argument: '$fontfile' is not a file !\n"; >my $fc_format = join( "\\n", map < "\%" > @wanted ); my @info = `fc-scan --format "$fc_format" "$fontfile"`; chomp @info; my %fontinfo; @fontinfo = @info; if ( grep /,/, @fontinfo < @lang_dependent >) < my $format = join( "\\n", map < "\%lang>" > @lang_dependent ); my @langs = `fc-scan --format "$format" "$fontfile"`; for my $i (0..$#lang_dependent) < my @lang_list = split /,/, $langs[$i]; my ($pos) = grep < $lang_list[$_] ~~ $lang >0 .. $#lang_list; my @vals = split /,/, $fontinfo; $fontinfo = $vals[$pos]; > > warn Dumper(\%fontinfo), "\n" if $debug; $fontinfo ||= $fontinfo; # some old fonts don't have a fullname? (WINNT/Fonts/marlett.ttf) print join($separator, @fontinfo), "\n";
📑 Как посмотреть все доступные шрифты в терминале (CLI)?
Посмотреть все доступные шрифты в Linux с помощью CLI
Откройте приложение терминала. Чтобы просмотреть список всех шрифтов, выполните:
Программа 'fc-list' на данный момент не установлена. Вы можете установить её, выполнив: sudo apt install fontconfig
то нужно установить программу fontconfig как требуется в сообщении.
Можно использовать команду more или grep command/egrep для уточнения поиска шрифтов:
$ fc-list | more $ fc-list | grep -i "word" $ fc-list | grep -i UbuntuMono
Быстро вывести список всех доступных шрифтов
Чтобы вывести список шрифтов, которые поддерживают русскую кириллицу:
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book /usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book /usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold /usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book ậm,Lodia,धृष्ट /usr/share/fonts/truetype/Gargi/Gargi.ttf: Gargi,गार्गी:style=Regular,गार्गी /usr/share/fonts/truetype/fonts-deva-extra/chandas1-2.ttf: Chandas:style=Regular /usr/share/fonts/truetype/Sahadeva/sahadeva.ttf: Sahadeva:style=Regular /usr/share/fonts/truetype/Nakula/nakula.ttf: Nakula:style=Regular /usr/share/fonts/truetype/fonts-deva-extra/samanata.ttf: Samanata:style=Regular
Подробный вывод списка доступных шрифтов
Вывести подробный вывод всего шаблона шрифта для каждого соответствия или элементов, если они есть, следующим образом:
Pattern has 23 elts (size 32) family: "DejaVu Serif"(s) familylang: "en"(s) style: "Italic"(s) stylelang: "en"(s) fullname: "DejaVu Serif Italic"(s) fullnamelang: "en"(s) slant: 100(i)(s) weight: 80(i)(s) width: 100(i)(s) foundry: "PfEd"(s) file: "/usr/share/fonts/truetype/dejavu/DejaVuSerif-Italic.ttf"(s) index: 0(i)(s) outline: True(s) scalable: True(s) charset: 0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff 0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 7fcf3fff 0089d3ff 0003: ffffffff ffffffff 01008008 7cff0003 ffffd7f0 fffffffb ffffffff ffff0003 0004: ffffffff ffffffff ffffffff 00ff3c3c cfff3000 0cfffcff ffff999f 03ffffff 0005: 3c3f0000 fffe0000 fe7fffff fffffffe 000006ff 00000000 00000000 00000000 000e: 00000000 80000000 00000000 00000000 00000000 00000000 00000000 00000000 0010: 00000000 00000000 00000000 00000000 00000000 ffffffff ffff003f 1fffffff 001d: ffffffff ffffffff ffffffff f9800fff f8000020 ffffffff 000003f0 00000000 001e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0fffffff 001f: 3f3fffff ffffffff aaff3f3f 3fffffff ffffffff ffdfffff efcfffdf 7fdcffff 0020: ffffffff 77fffc7f 808efbf4 fff3fc1f 1fff7fff 27329040 00000000 00000000 0021: 0040c208 00040cc4 ffff481e ffffffff ffff023f ffffffff ffffffff ffffffff 0022: ffbf9bdd 3f003ff9 003f010c 00000033 fffff0fc 0000ffff 00000030 00000000 0023: 03030f04 00000123 00000000 20000000 f8000000 00007fff 00008000 00000000 0024: 00000000 00000008 00000000 00000000 00000000 00000000 00000000 00000000 0025: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0026: 00000001 9f000000 000000ff 0000feff 00000000 00000000 00000000 00000000 0027: 00000000 00000000 00000000 00000000 00000000 00000002 00000060 ffff0301 0028: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0029: ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000000 00000800 002a: 00007000 00008000 00000000 00000c00 00000000 00000000 00000000 00000000 002b: 07ffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 002c: 00000000 00000000 00000000 feefff9b 00000000 00000000 00000000 00000000 002d: ffffffff 0000003f 00000000 00000000 00000000 00000000 00000000 00000000 002e: 81000000 0000403c 00000000 00000000 00000000 00000000 00000000 00000000 00a6: 00000000 00000000 00f300f0 00000000 00000000 00000000 00000000 00000000 00a7: f87fff00 ffffffc0 0000ccc3 18000300 000338ff 00000400 00000000 ff000000 00f4: ffffffff 0000017f 00000000 00000000 00000000 00000000 00000000 00000000 00f6: 00000000 00000000 00000000 00000000 00000000 00000000 001201f0 00000000 00fb: 0000007f 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00fe: 0000ffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00ff: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 20000000 01d4: 00000000 fff00000 ffdfffff 000000ff 00000000 00000000 00000000 00000000 01d6: 00000000 00000000 00000000 00000000 00000000 00000030 00000000 fffffffc 01d7: 0fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000 (s) lang: aa|af|ast|av|ay|az-az|ba|bm|be|bg|bi|bin|br|bs|bua|ca|ce|ch|chm|co|cs|cv|cy|da|de|el|en|eo|es|et|eu|fi|fj|fo|fr|ff|fur|fy|ga|gd|gl|gn|gv|ha|haw|ho|hr|hu|hy|ia|ig|id|ie|ik|io|is|it|ka|kaa|ki|kk|kl|ku-am|kum|kv|kw|ky|la|lb|lez|ln|lt|lv|mg|mh|mi|mk|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|sco|se|sel|sh|shs|sk|sl|sm|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|to|tr|ts|tt|tw|tyv|uk|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yo|zu|ak|an|ber-dz|crh|csb|ee|fat|fil|hsb|ht|hz|jv|kab|kj|kr|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|nv|pap-an|pap-aw|qu|quz|rn|rw|sc|sg|sn|su|ty|za(s) fontversion: 154009(i)(s) capability: "otlayout:DFLT otlayout:cyrl otlayout:grek otlayout:latn"(s) fontformat: "TrueType"(s) decorative: False(s) postscriptname: "DejaVuSerif-Italic"(s) color: False(s) symbol: False(s) .
Вывод очень длинный, поэтому сдесь привеён только кусок…
Использование команды fc-list
fc-list [-vqVh] [-f FORMAT] [—verbose] [—format = FORMAT] [—quiet] [—version] [—help] [pattern]
-v, —verbose отображать весь шаблон шрифта
-f, —format = FORMAT использовать данный формат вывода
-q, —quiet подавить все нормальные выходные данные, выйти из 1, если не найдено ни одного шрифта
-V, —version показать версию конфигурации шрифта и выйти
-h, —help показать эту справку и выйти
- Альтернативы SSH, которые в некоторых случаях лучше оригинала
- Полный набор лучших и современных консольных программ для Linux
- Хитрости командной строки Bash, которые помогут вам работать быстрее
- Команда ls в Linux — подробно и с примерами
- Команда mkdir в Linux — подробно и с примерами
- Команда chmod в Linux — подробно и с примерами
- Команда cat и примеры её использования в Linux
- Файловый менеджер nnn
- Версия системы и версия ядра Ubuntu/Mint
- Ошибка NO_PUBKEY. Как найти GPG-ключ и добавить его в базу apt системы Ubuntu
- nmon — удобный инструмент для мониторинга Linux систем
- Команда history или работа с историей введенных команд
- Шпаргалка по архиватору 7z (7-Zip) в Linux Ubuntu/Mint
- Как посмотреть все доступные шрифты в терминале (CLI)?
- Команда id — найти UID пользователя или GID
- nmblookup — аналог команды Windows nbtstat для Linux.
- Inxi — программа вывода информации о системе и железе в Linux
- dnstop — мониторинг и анализатор DNS-трафика
- ss — программа для исследования сокетов
- Команда netstat в Ubuntu — показ статуса сети
- Команда ifconfig — настройка параметров сетевого интерфейса
- Почему в меню загрузки ubuntu нет memtest86
- Ethtool — программа изменения параметров сетевой платы в Ubuntu/Mint
- Установка сервера точного времени NTP в Ubuntu 16.04
- Удаление файлов старше N дней
- Блокирование атак при помощи null route или blackhole
- Расширенный менеджер пакетов APT
- Архиватор tar
- Шпаргалка по архиватору zip
- Блокирование ip адреса при помощи iptables
- Программа iftop
- Top – сведения об активности процессов в Ubuntu
- i-Nex — аналог CPU-Z в Windows
- Защита сервера — Fail2Ban
How can I determine which fonts are installed from the command line, and what is the easiest way to install more?
There are many questions and answers regarding fonts on Ubuntu, but not so many dealing with Ubuntu for Embedded Linux, such as Beaglebone Black. I have not been able to locate any .ttf files in standard locations on my system, and I think that given the resource constraints these have been omitted. Using the command line, how can I (1) find out which fonts are installed, and (2) install more fonts. FYI: I am looking for a simple sans-serif ttf that I can use to display text on an 8×8 LED matrix.
/usr/share/fonts isn’t there. fc-list command is not found. so far I just downloaded a free arial font from www.dafont.com and used secure copy to transfer it to my beaglebone. i will create a /usr/share/fonts/ directory manually for future use. scp /Users/me/Downloads/pixel_arial_11/PIXEARG_.TTF ubuntu@192.168.7.2:/home/ubuntu/
4 Answers 4
The best and simplest way is to use console command (this command should be available for all ubuntu-based distributions) :
/usr/share/fonts/truetype/lato/Lato-Medium.ttf: Lato,Lato Medium:style=Medium,Regular /usr/share/fonts/truetype/tlwg/TlwgTypo-Bold.ttf: Tlwg Typo:style=Bold /usr/share/fonts/truetype/lato/Lato-SemiboldItalic.ttf: Lato,Lato Semibold:style=Semibold Italic,Italic /usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold /usr/share/fonts/truetype/noto/NotoSansThai-Regular.ttf: Noto Sans Thai:style=Regular .
fc-list - list available fonts
To check all available options use MAN (manual): man fc-list