Почему шрифты иногда выглядят «толстыми» в Mac OS X?

19

Иногда при восстановлении из режима приостановки шрифты в Mac OS X выглядят «жирнее», чем обычно. К сожалению, сейчас я не могу заставить свой Macbook Pro демонстрировать «нормальное» поведение для сравнения, это было ненормально вчера и сегодня. Если я смогу получить скриншоты того, что я считаю «нормальным», я добавлю их.

«Исправление» было случайным. Я использую внешний монитор, и иногда отсоединяю его от сети и снова подключаю, или даже выключаю и снова работаю. Иногда с подключенным дисплеем (или нет) обнаружение дисплеев работает. Иногда требуется выход из системы или полная перезагрузка.

Используемые дисплеи:

  • Macbook Pro 15 "встроенный дисплей
  • Dell 27 "LCD (модель 2009 года)

Программное обеспечение, где я вижу это, по крайней мере, заметно:

  • Firefox (скриншоты ниже)
  • Iterm
  • вещи
  • MacIrssi (скриншоты ниже)

Я использую Mac OS X 10.5.8.

«Ненормальный» вид от Макирсси с Inconsolata 16 pt.

ненормальный (Macirssi)

«Ненормальный» вид из Firefox.

ненормальный (Firefox)

Наконец получил его, чтобы переключиться обратно, хотя после возобновления приостановить его обратно в "толстый" :-(.

нормальный (Macirssi)

И «нормально» в Firefox:

нормальный (Firefox)

jtimberman
источник
Как вы получаете шрифты, чтобы вернуться к нормальной жизни? Перезагрузка?
Стивен Дженнингс
Пока что это было случайно. Иногда обнаружение дисплеев делает это, когда я использую свой внешний монитор, выкл. / Вкл., Или отключение и подключение работает, поэтому я задаю этот вопрос, я полагаю :-).
2010 года
@Arjan, я обновил пост. Это «ненормально» прямо сейчас.
2010 года
1
Можете ли вы сейчас добавить скриншот "ненормальной" версии?
Брайан Кэмпбелл
Потому что они счастливее и чувствуют себя как дома в Apple ... поэтому они "позволяют всему болтаться", словно дуясь, в своей комфортной полноте. И именно поэтому некоторые шрифты на Mac выглядят толще ...

Ответы:

21

Проблема становится очевидной, когда вы увеличиваете изображения:

Увеличенный снимок экрана «жирных» шрифтов с цветными пикселями
Увеличенный снимок экрана с «худыми» шрифтами, показывающий пиксели в оттенках серого

Как видите, тощая версия полностью в оттенках серого, в то время как в жирной версии некоторые пиксели слегка красноватые, а некоторые слегка голубоватые.

Это происходит из -за сглаживания субпикселя . ЖК-экран на самом деле не содержит квадратных пикселей, которые могут быть любого цвета; вместо этого он имеет три тонких прямоугольных элемента: красный, зеленый и синий. (Изображения ниже из Википедии).

Пиксельные узоры на различных дисплеях

Когда шрифты сглаживания вместо того, чтобы просто использовать оттенки серого, можно изменять интенсивность каждого из трех цветов, чтобы позволить вам в три раза визуализировать горизонтальное разрешение, которое вы можете достичь, просто сглаживая оттенками серого. Предоставленные мной увеличенные изображения на самом деле не отражают то, что вы видите; вместо этого шрифты должны выглядеть значительно более плавными из-за формы и расположения пикселей. Было бы точнее сделать это примерно так:

Пример сглаженного субпиксельного текста

Итак, вы видите, что иногда шрифт отображается с субпиксельным сглаживанием, а иногда с обычным сглаживанием. Я бы предположил, что используемые субпиксельные алгоритмы сглаживания оптимизированы для черного текста на белом фоне, что может объяснить, почему текст выглядит немного «толстым» при просмотре в виде белого текста на черном фоне.

С другой стороны, это может быть просто более точный рендеринг фактического шрифта. Если вы посмотрите на правильно масштабированную версию того же шрифта, она выглядит немного смелее и менее хитрой, чем «тонкая» версия, показанная выше:

Пример текста с увеличенным размером шрифта

Причина, по которой он переключается между двумя версиями, возможно, из-за вашего второго монитора. Я не знаю точно, когда ОС решает это или как это делает, но, скорее всего, обнаруживает ЖК-дисплей с неизвестной подпиксельной разметкой. Поскольку он не знает расположения пикселей, он идет с более безопасным стандартным сглаживанием (поскольку субпиксельное сглаживание может выглядеть очень странно при отображении на ЖК-дисплее с неправильной разметкой). Кажется, что почему-то вы иногда заставляете его принимать одно решение, а иногда заставляете его принимать другое. Я считаю, что как только приложение запускается в определенном режиме рендеринга, оно не изменится, пока вы не закроете и не перезапустите приложение, что объясняет, почему вы видите ошибочное поведение;

Если вы просто хотите сделать это согласованным во всех приложениях, независимо от того, используете ли вы второй ЖК-дисплей или нет, и всегда используете тонкие шрифты, вы можете просто отключить сглаживание шрифтов на панели настроек системы Appearance:

Выделите «Использовать сглаживание шрифтов на ЖК-дисплее, если доступно» на панели настроек системы «Внешний вид».

Конечно, тогда вы теряете субпиксельное сглаживание везде. Как отмечает Джон Руди, вы можете получить более детальный контроль, следуя инструкциям по настройке уровня вручную с помощью defaultsпрограммы ; или, если вы еще не используете Snow Leopard, у вас должны быть более детальные элементы управления, доступные в Системных настройках.

Брайан Кэмпбелл
источник
К вашему сведению, у меня лучшие результаты на дисплеях моего ноутбука, если снять отметку «Использовать сглаживание шрифтов на ЖК-дисплее, если доступно».
jtimberman
12

Это похоже на различия в сглаживании, которые могут иметь смысл, если вы видите такое поведение при приостановке / возобновлении и подключении / отключении внешнего монитора. Возможно, ваш монитор Dell вызывает изменение режима сглаживания, используемого системой.

В зависимости от вашей версии Mac OS X у вас могут быть варианты управления сглаживанием шрифтов, используемым системой, в окне «Системные настройки внешнего вида». (Что касается Snow Leopard, я вижу только флажок «использовать сглаживание шрифтов на ЖК-дисплее, когда оно доступно». Похоже, это соответствует старой настройке «Автоматически - лучше всего для основного дисплея».)

Вы все еще можете настроить это через системные свойства в Terminal.app. Эта статья объясняет детали, которые я кратко изложу ниже:

Существует пять настроек сглаживания шрифтов:

  1. Автоматический - лучший для основного дисплея
  2. Стандарт - Лучший для ЭЛТ (опция 1)
  3. Свет (опция 2)
  4. Средний - лучший для плоской панели (опция 3)
  5. Сильный (опция 4)

Чтобы жестко контролировать это, чтобы вы больше не были в автоматическом мире, используйте Terminal.app, чтобы изменить свойство в масштабе всей системы. Я подозреваю, что если вы сделаете это, переключение дисплея (между мониторами, и я подозреваю, возможно, ваша заставка для приостановки / возобновления) больше не должно портить ваши настройки.

В Terminal.app введите:

    defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

Измените параметр 2на любой (из приведенного выше списка используйте номера параметров после текста), который вам больше нравится.

Джон Руди
источник
Отличная ссылка! Его «вместо того, чтобы полагаться на ЖК - дисплеи , чтобы сообщить , какие параметры должны быть использованы» действительно может вызвать внезапные изменения, я думаю.
Арджан
Я использую iTerm, а не Terminal.app, а скриншоты в моно-пространстве сделаны Macirssi.
Январь
Поскольку я использую Leopard, а не Snow Leopard, эта опция доступна в Системных настройках -> Внешний вид. «Стандартный ... ЭЛТ» на самом деле выглядит «нормально» для меня на дисплее Macbook, хотя мне придется подождать, чтобы проверить внешний ЖК-дисплей, когда я вернусь в офис завтра.
Январь
2
@jtimberman, поскольку я использую iTerm, а не Terminal.app, обратите внимание, что команда, данная Джоном, не влияет только на Terminal. Вы также можете использовать iTerm для его запуска.
Арджан
0

Если вы используете ЭЛТ, вы можете ожидать некоторое искажение цветов, яркости и соотношения сторон во время, пока ЭЛТ полностью не прогреется. Какой монитор вы используете?

Чарльз Стюарт
источник
Внутренний MacBook ЖК-дисплей. У меня даже больше нет ЭЛТ.
2010 года