Моношрифт: Моноширинные шрифты — каталог шрифтов Fontstorage.com

Лучшие шрифты для программирования / Хабр

Статья написана в 2009 году, и с тех пор многое изменилось, в том числе появились некоторые альтернативные шрифты для программирования, например, Anonymous Pro.

Как разработчик и настоящий гик в области типографики, если речь идёт о шрифте, на который придётся глазеть целый день, то я буду выбирать очень тщательно. Когда я недавно заметил, что мой друг использует довольно невзрачный шрифт для консоли и в редакторе кода (он слишком ужасен, чтобы здесь упоминать), то у меня отвисла челюсть, а сердце на секунду перестало биться, и я понял, что мне пришло время написать эту статью.

Я выкладываю список из десяти моноширинных шрифтов, готовых к использованию. Некоторые из них идут в комплекте с современными операционными системами, но большинство можно бесплатно скачать из интернета. Отдельные, в том числе Consolas, являются частью коммерческого ПО.

В прошлом приходилось выбирать либо маленький моношрифт, либо зубчатые края. Но современные операционные системы отлично справляются со сглаживанием, так что моноширинные гарнитуры хорошо выглядят при любом кегле. Это больше не 1990 год, так что дайте отдых своим уставшим глазам и увеличьте размер шрифта.

Если у вас остались какие-то сомнения, что сглаженные шрифты подходят для кодинга, обратите внимание, что даже многоуважаемый BBEdit, который много лет поставлялся в несглаженном наборе Monaco 9 в качестве дефолтного, спрыгнул с поезда. Приложение теперь идёт в комплекте со специально лицензированной версией Consolas от Ascender, увеличенного размера, со сглаживанием по умолчанию. Panic тоже содержит специальный сглаженный шрифт (Panic Sans, который на самом деле просто версия Deja Vu Sans Mono) в своём популярном приложении Coda.

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

Все ОС идут в комплекте с какой-нибудь модификацией Courier (часто именуется Courier New). К сожалению, многие выбрали этот шрифт для консоли и редактора. Он делает своё дело, но при этом уныл и скучен, страдает от нехватки стиля и лоска. Я не рекомендую этот шрифт, если у вас есть хоть какая-то альтернатива — и, к счастью, она у вас есть. Если вы его всё-таки используйте, то хотя бы увеличьте размер и включите сглаживание.

Courier New

Чуть лучше семейства Courier, шрифт Andale Mono тоже попадает в категорию дефолтных, поскольку поставляется с некоторыми системами. Вряд ли бы вы захотели скачать и использовать его, если бы он уже не был установлен. На мой вкус, межбуквенный интервал у него корявый, а буквы слишком широкие.

9. Andale Mono

Monaco — моноширинный шрифт по умолчанию на Mac со времён System 6. Он вполне цельный, хорошая рабочая лошадка, которая действительно отлично выглядит при маленьком кегле с выключенным сглаживанием. Раньше мне нравился этот шрифт, когда мои глаза могли смотреть несколько часов на кегль размером 9 пунктов, но те времена прошли. Этот шрифт хорошо выглядит на 9 или 10 пунктах, но не очень радует на бóльших размерах со сглаживанием.

Насколько я знаю, получить Monaco можно только вместе с Mac OS, но есть другие варианты, так что читайте дальше.

Monaco

Monaco 9 пунктов, без сглаживания

Profont сделан по образцу Monaco и доступен для Mac, Windows и Linux (есть также модифицированная версия для Mac OS X под названием ProFontX, от другого автора). Они лучше всего смотрятся на маленьком кегле и представляют собой отличную альтернативу Monaco, если вы работаете не на «макинтоше». Profont и ProFontX предназначены для использования при размере 9 пунктов с выключенным сглаживанием.

Profont 9 пунктов, без сглаживания

Monofur — уникальный моноширинный шрифт, который великолепно выглядит на любых размерах со сглаживанием. Это довольно забавный шрифт с индивидуальными очертаниями, смутно напоминающими графический интерфейс Sun OPEN LOOK, который работал на системах Solaris (SunOS) в конце 80-х. Если вы ищете нечто особенное, попробуйте этот шрифт, но не забудьте включить сглаживание даже на маленьком кегле.

Monofur

Proggy — чистый моноширинный шрифт. Кажется, его особенно предпочитают пользователи Windows, хотя он нормально работает и на Mac. Это чёткий шрифт, который нужно использовать только на малых размерах без сглаживания.

Proggy Clean 15 пунктов (да, 15 пунктов), без сглаживания

Семейство Droid (доступно для скачивания здесь) специально создано для использования на маленьких экранах смартфонов, таких как Android, и опубликовано под лицензией Apache.

Droid Sans Mono отлично подходит для программирования. Он выполнен с особым вкусом и выделяется среди остальных моноширинных шрифтов в этом списке, но у него есть единственный крупный недостаток — неперечёркнутый ноль. Версия с поправленным нулём здесь — прим. пер.

Droid Sans Mono

Семейство Deja Vu — одна из моих любимых бесплатных гарнитур, основанная на великолепном Vera Font. Шрифты Deja Vu дополнены широким набором символов, сохранив при этом знакомый вид Vera.

Эту гарнитуру я использовал много лет. Она отлично выглядит на любом размере с включенным сглаживанием.

Panic поставляет в комплекте со своим приложением Coda шрифт под названием Panic Sans, который основан на этом шрифте. Грубер сказал мне в письме, что при сравнении Panic Sans и Vera у первого «заметно более резкие знаки пунктуации», ну и похоже на то, что они ещё улучшили хинтинг некоторых символов.

Deja Vu Sans Mono

Consolas неожиданно появился на моём маке, когда я установил Microsoft Office, а вместе с ним ещё целый комплект новых шрифтов от Microsoft.

Этот шрифт создал Лукас де Грут (Lucas de Groot) специально для Microsoft ClearType (здесь отличное описание с примерами всех новых шрифтов Microsoft). Consolas — коммерческий фонт, но он поставляется со многими продуктами Microsoft, и есть большая вероятность, что он уже установлен на вашей системе.

Вам настоятельно рекомендуется включить сглаживание для Consolas, потому что иначе он выглядит ужасно.

Очень жаль, что шрифт не бесплатный, иначе бы он заслуживал первого места в этом списке.

Consolas

Inconsolata — мой любимый моноширинный шрифт, и он бесплатный. Когда я его обнаружил, то сразу заменил Deja Vu Sans Mono в качестве рабочего шрифта для программирования. Я использую его вообще повсюду, от окон консоли до редакторов кода. У него практически безупречный и в то же время оригинальный стиль, и он фантастически выглядит и на больших, и на маленьких размерах. Я использую эту гарнитуру, демонстрируя код на презентациях, и также в окнах консоли и TextMate для скринкастов PeepCode. Шрифт не поддерживает кириллицу — прим. пер.

Inconsolata разработан для использования со сглаживанием, но он удивительно чёткий на самых маленьких размерах. Большое спасибо Рафу Левину (Raph Levien) за создание этого шрифта и за то, что он бесплатный.

Inconsolata

Расскажите, пожалуйста, про моноширинные шрифты


Михаил!


Моноширинные шрифты появились с печатными машинками — одинаковая кегельная площадка экономила затраты на производство. Однако это не сказывалось хорошо на читабельности текстов — человеческий глаз привык к пропорциональным буквам. Моноширинные шрифты были изобретены по чисто технической причине и идут в разрез со всеми предыдущими типографскими традициями.


На заре компьютерной эпохи многие машины также поддерживали только моноширинные шрифты. Поэтому такие шрифты до сих пор ассоциируются скорее с чем-то техническим.


Сейчас чаще всего моноширинные шрифты можно увидеть в редакторах исходного когда программ. Однако причина использования таких шрифтов в коде не в том, что пропорциональные шрифты недоступны в программе.


Код обычно читается не последовательно, как текст в книге, а выборочно. Часто среди кучи букв нужно быстро найти какую-нибудь функцию или недостающий знак. Поэтому в программировании моноширинный шрифт помогает читателю — в выровненном тексте проще находить искомый кусок.



Слева шрифт «Гельветика», справа — «Менло». В сравнении видно, насколько проще считывать функции с моноширинным шрифтом


По этой же причине моноширинные шрифты будут помогать там, где нужно быстро найти нужную информацию. Например, в таблицах, где часто надо быстро найти определённые значения. Но чаще всего внутри таблиц ищут числа, поэтому эту задачу можно решить моноширинными цифрами внутри немоноширинного, то есть пропорционального шрифта.


Графические дизайнеры любят использовать моноширинные шрифты в акциденции и в наборе небольших текстов. Мне нравится эта тенденция, потому что такие шрифты хоть и ассоциируются с программированием и компьютерами, но в контрасте с другими объектами очень оживляют набор.


Моноширинные шрифты хороши при выборочном чтении, в акциденции и в небольших блоках текста.



Фирменный стиль театра «Практика» Стефана Лашко, набранный «ПТ Моно»



Оформление продуктов по уходу за телом TGC100. Моноширинный шрифт «Аккурат Моно» также стоит в заголовках на сайте продукции



Оформление диска Афекс Твина. Тут моноширинный шрифт даёт прямые ассоциации с электронной, технической музыкой



Стиль конференции Тайпкон в 2014 году студии Билд. Моноширинный шрифт становится паттерном, где одни буквы накладываются на другие



Дизайн книги об орнитологии голландского дизайнера Джереми Йансена. На сайте студии Йансена также используется моноширинный шрифт


Но моноширинные шрифты — это техногенное изобретение, поэтому они всегда искажают сложившиеся формы букв. Чтобы все знаки влезали в одну ширину, приходится идти на ухищрения: делать засечки в букве «i», неестественно сужать широкие знаки типа «w», «ш», «ы» и так далее. Такая неравномерность ухудшает читабельность в мелких кеглях. Поэтому не стоит их использовать там, где нужно последовательное чтение больших блоков текста — книги, газеты, журналы, документы.



Ширина глифов в пропорциональном и моноширинном шрифте. Слева — «ПТ Санс», справа — «ПТ Моно»



Моноширинные шрифты могут хорошо смотреться в акциденции и необходимы в редакторах исходного кода, но в текстовом наборе работать не будут.




HOG2: Ссылка на класс MonoFont

#include

900 14 GetTextLines (std::vector< Графика ::Display::lineInfo > &lines, Graphics::point position, const char *text, float height, const rgbColor &color=Colors::black, Graphics::textAlign align=Graphics::textAlignLeft, Graphics::textBaseline base=Graphics ::textBaselineBottom)

void DrawText (Graphics ::Display &display, Graphics::point position, const char *text, float height, const rgbColor &color=Colors::black, Graphics::textAlign align=Graphics::textAlignLeft, Graphics::textBaseline base=Graphics::textBaselineBottom)
 
void
9001 2 void

90 007

void x, int starty, int offsetx, int offsety, float scale, rgbColor color)
void DrawChar (Graphics::Display &display, char c, point3d где, высота с плавающей запятой, цвет rgbColor)
 
DrawLine (std::vector< Graphics::Display: :lineInfo > &lines, point3d где, int startx, int starty, int offsetx, int offsety, float scale, rgbColor color)
 
void DrawChar (std::vector< Graphics::Display::lineInfo > &lines, char c, point3d где, высота с плавающей запятой, цвет rgbColor)
 
uint32_t GetBitmap (char c)
 

Определение в строке 21 файла MonoFont. h.

◆ DrawChar() [1/2]

недействительным MonoFont::DrawChar ( Графика::Дисплей &  дисплей ,
символов  с ,
точка3д где ,
плавающая высота ,
rgbColor цвет  
)
частный

Определение в строке 128 файла MonoFont.cpp.

Ссылки DrawLine(), GetBitmap() и высота.

На него ссылаются функции DrawText() и GetTextLines().

◆ DrawChar() [2/2]

недействительным MonoFont::DrawChar ( std::vector< Graphics::Display::lineInfo > &  строки ,
символов  с ,
точка3д где ,
плавающая высота ,
rgbColor цвет  
)
частный

Определение в строке 172 файла MonoFont.cpp.

Ссылки DrawLine(), GetBitmap() и высота.

◆ DrawLine() [1/2]

недействительным MonoFont::DrawLine ( Графика::Дисплей &  дисплей ,
точка3д где ,
число старткс ,
число старты ,
число смещениеx ,
целое офсет ,
плавающая шкала ,
rgbColor цвет  
)
частный
Параметры
где Верхний левый угол текста
Масштаб Высота текста

Определение в строке 392 файла MonoFont. cpp.

Ссылки Graphics::Display::DrawLine().

Ссылается на DrawChar().

◆ DrawLine() [2/2]

недействительным MonoFont::DrawLine ( std::vector< Graphics::Display::lineInfo > &  строки ,
точка3д где ,
число старткс ,
интервал старты ,
число смещениеx ,
число офсет ,
плавающая шкала ,
rgbColor цвет  
)
частный

Определение в строке 417 файла MonoFont. cpp.

◆ DrawText()

void MonoFont::DrawText ( Graphics::Display &  дисплей ,
Графика::точка местоположение ,
константа символ * текст ,
плавающая высота ,
const rgbColor & цвет = Цвета::черный ,
Графика::textAlign выровнять = Graphics::textAlignLeft ,
Графика::textBaseline основание = Graphics::textBaselineBottom  
)
Параметры
высота Высота текста
расположение Где рисовать текст; зависит от выравнивания и базовой линии
текст Текст для рисования

Определение в строке 73 файла MonoFont. cpp.

Ссылки DrawChar(), height, Graphics::textAlignCenter, Graphics::textAlignLeft, Graphics::textAlignRight, Graphics::textBaselineBottom, Graphics::textBaselineMiddle, Graphics::textBaselineTop, loc::x и loc::y.

◆ GetBitmap()

uint32_t MonoFont::GetBitmap ( символов  с )
частный

Определение в строке 216 файла MonoFont.cpp.

Ссылается на DrawChar().

◆ GetTextLines()

void MonoFont::GetTextLines ( std::vector< Graphics::Display::lineInfo > &  строки ,
Графика::точка адрес ,
константа символ * текст ,
плавающая высота ,
const rgbColor & цвет = Цвета::черный ,
Графика::textAlign выровнять = Graphics::textAlignLeft ,
Графика::textBaseline база = Graphics::textBaselineBottom  
)
Параметры
высота Высота текста
расположение Где рисовать текст; зависит от выравнивания и базовой линии
текст Текст для рисования

Определение в строке 20 файла MonoFont. cpp.

Ссылки DrawChar(), height, Graphics::textAlignCenter, Graphics::textAlignLeft, Graphics::textAlignRight, Graphics::textBaselineBottom, Graphics::textBaselineMiddle, Graphics::textBaselineTop, loc::x и loc::y.

Ссылается на DrawGraphics().


Документация для этого класса была сгенерирована из следующих файлов:

  • /home/sturtevant/nightly/hog2/utils/MonoFont.h
  • /home/sturtevant/nightly/hog2/utils/MonoFont.cpp

Комический Моно | comic-mono-font

Разборчивый моноширинный шрифт… тот самый шрифт, который вас учили распознавать с детства. Этот шрифт является форком Comic Shanns Шеннона Мивы (версия 1).

Скачать

  • ComicMono.ttf
  • ComicMono-Bold.ttf

Отличия от Comic Shanns

  1. Все глифы были настроены так, чтобы они имели одинаковую ширину (используя код, основанный на monospacifier).
  2. Показатели глифа были скорректированы, чтобы он лучше отображался рядом с системным шрифтом на основе показателей Кузина.
  3. Имя изменено на Comic Mono .
  4. Полужирная версия шрифта создается с помощью операции Embolden в FontForge. 908:45

У меня нет навыков создания шрифтов; Я всего лишь разработчик программного обеспечения. Это семейство шрифтов создается путем исправления исходного шрифта Comic Shanns (v1) с помощью скрипта Python generate.py .

Как это выглядит?

Проверьте это!

 #!/usr/bin/env python2
# -*- кодировка: utf-8 -*-
"""
Создает файлы шрифтов Comic Mono на основе шрифта Comic Shanns.
Требуемые файлы:
- поставщик/comic-shanns.otf
- поставщик/Cousine-Regular.ttf
На основе:
- моноспасатор: https://github.com/cpitclaudel/monospacifier/blob/master/monospacifier.py
- YosemiteAndElCapitanSystemFontPatcher: https://github.com/dtinth/YosemiteAndElCapitanSystemFontPatcher/blob/master/bin/patch
"""
импорт ОС
импортировать повторно
импорт системы
перезагрузить (система)
sys.setdefaultencoding('UTF8')
импорт шрифтфорж
импортировать PSMat
импортировать юникодданные
высота определения (шрифт):
    вернуть поплавок (font. capHeight)
def Adjust_height (источник, шаблон, масштаб):
    источник.выбор.все()
    source.transform (psMat.scale (высота (шаблон) / высота (источник))
    для attr в ['восхождение', 'спуск',
                'hhea_ascent', 'hhea_ascent_add',
                'hhea_linegap',
                'hhea_descent', 'hhea_descent_add',
                'os2_winascent', 'os2_winascent_add',
                'os2_windescent', 'os2_windescent_add',
                'os2_typoascent', 'os2_typoascent_add',
                'os2_typodescent', 'os2_typodescent_add',
                ]:
        setattr (источник, атрибут, getattr (шаблон, атрибут))
    source.transform (psMat.scale (масштаб))
шрифт = fontforge.open('vendor/comic-shanns.otf')
ref = fontforge.open('vendor/Cousine-Regular.ttf')
для g в font.glyphs():
    уни = g.юникод
    category = unicodedata.category(unichr(uni)) if 0 <= uni <= sys.maxunicode else Нет
    если g.width > 0 и категория не в ['Mn', 'Mc', 'Me']:
        целевая_ширина = 510
        если g. width != target_width:
            дельта = целевая_ширина - g.ширина
            g.left_side_bearing += дельта/2
            g.right_side_bearing += дельта - g.left_side_bearing
            g.width = целевая_ширина
font.familyname = 'Комический монохромный'
шрифт.версия = '0.1.1'
font.comment = 'https://github.com/dtinth/comic-mono-font'
font.copyright = 'https://github.com/dtinth/comic-mono-font/blob/master/LICENSE'
Adjust_height (шрифт, ссылка, 0,875)
font.sfnt_names = [] # Избавьтесь от «Предпочтительного имени» и т. д.
font.fontname = 'ComicMono'
font.fullname = 'Комикс Моно'
font.generate('ComicMono.ttf')
шрифт.выбор.все()
font.fontname = 'ComicMono-Bold'
font.fullname = 'Комический монохромный жирный шрифт'
font.weight = 'Жирный'
font.changeWeight(32, "LCG", 0, 0, "хлюпать")
font.generate('ComicMono-Bold.ttf')
 

CDN

Вы можете использовать этот шрифт на своих веб-страницах, включив таблицу стилей. CDN предоставляется jsDelivr.