I don’t think this has as much to do with the fonts you selected as that the characters are simply of different widths. Here are some things I noticed when looking at the text in the editor:
If you place the cursor directly before the first
Y on the first line of the table, the cursor is at line 4, column 69. If you place the cursor directly before the first
Y on the third line, the cursor is at line 6, column 62. The following lines are line 7, column 70, line 8, column 69, and line 9, column 70. So even if the characters were all the exact same width, they still wouldn’t line up as the text is typed.
Here’s what it looks like on my screen when I put the Y’s at the same column:
It looks like the more Han characters there are on a line, the more the line is thrown off. I was able to find this in the repository for the Source Han Sans font:
It appears that Source Han Sans isn’t designed to be a true monospaced font. Source Han Code JP however is. You mention you’re using Source Han Code? A font by that name doesn’t seem to exist from what I can find.
Additionally, I wouldn’t necessarily expect two different fonts (you mention Source Han Code and Courier New) to align perfectly. That’s why fonts like Source Han Code JP exist, to ensure that all of the glyphs in the font are working from the same set of measurements.