Problem staje się widoczny po powiększeniu obrazów:
Jak widać, wersja chuda jest całkowicie w skali szarości, podczas gdy wersja gruba ma niektóre piksele, które są nieco czerwonawe, a niektóre są nieco niebieskawe.
Dzieje się tak z powodu antyaliasingu subpikseli . Ekran LCD w rzeczywistości nie zawiera kwadratowych pikseli, które mogą mieć dowolny kolor; Zamiast tego ma trzy chude prostokątne elementy, które są czerwony, zielony i niebieski. (Zdjęcia poniżej z Wikipedii).
Kiedy czcionki wygładzające, zamiast po prostu używać odcieni szarości, możesz zmieniać intensywność każdego z trzech kolorów, aby umożliwić renderowanie z trzykrotną rozdzielczością poziomą, którą możesz osiągnąć po prostu przez wygładzanie z odcieniami szarości. Skalowane obrazy, które przedstawiłem, w rzeczywistości nie przedstawiają tego, co widzisz; zamiast tego czcionki powinny wyglądać na znacznie gładsze ze względu na kształt i położenie pikseli. Bardziej dokładne byłoby renderowanie go w następujący sposób:
Widzisz więc, że czasami czcionka jest renderowana z wygładzaniem subpikseli, a czasami jest renderowana przy użyciu zwykłego wygładzania. Sądzę, że stosowane algorytmy wygładzania podpikseli są zoptymalizowane pod kątem czarnego tekstu na białym tle, co może wyjaśniać, dlaczego tekst wygląda trochę „gruby”, gdy jest widziany jako biały tekst na czarnym tle.
Z drugiej strony może to być po prostu dokładniejsze renderowanie rzeczywistej czcionki. Jeśli spojrzysz na odpowiednio powiększoną wersję tej samej czcionki, wygląda ona nieco odważniej i mniej subtelnie niż pokazana powyżej „chuda” wersja:
Przyczyną przełączania się między dwiema wersjami jest prawdopodobnie drugi monitor. Nie wiem dokładnie, kiedy system operacyjny decyduje o tym, ani jak to robi, ale prawdopodobnie wykrywa wyświetlacz LCD o nieznanym układzie subpikseli. Ponieważ nie zna układu pikseli, jest zgodny z bezpieczniejszym standardowym wygładzaniem (ponieważ wygładzanie podpikseli może wyglądać naprawdę dziwnie, gdy jest wyświetlane na ekranie LCD w złym układzie). Wydaje się, że w jakiś sposób czasem podejmujesz jedną decyzję, a czasem drugą. Wierzę, że gdy aplikacja zostanie uruchomiona w określonym trybie renderowania, nie zmieni się, dopóki nie wyjdziesz z aplikacji i nie uruchomisz jej ponownie, co wyjaśnia, dlaczego obserwujesz nieprawidłowe zachowanie;
Jeśli chcesz po prostu zachować spójność we wszystkich aplikacjach, bez względu na to, czy używasz drugiego wyświetlacza LCD, czy też nie i zawsze używasz cienkich czcionek, możesz po prostu wyłączyć wygładzanie czcionek w panelu preferencji systemu Wygląd:
Oczywiście wtedy wszędzie tracisz anty-aliasing subpikseli. Jak zauważa John Rudy, można uzyskać nieco bardziej szczegółową kontrolę, postępując zgodnie z instrukcjami ręcznego ustawiania poziomu za pomocą defaults
programu ; lub jeśli jeszcze nie korzystasz z systemu Snow Leopard, nadal powinieneś mieć bardziej szczegółowe opcje dostępne w Preferencjach systemowych.