我遇到了一个无法修复的错误(日志中没有警告/错误)。
以下是一个 mwe:
\documentclass{article}
\usepackage[english,french]{babel}
\usepackage{breqn}
\begin{document}
\[\{A, B, C\}\]
\selectlanguage{french}
\[\{A, B, C\}\]
\selectlanguage{english}
\[\{A, B, C\}\]
\end{document}
我使用以下命令进行编译:
$ latexmk -lualatex bug.tex
输出如下,逗号映射到符号\Gamma
!?
有人知道如何解决这个问题吗?
$ lualatex --version
This is LuaTeX, Version 1.07.0 (TeX Live 2018)
$ latexmk --version
Latexmk, John Collins, 17 Jan. 2018. Version 4.55
答案1
该babel-french
模块\std@math@comma
在进入和退出法语语言区块时执行此操作。
这会将逗号的数学代码重置为标准,但breqn
希望数学代码保持不变"8000
。
简单地\std@math@comma
什么也不做。
\documentclass{article}
\usepackage[english,french]{babel}
\usepackage{breqn}
\makeatletter
\let\std@math@comma\relax
\makeatother
\begin{document}
\[\{A, B, C\}\]
\selectlanguage{french}
\[\{A, B, C\}\]
\selectlanguage{english}
\[\{A, B, C\}\]
\end{document}
您应该意识到它breqn
与几个包并不真正兼容,最好不要在严肃的排版任务中使用。
答案2
用来lualatex
\documentclass{article}
\usepackage[english,french]{babel}
\usepackage{breqn}
\usepackage{unicode-math}
...