microtype と cleveref のインクルード順序は LuaLaTeX でのみ重要です

microtype と cleveref のインクルード順序は LuaLaTeX でのみ重要です

パッケージの環境\label内で使用し、インポートすると、次の MNWE のエラーが発生します。alignamsmathcleverefmicrotype

\documentclass[11pt]{scrbook}
\usepackage{amsmath}
\usepackage{cleveref}
\usepackage{microtype}

\begin{document}
\begin{align}
    \label{eq1}
    1 < 2
\end{align}
\end{document}

実行すると次のエラーが発生します:

$ lualatex test.tex
[...]
! Use of \label doesn't match its definition.
<argument>  \label {
         eq1} 1 < 2 
l.10 \end{align}

これは LuaLaTeX のみの問題のようです。pdfLaTeX と XeLaTeX の両方で正常に動作します。また、\begin{equation}align では動作しますが、align では動作しません。

答え1

試してみた結果、答えはcleverefロードする必要があるということです microtype. 例を次のように変更すると

\documentclass[11pt]{scrbook}
\usepackage{amsmath}
\usepackage{microtype}
\usepackage{cleveref}

\begin{document}
\begin{align}
    \label{eq1}
    1 < 2
\end{align}
\end{document}

正常に動作します。

編集: 問題は3つのパッケージの組み合わせにあるようです。なぜなら、異なる注文(また、cleveref含まれているもの)があるためです。前に microtype) どの作品。

  • amsmathcleverefmicrotype: するない仕事
  • amsmathmicrotypecleveref:作品
  • cleverefamsmathmicrotype:作品
  • cleverefmicrotypeamsmath:作品
  • microtypeamsmathcleveref:作品
  • microtypecleverefamsmath:作品

結論:全てしかし1 つの読み込み順序で問題なく動作し、まさにこれを使用できたのは「幸運」でした。

関連情報