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

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

Образец Fixedsys

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

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

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

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

2 ответа

Решение

Это решение, которое я нашел. Я тщательно проверил его несколько раз и уже более 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 (это займет некоторое время, вам придется подождать, пока не исчезнет окно " Выполнить скрипт")

Нажмите Элемент → Информация о шрифте ... В PS Names измените имя шрифта, фамилию и имя для людей, например, добавив Mono (пробелы разрешены только во второй и третьей строке).

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

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

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

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

Нажмите Element → Bitmap Strikes Available..., затем в появившемся окне установите Размеры пикселей в 16 и нажмите ОК.

Нажмите Файл → Создать шрифты..., выберите другой каталог и / или другое имя файла, если необходимо, убедитесь, что формат вывода - 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)

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

FixedsysExcelsiorIIIb-L2_Mono.ttf

Другие вопросы по тегам