![Как установить шрифт XTerm Unicode?](https://rvso.com/image/178471/%D0%9A%D0%B0%D0%BA%20%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%82%D1%8C%20%D1%88%D1%80%D0%B8%D1%84%D1%82%20XTerm%20Unicode%3F.png)
Могу ли я добавить дополнительный шрифт в свой .Xresources, чтобы, если в шрифте по умолчанию нет некоторых символов Unicode, дополнительный шрифт мог их отобразить?
решение1
Да. Существует семь размеров шрифта, как видно по значку Ctrl+ MouseRightButtonв XTerm.Их можно задать в .Xresources.
font
= По умолчаниюfont1
= Нечитаемоfont2
= Крошечный
...font6
= Огромный
Таким образом, вы можете установить значение по умолчанию font
, которое пропускает некоторые символы Unicode. Если вам их не хватает, измените шрифт на поддерживающий их, например, Tiny. Этот .Xresources
файл делает это:
XTerm*font: -*-courier 10 pitch-medium-r-*-*-*-*-*-*-*-*-ascii-*
XTerm*font2: -*-fixed-medium-r-*-*-15-*-*-*-*-*-iso10646-*
решение2
xterm имеет два набора растровых шрифтов:
- шрифт,шрифт2, font3, ..., font6 — это обычные шрифты, восходящие к X11R4.
- utf8Шрифты.font и т. д. — это шрифты Unicode.
Файлы приложений по умолчаниюXTermиUXTermесть оба варианта, но в последнем случае эти шрифты Unicode отсутствуют внутриutf8Шрифтыслой. Вот содержимое XTerm
файла app-defaults:
*VT100.utf8Fonts.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.utf8Fonts.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.utf8Fonts.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.utf8Fonts.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.utf8Fonts.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.utf8Fonts.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
а вот содержимое файла UXTerm
app-defaults:
*VT100.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-iso10646-1
*VT100.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1
*VT100.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-iso10646-1
*VT100.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-iso10646-1
*VT100.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-iso10646-1
*VT100.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-iso10646-1
Просто читаюXTermфайл app-defaults, большинство пользователей не заметят, что шрифты, не являющиеся шрифтами UTF-8, представленные здесь, выглядятчто-нибудьнапример шрифты UTF-8:
*VT100.font1: nil2
*IconFont: nil2
*fontMenu*font2*Label: Tiny
*VT100.font2: 5x7
*fontMenu*font3*Label: Small
*VT100.font3: 6x10
*fontMenu*font4*Label: Medium
*VT100.font4: 7x13
*fontMenu*font5*Label: Large
*VT100.font5: 9x15
*fontMenu*font6*Label: Huge
*VT100.font6: 10x20
Эти короткие имена (как подробно описано вxterm не может загрузить шрифт) псевдонимы для шрифтов ISO-8859-1, которые (что неудивительно, учитывая историю UTF-8) выглядят так же, как шрифты UTF-8. Но у них всего 192 символа (256 - 64 управляющих символа), тогда как у растровых шрифтов UTF-8 их тысячи.
Существует более одного файла app-defaults, поскольку это показалось более простым решением, чемutf8Fonts
Расположение.uxtermскрипт выбирает последний при запуске с помощью-сортопция, но, как описано на странице руководства, xterm автоматически выберет utf8Fonts при запуске на основе настроек локали.
xterm имеет пункты меню дляКодировка UTF-8иШрифты UTF-8. Если ваша локаль использует кодировку UTF-8 (и еслиlocale
ресурс использует значение по умолчанию), то xterm предварительно выбирает эти пункты меню и отключает их изменение. Если локаль не использует кодировку UTF-8, вы можете изменить эти пункты меню и увидеть полученные различия.
Вы можете указать в своих ресурсах X, какой файл использовать, добавив к ресурсам префиксXTerm
илиUXTerm
, соответственно.
В то время как можно было бы сделатьнаборы шрифтовс использованием растровых шрифтов, что позволило бы сделать то, о чем говорится в вопросе:
Могу ли я добавить дополнительный шрифт в свой .Xresources, чтобы, если в шрифте по умолчанию нет некоторых символов Unicode, дополнительный шрифт мог их отобразить?
xterm использует только один из этих bitmap-шрифтов за раз (вместе с автоматическим использованием жирных и курсивных версий). В библиотеках X есть функция font-set, но она имеет серьезные проблемы с производительностью и никогда широко не использовалась. В xterm она рассматривается как помеха (см.менюLocaleресурс).
Помимо растровых шрифтов, xterm также поддерживает шрифты TrueType и автоматически ищет шрифты, необходимые для заполнения отсутствующих глифов из семейства, указанного с помощью-fa
вариант. В зависимости от вашего расположения fontconfig вы можете получить работоспособное покрытие из шрифтов TrueType (с оговоркой, что некоторые из них имеют неправильный размер).