Fontlink (FontLink / SystemLink w rejestrze) nie działa zgodnie z oczekiwaniami w Windows 10 x64

13

Czego chcę

Używam Consolasjako domyślnej czcionki mojego Notepad ++, ale chcę mieć lepszy wygląd chińskich i japońskich znaków i symboli podczas używania Consolas.

Zgodnie z artykułem MSDN mogę połączyć wiele czcionek, aby Consolaswyświetlać znaki, które same nie są obsługiwane.

Cel

  • Wyświetlaj znaki łacińskie za pomocą czcionki Consolas
  • Wyświetlaj chińskie i japońskie znaki za pomocą Microsoft YaHei
  • Wyświetl symbole, YaHeiktórych nie można obsłużyćMeiryo
  • Pozwól systemowi obsłużyć pozostałe znaki, które Meiryorównież nie mogą wyświetlić

Kroki do osiągnięcia celu

  1. Dodaj REG_MULTI_SZwpis ConsolaswHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
  2. Ustaw wartość Consolas:

    MSYH.TTC,Microsoft YaHei,128,96
    MSYH.TTC,Microsoft YaHei
    MEIRYO.TTC,Meiryo,128,85
    MEIRYO.TTC,Meiryo
    
  3. Wyloguj się z systemu Windows, a następnie zaloguj ponownie

Rzeczywisty wynik w systemie Windows 7

  1. Znaki łacińskie (0-9, az, AZ) i często używane symbole (;: „” itp.) Są wyświetlane przy użyciu Consolas
  2. Chińskie i japońskie znaki są wyświetlane za pomocą Microsoft YaHei
  3. Symbole specjalne są wyświetlane za pomocą Meiryo
  4. Inne znaki i symbole, których żadna z powyższych czcionek nie obsługuje, są wyświetlane przy użyciu domyślnych ustawień systemowych (co to jest idk)

Rzeczywisty wynik w systemie Windows 10

  1. Znaki łacińskie (0-9, az, AZ) i często używane symbole (;: „” itp.) Są wyświetlane przy użyciu Consolas
  2. Chińskie i japońskie znaki są wyświetlane za pomocą Microsoft YaHei
  3. Symbole specjalne są wyświetlane za pomocą Segoe UI Symbol
  4. Inne znaki i symbole żadna z powyższych czcionek nie jest wyświetlana przy użyciu domyślnych ustawień systemowych

Dodatkowe informacje

(Potrzebuję 10 powtórzeń, aby opublikować więcej linków i obrazu, więc proszę kliknąć link do obrazu, aby wyświetlić zrzut ekranu wyniku przypadku testowego i skopiować / wkleić tekst adresu URL, aby odwiedzić witrynę samodzielnie

Oto test mający na celu zrozumienie pokrycia znaków czcionek wspomnianych powyżej (i nie tylko)

Użyte narzędzie

  • Notatnik: %WINDIR%/Notepad.exe
  • BabelMap: http://www.babelstone.co.uk/Software/BabelMap.html
  • Ciąg testowy: 我风お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
    

Krok do przetestowania

  1. Pobierz BabelMap, otwórz go, a następnie skopiuj ciąg testowy do Edit Buffer
  2. Wybierz Single Fontprzycisk opcji
  3. Zaznacz Simple Renderingpole wyboru
  4. Wybierz dowolną czcionkę, klikając pole rozwijane bezpośrednio do Single Font
  5. Obserwuj glif postaci w Edit Buffer
  6. Skonfiguruj link do czcionki, Consolasjak wspomniano powyżej, wyloguj się / zaloguj, aby zastosować
  7. Otwórz Notepad.exe, otwórz Format > Fontsmenu, aby ustawić czcionkęConsolas
  8. Wklej łańcuch testowy, a następnie obserwuj go

Wynik testu

Porównanie wyników przypadku testowego

Wynik testu Objaśnienie

  • Microsoft YaHei nie można wyświetlić symbolu bałwana
  • Meiryo nie mają chińskich znaków
  • Segoe UI Symbol zawiera tylko symbole
  • Yu Gothicjest podobny, Meiryoale wygląda inaczej
  • Consolas jest przeznaczony tylko dla skryptu łacińskiego.
  • Tekst w Notepad.exejest wyświetlany za pomocą 3 różnych czcionek:

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

    Można to stwierdzić z pewnością Segoe UI Symboldlatego, że te bałwany są bardzo różne w różnych czcionkach

    Jednak w tym przypadku oczekiwaliśmy Notepad.exewyświetlenia tych znaków przy użyciu takich czcionek:

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

pytania

  • Dlaczego Meiryoustawiamy w rejestrze fontlink jest całkowicie ignorowany?
  • Jak osiągnąć cel w systemie Windows 10?
Byzod
źródło
1
MEIRYO.TTCBrakuje pliku w instalacji systemu Windows 10?
HackSlash
Według jednego raportu niektóre problemy z czcionkami zostały rozwiązane za pomocą KB4476976 . Czy masz to zainstalowane?
harrymc

Odpowiedzi:

1

Microsoft zdecydował się usunąć kilka czcionek w Windows 10, jedną z nich jest Meriyo

https://docs.microsoft.com/en-us/windows/deployment/windows-10-missing-fonts

Można to potwierdzić, obserwując HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ FontLink \ SystemLink

Musi być domyślnie w systemie Windows 7 i nie będzie go w systemie Windows 10

Możesz zainstalować plik Meriyo ttc na swoim komputerze, wykonując dowolny krok

Miral
źródło
Jeśli kiedykolwiek pomyślisz przed opublikowaniem, zauważysz, że jeśli czcionka nie jest zainstalowana, żaden z jej glifów nie może być wyświetlany tak, jak pokazano w test result.
Byzod