Моноширинные шрифты

  • Для программирования и описания программ в статьях необходим шрифт с большим количеством символов.
  • Стандартный буквенный набор поддерживает большинство шрифтов (но не все поддерживают кириллицу), но с дополнительными символами могут возникнуть проблемы.
  • Особенно часто дополнительные символы используются в программах на языке Julia.
Содержание

1 Основные определения

  • Моноширинный (непропорциональный) шрифт — это шрифт, в котором все знаки (кегельные площадки знаков) имеют одинаковую ширину.

2 Сравнение шрифтов

  • Есть несколько сайтов, на которых сравниваются шрифты для программирования на предмет широты охвата разных символов.
  • На данный момент наибольшее количество математических символов содержит шрифт JuliaMono.

3 Применимость

  • Шрифт для редактора (например, emacs) желательно выбирать с курсивом. Иначе, теряется определённый набор выделений текста.
  • Также для семантического выделения курсив используют разные программы с текстовым интерфейсам (например, эмулятор терминала kitty).
  • Если шрифт имеет переменную ширину знаков, то едут таблицы.

4 Активация лигатур в шрифтах

4.1 LaTeX

  • При использовании LuaTeX и XeTeX лигатуры включаются опцией Contextuals=Alternate пакета fontspec:
    \usepackage{fontspec}
    \setmonofont{FontName}[Contextuals=Alternate]
    

5 Шрифты с лигатурами

  • Часть шрифтов для программирования содержит лигатуры.

5.1 Fira Code

  • Шрифт сделан на базе Fira Mono.
  • Репозиторий: https://github.com/tonsky/FiraCode
  • Автор: Никита Прокопов
  • Свойства
    • Лицензия: SIL Open Font licence
    • Лигатуры: есть
    • Курсив: нет
  • Установка.
    • Gentoo:
      emerge media-fonts/fira-code
      

5.2 Iosevka

5.3 JetBrains Mono

  • Сайт: https://www.jetbrains.com/lp/mono/
  • Свойства
    • Лицензия: SIL Open Font licence
    • Лигатуры: есть
    • Курсив: есть
  • Установка.
    • Gentoo:
      emerge media-fonts/jetbrains-mono
      

5.4 JuliaMono

  • Достаточно полный набор математических символов:
  • Сайт: https://juliamono.netlify.app/
  • Репозиторий: https://github.com/cormullion/juliamono
  • Свойства
    • Лицензия: SIL Open Font licence
    • Лигатуры: есть
    • Курсив: нет
  • LaTeX
    • Использование в LuaLaTeX и XeLaTeX:

      \usepackage{fontspec}
      
      \newfontfamily\JuliaMono{JuliaMono}[
      Path=./fonts/,
      UprightFont=*-Regular,
      BoldFont=*-Bold,
      Extension=.ttf]
      \newfontface\JuliaMonoRegular{JuliaMono-Regular}
      \newfontface\JuliaMonoBold{JuliaMono-Bold}
      \setmonofont{JuliaMono-Medium}[
      Contextuals=Alternate,
      Scale=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:
      emerge media-fonts/cascadia-code
      

5.7 Victor Mono

6 Шрифты с иконками

6.1 Font Awesome

6.2 Nerd fonts

  • Проект по добавлению ы разные шрифты дополнительных глифов (в основном иконок).
  • Сайт: https://www.nerdfonts.com/
  • Репозиторий: https://github.com/ryanoasis/nerd-fonts/
  • Поиск глифа: https://www.nerdfonts.com/cheat-sheet
  • Установка
    • Gentoo

      USE="iosevka" emerge nerd-fonts
      
      • При установке следует указать, какой конкретно шрифт следует устанавливать.
      • Ebuild находится не в основном репозитории.

7 Шрифты

7.1 Source Code Pro

7.2 Anonymous Pro

7.3 Hack

  • Репозиторий: https://github.com/source-foundry/Hack
  • Свойства
    • Лицензия: MIT
    • Лигатуры: нет
    • Курсив: есть
  • Установка.
    • Gentoo:
      emerge media-fonts/hack
      

7.4 Hermit

  • Сайт: https://pcaro.es/p/hermit/
  • Репозиторий: https://github.com/pcaro90/hermit
  • Таблицы, оформленные им, разъезжаются.
  • Свойства
    • Лицензия: SIL Open Font licence
    • Лигатуры: нет
    • Курсив: есть
  • Установка.
    • Gentoo:
      emerge media-fonts/hermit
      

7.5 IBM Plex Mono


Дмитрий Сергеевич Кулябов
Дмитрий Сергеевич Кулябов
Профессор кафедры теории вероятностей и кибербезопасности

Мои научные интересы включают физику, администрирование Unix и сетей.

Похожие