Czcionki dostarczane razem z X11 są dalekie od idealnych dla typowych aplikacji biurowych. Duże czcionki sprawiają wrażenie postrzępionych i mało profesjonalnych. Natomiast, małe czcionki w Netscape(R) są całkowicie nieczytelne. Tym nie mniej, dostępnych jest kilka darmowych, wysokiej jakości czcionek Type1 (PostScript(R)), gotowych do użycia z X11. Na przykład, kolekcja czcionek URW (x11-fonts/urwfonts) zawiera wysokiej jakości wersje standardowych czcionek type1 (Times Roman(R), Helvetica(R), Palatino(R) i innych). Kolekcja Freefonts (x11-fonts/freefonts) to wiele dodatkowych czcionek, przy czym większość z nich przewidzianych jest do użycia z oprogramowaniem graficznym, jak np. Gimp, tym samym nie są przygotowane do wykorzystania jako czcionki do aplikacji. Dodatkowo, przy minimum wysiłku, można skonfigurować X11, by korzystał z czcionek TrueType(R). Więcej szczegółów znaleźć można w podręczniku systemowym X(7) lub w części poświęconej czcionkom TrueType(R).
By zainstalować kolekcje czcionek Type1 z portów, należy wpisać następujące polecenia:
#cd /usr/ports/x11-fonts/urwfonts#make install clean
Analogicznie postępujemy z czcionkami freefont bądź innymi kolekcjami. Aby serwer X
wykrył zainstalowane czcionki, należy dodać odpowiedni wpis do pliku konfiguracji
serwera (/etc/X11/xorg.conf) postaci:
FontPath "/usr/X11R6/lib/X11/fonts/URW/"
Alternatywną metodą jest wpisanie w trakcie sesji X:
%xset fp+ /usr/X11R6/lib/X11/fonts/URW%xset fp rehash
O ile rozwiązanie to również przyniesie pożądany efekt, o tyle dokonane w ten sposób
zmiany zostaną stracone po zakończeniu sesji X. Oczywiście powyższe polecenia można dodać do
pliku startowego (~/.xinitrc dla typowej sesji startx
bądź pliku ~/.xsession przy logowaniu się za pomocą graficznego
menedżera logowania, jak np. XDM). Trzecią metodą jest
skorzystanie z nowego pliku /usr/X11R6/etc/fonts/local.conf:
szczegóły w części poświęconej wygładzaniu.
Xorg
posiada wbudowaną obsługę czcionek TrueType(R). Istnieją dwa moduły, które mogą aktywować
tę funkcję. W przykładzie wykorzystany został moduł freetype, z uwagi na większą spójność
z innymi wewnętrznymi elementami wyświetlającymi czcionki. By włączyć moduł freetype,
wystarczy dodać poniższy wiersz do sekcji "Module" pliku
/etc/X11/xorg.conf.
Load "freetype"
Teraz musimy utworzyć katalog dla czcionek TrueType(R) (na przykład
/usr/X11R6/lib/X11/fonts/TrueType) i skopiować wszystkie
czcionki do tego katalogu. Należy pamiętać, że czcionki TrueType(R)
nie mogą być bezpośrednio skopiowane z systemu Macintosh(R), by możliwe było
wykorzystanie ich z X11; muszą być w formacie UNIX(R)/MS-DOS(R)/Windows(R). Po skopiowaniu
plików należy wykorzystać ttmkfdir do stworzenia pliku
fonts.dir, by poinformować X, że zostały zainstalowane nowe
czcionki. Program ttmkfdir dostępny jest z kolekcji portów
FreeBSD jako x11-fonts/ttmkfdir.
#cd /usr/X11R6/lib/X11/fonts/TrueType#ttmkfdir -o fonts.dir
Na koniec musimy dodać katalog TrueType(R) do ścieżki czcionek. Robimy to analogicznie jak w przypadku czcionek Type1, za pomocą polecenia
%xset fp+ /usr/X11R6/lib/X11/fonts/TrueType%xset fp rehash
bądź dodając wiersz FontPath do pliku
xorg.conf.
Gotowe. Teraz Netscape(R), Gimp, StarOfficeTM i wszystkie inne aplikacje X powinny rozpoznawać zainstalowane czcionki TrueType(R). Bardzo małe czcionki (jak np. tekst na stronie WWW przy ustawionej wysokiej rozdzielczości ekranu) oraz bardzo duże (w StarOfficeTM) będą wyglądały zdecydowanie lepiej.
Wygładzanie (anti-aliasing) dostępne było w X11
od XFree86TM 4.0.2. Jednakże konfiguracja
czcionek była niezmiernie nieporęczna do ukazania się
XFree86TM 4.3.0.
Począwszy od tej właśnie wersji, wszystkie czcionki w X11 dostępne
w katalogach /usr/X11R6/lib/X11/fonts/ oraz
~/.fonts/ są automatycznie dostępne
dla aplikacji korzystających z wygładzania Xft. Nie wszystkie aplikacje
potrafią korzystać z Xft, lecz wiele z czasem otrzymało wsparcie Xft.
Przykładami aplikacji korzystających z Xft są Qt 2.3 i późniejsze (pakiet
narzędzi graficznych dla środowiska KDE),
GTK+ 2.0 i późniejsze (pakiet narzędzi graficznych dla środowiska
GNOME desktop) oraz
Mozilla 1.2 i późniejsze.
By móc kontrolować, które czcionki będą wygładzane bądź skonfigurować
właściwości wygładzania, należy stworzyć (bądź zmodyfikować, jeśli istnieje)
plik /usr/X11R6/etc/fonts/local.conf. Wykorzystując
ten plik możemy dostroić kilka zaawansowanych opcji systemu czcionek Xft,
jednakże rozdział ten skupia się jedynie na kilku podstawowych funkcjach.
Więcej szczegółów znaleźć można w podręczniku systemowym
fonts-conf(5).
W pliku tym stosowany jest format kodu XML. Przy jego edycji należy
pamiętać o właściwym zamykaniu wszystkich znaczników. Zaczyna się on
od typowego nagłówka XML oraz definicji DOCTYPE. Następnym w kolejności
jest znacznik <fontconfig>:
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
Jak już to zostało wcześniej powiedziane, wszystkie czcionki w katalogach
/usr/X11R6/lib/X11/fonts/ oraz
~/.fonts/ są automatycznie dostępne dla aplikacji
korzystających z Xft. Jeśli natomiast chcemy dodać inny katalog nie będący
podkatalogiem żadnego z powyższych, musimy dodać do pliku
/usr/X11R6/etc/fonts/local.conf wiersz podobny
do poniższego:
<dir>/ścieżka/do/moich/czcionek</dir>
Po dodaniu nowych czcionek, a szczególnie nowych katalogów, powinniśmy uruchomić poniższe polecenie, by przebudować bufor informacji o czcionkach:
#fc-cache -f
Wygładzanie sprawia, że brzegi czcionek stają się lekko zamazane, dzięki czemu małe litery są bardziej czytelne, a duże pozbawione efektu "schodków". Może jednak prowadzić do zmęczenia oczu gdy zostanie użyte w stosunku do liter o normalnej wiekości. By wyłączyć wygładzanie czcionek o rozmiarze mniejszym niż 14 punktów, należy dodać poniższe wiersze do pliku konfiguracyjnego:
<match target="font">
<test name="size" compare="less">
<double>14</double>
</test>
<edit name="antialias" mode="assign">
<bool>false</bool>
</edit>
</match>
<match target="font">
<test name="pixelsize" compare="less" qual="any">
<double>14</double>
</test>
<edit mode="assign" name="antialias">
<bool>false</bool>
</edit>
</match>Korzystając z wygładzania może się okazać, iż również odstępy pomiędzy literami niektórych czcionek o stałej szerokości są niewłaściwe. Ma to miejsce szczególnie w przypadku KDE. Jedynym rozwiązaniem tego problemu jest wymuszenie stałego odstępu o wartości 100 dla danych czcionek. W tym celu musimy wpisać:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>fixed</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>
<match target="pattern" name="family">
<test qual="any" name="family">
<string>console</string>
</test>
<edit name="family" mode="assign">
<string>mono</string>
</edit>
</match>(powyższe deklaruje inne typowe nazwy czcionek o stałej szerokości jako
"mono"), a następnie:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="spacing" mode="assign">
<int>100</int>
</edit>
</match> Niektóre czcionki, jak np. Helvetica, mogą stwarzać problemy jeśli zostaną
poddane wygładzaniu. Z reguły daje to efekt czcionki przeciętej pionowo na pół.
W najgorszym wypadku, może prowadzić to do załamania aplikacji typu
Mozilla. By tego uniknąć, warto dodać poniższe
do pliku local.conf:
<match target="pattern" name="family">
<test qual="any" name="family">
<string>Helvetica</string>
</test>
<edit name="family" mode="assign">
<string>sans-serif</string>
</edit>
</match> Skończywszy edycję local.conf upewnijmy się,
że plik kończy się znacznikiem </fontconfig>.
Bez tego może się okazać, że nasze zmiany zostaną zignorowane.
Korzystanie z domyślnego zestawu czcionek, dostępnego wraz z X11,
nie jest wskazane jeśli chodzi o wygładzanie. Zdecydowanie lepszy
zestaw domyślnych czcionek zawiera port
x11-fonts/bitstream-vera.
Port ten zainstaluje również plik
/usr/X11R6/etc/fonts/local.conf jeśli
jeszcze go nie mamy. Jeśli natomiast istnieje już taki plik
w systemie, stworzony zostanie plik
/usr/X11R6/etc/fonts/local.conf-vera. Wystarczy
dołączyć zawartość tego pliku do
/usr/X11R6/etc/fonts/local.conf, by czcionki
Bitstream automatycznie zastąpiły domyślne czcionki
X11 Serif, Sans Serif i Monospaced.
Na koniec, użytkownicy mogą dodać swoją konfigurację poprzez własny
plik .fonts.conf. W tym celu każdy użytkownik
może stworzyć i zmodyfikować plik ~/.fonts.conf.
Również ten plik wykorzystuje format XML.
Ostatnia rzecz: osoby korzystające z monitorów LCD mogą pragnąć
zastosować wygładzanie podpikselowe. W skrócie, w metodzie tej
czerwone, zielone i niebieskie komponenty (oddzielone w płaszczyźnie
poziomej) traktowane są oddzielnie, co poprawia rozdzielczość
poziomą i przynosi radykalne efekty. By włączyć wygładzanie podpikselowe
należy dodać poniższy wiersz do pliku local.conf:
<match target="font">
<test qual="all" name="rgba">
<const>unknown</const>
</test>
<edit name="rgba" mode="assign">
<const>rgb</const>
</edit>
</match>
Zależnie od typu monitora, może się okazać, że będziemy musieli zastąpić
rgb wartościami bgr,
vrgb lub vbgr: poeksperymentujmy i sprawdźmy
co da najlepszy efekt.
Wygładzanie powinno być aktywne przy następnym uruchomieniu
serwera X. Tym nie mniej, programy muszą zostać poinformowane,
by z niego korzystać. W chwili obecnej pakiet narzędzi Qt
korzysta z wygładzania czcionek, tym samym również i całe środowisko
KDE. GTK+ oraz GNOME
również można skonfigurować do pracy z wygładzanymi czcionkami poprzez
aplet "Font" (Sekcja 5.7.1.3, "Wygładzane czcionki w GNOME"
zawiera szczegółowy opis). Domyślnie, Mozilla
1.2 i późniejsze będą automatycznie korzystać z wygładzania.
By wyłączyć tę opcję, należy ponownie skompilować program z parametrem
-DWITHOUT_XFT.
All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/
Questions that are not answered by the
documentation may be
sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.