為什麼添加 breqn 包會給出!未定義的控制序列。 \開始{文檔}?

為什麼添加 breqn 包會給出!未定義的控制序列。 \開始{文檔}?

我正在學習如何在 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}

相關內容