Jak zastępuje się nieznane czcionki?

14

Załóżmy, że mam obcy dokument tekstowy, który otwieram za pomocą narzędzia do edycji tekstu, które rozpoznaje czcionki (np. LibreOffice Writer). W tym dokumencie mogą być używane niektóre czcionki, które nie są dostępne w mojej instalacji Ubuntu (np. Garamond).

Pytanie brzmi: w jaki sposób Ubuntu decyduje, która z zainstalowanych czcionek ma być zamiennikiem nieznanej czcionki? Czy czyta którąś z cech czcionki i szuka podobnej? Czy zawsze używana jest domyślna czcionka zastępcza? Czy szuka podobnych nazw czcionek?

Ponadto chciałbym wiedzieć, czy mogę w jakiś sposób zmienić to zachowanie lub ustawić ręczne aliasy czcionek, aby automatycznie używały np. Darmowej czcionki EB-Garamont zamiast niewolnego Garamont ?

Bajt Dowódca
źródło
To pytanie powstało, gdy odpowiedziałem na pytanie tutaj: superuser.com/a/945192/418736
Byte Commander

Odpowiedzi:

9

Myślę, że decyduje o tym nie Ubuntu, ale program (LibreOffice, OpenOffice itp.). Nie widziałem nic związanego z LibreOffice per se, ale OpenOffice ma ładne wiki z kilkoma szczegółami na temat tego, jak działa „Font Fallback”. Zasadniczo może mieć zastosowanie również do LibreOffice.

W celu wyjaśnienia odtwarzam niektóre sekcje z wiki poniżej. Trudno jest wyjaśnić lepiej niż to, co znajduje się na wiki , więc lepiej przeczytać go stamtąd:

Co to jest Font Fallback w OpenOffice.org 2?

Funkcja zastępowania czcionek uruchamia się za każdym razem, gdy żądana jest czcionka, która nie jest zainstalowana w systemie. (Niezainstalowany oznacza: niedostępny dla OOo). OOo następnie próbuje użyć innej czcionki niż ta, którą OOo wie o tym, która odpowiada żądanej czcionce tak blisko, jak to możliwe.

Jak działa Font Fallback?

Aby cofanie czcionek przyniosło satysfakcjonujące wyniki, OOo musi wiedzieć o podobieństwach czcionek. OOo musi wiedzieć, że może na przykład zastąpić Helveticę zamiast Arial , ale nie Komiks Sans . To zadanie nie jest tak proste, jak się wydaje, ponieważ istnieje wiele czcionek i OOo nie może wiedzieć o wszystkich z nich.

OOo używa kilku sposobów na znalezienie odpowiedniego zamiennika:

  • Informacje o aliasie czcionki dostarczane przez system (np. Z fonts.dir pliku )
  • Zakodowana lista czcionek zastępczych, z VCL.xcu(najpierw wypróbowany)
  • Alternatywne pisowni nazw czcionek
  • Atrybuty czcionek (np. Czy ma znaki CJK, czy to czcionka symboli) lub styl ( serif / non-serif , proporcjonalny / nieproporcjonalny)

jeśli to wszystko się nie powiedzie:

  • użyj domyślnej czcionki

Nie bezpośrednio powiązane, ale ten dokument TLDP jest dobrym materiałem do przeczytania.

Ron
źródło