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

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

Fixedsys sample

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

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

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

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

10
задан 16 May 2014 в 01:53

2 ответа

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

Перед выяснением, "почему не делают Вы делаете получающийся шрифт доступным", ответ: "потому что я не уверен, что могу сделать так". Авторское право шрифта является сложным вопросом.


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

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

Щелкните правой кнопкой по FSEX301-L2.ttf файл и открытый это с FontForge. В окне Load Bitmap Fonts, которое появляется, нажмите на No.

Нажмите на File → Сценарий  Execute... и copy&paste следующее в окно, которое появляется:

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" (он будет требовать времени, необходимо будет ожидать, пока окно Execute Script не исчезает),

Нажмите Element &RightArrow; Информация о  Font На Имена PS изменяет Имя шрифта, Фамилию и Имя Людей, например, путем добавления Mono (пробелы позволяются только во второй и третьей строке).

В том же окне Font Information выберите ОС/2.
На Разной вкладке изменяют Семейство PFM на Моноширинный.
На вкладке Metrics, Смещении Спуска Победы набора и Смещении Спуска HHead оба к 0 (*).
На вкладке Panose измените Пропорцию к Моноширинному.

В том же окне Font Information выберите Поиски.
На вкладке GSUB, и на вкладке GPOS, выбирают каждую строку в свою очередь и нажимают Delete.

В том же окне Font Information нажмите "OK", и в Изменении UniqueID? окно, которое появляется, нажимает Change.

Если Вы хотите, можно настроить одну или несколько сомнительных функций Fixedsys. Например, нулевой символ смещается один пиксель направо. Для смещения его назад для центрирования двойного щелчка по нему затем нажмите Metrics &RightArrow;  Set LBearing..., устанавливает LBearing на 10 и нажмите "OK". Можно также изменить форму символов, но всегда сохранять контрольные точки в кратных числах 10, и ширина в 80.

Нажмите Element &RightArrow; Забастовки  Bitmap, Доступные..., затем, в окне, которое появляется установленные Размеры пикселя к 16 и нажмите "OK".

Нажмите File &RightArrow; Шрифты  Generate..., выберите другой каталог и/или другое имя файла в случае необходимости, удостоверьтесь, что выходным форматом является TrueType, и нажмите Save. В Нестандартном окне Em-Size, которое появляется, нажимают кнопку Да. В обнаруженном окне Ошибок, которое появляется затем, нажимают Save (не волнуйтесь).

Выйдите из FontForge (Файл  &RightArrow;  Quit). В измененном окне Шрифта, которое появляется, нажимают Do not Save.


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

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

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


(*): не нужный начиная с выпуска FontForge 31.07.2012 (в 14.04 LTS - Испытанный Тар)

7
ответ дан 16 May 2014 в 01:53

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

FixedsysExcelsiorIIIb-L2_Mono.ttf

0
ответ дан 16 May 2014 в 01:53

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

Похожие вопросы: