Jak Linux zarządza czcionkami?


11

Kiedy korzystałem z systemu Windows (bardzo dawno temu!) I Mac OS X, zawsze istniało centralne „repozytorium” czcionek współdzielonych i dostępnych przez system operacyjny i wszystkie programy (folder czcionek w systemie Windows i Font Book w systemie Mac OS X).

Jak zarządza się czcionkami w systemie Linux? Czy istnieje również centralny magazyn czcionek, z którego mogą korzystać wszystkie programy (powłoka bez X, X, menedżery okien, inne oprogramowanie GUI)? Czy czcionki są zarządzane osobno? Co mogę zrobić, aby wydajnie i łatwo zarządzać czcionkami w systemie Linux?

Odpowiedzi:


13

Istnieją dwa mechanizmy czcionek w X land: po stronie serwera i po stronie klienta.

Tradycyjny sposób renderowania czcionek polega na tym, aby klient powiedział serwerowi „renderuj foow pozycji (x, y) w czcionce F” (gdzie specyfikacja czcionki zawiera twarz, rozmiar, kodowanie i inne atrybuty). Albo sam serwer X, albo specjalistyczny program o nazwie serwer czcionek , otwiera plik czcionek, aby zbudować opis każdego glifu. Czcionki mogą być czcionkami bitmapowymi lub wektorowymi, ale przed renderowaniem czcionki wektorowe są konwertowane na bitmapy.

Większość współczesnych programów używa renderowania czcionek po stronie klienta, często za pomocą xft i fontconfig . Potrzebny był nowy mechanizm, ponieważ renderowanie czcionek po stronie serwera nie obsługiwało wygładzania.

Poza X (tj. Na konsoli VGA) istnieją czcionki VGA, które są czcionkami bitmapowymi o określonych rozmiarach. Ale w porównaniu do X11 nikt nie korzysta z konsoli VGA, więc nie poświęca się temu wiele wysiłku.

W praktyce będziesz chciał skonfigurować czcionki na dwa sposoby:

  • W przypadku programów w starszym stylu: katalogi czcionek są wymienione FontPathw dyrektywach xorg.confi można nimi manipulować za pomocą xset fppoleceń użytkownika uruchamiającego X. Jeśli zainstalujesz nowe czcionki, może być konieczne uruchomienie mkfontdir.
  • Dla programów nowsze stylu, w tym wszystkich Gtk (Gnome, etc.) i Qt (KDE, etc.) programów: czcionki są w katalogach oznaczone <dir>dyrektyw /etc/fonts/fonts.conf, ~/.fonts.confi kilka innych miejsc. Aby uzyskać więcej informacji, zobacz dokumentację fontconfig . Jeśli zainstalować nowe czcionki, może trzeba uruchomić fc-cache.

3

Czcionki konsoli i czcionki X to dwie osobne rzeczy w systemie Linux. Użyj polecenia, setfontaby zmienić czcionkę i showconsolefontzobaczyć, jak to wygląda. Każda dystrybucja ma swój własny sposób ustawiania domyślnej czcionki konsoli. Przeczytaj setfontstronę podręcznika, aby znaleźć lokalizację czcionek konsoli. W moim systemie Fedora 14 jest to / lib / kbd / consolefonts /. Czcionki konsoli to format pliku, który definiuje czcionki konsoli EGA / VGA.

Czcionki X mają inny format niż czcionki konsoli. Są one zazwyczaj obsługiwane przez definicje w konfiguracji X (z FontPath w sekcji Pliki) lub przez serwer czcionek (xfs), który jest również ustawiony w sekcji Pliki z FontPath. Możesz także dodać FontPaths, uruchamiając xset +fp path. Mój system ma wszystkie czcionki X w katalogu / usr / share / X11 / fonts.


Czy to oznacza, że ​​wszystkie programy GUI działające na X będą używać czcionek X?
hpy

1
@penyuan: Niekoniecznie, ale w większości przypadków tak. Wiele programów GUI korzysta z bibliotek wyższego poziomu (takich jak GTK lub Qt), które zarządzają czcionkami za Ciebie.
jsbillings

Zauważ, że dokumenty (np. (La) TeX) używają jeszcze innego zestawu czcionek.
vonbrand
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.