9

Что я хочу

Я использую Consolas в качестве шрифта по умолчанию для моего Notepad++, но я хочу лучше отображать китайские и японские символы и символы при использовании Consolas .

Согласно статье MSDN, я могу связать несколько шрифтов с Consolas чтобы он мог отображать символы, которые он не поддерживает самостоятельно.

Цель

  • Отображение латинских символов с использованием шрифта Consolas
  • Отображение китайских и японских символов с помощью Microsoft YaHei
  • Отображать символы, которые YaHei не может обработать с помощью Meiryo
  • Пусть система обрабатывает остальные символы, которые Meiryo не может отображать тоже

Шаги для достижения цели

  1. Добавьте запись REG_MULTI_SZ Consolas в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
  2. Установите значение Consolas:

    MSYH.TTC,Microsoft YaHei,128,96
    MSYH.TTC,Microsoft YaHei
    MEIRYO.TTC,Meiryo,128,85
    MEIRYO.TTC,Meiryo
    
  3. Выйдите из Windows, затем войдите снова

Фактический результат в Windows 7

  1. Латинские символы (0-9, az, AZ) и часто используемые символы (;:'"и т.д.) Отображаются с помощью Consolas
  2. Китайские и японские символы отображаются с помощью Microsoft YaHei
  3. Специальные символы отображаются с помощью Meiryo
  4. Другие символы и символы, которые не поддерживаются ни одним из вышеперечисленных шрифтов, отображаются с использованием системных значений по умолчанию (idk what that is)

Фактический результат в Windows 10

  1. Латинские символы (0-9, az, AZ) и часто используемые символы (;:'"и т.д.) Отображаются с помощью Consolas
  2. Китайские и японские символы отображаются с помощью Microsoft YaHei
  3. Специальные символы отображаются с помощью Segoe UI Symbol
  4. Другие символы и символы, которые не поддерживаются ни одним из вышеперечисленных шрифтов, отображаются с использованием системных значений по умолчанию

Дополнительная информация

(Мне нужно 10 повторений, чтобы опубликовать больше ссылок и изображений, поэтому, пожалуйста, нажмите на ссылку на изображение, чтобы просмотреть скриншот с результатами теста и скопировать / вставить текст URL, чтобы самостоятельно посетить сайт)

Вот тест, пытающийся понять охват символов шрифтов, упомянутых выше (и больше)

Инструмент используется

  • Блокнот: %WINDIR%/Notepad.exe
  • BabelMap: http://www.babelstone.co.uk/Software/BabelMap.html
  • Тестовая строка: 我风おA☃

    我(\u6211): A character available in both Chinese and Japanese
    风(\u98ce): A Chinese only character
    お(\u304a): A Japanese only character
    A(\u0041): A Latin character
    ☃(\u2603): A unicode symbol
    

Шаг к тесту

  1. Загрузите BabelMap, откройте его, затем скопируйте тестовую строку в Edit Buffer
  2. Переключатель выбора Single Font
  3. Установите флажок Simple Rendering
  4. Выберите любой шрифт, нажав в раскрывающемся списке справа от Single Font
  5. Наблюдайте за глифом персонажа в Edit Buffer
  6. Настройте ссылку на шрифт для Consolas как упомянуто выше, выйдите / войдите, чтобы вступить в силу
  7. Откройте Notepad.exe , откройте меню « Format > Fonts чтобы установить шрифт Consolas
  8. Вставьте тестовую строку в затем наблюдайте ее

Результат испытаний

Сравнение результатов теста

Объяснение результатов теста

  • Microsoft YaHei не может отобразить символ снеговика
  • Meiryo нет китайских иероглифов
  • Segoe UI Symbol содержит только символы
  • Yu Gothic похож на Meiryo но выглядит иначе
  • Consolas предназначен только для латинского алфавита.
  • Текст в Notepad.exe отображается с использованием 3 разных шрифтов:

      我风お: Microsoft YaHei
      A: Consolas
      ☃: Segoe UI Symbol
    

    Вы можете сказать, что это, несомненно, Segoe UI Symbol потому что эти снеговики очень разные в разных шрифтах

    Однако в этом случае мы ожидали, что Notepad.exe отобразит эти символы с помощью таких шрифтов:

      我风お: Microsoft YaHei
      A: Consolas
      ☃: Meiryo
    

Вопросы

  • Почему Meiryo установленный нами в реестре fontlink, полностью игнорируется?
  • Как достичь цели в Windows 10?

0