Моноширинные шрифты
- Для программирования и описания программ в статьях необходим шрифт с большим количеством символов.
- Стандартный буквенный набор поддерживает большинство шрифтов (но не все поддерживают кириллицу), но с дополнительными символами могут возникнуть проблемы.
- Особенно часто дополнительные символы используются в программах на языке Julia.
Содержание
1 Основные определения
- Моноширинный (непропорциональный) шрифт — это шрифт, в котором все знаки (кегельные площадки знаков) имеют одинаковую ширину.
2 Сравнение шрифтов
- Есть несколько сайтов, на которых сравниваются шрифты для программирования на предмет широты охвата разных символов.
- https://mono-math.netlify.app/ — математические символы в моноширинных шрифтах.
- https://devfonts.gafi.dev/ — шрифты для программирования.
- https://www.programmingfonts.org/ — шрифты для программирования.
- https://coding-fonts.css-tricks.com/ — шрифты для программирования.
- На данный момент наибольшее количество математических символов содержит шрифт JuliaMono.
3 Применимость
- Шрифт для редактора (например, emacs) желательно выбирать с курсивом. Иначе, теряется определённый набор выделений текста.
- Также для семантического выделения курсив используют разные программы с текстовым интерфейсам (например, эмулятор терминала kitty).
- Если шрифт имеет переменную ширину знаков, то едут таблицы.
4 Активация лигатур в шрифтах
4.1 LaTeX
- При использовании LuaTeX и XeTeX лигатуры включаются опцией
Contextuals=Alternate
пакетаfontspec
:
5 Шрифты с лигатурами
- Часть шрифтов для программирования содержит лигатуры.
5.1 Fira Code
- Шрифт сделан на базе Fira Mono.
- Репозиторий: https://github.com/tonsky/FiraCode
- Автор: Никита Прокопов
- Блог в livejournal (на русском): https://tonsky.livejournal.com/
- Блог на английском: https://tonsky.me/
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: есть
- Курсив: нет
- Установка.
- Gentoo:
1emerge media-fonts/fira-code
- Gentoo:
5.2 Iosevka
- Шрифт. Iosevka
- Сайт: https://typeof.net/Iosevka/
- Репозиторий: https://github.com/be5invis/Iosevka/
- Дизайн на основе:
- PragmataPro,
- PF DIN Mono.
- Узкий дизайн.
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: есть
- Курсив: есть
5.3 JetBrains Mono
- Сайт: https://www.jetbrains.com/lp/mono/
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: есть
- Курсив: есть
- Установка.
- Gentoo:
1emerge media-fonts/jetbrains-mono
- Gentoo:
5.4 JuliaMono
- Достаточно полный набор математических символов:
- Сайт: https://juliamono.netlify.app/
- Репозиторий: https://github.com/cormullion/juliamono
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: есть
- Курсив: нет
- LaTeX
Использование в LuaLaTeX и XeLaTeX:
1\usepackage{fontspec} 2 3\newfontfamily\JuliaMono{JuliaMono}[ 4Path=./fonts/, 5UprightFont=*-Regular, 6BoldFont=*-Bold, 7Extension=.ttf] 8\newfontface\JuliaMonoRegular{JuliaMono-Regular} 9\newfontface\JuliaMonoBold{JuliaMono-Bold} 10\setmonofont{JuliaMono-Medium}[ 11Contextuals=Alternate, 12Scale=0.8]
- Здесь шрифты расположены в локальном каталоге
./fonts
. - В зависимости от гарнитуры основного текста для кода можно использовать вместо гарнитуры
JuliaMono-Medium
гарнитуруJuliaMono-Light
.
- Здесь шрифты расположены в локальном каталоге
Стиль для
listings
:
5.5 Hasklig
- Сделан на основе Source Code Pro с добавлением лигатур.
- Репозиторий: https://github.com/i-tu/Hasklig
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: есть
- Курсив: нет
5.6 Cascadia Code
- Разработан для Windows Terminal.
- Репозиторий: https://github.com/microsoft/cascadia-code
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: есть
- Курсив: нет
- Установка.
- Gentoo:
1emerge media-fonts/cascadia-code
- Gentoo:
5.7 Victor Mono
- Сайт: https://rubjo.github.io/victor-mono/
- Репозиторий: https://github.com/rubjo/victor-mono
- Таблицы, оформленные этим шрифтом, разъезжаются.
- Имеет узкий дизайн.
- Свойства
- Лицензия: MIT
- Лигатуры: есть
- Курсив: есть
- Установка.
- Gentoo:
- Можно найти в оверлее:
- Установка
1emerge media-fonts/victor-mono
- Gentoo:
6 Шрифты с иконками
6.1 Font Awesome
- Наиболее известный шрифт с иконками.
- https://fontawesome.com/
- Font Awesome Pro
- https://fontawesome.com/pro
- Распространяется по платной подписке.
- Font Awesome Free
- https://github.com/FortAwesome/Font-Awesome
- Лицензия:
- Иконки: CC BY 4.0
- Шрифты: SIL Open Font licence
- Программный код: MIT
- Для использования шрифта можно использовать список кодов для иконок https://fontawesome.com/cheatsheet.
- Установка
- Gentoo
1emerge media-fonts/fontawesome
- Gentoo
6.2 Nerd fonts
- Проект по добавлению ы разные шрифты дополнительных глифов (в основном иконок).
- Сайт: https://www.nerdfonts.com/
- Репозиторий: https://github.com/ryanoasis/nerd-fonts/
- Поиск глифа: https://www.nerdfonts.com/cheat-sheet
- Установка
Gentoo
1USE="iosevka" emerge nerd-fonts
- При установке следует указать, какой конкретно шрифт следует устанавливать.
- Ebuild находится не в основном репозитории.
7 Шрифты
7.1 Source Code Pro
- Часть набора Source Pro.
- Сайт: http://adobe-fonts.github.io/source-code-pro/
- Репозиторий: https://github.com/adobe-fonts/source-code-pro
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: нет
- Курсив: есть
- Установка.
- Gentoo:
1emerge media-fonts/source-pro
- Gentoo:
7.2 Anonymous Pro
- Сайт: https://www.marksimonson.com/fonts/view/anonymous-pro
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: нет
- Курсив: есть
- Установка.
- Gentoo:
1emerge media-fonts/anonymous-pro
- Gentoo:
7.3 Hack
- Репозиторий: https://github.com/source-foundry/Hack
- Свойства
- Лицензия: MIT
- Лигатуры: нет
- Курсив: есть
- Установка.
- Gentoo:
1emerge media-fonts/hack
- Gentoo:
7.4 Hermit
- Сайт: https://pcaro.es/p/hermit/
- Репозиторий: https://github.com/pcaro90/hermit
- Таблицы, оформленные им, разъезжаются.
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: нет
- Курсив: есть
- Установка.
- Gentoo:
1emerge media-fonts/hermit
- Gentoo:
7.5 IBM Plex Mono
- Сайт: https://www.ibm.com/plex/
- Репозиторий: https://github.com/IBM/plex
- Свойства
- Лицензия: SIL Open Font licence
- Лигатуры: нет
- Курсив: есть
- Установка.
- Gentoo:
1emerge media-fonts/ibm-plex
- Gentoo: