Re: [PATCH v2] docs: Activate exCJK only in CJK chapters

From: Akira Yokosawa
Date: Tue May 25 2021 - 08:56:00 EST


On Tue, 25 May 2021 20:30:12 +0800, Wu X.C. wrote:
> On Tue, May 25, 2021 at 08:17:26PM +0900, Akira Yokosawa wrote:
>> Activating xeCJK in English and Italian-translation documents
>> results in sub-optimal typesetting with wide-looking apostrophes
>> and quotation marks.
>>
>> The xeCJK package provides macros for enabling and disabling its
>> effect in the middle of a document, namely \makexeCJKactive and
>> \makexeCJKinactive.
>>
>> So the goal of this change is to activate xeCJK in the relevant
>> chapters in translations.
>>
>> To do this:
>>
>> o Define custom macros in the preamble depending on the
>> availability of the "Noto Sans CJK" font so that those
>> macros can be used regardless of the use of xeCJK package.
>>
>> o Patch \sphinxtableofcontents so that xeCJK is inactivated
>> after table of contents.
>>
>> o Embed those custom macros in each language's index.rst file
>> as a ".. raw:: latex" construct.
>>
>> Note: A CJK chapter needs \kerneldocCJKon in front of its chapter
>> heading, while a non-CJK chapter should have \kerneldocCJKoff
>> below its chapter heading.
>>
>> This is to make sure the CJK font is available to CJK chapter's
>> heading and ending page's footer.
>>
>> Signed-off-by: Akira Yokosawa <akiyks@xxxxxxxxx>
>
> Test it, worked well.
>
> Tested-by: Wu XiangCheng <bobwxc@xxxxxxxx>

Thanks!

>
> And one warning when am patch:
>
> .git/rebase-apply/patch:62: trailing whitespace.
> \kerneldocCJKoff

Oops, will fix and post v3 soon, with your Tested-by: appended

>
>
>> I think per-directory conf.py can be tried as a follow-up
>> change after this patch is applied.
>
> Agree, I think it's enough for this problem.
> If we need more complex customization, per-directory conf.py then worth.
>
>> --- a/Documentation/translations/index.rst
>> +++ b/Documentation/translations/index.rst
>> @@ -18,6 +18,10 @@ Translations
>> Disclaimer
>> ----------
>>
>> +.. raw:: latex
>> +
>> + \kerneldocCJKoff
>> +
>> Translation's purpose is to ease reading and understanding in languages other
>> than English. Its aim is to help people who do not understand English or have
>> doubts about its interpretation. Additionally, some people prefer to read
>> diff --git a/Documentation/translations/it_IT/index.rst b/Documentation/translations/it_IT/index.rst
>> index bb8fa7346939..e80a3097aa57 100644
>> --- a/Documentation/translations/it_IT/index.rst
>> +++ b/Documentation/translations/it_IT/index.rst
>> @@ -4,6 +4,10 @@
>> Traduzione italiana
>> ===================
>>
>> +.. raw:: latex
>> +
>> + \kerneldocCJKoff
>> +
>> :manutentore: Federico Vaga <federico.vaga@xxxxxxxxxx>
>>
>> .. _it_disclaimer:
>
> And for above two, maybe better to put "raw:: latex" block above the
> title, more beautiful, and CJKoff will be done before enter "Italiana"
> chapter.

These two are placed there intentionally.

As mentioned in the change log:

>> Note: A CJK chapter needs \kerneldocCJKon in front of its chapter
>> heading, while a non-CJK chapter should have \kerneldocCJKoff
>> below its chapter heading.
>>
>> This is to make sure the CJK font is available to CJK chapter's
>> heading and ending page's footer.

If they are put above chapter titles in the .rst files,
Chinese translation's final page's footer won't be rendered properly.

Thanks, Akira

>
> Thanks,
> Wu X.C.
>