不同乳胶版本的sphinx doc

时间:2018-05-24 06:03:14

标签: latex python-sphinx

最近,我发现了不同版本的tex的一些问题。在我们公司,有些人正在使用texlive2018,有些人正在使用texlive2017。在我们的conf.py中,我放了

latex_elements = {
    'preamble': '''\usepackage{chngcntr}
                 \counterwithin{figure}{chapter}
                 \counterwithin{table}{chapter}''',
}

它在texlive2017中运行正常但在texlive2018中有redefined error。如果我删除\usepackage{chngcntr},则texlive2018可以使用,但texlive2017会有undefined error。当然,它是由较新版本的texlive的一些变化引发的。但我想知道是否有一种方法可以在texlive版本上运行。

1 个答案:

答案 0 :(得分:1)

事实上,chngcntr的宏已经使用TeXLive2018转移到LaTeX格式。

新版本的chngcntr包以

开头
% version 1.1 this package has been adoped into the format so does not 
% need to do anything in current latex releases.

\@ifundefined{counterwithout}{}{%
\PackageInfo{chngcntr}{\string\counterwithout\space already defined.\MessageBreak
Quitting chngcntr}%
\endinput
}

因此,如果您的TeXLive2018具有chngctr包的v1.1a 2018/04/09版本,则应该找到所有内容。请检查。这是你看到的信息吗?这不是错误。

否则你总能这样做(小心r否则加倍反斜杠)

latex_elements = {
    'preamble': r'''\ifdefined\counterwithout\else\usepackage{chngcntr}\fi
                 \counterwithin{figure}{chapter}
                 \counterwithin{table}{chapter}''',
}

顺便说一下,有一个与LaTeX格式相关的issue,但它已经修复了。