- FreeType 2.7 — превосходное качество шрифтов Linux
- Infinality, патенты и ШГ
- Новый рендеринг для TrueType
- Как достичь гармонии шрифтов с FreeType 2.7
- Лучшие шрифты для программирования
- Примечание о сглаживании шрифтов (anti-aliasing)
- 10. Courier
- 9. Andale Mono
- 8. Monaco
- 7. Profont
- 6. Monofur
- 5. Proggy
- 4. Droid Sans Mono
- 3. Deja Vu Sans Mono
- 2. Consolas
- 1. Inconsolata
FreeType 2.7 — превосходное качество шрифтов Linux
В первой декаде сентября без фанфар и шумихи вышел FreeType версии 2.7, и это событие, без сомнения, можно назвать праздником на улице пользователей Linux, FreeBSD, NetBSD, ReactOS и других товарищей. Попробуем разобраться, от чего у нас такое безудержное веселье.
FreeType — библиотека с открытым кодом на Си, которую используют для растеризации шрифтов и операций над ними. В новой версии по-умолчанию используется алгоритм обработки инструкций TrueType v40.
Это позволило добиться качественного субпиксельного сглаживания шрифтов, как в майкрософтовском DirectWrite/ClearType , но на самом деле никакого субпиксельного сглаживания не используется. Кроме того, алгоритм v40 рендерит быстрее Infinality , который использовался в предыдущем алгоритме v38, при этом конечный результат не хуже.
Infinality, патенты и ШГ
Исторически, было две проблемы со шрифтами в Linux. Во-первых, это минное поле патентов Microsoft и Apple, из-за чего разработчики мучительно шли обходными путями. Частично, эту проблему решал набор патчей Infinality , но ценой была низкая скорость и чересчур усложненный код. К тому же, по словам мейнтейнера, FreeType разработчик Infinality потерял интерес к своему проекту.
Давайте приглядимся к этим патентам чуть подробнее. С 10-го мая 2010-года истекли три патента Apple на байткодное сглаживание TrueType шрифтов. Теперь нет необходимости отключать его использование по-умолчанию.
Patent US5155805:
Method and apparatus for moving control points in displaying digital typeface on raster output devices
Patent US5159668:
Method and apparatus for manipulating outlines in improving digital typeface on raster output devices
Patent US5325479:
Method and apparatus for moving control points in displaying digital typeface on raster output devices
Но еще 9 патентов на ClearType Майкрософт остаются в силе.
Patent US6239783:
Weighted mapping of image data samples to pixel sub-components on a display device
Patent US6243070:
Method and apparatus for detecting and reducing color artifacts in images
Patent US6282327:
Maintaining advance widths of existing characters that have been resolution enhanced
Patent US6307566:
Methods and apparatus for performing image rendering and rasterization operations
Patent US6393145:
Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
Patent US6421054:
Methods and apparatus for performing grid fitting and hinting operations
Patent US6624828:
Method and apparatus for improving the quality of displayed images through the use of user reference information
Эти патенты можно разделить на три условные категории:
- показ рисунков, когда информация отображается на уровне отдельных LCD субпикселей, вместо цельных пикселей
- показ тех же рисунков после применения разнообразных фильтров, например для подавления артефактов цветного окаймления
- обработка размеров и расстояний в красочном мире субпикселей
И это еще не все, есть и другие патенты. Прелесть ситуации еще в том, что Microsoft и Apple подписали соглашение о кросс-лицензировании в то время, как разработчики FreeType и их коллеги по цеху открытого ПО должны героически преодолевать ШГ препятствия.
Ценность этих патентов весьма сомнительна. Сразу же после того, как Майкрософт запатентовала ClearType, появились сомнения относительно их правомочности и новизны, причем писали об этом в газете Нью-Йорк Таймс, не на безызвестном случайном форуме. Один из активных разоблачителей Стив Гибсон на свой интернет страничке пишет, что ClearType — хорошо забытые технологии, которые Стив Возняк запатентовал 20 лет назад для Apple II. Никакого существенного прорыва технической мысли нет и в помине, а значит и интеллектуальной собственности нет.
Thus, Microsoft’s ‘ClearType’ application of sub-pixel text rendering does not represent the dramatic breakthrough that they claim and it can not be the valid subject for intellectual property acquisition.
К сожалению, американское патентное право устроено таким образом, что все это остается разговором в пользу бедных. Хорош он или плох, но патент есть, и значит, остальным надо платить денежки за его использование.
Позволю себе немного пафоса. Пока что Майкрософт не спешит дарить патенты на ClearType сообществу открытого ПО, как это сделала компания Adobe с OpenType/CFF движком. Об этом неплохо помнить, когда мы очередной раз видим слоган Microsoft сердечко Linux. По примеру американского президента Рейгана хочется воскликнуть: «Господин Наделла, если Майкрософт любит Linux, разрушьте эти патентные стены!».
Новый рендеринг для TrueType
Наследие программных алгоритмов рендеринга шрифтов для ЭЛТ мониторов 90-х гг. прошлого столетия — это вторая проблема Linux со шрифтами. Семейство TrueType шрифтов появилось на свет в эпоху зернистых мониторов с электронно-лучевыми трубками. В снимках экрана Windows 95 из текста так и лезут пиксели. Каждый отдельный глиф намертво вколачивался в сетку из пикселей. Майкрософт вложила в это дело уйму человеко-часов, обсчитывая и оптимизируя глифы для всевозможных размеров, чтобы т. н. основные вэб шрифты ( Arial, Times New Roman, Courier New и т. д.) на экране выглядели достойно.
Сизифов труд однако возымел последствия. Настала новая эпоха ЖК-мониторов и тут оказалась, что старые TrueType инструкции надо перепрограммировать для того, чтобы использовать эти новые возможности или хотя бы для того, чтобы шрифты отображались корректно. Нет необходимости пристегивать каждый глиф к сетке полных пикселей, вместо этого их можно пристегнуть к одному из трех субпикселей, даже к части их и добиться гораздо более качественного изображения, благодаря такому субпиксельному сглаживанию. Здраво рассудив, что переписать весь старый багаж TrueType инструкций нереально, в MS придумали асимметрическую сверх-дискретизацию и режим совместимости, в котором использовали много лихих приемчиков и костылей из инструкций старых шрифтов. Таким образом, и старые шрифты могли в некоторой степени воспользоваться увеличенным кратно горизонтальным разрешением.
Разработчики FreeType решили не городить этот огород и проигнорировали режим совместимости. Это конечно же имело последствия. Новые шрифты, натасканные на костыльный режим совместимости и асинхронную сверх-дискретизацию, смотрелись кривовато.
Впрочем, нашелся герой, который пошел трудным путем и реализовал в Infinality все вышеназванное спагетти старых и новых инструкций. Какое-то время FreeType включал в себя интерпретатор v38 — набор патчей Infinality , но затем код был удален в пользу интерпретатора v35. Разработчик Infinality поистине взялся за невыполнимую миссию — сделать так, чтобы шрифты выглядели лучше чем в Windows, и чтобы их можно было тонко настроить.
Here is the core secret to making fonts render like through DirectWrite/ClearType on Windows: There actually is no subpixel hinting going on here. Shock. The code simply ignores all horizontal hinting instructions.
В итоге, удалив Infinality , мейнтейнер FreeType сделал выбор в пользу простоты и чистоты кода. Так появился алгоритм обработки инструкций TrueType v40. Его принцип прост как копейка — полное игнорирование всех инструкций горизонтального сглаживания. Никакого субпиксельного сглаживания. Гораздо меньше труда, а результат практический одинаковый. Заодно решается проблема с шагом глифа и меж-символьными расстояниями в старых не обученных шрифтах.
Как достичь гармонии шрифтов с FreeType 2.7
Хорошая новость в том, что для этого ничего делать не нужно, обновления сами появятся в репозитарии вашего Linux или BSD дистрибутива. Просто обновитесь до новой версии и перезагрузите X.Org Server. Настройте FontConfig по вкусу. А плохая новость в том, что хочется прям сейчас, а ждать несколько дней или недель иногда тяжко. Ну а особо нетерпеливые пользователи могут сами собрать новую версию из исходников или установить с помощью штатного установщика пакетов. В моем Gentoo FreeType 2.7 пока не стабилизировался.
Для консервативного Debian, наверное придется ждать следующего релиза, а у пользователей Ubuntu и так все хорошо со шрифтами, им торопиться некуда.
Источник
Лучшие шрифты для программирования
Статья написана в 2009 году, и с тех пор многое изменилось, в том числе появились некоторые альтернативные шрифты для программирования, например, Anonymous Pro.
Как разработчик и настоящий гик в области типографики, если речь идёт о шрифте, на который придётся глазеть целый день, то я буду выбирать очень тщательно. Когда я недавно заметил, что мой друг использует довольно невзрачный шрифт для консоли и в редакторе кода (он слишком ужасен, чтобы здесь упоминать), то у меня отвисла челюсть, а сердце на секунду перестало биться, и я понял, что мне пришло время написать эту статью.
Я выкладываю список из десяти моноширинных шрифтов, готовых к использованию. Некоторые из них идут в комплекте с современными операционными системами, но большинство можно бесплатно скачать из интернета. Отдельные, в том числе Consolas, являются частью коммерческого ПО.
Примечание о сглаживании шрифтов (anti-aliasing)
В прошлом приходилось выбирать либо маленький моношрифт, либо зубчатые края. Но современные операционные системы отлично справляются со сглаживанием, так что моноширинные гарнитуры хорошо выглядят при любом кегле. Это больше не 1990 год, так что дайте отдых своим уставшим глазам и увеличьте размер шрифта.
Если у вас остались какие-то сомнения, что сглаженные шрифты подходят для кодинга, обратите внимание, что даже многоуважаемый BBEdit, который много лет поставлялся в несглаженном наборе Monaco 9 в качестве дефолтного, спрыгнул с поезда. Приложение теперь идёт в комплекте со специально лицензированной версией Consolas от Ascender, увеличенного размера, со сглаживанием по умолчанию. Panic тоже содержит специальный сглаженный шрифт (Panic Sans, который на самом деле просто версия Deja Vu Sans Mono) в своём популярном приложении Coda.
Если не оговорено обратное, для иллюстраций здесь я использовал здесь кегль размером 15 пунктов с включенным сглаживанием, чтобы продемонстрировать его годность на больших размерах.
10. Courier
Все ОС идут в комплекте с какой-нибудь модификацией Courier (часто именуется Courier New). К сожалению, многие выбрали этот шрифт для консоли и редактора. Он делает своё дело, но при этом уныл и скучен, страдает от нехватки стиля и лоска. Я не рекомендую этот шрифт, если у вас есть хоть какая-то альтернатива — и, к счастью, она у вас есть. Если вы его всё-таки используйте, то хотя бы увеличьте размер и включите сглаживание.
Courier New
9. Andale Mono
Чуть лучше семейства Courier, шрифт Andale Mono тоже попадает в категорию дефолтных, поскольку поставляется с некоторыми системами. Вряд ли бы вы захотели скачать и использовать его, если бы он уже не был установлен. На мой вкус, межбуквенный интервал у него корявый, а буквы слишком широкие.
9. Andale Mono
8. Monaco
Monaco — моноширинный шрифт по умолчанию на Mac со времён System 6. Он вполне цельный, хорошая рабочая лошадка, которая действительно отлично выглядит при маленьком кегле с выключенным сглаживанием. Раньше мне нравился этот шрифт, когда мои глаза могли смотреть несколько часов на кегль размером 9 пунктов, но те времена прошли. Этот шрифт хорошо выглядит на 9 или 10 пунктах, но не очень радует на бóльших размерах со сглаживанием.
Насколько я знаю, получить Monaco можно только вместе с Mac OS, но есть другие варианты, так что читайте дальше.
Monaco
Monaco 9 пунктов, без сглаживания
7. Profont
Profont сделан по образцу Monaco и доступен для Mac, Windows и Linux (есть также модифицированная версия для Mac OS X под названием ProFontX, от другого автора). Они лучше всего смотрятся на маленьком кегле и представляют собой отличную альтернативу Monaco, если вы работаете не на «макинтоше». Profont и ProFontX предназначены для использования при размере 9 пунктов с выключенным сглаживанием.
Profont 9 пунктов, без сглаживания
6. Monofur
Monofur — уникальный моноширинный шрифт, который великолепно выглядит на любых размерах со сглаживанием. Это довольно забавный шрифт с индивидуальными очертаниями, смутно напоминающими графический интерфейс Sun OPEN LOOK, который работал на системах Solaris (SunOS) в конце 80-х. Если вы ищете нечто особенное, попробуйте этот шрифт, но не забудьте включить сглаживание даже на маленьком кегле.
Monofur
5. Proggy
Proggy — чистый моноширинный шрифт. Кажется, его особенно предпочитают пользователи Windows, хотя он нормально работает и на Mac. Это чёткий шрифт, который нужно использовать только на малых размерах без сглаживания.
Proggy Clean 15 пунктов (да, 15 пунктов), без сглаживания
4. Droid Sans Mono
Семейство Droid (доступно для скачивания здесь) специально создано для использования на маленьких экранах смартфонов, таких как Android, и опубликовано под лицензией Apache.
Droid Sans Mono отлично подходит для программирования. Он выполнен с особым вкусом и выделяется среди остальных моноширинных шрифтов в этом списке, но у него есть единственный крупный недостаток — неперечёркнутый ноль. Версия с поправленным нулём здесь — прим. пер.
Droid Sans Mono
3. Deja Vu Sans Mono
Семейство Deja Vu — одна из моих любимых бесплатных гарнитур, основанная на великолепном Vera Font. Шрифты Deja Vu дополнены широким набором символов, сохранив при этом знакомый вид Vera.
Эту гарнитуру я использовал много лет. Она отлично выглядит на любом размере с включенным сглаживанием.
Panic поставляет в комплекте со своим приложением Coda шрифт под названием Panic Sans, который основан на этом шрифте. Грубер сказал мне в письме, что при сравнении Panic Sans и Vera у первого «заметно более резкие знаки пунктуации», ну и похоже на то, что они ещё улучшили хинтинг некоторых символов.
Deja Vu Sans Mono
2. Consolas
Consolas неожиданно появился на моём маке, когда я установил Microsoft Office, а вместе с ним ещё целый комплект новых шрифтов от Microsoft.
Этот шрифт создал Лукас де Грут (Lucas de Groot) специально для Microsoft ClearType (здесь отличное описание с примерами всех новых шрифтов Microsoft). Consolas — коммерческий фонт, но он поставляется со многими продуктами Microsoft, и есть большая вероятность, что он уже установлен на вашей системе.
Вам настоятельно рекомендуется включить сглаживание для Consolas, потому что иначе он выглядит ужасно.
Очень жаль, что шрифт не бесплатный, иначе бы он заслуживал первого места в этом списке.
Consolas
1. Inconsolata
Inconsolata — мой любимый моноширинный шрифт, и он бесплатный. Когда я его обнаружил, то сразу заменил Deja Vu Sans Mono в качестве рабочего шрифта для программирования. Я использую его вообще повсюду, от окон консоли до редакторов кода. У него практически безупречный и в то же время оригинальный стиль, и он фантастически выглядит и на больших, и на маленьких размерах. Я использую эту гарнитуру, демонстрируя код на презентациях, и также в окнах консоли и TextMate для скринкастов PeepCode. Шрифт не поддерживает кириллицу — прим. пер.
Inconsolata разработан для использования со сглаживанием, но он удивительно чёткий на самых маленьких размерах. Большое спасибо Рафу Левину (Raph Levien) за создание этого шрифта и за то, что он бесплатный.
Inconsolata
Источник