Dlaczego czcionki w Mac OS X czasami wyglądają „grubo”?

19

Czasami po wznowieniu zawieszenia czcionki w systemie Mac OS X wyglądają na „grubsze” niż zwykle. Niestety w tej chwili nie mogę sprawić, by mój Macbook Pro wykazywał „normalne” zachowanie do porównania, wczoraj i dziś było to nienormalne. Jeśli mogę uzyskać zrzuty ekranu z tego, co uważam za „normalne”, dodam je.

„Naprawianie” było losowe. Używam zewnętrznego monitora, a czasem odłączam go i podłączam ponownie, a nawet wyłączam i włączam. Czasami z podłączonym ekranem (lub nie) wykrywanie ekranów działa. Czasami trzeba się wylogować lub całkowicie zrestartować.

Zastosowane wyświetlacze:

  • Wbudowany wyświetlacz Macbook Pro 15 "
  • Dell 27 "LCD (model 2009)

Oprogramowanie, w którym tak się dzieje, przynajmniej w największym stopniu:

  • Firefox (zrzuty ekranu poniżej)
  • iTerm
  • Rzeczy
  • MacIrssi (zrzuty ekranu poniżej)

Używam Mac OS X 10.5.8.

Widok „nienormalny” z MacIrssi z Inconsolata 16 pkt.

nienormalny (Macirssi)

„Nieprawidłowy” widok z przeglądarki Firefox.

nienormalny (Firefox)

W końcu udało mu się przełączyć z powrotem, jednak po wznowieniu z zawieszania pleców na „gruby” :-(.

normalny (Macirssi)

I „normalne” w Firefoksie:

normalny (Firefox)

jtimberman
źródło
Jak przywrócić czcionki do normalności? Restart?
Stephen Jennings,
Jak dotąd był losowy. Czasem robi to wykrywanie wyświetlaczy, kiedy używam zewnętrznego monitora, wyłączam / włączam lub odłączam i podłączam prace, dlatego zadaję to pytanie, jak sądzę :-).
jtimberman
@Arjan, zaktualizowałem post. Obecnie jest to „nienormalne”.
jtimberman
1
Czy możesz teraz dodać zrzut ekranu z „nienormalną” wersją?
Brian Campbell,
Ponieważ są szczęśliwsi i czują się bardziej jak w domu na Apple ... więc „pozwalają sobie na to, żeby się zrelaksować”, dąsając się w swojej wygodnej otyłości. I dlatego niektóre czcionki na komputerze Mac wyglądają grubiej ...

Odpowiedzi:

21

Problem staje się widoczny po powiększeniu obrazów:

Powiększono zrzut ekranu „grubych” czcionek pokazujących kolorowe piksele
Powiększono zrzut ekranu „chudych” czcionek pokazujących piksele w skali szarości

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).

Wzory pikseli na różnych wyświetlaczach

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:

Przykład wygładzonego tekstu Sub-Pixel

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:

Przykładowy tekst przy większym rozmiarze czcionki

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:

Podświetlanie „Użyj wygładzania czcionek LCD, gdy jest dostępne” 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ą defaultsprogramu ; lub jeśli jeszcze nie korzystasz z systemu Snow Leopard, nadal powinieneś mieć bardziej szczegółowe opcje dostępne w Preferencjach systemowych.

Brian Campbell
źródło
Do Twojej wiadomości mam najlepsze wyniki na ekranach laptopa po odznaczeniu opcji „Użyj wygładzania czcionek LCD, jeśli jest dostępna”.
jtimberman
12

Wygląda to na różnice w wygładzaniu, które mogą mieć sens, jeśli widzisz to zachowanie podczas zawieszania / wznawiania i podłączania / odłączania monitora zewnętrznego. Możliwe, że monitor Dell uruchamia zmianę trybu wygładzania używanego przez system.

W zależności od wersji Mac OS X w oknie Preferencje systemowe wyglądu mogą być dostępne opcje sterowania wygładzaniem czcionek używanym przez system. (W systemie Snow Leopard widzę tylko pole wyboru, aby „używać wygładzania czcionek LCD, jeśli jest dostępne.” Wydaje się, że odpowiada to staremu ustawieniu „Automatyczny - najlepszy dla głównego wyświetlacza”).

Nadal możesz to skonfigurować za pomocą właściwości systemowych w Terminal.app. W tym artykule wyjaśniono szczegóły, które streszczę poniżej:

Istnieje pięć ustawień wygładzania czcionek:

  1. Automatyczny - najlepszy dla wyświetlacza głównego
  2. Standard - najlepszy dla CRT (opcja 1)
  3. Światło (opcja 2)
  4. Średni - najlepszy dla płaskiego panelu (opcja 3)
  5. Mocny (opcja 4)

Aby ściśle kontrolować to, abyś nie był już w automatycznym świecie, użyj Terminal.app, aby zmienić właściwość w całym systemie. Podejrzewam, że jeśli to zrobisz, przełączanie wyświetlania (między monitorami i podejrzewam, że być może twój wygaszacz ekranu do zawieszenia / wznowienia) nie powinien już zadzierać z twoimi ustawieniami.

W Terminal.app wpisz:

    defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

Zmień 2opcję na dowolną (z powyższej listy użyj numerów opcji po tekście), którą najbardziej lubisz.

John Rudy
źródło
Świetne referencje! Jego „zamiast polegać na wyświetlaczach LCD zgłosić jakie ustawienia należy stosować” może rzeczywiście przyczyną gwałtownych zmian, tak myślę.
Arjan
Używam iTerm, a nie Terminal.app, a zrzuty ekranu z Monospace pochodzą z Macirssi.
jtimberman
Ponieważ używam Leoparda, a nie Snow Leoparda, ta opcja jest dostępna w Preferencjach systemowych -> Wygląd. „Standardowy… CRT” w rzeczywistości wygląda dla mnie „normalnie” na ekranie Macbooka, ale będę musiał czekać, aby sprawdzić zewnętrzny wyświetlacz LCD, kiedy jutro wrócę do biura.
jtimberman
2
@ jtimberman, ponieważ używam iTerm, a nie Terminal.app, zauważ, że polecenie wydane przez Johna nie ma wpływu tylko na Terminal. Możesz także użyć iTerm, aby go uruchomić.
Arjan
0

Jeśli używasz CRT, możesz spodziewać się zniekształceń kolorów, jasności i współczynnika kształtu w czasie do pełnego rozgrzania CRT. Jakiego monitora używasz?

Charles Stewart
źródło
Wewnętrzny wyświetlacz LCD MacBooka. Nawet nie mam już CRT.
jtimberman