Проблема становится очевидной, когда вы увеличиваете изображения:
Как видите, тощая версия полностью в оттенках серого, в то время как в жирной версии некоторые пиксели имеют слегка красноватый оттенок, а некоторые - слегка голубоватый.
Это происходит из -за субпиксельного сглаживания. ЖК-экран на самом деле не содержит квадратных пикселей, которые могут быть любого цвета; вместо этого он имеет три тонких прямоугольных элемента: красный, зеленый и синий. (Изображения ниже из Википедии).
Когда шрифты сглаживания вместо простого использования оттенков серого можно изменять интенсивность каждого из трех цветов, чтобы позволить вам в три раза визуализировать горизонтальное разрешение, которое вы можете достичь, просто сглаживая оттенками серого. Предоставленные мной увеличенные изображения на самом деле не отражают то, что вы видите; вместо этого шрифты должны выглядеть значительно более плавными из-за формы и расположения пикселей. Было бы точнее сделать это примерно так:
Итак, вы видите, что иногда шрифт отображается с субпиксельным сглаживанием, а иногда с обычным сглаживанием. Я бы предположил, что используемые субпиксельные алгоритмы сглаживания оптимизированы для черного текста на белом фоне, что может объяснить, почему текст выглядит немного "толстым" при просмотре в виде белого текста на черном фоне.
С другой стороны, это может быть просто более точный рендеринг фактического шрифта. Если вы посмотрите на правильно масштабированную версию того же шрифта, она выглядит немного смелее и менее хитрой, чем "тонкая" версия, показанная выше:
Причина, по которой он переключается между двумя версиями, возможно, из-за вашего второго монитора. Я не знаю точно, когда ОС решает это или как это делает, но, вероятно, обнаруживает ЖК-дисплей с неизвестной подпиксельной разметкой. Поскольку он не знает расположения пикселей, он идет с более безопасным стандартным сглаживанием (поскольку субпиксельное сглаживание может выглядеть очень странно при отображении на ЖК-дисплее с неправильной разметкой). Кажется, что иногда вы заставляете его принимать одно решение, а иногда заставляете его принимать другое. Я считаю, что как только приложение запускается в определенном режиме рендеринга, оно не изменится, пока вы не закроете и не перезапустите приложение, что объясняет, почему вы видите ошибочное поведение; Ваше поведение может зависеть от того, когда именно вы подключаете внешний монитор и когда запускаете свои приложения.
Если вы просто хотите сделать это согласованным во всех приложениях, независимо от того, используете ли вы второй ЖК-дисплей или нет, и всегда используете тонкие шрифты, вы можете просто отключить сглаживание шрифтов на панели системных настроек Appearance:
Конечно, тогда вы теряете субпиксельное сглаживание везде. Как отмечает Джон Руди, вы можете получить более детальный контроль, следуя инструкциям по настройке уровня вручную с помощью программы по defaults
; или, если вы еще не используете Snow Leopard, у вас должны быть более детальные элементы управления, доступные в Системных настройках.