nbconvert 生成的标签在使用 babel 时会失败,在没有 babel 或使用较大边距的情况下也可以工作

nbconvert 生成的标签在使用 babel 时会失败,在没有 babel 或使用较大边距的情况下也可以工作

我正在使用ipython nbconvert(使用pandoc)来转换 IPython 笔记本,文档代码包含以下几行

   \subsection{Vytvářeni polí
čísel}\label{vytvuxe1ux159eni-poluxed-ux10duxedsel}

它可以正确编译,但是当我添加

\usepackage[czech]{babel}

我收到以下错误

[8] (./Python_NumPy.aux
! Missing \endcsname inserted.
<to be read again> 
                   \unhbox 
l.33 ...vářeni polí čísel}{subsection.3.1}{}}

?

整个冒犯的路线Python_NumPy.aux似乎是

\newlabel{vytvuxe1ux159eni\unhbox \voidb@x \kern \z@ \char `\discretionary {-}{}{}poluxed\unhbox \voidb@x \kern \z@ \char `\discretionary {-}{}{}ux10duxedsel}{{3.1}{2}{Vytvářeni polí čísel}{subsection.3.1}{}}

奇怪的是,当我通过包将边距更改geometry为某个较大的值时,错误就消失了。

我怀疑该babel包出于某种原因将标签中的连字符视为连字符模式(这可能是边距产生这种效果的原因)。我不确定如何进一步调试它。

答案1

我通过使用相应的babel包选项禁用简写来解决这个问题

\usepackage[czech,shorthands=off]{babel}

我也尝试禁用字符-(因为它在标签中)

\shorthandoff*{-}

但那没有用。

相关内容