![问题是捷克语 babel 将“-”变成了一个主动字符(不管它是什么意思)](https://linux22.com/image/428837/%E9%97%AE%E9%A2%98%E6%98%AF%E6%8D%B7%E5%85%8B%E8%AF%AD%20babel%20%E5%B0%86%E2%80%9C-%E2%80%9D%E5%8F%98%E6%88%90%E4%BA%86%E4%B8%80%E4%B8%AA%E4%B8%BB%E5%8A%A8%E5%AD%97%E7%AC%A6%EF%BC%88%E4%B8%8D%E7%AE%A1%E5%AE%83%E6%98%AF%E4%BB%80%E4%B9%88%E6%84%8F%E6%80%9D%EF%BC%89.png)
我用捷克语写报告,所以自然而然地,我使用捷克语 babel 包。问题是捷克语 babel 将“-”变成了活动字符。我发现使用这些库时会出现问题
我正在使用 StackExchange 答案中提供的解决方案:
\preto\tabular{\shorthandoff{-}}
\preto\siunitx{\shorthandoff{-}}
这使得“-“在所使用的软件包中,字符不活跃。我使用了很多库,要找出哪个库受到影响是件很费劲的事。
我的问题是,是否有办法告诉巴别图书馆-> 不要在外部环境中切换“-”字符的含义。我使用 utf 字体进行翻译路拉泰克斯。也许可以使用 Lua 语言来完成这项任务。但我真的不懂。这也有助于我解释发生了什么。我试图弄清楚,但我的想法仍然很模糊。
梅威瑟:
\documentclass[10pt]{scrbook}
\usepackage[main=czech]{babel}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{etoolbox}
\preto\tabular{\shorthandoff{-}}
\preto\siunitx{\shorthandoff{-}}
\usepackage{unicode-math}
\usepackage{polynom}
\begin{document}
Number with siunitx \num{1e-9}
\begin{equation*}
\polylongdiv[style=C,div=:]{x^4+3x^3-3x^2+3x}{x^2+1}
\end{equation*}
\begin{tabular}{ccc}
A & B & C \\
\cmidrule{2-3}
A & B & C \\
\cline{1-2}
A & B & C \\
\end{tabular}
\end{document}
答案1
如果您不使用-
简写,只需将其关闭,无需单独修补每个命令。
\documentclass[10pt]{scrbook}
\usepackage[main=czech]{babel}
\usepackage{booktabs}
\usepackage{siunitx}
\usepackage{unicode-math}
\usepackage{polynom}
\begin{document}
\shorthandoff{-}
Number with siunitx \num{1e-9}
\begin{equation*}
\polylongdiv[style=C,div=:]{x^4+3x^3-3x^2+3x}{x^2+1}
\end{equation*}
\begin{tabular}{ccc}
A & B & C \\
\cmidrule{2-3}
A & B & C \\
\cline{1-2}
A & B & C \\
\end{tabular}
\end{document}