LuaLaTeX 使用 Noto CJK 和 babel onchar=ids 字体时出现奇怪错误

LuaLaTeX 使用 Noto CJK 和 babel onchar=ids 字体时出现奇怪错误

我正在将一个多语言项目转换为 LuaLaTeX,但chemfig命令中出现了一个奇怪的错误:

! LaTeX Error: Command \rmfamily invalid in math mode.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...                                              
                                                  
l.13     \chemfig{\charge{135:4pt={+}}{H}-{F}}

将代码拆开后,似乎使用配置babelonchar=ids fonts拉动NotoSerifCJK-VF是问题的根源(字体文件已下载这里,即“变量 OTC -- TTF”)。我怀疑chemfig这可能不是问题的一部分,但我无法在其他地方重现它。

最小失败示例:

\documentclass{article}
% Loading chemfig before, between, or after the babel stuff does not change the error
\usepackage{chemfig}

\usepackage[main=english]{babel}
% Either of these two lines,
\babelprovide[import,onchar=ids fonts]{chinese}
\babelprovide[onchar=ids fonts]{french}
% combined with this line,  will cause the error
\babelfont[chinese]{rm}[Path=./assets/fonts/]{NotoSerifCJK-VFttf.ttc} % make sure file name has only one dot

\begin{document}
    \chemfig{\charge{135:4pt={+}}{H}-{F}}
\end{document}

答案1

这似乎是 中的一个错误babel。尝试在序言中进行以下破解:

\makeatletter
\let\bblorg@mapselect\bbl@mapselect
\def\bbl@mapselect{\ifmmode\else\bblorg@mapselect\fi}
\makeatother

但我还得进一步调查。

相关内容