Як Linux управляє шрифтами?


11

Коли я використовував Windows (дуже дуже давно!) Та Mac OS X, завжди існував центральний "сховище" шрифтів, якими спільно використовувались ОС та всі програми (папка шрифтів у Windows та Font Book в Mac ОС X).

Як управляються шрифти в Linux? Чи є також центральний магазин шрифтів, який можуть використовувати всі програми (оболонка без X, з X, менеджери вікон, інше програмне забезпечення GUI)? Або шрифтами управляються окремо? Що я можу зробити, щоб ефективно та легко керувати своїми шрифтами в Linux?

Відповіді:


13

Є два механізми для шрифтів у землі X: серверна та клієнтська.

Традиційним способом візуалізації шрифтів є те, щоб клієнт сказав серверу «візуалізація fooу положенні (x, y) шрифтом F» (де специфікація шрифту включає обличчя, розмір, кодування та інші атрибути). Або сам сервер X, або спеціалізована програма, що називається сервер шрифтів , відкриває файл шрифту для складання опису кожного гліфа. Шрифти можуть бути растровими або векторними шрифтами, але векторні шрифти перед візуалізацією перетворюються на растрові.

Більшість сучасних програм використовують візуалізацію шрифтів на стороні клієнта, часто через xft та fontconfig . Новий механізм був потрібний, оскільки візуалізація шрифту на стороні сервера не підтримувала згладжування.

Зовні X (тобто на консолі VGA) є шрифти VGA, які є шрифтами растрових зображень конкретних розмірів. Але порівняно з X11 ніхто не використовує консоль VGA, тому на них не витрачається багато зусиль.

На практиці вам потрібно налаштувати шрифти двома способами:

  • Для програм старого стилю: каталоги шрифтів перераховані через FontPathдирективи в xorg.confі ними можна керувати xset fpкомандами з користувачем X. Якщо ви встановите нові шрифти, можливо, вам доведеться запустити mkfontdir.
  • Для програм новіше стилю, включаючи всі програми Gtk (Gnome і т.д.) і Qt (KDE і т.д.): шрифти в каталогах позначені <dir>директивами /etc/fonts/fonts.conf, ~/.fonts.confі кілька інших місця. Додаткову інформацію див. У документації щодо fontconfig . Якщо ви встановлюєте нові шрифти, можливо, вам доведеться запустити fc-cache.

3

Шрифти консолей та шрифти X - це дві окремі речі в Linux. Використовуйте команду, setfontщоб змінити свій шрифт і showconsolefontпобачити, як він виглядає. У кожному дистрибутиві є свій спосіб встановлення шрифту консолі за замовчуванням. Прочитайте сторінку setfontman для розташування шрифтів консолі. Для моєї системи Fedora 14 це / lib / kbd / consolefonts /. Шрифти консолей - це формат файлу, який визначає консолі EGA / VGA консолі.

X Шрифти - це інший формат, ніж консольний шрифт. Зазвичай вони обробляються визначеннями у вашому конфігурації X (з FontPath у розділі «Файли») або через сервер шрифту (xfs), який також встановлюється в розділі «Файли» за допомогою FontPath. Ви також можете додати FontPaths, запустивши xset +fp path. У моїй системі є всі шрифти X у / usr / share / X11 / шрифтах.


Так це означає, що всі програми GUI, що працюють на X, будуть використовувати шрифти X?
hpy

1
@penyuan: Не обов’язково, але в більшості випадків так. У багатьох програмах GUI використовуються бібліотеки вищого рівня (наприклад, GTK або Qt), які керують шрифтами для вас.
jsbillings

Зауважте, що в документах (наприклад, (La) TeX) використовується ще один набір шрифтів.
фонбранд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.