Как сделать так, чтобы символы юникода и шрифты истинного типа работали в xterm / uxterm?

12

Я хотел бы использовать шрифт TrueType в xterm / uxterm (версия 278), но у меня возникают проблемы с символами Unicode (например, é хорошо отображается, поэтому я думаю, что это не отключенный utf8 или проблема локали):

$ echo -e "\xE2\x98\xA0"

дает мне квадрат вместо ☠ со следующим конфигом:

UXTerm*faceName: Liberation Mono
UXTerm*faceSize: 9
XTerm*faceName: Liberation Mono
XTerm*faceSize: 9

Когда я отключаю шрифты TrueType с помощью контекстного меню ctrl, символ отображается нормально, используя шрифты по умолчанию, что совсем не приятно. Я попытался uxrvt и получил ту же проблему, когда мне не хватает межбуквенного интервала, но он работает нормально, когда я его увеличиваю. Тем не менее, uxrvt дал мне много других проблем, как и все другие эмуляторы терминала, которые я пробовал. У кого-нибудь есть идея?

Себастьян Бласк
источник
Есть ли у вас основания полагать, что этот символ существует в Mono Liberation?
HalosGhost
Я попробовал это в LibreOffice Writer, и он там. Он также работает в uxrvt после увеличения интервала между буквами. Моя проблема не относится к этому одному шрифту, я не смог найти шрифт TrueType, где у меня нет этой проблемы.
Себастьян Бласк
Weird. Я попытался воспроизвести проблему LibreOffice Writer, и это сработало. Может быть, LO-Writer переключается на другой шрифт, если данный юникод не поддерживается текущим? Кроме того, как увеличение интервала между буквами может привести к тому, что Liberation Mono внезапно поддержит неподдерживаемый символ юникода? Как вы увеличиваете расстояние между буквами?
полим
Ответ на мой первый вопрос выше: vinc17 обнаружил, что LibreOffice молча меняет шрифт!
полим
1
В rxvt-unicode вы можете увидеть, к какому шрифту принадлежит глиф, щелкнув его левой кнопкой мыши, удерживая нажатой клавишу control и shift. Детали должны появиться в левом нижнем углу окна терминала. Кроме того, для проверки шрифта ttf, проверьте редактор шрифтов fontforge. Удивительно, насколько сложным может быть шрифт.
эфирная рыба

Ответы:

8

Шрифт Liberation, похоже, не имеет этого символа. Но использование XTerm*faceName: DejaVu Sans Mono(которое также является шрифтом TrueType) позволяет отображать ☠.

РЕДАКТИРОВАТЬ: не используйте LibreOffice или OpenOffice, чтобы определить, поддерживается ли глиф в шрифте, так как он молча возвращается к другому шрифту: ошибка OpenOffice 45128 .

vinc17
источник
вау круто приятно найти. Похоже, мое подозрение было правильным, ха-ха: D! Upvote!
полим
Я был почти уверен, что Deja Vuбыл в списке шрифтов, которые я пробовал, но, видимо, нет. Как-то неловко, что это было так просто: -S Позвольте мне завтра попробовать это на моем рабочем компьютере ...
Себастьян Бласк
5

vinc17 правильно:

Также называемый глиф, SKULL AND CROSSBONESне поддерживается шрифтом Liberation Mono, как вы можете видеть здесь и здесь .

Вы должны изменить шрифт, который охватывает этот юникод (диапазон).

Шрифты, которые поддерживают этот конкретный глиф, перечислены здесь .

Чтобы найти имя и другую информацию о символах юникода по тексту, используйте этот инструмент .

Polym
источник