threeparttable と cleveref を使用したラベル タイプが正しくありません

threeparttable と cleveref を使用したラベル タイプが正しくありません

私は問題を抱えています3つの部分から成るテーブルパッケージラベルの種類により、賢いレフテーブルを正しく参照できません。Overleaf でコンパイルすると、次の警告が生成されます: 「入力行 8 でラベル タイプ `' の cref 参照形式が未定義です。」

このテーブルのラベル タイプを修正する方法はありますか? または、cleveref が正しく参照できるようにする別の回避策はありますか?

MWEは以下の通りです:

\documentclass{article}

\usepackage{threeparttable}
\usepackage{cleveref}

\begin{document}
    
    Cleveref reference to threeparttable \cref{tab:test}.
    
    \begin{table}
        \centering
        \begin{threeparttable}
            \caption{Caption.}
            \begin{tabular}{l l}
                Header 1 & Header 2 \\
                \hline
                Entry 3 & Entry 4 \\
                \hline
            \end{tabular}
        \end{threeparttable}
        \label{tab:test}
    \end{table}
    
\end{document}

答え1

これは、特にcleverefまたはのどちらかによるものではありません。 を環境内に配置したため、環境外への影響を「見る」ことができないために発生します。の後で、環境内へ移動する必要があります。threeparttable\captionthreeparttable\label\label\caption

\documentclass{article}

\usepackage{threeparttable}
\usepackage{cleveref}

\begin{document}

Cleveref reference to threeparttable \cref{tab:test}.

\begin{table}
  \centering
  \begin{threeparttable}
  \caption{Caption.}
  \label{tab:test}
    \begin{tabular}{l l}
      Header 1 & Header 2 \\
      \hline
      Entry 3 & Entry 4 \\
      \hline
    \end{tabular}
  \end{threeparttable}
\end{table}

\end{document}

ここに画像の説明を入力してください

答え2

パッケージtalltblrで定義されたテーブル環境を使用する場合も同様です。これは以下と同等です:tabularraythreeparttable

\documentclass{article}
\usepackage{tabularray}
\usepackage{cleveref}

\begin{document}

Cleveref reference to \verb+talltblt+ table is \cref{tab:test}.

\begin{table}
    \centering
    \begin{talltblr}[
caption = {Caption.},
  label = {tab:test} % <---
                    ]{cells=l}
Header 1 & Header 2 \\
      \hline
Entry 3 & Entry 4\TblrNote{a}   \\
      \hline
    \end{talltblr}
\end{table}

\end{document}

ここに画像の説明を入力してください

関連情報