linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Akira Yokosawa <akiyks@gmail.com>
To: Jonathan Corbet <corbet@lwn.net>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	"Wu X.C." <bobwxc@email.cn>, SeongJae Park <sj38.park@gmail.com>
Cc: Hu Haowen <src.res@email.cn>,
	Shinwoo Lee <shinwoo.lee.us@gmail.com>,
	linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Akira Yokosawa <akiyks@gmail.com>
Subject: [RFC PATCH v2 6/7] docs: pdfdocs: Add optional choices for Korean monospace font
Date: Mon, 19 Jul 2021 20:17:06 +0900	[thread overview]
Message-ID: <c5eccdd8-8172-6dc0-c412-4d7655bd26cc@gmail.com> (raw)
In-Reply-To: <20ff8a65-6a5c-c062-fe1a-0f5c5ddc813c@gmail.com>

Candidates of alternative choices of a *true* monospace font would
be "D2Coding", "Sarasa Mono K", or "Unifont" font.

The alignment of Korean ascii-art figures matters when the optional
conf.py under Dodumentation/translations/ is effective.
So, add conditional settings in the local config so that when one of
the candidate fonts is found, it is used instead of "Noto Sans Mono
CJK KR".

As xeCJK does not provide a macro to redefine an existing CJK font
family, define a wrapper macro "\setKRmono" and use it in the
"\kerneldocBeginKR" macro.

Also mention the nice-to-have monospace Hangul fonts in the header
comment in conf.py.

Signed-off-by: Akira Yokosawa <akiyks@gmail.com>
---
 Documentation/conf.py              |  4 +++-
 Documentation/translations/conf.py | 34 +++++++++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/Documentation/conf.py b/Documentation/conf.py
index 8a715765dada..1368c64e3993 100644
--- a/Documentation/conf.py
+++ b/Documentation/conf.py
@@ -382,6 +382,8 @@ latex_elements['preamble']  += '''
 	    \\scserif%
 	    }
 	\\newcommand{\\kerneldocEndSC}{\\endgroup}
+	\\newcommand{\\setKRmono}{% For alternative Hangul monospace font
+	    \\renewcommand{\\CJKttdefault}{KRmono}}
 	\\newcommand{\\kerneldocBeginKR}{%
 	    \\begingroup%
 	    \\xeCJKDeclareCharClass{HalfLeft}{`“,`‘}%
@@ -389,7 +391,7 @@ latex_elements['preamble']  += '''
 	    \\krserif%
 	    \\renewcommand{\\CJKrmdefault}{KRserif}%
 	    \\renewcommand{\\CJKsfdefault}{KRsans}%
-	    \\renewcommand{\\CJKttdefault}{KRmono}%
+	    \\setKRmono%
 	    \\xeCJKsetup{CJKspace = true} % For inter-phrase space
 	    }
 	\\newcommand{\\kerneldocEndKR}{\\endgroup}
diff --git a/Documentation/translations/conf.py b/Documentation/translations/conf.py
index 92cdbba74229..0e171eed1862 100644
--- a/Documentation/translations/conf.py
+++ b/Documentation/translations/conf.py
@@ -3,10 +3,42 @@
 
 # -- Additinal options for LaTeX output ----------------------------------
 # font config for ascii-art alignment
-
+#
+# Note: Ascii-art figures involving Hangul characters need optional
+#       monospace font. (Hangul in "Noto Sans Mono CJK" is slightly narrow.)
+#       If you'd like to see properly aligned ascii-art figures in Korean
+#       translations, you need to install a *true* monospace Hangul font.
+#
+#       Candidates of such a monospace font which covers Hangul:
+#   1)  D2Coding: Availabe at
+#	    https://github.com/naver/d2codingfont/releases/latest
+#   2)  Sarasa Mono K: Available at
+#	    https://github.com/be5invis/Sarasa-Gothic/releases/latest
+#   3)  Unifont: (easy to install but poor quality)
+#	    Available as distro packages, e.g.:
+#		Ubuntu/Debian: ttf-unifont
+#		Fedora: unifont-fonts
+#
 latex_elements['preamble']  += '''
     \\IfFontExistsTF{Noto Sans CJK SC}{
 	% For CJK ascii-art alignment
 	\\setmonofont{Noto Sans Mono CJK SC}[AutoFakeSlant]
+	\\IfFontExistsTF{D2Coding}{
+	  \\newCJKfontfamily[KRtruemono]\\krtruemono{D2Coding}[AutoFakeSlant]
+	  \\renewcommand{\\setKRmono}{%
+	    \\renewcommand{\\CJKttdefault}{KRtruemono}}
+	}{
+	  \\IfFontExistsTF{Sarasa Mono K}{
+	    \\newCJKfontfamily[KRtruemono]\\krtruemono{Sarasa Mono K}
+	    \\renewcommand{\\setKRmono}{%
+	      \\renewcommand{\\CJKttdefault}{KRtruemono}}
+	  }{
+	    \\IfFontExistsTF{Unifont}{
+	      \\newCJKfontfamily[KRtruemono]\\krtruemono{Unifont}[AutoFakeSlant,AutoFakeBold]
+	      \\renewcommand{\\setKRmono}{%
+		\\renewcommand{\\CJKttdefault}{KRtruemono}}
+	    }{}
+	  }
+	}
     }{}
 '''
-- 
2.17.1




  parent reply	other threads:[~2021-07-19 11:17 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-19 11:08 [RFC PATCH v2 0/7] docs: pdfdocs: Improve font choice in CJK translations Akira Yokosawa
2021-07-19 11:10 ` [RFC PATCH v2 1/7] docs: pdfdocs: Refactor config for CJK document Akira Yokosawa
2021-07-19 11:12 ` [RFC PATCH v2 2/7] docs: pdfdocs: Add CJK-language-specific font settings Akira Yokosawa
2021-07-19 11:13 ` [RFC PATCH v2 3/7] docs: pdfdocs: Use one-half spacing in CJK translations Akira Yokosawa
2021-07-19 11:14 ` [RFC PATCH v2 4/7] docs: pdfdocs: Permit AutoFakeSlant for CJK fonts Akira Yokosawa
2021-07-19 11:15 ` [RFC PATCH v2 5/7] docs: pdfdocs: Teach xeCJK the width of quotation marks Akira Yokosawa
2021-07-19 11:17 ` Akira Yokosawa [this message]
2021-07-19 11:18 ` [RFC PATCH v2 7/7] docs/ko_KR: Use white spaces behind CJK characters in ascii-art Akira Yokosawa
2021-07-25 20:41 ` [RFC PATCH v2 0/7] docs: pdfdocs: Improve font choice in CJK translations Jonathan Corbet
2021-07-26  9:15   ` Akira Yokosawa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c5eccdd8-8172-6dc0-c412-4d7655bd26cc@gmail.com \
    --to=akiyks@gmail.com \
    --cc=bobwxc@email.cn \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=shinwoo.lee.us@gmail.com \
    --cc=sj38.park@gmail.com \
    --cc=src.res@email.cn \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).