quantikz、cleveref、gather 環境間の競合

quantikz、cleveref、gather 環境間の競合

私は量子回路図が必要な記事を執筆しており、その目的のために quantikz パッケージを使用したいと考えています。しかし、quantikz をロードすると一連のエラーが発生しました。問題は 2 つではなく 3 つの異なる要素にあると特定しましたが、解決方法がわかりません。

quantikz パッケージと cleveref パッケージの間には、何らかの競合があるはずです。興味深いことに、この競合は、gather-environment も使用している場合にのみエラーをスローします。

以下の最小限の例では、ドキュメント内に存在する各 gather-environment に対して、次のエラーが 1 回ずつ生成されます。

  1. タブごとに 1 つの # のみが許可されます。
  2. 配置タブ文字 & の位置が間違っています。
  3. 追加の配置タブが \cr に変更されました。
\documentclass{article}
\usepackage{quantikz}
\usepackage{cleveref}

\begin{document}
    \begin{gather}
        some~maths
    \end{gather}
\end{document}

答え1

説明

からquantikz マニュアル(セクション「トラブルシューティング」):

パッケージのロード順序: 特定のパッケージを間違った順序でロードすると、奇妙なエラーが発生する可能性があるという報告があります。たとえば、quantikz の後にパッケージ cleveref をロードし、分割環境を使用すると、「タブごとに 1 つの # のみが許可されます。」というエラーが発生する可能性があります。ロード順序を変更すると、このエラーは解消されます。なぜこのようなことが起こるのかはわかりません。

したがって、ロード順序を変更します。

\usepackage{cleveref}
\usepackage{quantikz}

は に使用されたcleveref後にロードされる必要がありますが、 によっても暗黙的に使用されるため、 の前に をロードする必要があります。amsmathgatherquantikzamsmath

\usepackage{amsmath}
\usepackage{cleveref}
\usepackage{quantikz}

注意: を使用する場合はhyperef、 の前に来る必要がありますcleveref:

\usepackage{amsmath}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{quantikz}

コード

\documentclass{article}
\usepackage{amsmath}
%\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{quantikz}

\begin{document}
    \begin{gather}
        some~maths
    \end{gather}
\end{document}

関連情報