Re: [PATCH v2] docs: Activate exCJK only in CJK chapters
From: Mauro Carvalho Chehab
Date: Tue May 25 2021 - 09:39:43 EST
Em Tue, 25 May 2021 21:55:53 +0900
Akira Yokosawa <akiyks@xxxxxxxxx> escreveu:
> 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
You can also add:
Reviewed-by: Mauro Carvalho Chehab <mchehab+huawei@xxxxxxxxxx>
(but see below)
>
> >
> >
> >> 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.
Well, this change seems good enough to me and it avoids the
need of adding a separate conf.py.
The only thing that concerns me is if this logic works with
all Sphinx versions. I guess it should, but there were some
changes in the past with the LaTeX output module which
broke on newer versions, as different versions of Sphinx use
different .
So, this patch needs to be tested against the minimal version recommended
for PDF output (2.4.4) and against the latest one, to be 100% sure that
it won't cause any breakages.
You can test it with something like:
$ /usr/bin/python3 -m venv sphinx_foo
$ . sphinx_foo/bin/activate
$ pip install docutils Sphinx==2.4.4 sphinx_rtd_theme
$ make pdfdocs
...
# Should install Latest version, e. g. currently, Sphinx 4.0.2
$ pip uninstall Sphinx
$ pip install docutils Sphinx sphinx_rtd_theme
$ make pdfdocs
(That's said, I didn't test version 4.0 yet... not sure if
everything would work fine, even without this change)
Regards,
Mauro
> >
> >> --- 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.
> >
Thanks,
Mauro