2021-05-21 18:37:59

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [PATCH] docs: sphinx-pre-install: Reword warning on installing cjk font

HI Akira,

Em Fri, 21 May 2021 16:14:19 +0900
Akira Yokosawa <[email protected]> escreveu:

> Installing a ckj font as recommended by the warning message causes
> generated latex code to have:
>
> % This is needed for translations
> \usepackage{xeCJK}
> \setCJKmainfont{Noto Sans CJK SC}
>
> in its preamble even for an English document.

Yes. The same LaTeX configuration is applied to all documents.

While the standard Sphinx logic allows just one conf.py, there's
a logic on Linux that allows a per-directory configuration.
Perhaps it would be possible to set the font just for translations.

Yet, this can't be easily done per-translation - Italian
translation for instance doesn't need CJK fonts.

> The package "xeCJK" changes wide characters' appearance including
> apostrophe (single quote) and double quotes, and it changes line-break
> behavior with regard to the boundary of narrow and wide characters.
>
> This greatly degrades readability of English PDFs typeset by xelatex.

Hmm... could you give an example where it looks ugly?

At least on the documents I use to check the PDF output, I was unable
to see any big issue.

Regards,
Mauro

>
> As a band-aid help, reword the message and let the user at least be
> aware of the degradation.
>
> Signed-off-by: Akira Yokosawa <[email protected]>
> ---
> Hello,
>
> I'm a newcomer to kernel-doc who started trying sphinx this week.
> I have both sphinx 2.4.4 and 1.7.9 installed.
> For pdfdocs, I use 2.4.4.
>
> "make htmldocs" was fairly easy, but I struggled a while to get
> PDFs as I expected.
>
> The culprit turned out to be the "xeCJK" package mentioned above
> in the change log. It appears in all the generated latex files
> due to the "Noto Sans CJK" font I have installed seeing the warning
> message from sphinx-pre-install.
>
> By uninstalling the font, I can now build the PDF as I expect.
>
> The reworded message is just a band-aid help.
>
> In the long term, I see that rst2pdf tool is your hope to avoid
> LaTeX altogether. But it would be nice if you can enable xeCJK only
> for the translations document. Can sphinx permit such language
> choice per subdirectory (or hopefully per .rst file)?
>
> Thanks, Akira
> --
> scripts/sphinx-pre-install | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/sphinx-pre-install b/scripts/sphinx-pre-install
> index fe92020d67e3..b3c7da2b8ad2 100755
> --- a/scripts/sphinx-pre-install
> +++ b/scripts/sphinx-pre-install
> @@ -101,7 +101,12 @@ sub check_missing(%)
> }
>
> if ($is_optional) {
> - print "Warning: better to also install \"$prog\".\n";
> + if ($prog =~ /cjk/ ) {
> + print "Warning: For translations PDF, better to install \"$prog\".\n";
> + print "However, doing so will *degrade* English PDF typesetting.\n";
> + } else {
> + print "Warning: better to also install \"$prog\".\n";
> + }
> } else {
> print "ERROR: please install \"$prog\", otherwise, build won't work.\n";
> }



Thanks,
Mauro


2021-05-21 20:12:11

by Akira Yokosawa

[permalink] [raw]
Subject: Re: [PATCH] docs: sphinx-pre-install: Reword warning on installing cjk font

Hi Mauro,

On Fri, 21 May 2021 09:54:42 +0200, Mauro Carvalho Chehab wrote:
> HI Akira,
>
> Em Fri, 21 May 2021 16:14:19 +0900
> Akira Yokosawa <[email protected]> escreveu:
>
>> Installing a ckj font as recommended by the warning message causes
>> generated latex code to have:
>>
>> % This is needed for translations
>> \usepackage{xeCJK}
>> \setCJKmainfont{Noto Sans CJK SC}
>>
>> in its preamble even for an English document.
>
> Yes. The same LaTeX configuration is applied to all documents.
>
> While the standard Sphinx logic allows just one conf.py, there's
> a logic on Linux that allows a per-directory configuration.
> Perhaps it would be possible to set the font just for translations.
>
> Yet, this can't be easily done per-translation - Italian
> translation for instance doesn't need CJK fonts.

Yes, the Italian part looks ugly with xeCJK.

>
>> The package "xeCJK" changes wide characters' appearance including
>> apostrophe (single quote) and double quotes, and it changes line-break
>> behavior with regard to the boundary of narrow and wide characters.
>>
>> This greatly degrades readability of English PDFs typeset by xelatex.
>
> Hmm... could you give an example where it looks ugly?
>
> At least on the documents I use to check the PDF output, I was unable
> to see any big issue.

Appended are screenshots from RCU.pdf built with and without xeCJK.

They are built on Ubuntu Bionic based container with sphinx 2.4.4.

I think you can see the difference of how apostrophes are rendered.
Line-break points are also affected by the widths of apostrophes.

Can you spot the difference?

BTW, on current docs-next, wich the CJK font installed, "make pdfdocs"
stops while building s390.pdf.

I needed to manually run "make latexdocs", then run
"latexmk -xelatex RCU.tex" under Documentation/output/latex/ to get
RCU.pdf.

Thanks, Akira

>
> Regards,
> Mauro
>
>>
>> As a band-aid help, reword the message and let the user at least be
>> aware of the degradation.
>>
>> Signed-off-by: Akira Yokosawa <[email protected]>
>> ---
[...]


Attachments:
RCU_AND_LOCKDEP_CHECKING-with-xeCJK.png (62.75 kB)
RCU_AND_LOCKDEP_CHECKING-no_xeCJK.png (62.21 kB)
Download all attachments