
Я конвертирую многоязычный проект в 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}}
После разбора кода выяснилось, что источником проблемы является настройка babel
и onchar=ids fonts
извлечение NotoSerifCJK-VF
(файл шрифта загружаетсяздесь, «Variable 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
Но мне нужно провести более глубокое расследование.