Fontlink (FontLink/SystemLink in registry) Is Not Working As Expected In Window 10 x64
What I Want
I use Consolas
as the default font of my Notepad++, but I want better appearance of Chinese and Japanese characters and symbols when using Consolas
.
According to The MSDN article, I can link multiple fonts to Consolas
so it can display characters that it doesn't support on its own.
The Goal
- Display Latin characters using font
Consolas
- Display Chinese and Japanese characters using
Microsoft YaHei
- Display symbols that
YaHei
can't handle usingMeiryo
- Let system handle the rest characters that
Meiryo
can't display too
Steps to Achieve The Goal
- Add a
REG_MULTI_SZ
entryConsolas
inHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
-
Set the value of
Consolas
:MSYH.TTC,Microsoft YaHei,128,96 MSYH.TTC,Microsoft YaHei MEIRYO.TTC,Meiryo,128,85 MEIRYO.TTC,Meiryo
- Log off Windows, then log in again
Actual Result in Windows 7
- Latin characters (0-9,a-z,A-Z) and frequently used symbols (;:'", etc) are displayed using
Consolas
- Chinese and Japanese characters are displayed using
Microsoft YaHei
- Special symbols are displayed using
Meiryo
- Other characters and symbols none of fonts above supports are displayed using system defaults (idk what that is)
Actual Result in Windows 10
- Latin characters (0-9,a-z,A-Z) and frequently used symbols (;:'", etc) are displayed using
Consolas
- Chinese and Japanese characters are displayed using
Microsoft YaHei
- Special symbols are displayed using
Segoe UI Symbol
- Other characters and symbols none of fonts above supports are displayed using system defaults
Additional Info
(I need 10 rep to post more links and image, so please click the image link to view the test case result screenshot and copy/paste the url text to visit the site yourself)
Here is a test trying to understand the character coverage of fonts mentioned above (and more)
Tool used
- Notepad:
%WINDIR%/Notepad.exe
- BabelMap:
http://www.babelstone.co.uk/Software/BabelMap.html
-
Test string:
我风お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
Step to Test
- Download BabelMap, open it, then copy the test string into
Edit Buffer
- Select
Single Font
radio button - Check
Simple Rendering
checkbox - Select any font by click the dropbox right to the
Single Font
- Observe the character glyph in
Edit Buffer
- Setup fontlink for
Consolas
as mentioned above, log off/in to take effect - Open
Notepad.exe
, openFormat > Fonts
menu to set font toConsolas
- Paste test string in then observe it
Test Result
Test Result Explanation
-
Microsoft YaHei
can't display the snowman symbol -
Meiryo
don't have Chinese characters -
Segoe UI Symbol
contains only symbols -
Yu Gothic
is similar toMeiryo
but looks different -
Consolas
is designed only for Latin script. -
Text in
Notepad.exe
is displayed using 3 different fonts:我风お: Microsoft YaHei A: Consolas ☃: Segoe UI Symbol
You can tell that is surely the
Segoe UI Symbol
because those snowman are very different in different fontsHowever, in this case, we expected
Notepad.exe
display those characters using fonts like this:我风お: Microsoft YaHei A: Consolas ☃: Meiryo
Questions
- Why
Meiryo
we set in the fontlink registry is completely ignored? - How to achieve The Goal in Windows 10?
Microsoft has decided to remove several fonts in Windows 10 one of them being Meriyo
https://docs.microsoft.com/en-us/windows/deployment/windows-10-missing-fonts
This can be confirmed by observing HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
It must be there in Windows 7 by default and won't be there in Windows 10
You can install Meriyo ttc file on your machine by either of any steps
- https://answers.microsoft.com/en-us/windows/forum/all/how-to-get-meiryo-ui-font-in-windows-10/25930001-0585-4892-b58e-cb668e58da5f
- https://docs.microsoft.com/en-us/typography/font-list/meiryo
- or just googling Meriyo download etc.