Il problema diventa evidente quando si ingrandisce l'immagine:
Come puoi vedere, la versione scarna è interamente in scala di grigi, mentre la versione grassa ha alcuni pixel leggermente rossastri e altri leggermente bluastri.
Ciò si verifica a causa dell'antialiasing sub-pixel . Uno schermo LCD in realtà non contiene pixel quadrati che possono essere di qualsiasi colore; invece, ha tre elementi magri rettangolari che sono rosso, verde e blu. (Immagini sotto da Wikipedia).
Quando i caratteri anti-aliasing, invece di utilizzare semplicemente le sfumature di grigio, è possibile variare l'intensità di ciascuno dei tre colori, per consentire di eseguire il rendering a una risoluzione tre volte superiore a quella orizzontale che è possibile ottenere semplicemente mediante l'anti-aliasing con sfumature di grigio. Le immagini ingrandite che ho fornito in realtà non rappresentano ciò che stai vedendo; invece, i caratteri dovrebbero apparire notevolmente più fluidi a causa della forma e del posizionamento dei pixel. Sarebbe più preciso renderlo in questo modo:
Quindi, quello che stai vedendo è che a volte il carattere viene renderizzato con l'antialiasing dei pixel secondari, e talvolta viene visualizzato con il normale anti-aliasing. Immagino che gli algoritmi anti-aliasing sub-pixel utilizzati siano ottimizzati per il testo nero su uno sfondo bianco, il che potrebbe spiegare perché il testo appare un po '"grasso" se visto come testo bianco su uno sfondo nero.
D'altra parte, potrebbe essere semplicemente un rendering più accurato del carattere reale. Se guardi una versione correttamente ridimensionata dello stesso carattere, appare un po 'più audace e meno sfocato rispetto alla versione "scarna" mostrata sopra:
Il motivo per cui si passa avanti e indietro tra le due versioni è probabilmente a causa del secondo monitor. Non so esattamente quando il sistema operativo lo decida o come lo fa, ma probabilmente rileva un LCD con un layout subpixel sconosciuto. Poiché non conosce il layout dei pixel, si abbina all'antialiasing standard più sicuro (poiché l'antialiasing dei pixel secondari può sembrare davvero strano se visualizzato su un LCD con un layout errato). Sembra che in qualche modo, a volte riesci a prendere una decisione, a volte a prendere l'altra. Credo che una volta avviata un'applicazione in una determinata modalità di rendering, non cambierà fino a quando non esci e riavvii l'applicazione, il che spiegherebbe perché stai riscontrando un comportamento irregolare;
Se vuoi semplicemente renderlo coerente su tutte le applicazioni, indipendentemente dal fatto che tu usi il secondo LCD o meno e usi sempre i caratteri scarni, puoi semplicemente disattivare il livellamento dei caratteri nel pannello delle preferenze del sistema Aspetto:
Naturalmente, allora perdi l'antialiasing sub-pixel ovunque. Come sottolinea John Rudy, puoi ottenere un controllo un po 'più preciso seguendo le istruzioni per impostare manualmente il livello usando il defaults
programma ; o se non sei ancora su Snow Leopard, dovresti comunque avere i controlli più dettagliati disponibili nelle Preferenze di Sistema.