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® są całkowicie nieczytelne. Tym nie mniej, dostępnych jest kilka darmowych, wysokiej jakości czcionek Type1 (PostScript®), 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®, Helvetica®, Palatino® 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®. Więcej szczegółów znaleźć można w podręczniku systemowym X(7) lub w części poświęconej czcionkom TrueType®.
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®. 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® (na przykład
/usr/X11R6/lib/X11/fonts/TrueType
) i skopiować wszystkie
czcionki do tego katalogu. Należy pamiętać, że czcionki TrueType®
nie mogą być bezpośrednio skopiowane z systemu Macintosh®, by możliwe było
wykorzystanie ich z X11; muszą być w formacie UNIX®/MS-DOS®/Windows®. 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® 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®, Gimp, StarOffice™ i wszystkie inne aplikacje X powinny rozpoznawać zainstalowane czcionki TrueType®. Bardzo małe czcionki (jak np. tekst na stronie WWW przy ustawionej wysokiej rozdzielczości ekranu) oraz bardzo duże (w StarOffice™) będą wyglądały zdecydowanie lepiej.
Wygładzanie (anti-aliasing) dostępne było w X11
od XFree86™ 4.0.2. Jednakże konfiguracja
czcionek była niezmiernie nieporęczna do ukazania się
XFree86™ 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 http://ftp.FreeBSD.org/pub/FreeBSD/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>.