breqn パッケージを追加すると、なぜ ! 未定義の制御シーケンスが発生します。\begin{document}?

breqn パッケージを追加すると、なぜ ! 未定義の制御シーケンスが発生します。\begin{document}?

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}

関連情報