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
YaHeican't handle usingMeiryo - Let system handle the rest characters that
Meiryocan't display too
Steps to Achieve The Goal
- Add a
REG_MULTI_SZentryConsolasinHKEY_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:
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 Fontradio button - Check
Simple Renderingcheckbox - Select any font by click the dropbox right to the
Single Font - Observe the character glyph in
Edit Buffer - Setup fontlink for
Consolasas mentioned above, log off/in to take effect - Open
Notepad.exe, openFormat > Fontsmenu to set font toConsolas - Paste test string in then observe it
Test Result
Test Result Explanation
Microsoft YaHeican't display the snowman symbolMeiryodon't have Chinese charactersSegoe UI Symbolcontains only symbolsYu Gothicis similar toMeiryobut looks differentConsolasis designed only for Latin script.Text in
Notepad.exeis displayed using 3 different fonts:我风お: Microsoft YaHei A: Consolas ☃: Segoe UI SymbolYou can tell that is surely the
Segoe UI Symbolbecause those snowman are very different in different fontsHowever, in this case, we expected
Notepad.exedisplay those characters using fonts like this:我风お: Microsoft YaHei A: Consolas ☃: Meiryo
Questions
- Why
Meiryowe set in the fontlink registry is completely ignored? - How to achieve The Goal in Windows 10?
1 Answer
Microsoft has decided to remove several fonts in Windows 10 one of them being Meriyo
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
- or just googling Meriyo download etc.