\cleveref 内の \externaldocument 参照のプレフィックス

\cleveref 内の \externaldocument 参照のプレフィックス

質問\foreach の最後の要素の特別なケース参照を手動で変更し、参照にプレフィックスを付ける機能を追加しました。 を使用して同じことを行うことができますか\cleveref?

(注:これは\cleveref質問のバージョンです別のドキュメントからの参照にプレフィックスを自動的に追加しますか?

アプローチ1:\crefex、または の名前変更により、接頭辞を追加できるように なり\crefます。例:

documentclass{article}
\usepackage{cleveref, xr}
\crefname{equation}{}{}
\crefname{figure}{figure}{Figure}
\newcommand{\crefex}[2][]  { %
\cref{#2} %But modify to add #1 as a prefix...
}
\begin{document}
    \section{sec1}\label{sec:sec1}
    \begin{equation}    1 = 1 \label{eq:eq1}    \end{equation}
    \begin{figure}\caption{fig1}\label{fig:fig1}\end{figure}
\crefex[TA.]{sec:sec1}, \crefex[TA.]{eq:eq1}, \crefex[TA.]{fig:fig1}
\end{document}

完了した場合は参照として出力されるはずです\crefex

section TA.1, (TA.1), figure TA.1

アプローチ2: あるいは、外部参照があるかどうかを自動検出し、変数として定義された何らかのプレフィックスを追加することもできますか?

次のテキストを含むファイルを作成しexternal_document.tex、数回コンパイルします。

\documentclass{article}
\usepackage{cleveref}
\crefname{equation}{}{}
\crefname{figure}{figure}{Figure}
\begin{document}
    \section{sec1}\label{sec:sec1}
    \begin{equation}    1 = 1 \label{eq:eq1}    \end{equation}
    \begin{figure}\caption{fig1}\label{fig:fig1}\end{figure}
    \cref{sec:sec1}, \cref{eq:eq1}, \cref{fig:fig1}
\end{document}

次に、次のファイルを作成します。

\documentclass{article}
\usepackage{cleveref, xr}
\crefname{equation}{}{}
\crefname{figure}{figure}{Figure}
\externaldocument[EX.]{external_document}
\begin{document}
    \section{sec1}\label{sec:sec1}
    \begin{equation}    1 = 1 \label{eq:eq1}    \end{equation}
    \begin{figure}\caption{fig1}\label{fig:fig1}\end{figure}
    \cref{sec:sec1}, \cref{eq:eq1}, \cref{fig:fig1}
    \subsection{External References}
    \cref{EX.sec:sec1}, \cref{EX.eq:eq1}, \cref{EX.fig:fig1}
\end{document}

\externaldocumentこれにより、内部参照と外部参照の両方が正しく出力されます。上記のようにプレフィックスを追加する外部参照の自動検出を追加するにはどうすればよいでしょうか。

関連情報