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