On Thu, Jun 24, 2021 at 09:06:59PM +0900, Akira Yokosawa wrote: > Subject: [RFC PATCH 0/3] docs: pdfdocs: Improve alignment of CJK ascii-art > > Hi all, Hi Akira, > > This is another attempt to improve translations' pdf output. > I see there is a mismatch in the font choice for CJK documents, which > causes poor-looking ascii-art where CJK characters and Latin letters > are mixed used. > > One of noticeable examples of such ascii-art can be found in > Korean translation of memory-barriers.txt. > > Hence the author of Korean translation of memory-barriers.txt is > in the CC list. > > At first, I thought the issue could be fixed by simply selecting > "Noto Sans Mono CJK SC" as both of monofont and CJKmonofont. > It fixed the mis-alignment in the Chinese translation, but failed > in the Korean translation. > > It turns out that Hangul characters in "Noto Sans Mono CJK SC" > are slightly narrower than Chinese and Japanese counterparts. > I have no idea why the so-called "mono" font has non-uniform > character widths. > > GNU Unifont is an alternative monospace font which covers > almost all Unicode codepoints. > However, due to its bitmap-font nature, the resulting document > might not be acceptable to Korean readers, I guess. OK, it works. But I still want to say that the display effect of Unifont is really not good. Unifont's lattice is too small, and only one size. http://fars.ee/QA1k.jpg http://fars.ee/GAAv.jpg Looks like computers 20 years ago, LOL :) It there any chance to use other fonts, like *Sarasa Mono* ? 等距更紗黑體 Looks more beautifull http://fars.ee/DTT6.jpg But I guess not many people installed it. > > As a compromise, Patch 2/3 enables Unifont only when it is available. > > A comparison of some of ascii-art figures before and after this change > can be found in the attached PDF. > > Patch 1/3 is a preparation of Patch 2/3. > It converts font-availability check in python to LaTeX and make the > resulting LaTeX code portable across systems with different sets of > installed fonts. > > Patch 3/3 is an independent white space fix (or a workaround of Sphinx > mis-handling of tabs behind CJK characters) in Korean translation > of memory-barriers.txt. > > Any feedback is welcome! > > Side note: > > In Korean translation's PDF, I see there is another issue of missing > white spaces between Hangul "phrase groups" in normal text. > Looks like the pair of xelatex + xeCJK just ignores white spaces > between CJK characters. Yes, xeCJK ignores spaces between CJK characters by default. > > There is a package named "xetexko", which might (or might not) be > a reasonable choice for Korean translation. > > It should be possible to use a language-specific preamble once > we figure out the way to load per-directory Sphinx configuration > and move translation docs into per-language subdirectories. > > As I am not familiar with Korean LaTeX typesetting, I must defer to > those who are well aware of such conventions. > > Thanks, Akira > -- > Akira Yokosawa (3): > docs: pdfdocs: Refactor config for CJK document > docs: pdfdocs: Add font settings for CJK ascii-art > docs: ko_KR: Use white spaces behind CJK characters in ascii-art > > Documentation/conf.py | 26 +++++++++++-------- > .../translations/ko_KR/memory-barriers.txt | 14 +++++----- > 2 files changed, 22 insertions(+), 18 deletions(-) > > -- > 2.17.1 > Thanks, Wu X.C.