![为什么添加 breqn 包会出现 ! 未定义的控制序列。\begin{document}?](https://linux22.com/image/472296/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%B7%BB%E5%8A%A0%20breqn%20%E5%8C%85%E4%BC%9A%E5%87%BA%E7%8E%B0%20!%20%E6%9C%AA%E5%AE%9A%E4%B9%89%E7%9A%84%E6%8E%A7%E5%88%B6%E5%BA%8F%E5%88%97%E3%80%82%5Cbegin%7Bdocument%7D%3F.png)
我正在学习如何在 Linux 上使用 TeXLive 2023 手动加载字体。
经过一番努力,我终于让这个 MWE 工作了。这会加载我在 下找到的一些随机字体,/usr/local/texlive/2023/texmf-dist/fonts
只是为了学习如何加载它们。我使用命令\setmainfont
和\setmathfont
。
\documentclass[12pt]{book}
\usepackage{amsmath}
\usepackage{fontspec,unicode-math}
\setmainfont[
Path = /usr/local/texlive/2023/texmf-dist/fonts/opentype/public/qualitype/,
Extension = .otf,
Ligatures = TeX
]{QTSchoolCentury}
\setmathfont[
Path = /usr/local/texlive/2023/texmf-dist/fonts/opentype/public/asana-math/,
Extension = .otf,
Ligatures = TeX
]{Asana-Math}
%\usepackage{breqn}
\begin{document}
test
\[
\sin x = \int_{0}^{\infty} \cos x
\]
\end{document}
我使用 lualatex 编译上述内容并且没有出现任何错误。
>lualatex A.tex
This is LuaHBTeX, Version 1.16.0 (TeX Live 2023)
restricted system commands enabled.
(./A.tex
.....
它编译并给出
现在我取消注释\usepackage{breqn}
,现在相同的 lualatex 命令给出
/usr/local/texlive/2023/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
) (/usr/local/texlive/2023/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
(/usr/local/texlive/2023/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg))
! Undefined control sequence.
<recently read> \
l.25 \[
?
我做错了什么?再说一遍,上面只是我学习如何加载字体以了解它是如何完成的。为什么添加breqn
会出现错误?我甚至还没有使用过这个包。
有解决方法吗?
我正在使用这个答案如何使用 LuaLaTeX 正确安装和使用新字体? 作为参考。
Linux 上的 TL 2023
答案1
您可以将示例简化为
\documentclass[12pt]{book}
\usepackage{unicode-math}
\usepackage{breqn}
\errorcontextlines=2000
\begin{document}
test
\end{document}
您可以看到设置数学支柱失败,一个简单的修复方法是保留原始设置功能,但其他一些东西可能会中断,breqn 在编写时并没有考虑 Unicode。
\documentclass[12pt]{book}
\makeatletter
\usepackage{unicode-math}
\let\foo\resetMathstrut@
\usepackage{breqn}
\let\resetMathstrut@\foo
\makeatother
\errorcontextlines=2000
\begin{document}
test
\end{document}