You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi there! CJK support is a massive undertaking, and it isn't something we are likely to tackle anytime soon. Sorry, I would love to wave a magic wand, but I don't want to pretend that we're going to do something that we aren't.
Reacted by Craig Hart, Ilan, yvvt0379, heartacker, Jo the fire dragon and EarOfWheat
I think what he means here is metric compatibility with CJK fonts (to allow mixing with them)?
Currently the width range does not support a narrow enough value that makes the width exactly half of text height, which is what's needed for CJK font compatibility.
Thank you for this wonderful project.
I'm commenting from Japan, and I'd like to express my support for this opinion.
While many fonts align with ratios like 1:2, 2:3, or 3:5 (below picture),
I couldn't find a combination that works well with monaspace , so I had to give up on adopting it😭
Reacted by Max Milton, SUNAOKA Norifumi, heartacker, 真理哥, smthpickboy and EarOfWheat
Thank you for this wonderful project. I'm commenting from Japan, and I'd like to express my support for this opinion. While many fonts align with ratios like 1:2, 2:3, or 3:5 (below picture), I couldn't find a combination that works well with monaspace , so I had to give up on adopting it😭
To make things worse, the exact ratio for Monaspace is 0.62 (31/50), close to the golden ratio, which is the number hardest to be approximated by a simple fraction.
Thank you for this wonderful project. I'm commenting from Japan, and I'd like to express my support for this opinion. While many fonts align with ratios like 1:2, 2:3, or 3:5 (below picture), I couldn't find a combination that works well with monaspace , so I had to give up on adopting it😭
Hi, I think I found a hack that might be able to slightly mitigate the issue. I could be wrong about any of the following details though so please correct me if I'm incorrect.
TL;DR , Use FontFreeze to “Freeze” Monaspace font with the width set to 115 (percent). The “Frozen” Monaspace font can be used in the ratio of 5:7 (7 Monaspace glyphs should occupy the same amount of horizontal space as 5 CJK glyphs)
Notice that 0.5em-wide fonts are extremely useful for CJK users, since Hanzi (Chinese ideographs) are typically 1em wide. Also, Courier is 0.6em wide, which is nearly the widest in all commonly-used monospaced fonts, and is already considered too wide occasionally, but Monaspace is 0.62em wide, EVEN WIDER THAN THAT.
I haven't never seriously looked into em before so I did just that. After some research I concluded that em is the vertical range between the the highest point among all glyphs in a font and the lowest point among all glyphs in a font. Sources:
Em can be measured by the number of the glyph space units. This number of any font can be found with FontDrop :
Choose a font file
Click on “Data” tab
The number to the right of “unitsPerEm” is the amount of glyph space units per em ; note that this number is usually between 1000 and 2048
FontDrop also shows information about each Glyphs. By clicking on the “Glyphs” tab, it list every glyphs available in that font. Clicking on a glyph shows various information about it. The piece of information of my interest for now is the number next to the word “advanceWidth”. This is the amount of glyph space units that particular glyph actually occupies horizontally. (Regardless of their visual appearance) As all glyphs of a monospace font occupies the same amount of space horizontally, they must have the same advanceWidth.
Back to the image above, I recognized the typeface Jetbrains Mono (The design of the digit 4 there gave it away) so I used Fontdrop on it. I found out that its glyph has advanceWidth of 600 and unitsPerEm of 1000. This means that the ratio shown in the image above is in the form of advanceWidth:unitsPerEm , The width of a glyph in em unit as mentioned by @zhenlige can also be calculated by dividing advanceWidth by unitsPerEm. At this point I also found that Lilex has the same glyph width as Jetbrains Mono at 0.6em
Now back to the Monaspace typeface, while the unitsPerEm value remain constant at 2000 glyph space units. The advanceWidth value can differ from the value of the width axis. As width of 100% set advanceWidth to 1240 and width of 125% set advanceWidth to 1555. I figured out that the formula for Monaspace advanceWidth is 1240+(([Width in percent]-100)*((1555-1240)/25))
Most software doesn't allow accessing axis(es) of variable fonts (or well, accessing most features of fonts) so I resort to the FontFreeze tool to try to get it to generate Frozen Monaspace font with advanceWidth value that can be approximated to a ratio that is simpler than 31:50 (Monaspace at 100% width axis). However, while the CSS standard allow floating point value for percentage value in variable font axis(es), FontFreeze only allows integers for values of variable font axis(es). This means that I need to find an integer value between 100% and 125% that generate Frozen Monaspace font with such nice ratio.
It turns out that width of 115% creates advanceWidth of 1429. Since 1429 is close to [1428+(4/7)] and [1428+(4/7)]:2000 = 5:7 thus I believe that freezing Monaspace font at 115% width can be a hack that slightly mitigate the issue.
There are a few potential problems though.
The setup of people that work frequently with CJK characters might differ from mine. This could easily invalidate above calculations.
100% width Monaspace is already considered too wide by some people. This 115% width Monaspace might look even worse for them in this regard.
Following image shows the screenshot of FontFreeze website. In the preview textbox of that screenshot, the first line contains 3 groups of characters, each groups contains exactly 7 Monaspace Argon characters. The second line contains 3 groups of characters as well, each groups contains exactly 5 CJK characters (I don't speak Chinese so I use some text found on what I think is declaration of human rights in Chinese)
Thank you very much for reading and hope you have a nice day!
Activity
idan commentedon Nov 11, 2023
Hi there! CJK support is a massive undertaking, and it isn't something we are likely to tackle anytime soon. Sorry, I would love to wave a magic wand, but I don't want to pretend that we're going to do something that we aren't.
Logo121 commentedon Nov 11, 2023
I think what he means here is metric compatibility with CJK fonts (to allow mixing with them)?
Currently the width range does not support a narrow enough value that makes the width exactly half of text height, which is what's needed for CJK font compatibility.
Related (possible duplicate): #22
rbdog commentedon Nov 15, 2023
Thank you for this wonderful project.
I'm commenting from Japan, and I'd like to express my support for this opinion.
While many fonts align with ratios like 1:2, 2:3, or 3:5 (below picture),
I couldn't find a combination that works well with monaspace , so I had to give up on adopting it😭
zhenlige commentedon Sep 27, 2025
To make things worse, the exact ratio for Monaspace is 0.62 (31/50), close to the golden ratio, which is the number hardest to be approximated by a simple fraction.
[-]ADD CJK Supported[/-][+]hi, ADD CJK Support, please & thanks[/+]jothefiredragon commentedon Apr 22, 2026
Hi, I think I found a hack that might be able to slightly mitigate the issue. I could be wrong about any of the following details though so please correct me if I'm incorrect.
TL;DR , Use FontFreeze to “Freeze” Monaspace font with the width set to 115 (percent). The “Frozen” Monaspace font can be used in the ratio of 5:7 (7 Monaspace glyphs should occupy the same amount of horizontal space as 5 CJK glyphs)
My reasoning:
I first came across this comment by @zhenlige:
#22 (comment)
I haven't never seriously looked into em before so I did just that. After some research I concluded that em is the vertical range between the the highest point among all glyphs in a font and the lowest point among all glyphs in a font. Sources:
Em can be measured by the number of the glyph space units. This number of any font can be found with FontDrop :
FontDrop also shows information about each Glyphs. By clicking on the “Glyphs” tab, it list every glyphs available in that font. Clicking on a glyph shows various information about it. The piece of information of my interest for now is the number next to the word “advanceWidth”. This is the amount of glyph space units that particular glyph actually occupies horizontally. (Regardless of their visual appearance) As all glyphs of a monospace font occupies the same amount of space horizontally, they must have the same advanceWidth.
Back to the image above, I recognized the typeface Jetbrains Mono (The design of the digit 4 there gave it away) so I used Fontdrop on it. I found out that its glyph has advanceWidth of 600 and unitsPerEm of 1000. This means that the ratio shown in the image above is in the form of advanceWidth:unitsPerEm , The width of a glyph in em unit as mentioned by @zhenlige can also be calculated by dividing advanceWidth by unitsPerEm. At this point I also found that Lilex has the same glyph width as Jetbrains Mono at 0.6em
Now back to the Monaspace typeface, while the unitsPerEm value remain constant at 2000 glyph space units. The advanceWidth value can differ from the value of the width axis. As width of 100% set advanceWidth to 1240 and width of 125% set advanceWidth to 1555. I figured out that the formula for Monaspace advanceWidth is 1240+(([Width in percent]-100)*((1555-1240)/25))
Most software doesn't allow accessing axis(es) of variable fonts (or well, accessing most features of fonts) so I resort to the FontFreeze tool to try to get it to generate Frozen Monaspace font with advanceWidth value that can be approximated to a ratio that is simpler than 31:50 (Monaspace at 100% width axis). However, while the CSS standard allow floating point value for percentage value in variable font axis(es), FontFreeze only allows integers for values of variable font axis(es). This means that I need to find an integer value between 100% and 125% that generate Frozen Monaspace font with such nice ratio.
It turns out that width of 115% creates advanceWidth of 1429. Since 1429 is close to [1428+(4/7)] and [1428+(4/7)]:2000 = 5:7 thus I believe that freezing Monaspace font at 115% width can be a hack that slightly mitigate the issue.
There are a few potential problems though.
Following image shows the screenshot of FontFreeze website. In the preview textbox of that screenshot, the first line contains 3 groups of characters, each groups contains exactly 7 Monaspace Argon characters. The second line contains 3 groups of characters as well, each groups contains exactly 5 CJK characters (I don't speak Chinese so I use some text found on what I think is declaration of human rights in Chinese)

Thank you very much for reading and hope you have a nice day!