Чому шрифти іноді виглядають жировими в Mac OS X?


19

Іноді під час відновлення призупинення шрифти в Mac OS X виглядають "жирніше", ніж зазвичай. На жаль, зараз я не можу отримати свій Macbook Pro для демонстрації "нормальної" поведінки для порівняння, це було ненормально вчора і сьогодні. Якщо я можу отримати скріншоти того, що, на мою думку, є «нормальним», я додам їх.

"Виправлення" цього було випадковим. Я використовую зовнішній монітор, а іноді відключаю його від мережі та підключаючи його назад, або навіть вимикаючи його та спрацьовуючи, він спрацював. Іноді з доданим (або ні) дисплеєм виявлення дисплеїв працює. Іноді потрібно вийти або повністю перезавантажитись.

Використовуються дисплеї:

  • Вбудований дисплей Macbook Pro 15 "
  • 27-дюймовий РК-дисплей Dell (модель 2009 р.)

Програмне забезпечення, де я бачу це, принаймні, найбільш помітно:

  • Firefox (скріншоти нижче)
  • iTerm
  • Речі
  • MacIrssi (скріншоти нижче)

Я використовую Mac OS X 10.5.8.

"Ненормальний" погляд з MacIrssi з Inconsolata 16 pt.

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

"Ненормальний" погляд від Firefox.

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

Нарешті отримав його, щоб переключитися назад, хоча після відновлення відмовити спину до "жиру" :-(.

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

І "нормально" у Firefox:

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


Як змусити шрифти повернутися до звичайного? Перезавантажити?
Стівен Дженнінгс

Поки що це було випадково. Іноді виявлення дисплеїв робить це, коли я використовую зовнішній монітор, вимкнено / увімкнено, або відключаю підключення та підключення до роботи, тому я задаю це питання, гадаю :-).
jtimberman

@Arjan, я оновив пост. Зараз це "ненормально".
jtimberman

1
Чи можете ви зараз додати скріншот "ненормальної" версії?
Брайан Кемпбелл

Тому що вони щасливіші і відчувають себе більше вдома в Apple ... тож вони "нехай все це зависає", як ніби, кидаючись у свою комфортну жирність. І тому деякі шрифти на Mac виглядають товстішими ...

Відповіді:


21

Проблема стає очевидною, коли ви збільшуєте зображення:

Збільшити масштаб екрану "жирних" шрифтів, показуючи кольорові пікселі
Збільшити масштаб екрану "худих" шрифтів, показуючи сірі пікселі

Як бачимо, худий варіант повністю має сірий колір, тоді як жирна версія має кілька пікселів, які трохи червонуваті, а деякі злегка синюваті.

Це відбувається через субспіксельне антизгладжування . РК-екран насправді не містить квадратних пікселів, які можуть бути будь-якого кольору; натомість у неї є три худі прямокутні елементи, червоні, зелені та сині. (Зображення нижче з Вікіпедії).

Піксельні візерунки на різних дисплеях

Якщо шрифти без згладжування замість того, щоб просто використовувати відтінки сірого, ви можете змінювати інтенсивність кожного з трьох кольорів, щоб дозволити в три рази рендерувати горизонтальну роздільну здатність, яку ви можете досягти, просто розтушовуючи відтінки сірого. Надані мною масштабовані зображення насправді не відображають того, що ви бачите; натомість шрифти повинні виглядати значно плавнішими через форму та розміщення пікселів. Було б точніше видати це приблизно так:

Приклад антисезаційного тексту субпікселя

Отже, те, що ви бачите, - це те, що іноді шрифт виводиться за допомогою пікселя для згладжування пікселів, а іноді він виводиться за допомогою звичайного згладжування. Я б здогадався, що алгоритми протизшивання субпікселів, що використовуються, оптимізовані для чорного тексту на білому тлі, що може пояснити, чому текст виглядає трохи «жирним», якщо його розглядати як білий текст на чорному тлі.

З іншого боку, це може бути просто більш точне відображення фактичного шрифту. Якщо ви подивитесь на правильно зменшену версію того ж шрифту, вона виглядає дещо сміливішою і менш мудрою, ніж "худа" версія, показана вище:

Приклад тексту з більшим розміром шрифту

Причина його перемикання вперед і назад між двома версіями, ймовірно, пов’язана з вашим другим монітором. Я не знаю точно, коли ОС вирішує це, або як це робить, але він, ймовірно, виявляє РК з невідомим макетом субпікселя. Оскільки він не знає компонування пікселів, він відповідає безпечнішому стандартному згладжуванню (оскільки підпіксельне антизгладжування може виглядати дуже дивним, якщо відображатись на РК-дисплеї з неправильним розташуванням). Здається, що якимось чином ти іноді змушуєш його прийняти одне рішення, а іноді отримуєш його, щоб прийняти інше. Я вважаю, що після запуску програми в певному режимі візуалізації вона не зміниться, поки ви не закриєте і не запустите програму, що пояснить, чому ви бачите нестабільну поведінку;

Якщо ви просто хочете зробити це послідовним у всіх програмах, незалежно від того, використовуєте ви другий РК-дисплей чи ні, і завжди використовуєте худі шрифти, ви можете просто вимкнути згладжування шрифту на панелі налаштувань системи зовнішнього вигляду:

Виділення "Використовувати згладжування РК-шрифтів, коли вони доступні" на панелі налаштувань зовнішнього вигляду

Звичайно, тоді ви втрачаєте субспіксельне антизгладжування скрізь. Як зазначає Джон Руді, ви можете отримати дещо більш тонкий зернистий контроль, дотримуючись інструкцій щодо встановлення рівня вручну за допомогою defaultsпрограми ; або якщо ви ще не користуєтесь Snow Leopard, тоді вам все одно повинні бути доступні більш дрібні елементи керування в System Preferences.


FYI У мене найкращі результати на дисплеях мого ноутбука, якщо зніміть прапорець "Використовувати згладжування шрифтів LCD, коли вони доступні".
jtimberman

12

Це виглядає як розбіжності в антизгладжуванні, що може мати сенс, якщо ви спостерігаєте цю поведінку під час призупинення / відновлення та підключення / відключення зовнішнього монітора. Можливо, ваш монітор Dell ініціює зміну режиму згладжування, який використовує система.

Залежно від вашої версії Mac OS X, у вікні Налаштування системи зовнішнього вигляду ви можете мати параметри керування згладжуванням шрифту, використовуваною системою. (Станом на Snow Leopard, я бачу лише прапорець "використовувати згладжування шрифтів РК-дисплея, коли вони доступні". Здається, це відповідає старому налаштуванню "Автоматичне - найкраще для головного дисплея".)

Ви все ще можете налаштувати це за допомогою системних властивостей у Terminal.app. У цій статті пояснюються деталі, які я підсумую нижче:

Існує п'ять налаштувань вирівнювання шрифту:

  1. Автоматична - найкраща для головного дисплея
  2. Стандартний - Найкраще для CRT (опція 1)
  3. Світло (опція 2)
  4. Середній - найкращий для плоскої панелі (опція 3)
  5. Сильний (варіант 4)

Щоб жорстко контролювати це, щоб більше не знаходитися в автоматичному світі, використовуйте Terminal.app, щоб змінити систему властивостей у всьому світі. Я підозрюю, що якщо ви це зробите, перемикання дисплея (між моніторами, і я підозрюю, що, можливо, ваша заставка для призупинення / відновлення) більше не має мішатися з вашими налаштуваннями.

У Terminal.app введіть:

    defaults -currentHost write -globalDomain AppleFontSmoothing -int 2

Змініть 2на будь-який варіант (зі списку вище, використовуйте номери опцій після тексту), який вам найбільше подобається.


Чудова довідка! Його «замість того, щоб покладатися на ЖК дисплеях повідомляти , які параметри повинні бути використані» дійсно може викликати раптові зміни, я думаю.
Ар'ян

Я використовую iTerm, а не Terminal.app, а екрани монопростіру - від Macirssi.
jtimberman

Оскільки я використовую Leopard, а не Snow Leopard, опція доступна в System Preferences -> Appearance. "Стандартний ... CRT" насправді виглядає "нормальним" для мене на екрані Macbook, хоча мені доведеться чекати, щоб перевірити зовнішній РК-екран, коли я повернусь до офісу завтра.
jtimberman

2
@jtimberman, що стосується я iTerm, а не Terminal.app, зауважте, що команда, надана Джоном, не впливає на термінал. Ви також можете використовувати iTerm для його запуску.
Ар’ян

0

Якщо ви використовуєте CRT, ви можете очікувати певних спотворень кольорів, яскравості та співвідношення сторін за час, поки CRT повністю не прогріється. Який монітор ви використовуєте?


Внутрішній macbook lcd-дисплей. Я навіть не є власником CRT більше.
jtimberman
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.