Как использовать Fixedsys в терминале Gnome или везде, где требуются моноширинные шрифты


10

Я думаю, что шрифт Fixedsys является одним из самых разборчивых моноширинных шрифтов для программирования. Он имеет нулевое сглаживание, с вертикальными линиями в основном шириной 2 пикселя. Близко к идеалу для текущего шага монитора, на мой взгляд (буквально). Вот образец:

Образец Fixedsys

После нескольких лет работы Windows дома (по семейным обстоятельствам) и серверов Linux на работе, доступ к которым осуществлялся через Cygwin для Windows (по соображениям политики компании), с использованием Fixedsys в качестве оболочки и шрифта IDE, я, наконец, решил перейти на Ubuntu дома.

Eclipse и gedit не проблема, они принимают исправленную версию шрифта Fixedsys Excelsior TTF, которую вы можете найти здесь в комментарии № 16 (имя файла: FSEX301-L2.ttf). Но терминал Gnome принимает только моноширинные шрифты.

Хотя Fixedsys Excelsior по существу моноширинный, он содержит большие глифы (в основном для восточных языков), а также некоторые лигатуры. Поскольку очевидно, что ВСЕ символы должны иметь одинаковую ширину, чтобы шрифт распознавался как моноширинный, Fixedsys Excelsior нельзя выбрать во всех тех контекстах, где требуются моноширинные шрифты, включая gnome-терминал.

Так какой же самый простой / чистый способ использовать клон Fixedsys в тех контекстах, которые принимают только моноширинные шрифты?


Кстати, чтобы использовать Fixedsys Excelsior в NetBeans, вы должны добавить -J-Dswing.aatext=falseк netbeans_default_options в /etc/netbeans.conf. В противном случае NetBeans сделает его «цветным» и размытым - это относится и к Windows
Уолтер Тросс,

Обновление до моего предыдущего комментария: Netbeans 7.4 в Windows требует -J-Dawt.useSystemAAFontSettings=onизбавиться от сглаживания.
Уолтер Тросс

На MacBook Pro мне приходится работать с образцом не резкого изображения. Шрифт Fixedsys, кажется, имеет серые пиксели границы. AFAICT это связано с так называемым дисплеем «сетчатки», дисплеем с высоким разрешением, который позволяет масштабировать изображения в HTML в два раза (да, они предпочитали разбивать HTML и иметь размытые изображения ...). То же самое масштабирование применяется к самому шрифту, портя его. С другой стороны, дисплеи с высоким разрешением значительно улучшают разборчивость всех шрифтов, устраняя необходимость в Fixedsys.
Уолтер Тросс

Ответы:


7

Это решение, которое я нашел. Я тщательно проверил его несколько раз и уже более 2 лет использую полученный шрифт в ряде мест, но будьте осторожны: некоторые части процедуры могут быть от неоптимального до неправильного.

Прежде чем спросить «почему бы вам не сделать доступным полученный шрифт», ответим: «потому что я не уверен, что смогу это сделать». Авторское право на шрифт - сложный вопрос.


Загрузите исправленный шрифт Fixedsys Excelsior (файл FSEX301-L2.ttf, комментарий № 16)

Установите FontForge (например, из Центра программного обеспечения Ubuntu)

Щелкните правой кнопкой мыши FSEX301-L2.ttfфайл и откройте его с помощью FontForge. В открывшемся окне « Загрузка растровых шрифтов» нажмите « Нет» .

Нажмите Файл → Выполнить сценарий ... и скопируйте и вставьте в появившееся окно следующее:

SelectAll()
foreach
   if (GlyphInfo("Width") != 80)
      DetachAndRemoveGlyphs()
   else
      b = GlyphInfo("BBox")
      if (b[0] < 0 || b[1] < -30 || b[2] > 80 || b[3] > 130)
         DetachAndRemoveGlyphs()
      endif
   endif
endloop
SelectNone()

Затем выберите FF и нажмите OK (это займет некоторое время, вам придется подождать, пока не исчезнет окно « Выполнить скрипт» ).

Нажмите Элемент → Font Info ... В PS Имена изменить Fontname , Фамилия и Имя для человека , например, путем добавления Mono(пробелы допускаются только во второй и третьей строке).

В том же окне « Информация о шрифте» выберите OS / 2 .
В доп. на вкладке изменить семейство PFM на Monospace .
На вкладке «Метрики» установите для параметра «Смещение спуска по Win» и «Смещения по спуску HHead» значение 0 (*) .
На вкладке Panose измените пропорцию на моноширинную .

В том же окне « Информация о шрифте» выберите « Поиск» .
На вкладке GSUB и на вкладке GPOS выберите каждую строку по очереди и нажмите кнопку Удалить .

В том же окне « Информация о шрифте» нажмите « ОК» , а в « Изменить уникальный идентификатор»? В появившемся окне нажмите Изменить .

Если вы хотите, вы можете настроить одну или несколько сомнительных функций Fixedsys. Например, нулевой символ смещен на один пиксель вправо. Чтобы переместить его обратно в центр, дважды щелкните его, затем щелкните « Метрики» → «Установить LBearing ...» , установите для « LBearing» значение 10и нажмите « ОК» . Вы также можете изменить форму символов, но всегда сохраняйте контрольные точки кратными 10, а ширину - 80.

Нажмите Element → Bitmap Strikes Available ... , затем в появившемся окне установите Pixel Sizes to 16и нажмите OK .

Нажмите Файл → Создать шрифты ... , выберите другой каталог и / или другое имя файла, если необходимо, убедитесь, что формат вывода - TrueType , и нажмите Сохранить . В появившемся окне « Нестандартный размер» нажмите « Да» . В появившемся окне « Обнаружены ошибки» нажмите « Сохранить» (не волнуйтесь).

Выйти из FontForge ( Файл → Выйти ). В появившемся окне « Шрифт изменился» нажмите « Не сохранять» .


Переместите сгенерированный файл в .fontsподкаталог вашего домашнего каталога (создайте его, если он не существует).

Откройте Терминал Гнома. Нажмите Edit → Profiles ... В профиле (я предлагаю вам создать новый) измените шрифт Fixedsys Excelsior 3.01-L2 Mono(или как вы назвали моно версию Fixedsys Excelsior), в размере 12(который является единственным «истинным» размером Fixedsys) , Если вы хотите, вы также можете отключить жирный текст. Я предлагаю черный текст на белом фоне, но это дело вкуса.

Жирный вариант этого шрифта эквивалентен повторению символа, сдвинутого на один пиксель вправо (это отличается от того FSEX301-L2.ttf, где он выглядит сглаженным). Это не очень разборчиво - но вам действительно нужно смелое? Я не. Проблема только в тех контекстах, где жирный шрифт не может быть отключен (даже, например, путем редактирования подсветки синтаксиса), особенно в тех случаях, когда межсимвольный интервал также увеличивается на один пиксель, нарушая выравнивание (это не имеет место в gnome -Терминал). Я еще не нашел решение этой последней неприятности. Предложения приветствуются.


(*): не требуется с момента выпуска FontForge 2012-07-31 (в 14.04 LTS - Trusty Tahr)


Всем, кто сохранил и / или применил этот рецепт: обратите внимание, что он, возможно, немного изменился за это время, чтобы решить некоторые небольшие проблемы, и что он все еще может измениться в будущем. Вы могли бы взглянуть на историю редактирования.
Уолтер Тросс

К вашему сведению, отлично работает и на Windows. Также с «Fixedsys Excelsior 2.0» (что, на мой взгляд, намного лучше для терминалов, поскольку символы немного ниже, чем в FSEX3). Отличный шрифт для PuTTY! (оригинальный FSEX и любой шрифт, который считается немоно-космическим, делает PuTTY очень медленным, когда экран обновляется очень часто)
ThiefMaster

PhpStorm 7.1 от 14.04 не распознает шрифт, который я описываю в своем ответе, как моноширинный шрифт, я не знаю почему :-( К счастью, если вы снимите флажок «показывать только моноширинные шрифты», вы все равно можете его получить. По какой-то причине размер должен быть 15 или 16 (они выглядят одинаково) вместо 12. PhpStorm мне кажется немного
глючным

3

Отличное решение от Уолтера Тросса, но если вы не хотите делать всю работу, вот ссылка для скачивания:

FixedsysExcelsiorIIIb-L2_Mono.ttf


1
Спасибо Рафаэлю, «почему» во втором абзаце моего ответа
Уолтер Тросс

Ops! Извините ... Недостаток внимания ... Исправлено.
Боржовский
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.