Prefijo para referencias de \externaldocument en \cleveref

Prefijo para referencias de \externaldocument en \cleveref

La preguntaCaso especial para el último elemento con \foreachCambió manualmente las referencias y agregó la capacidad de tener un prefijo en las referencias. ¿Puedo hacer lo mismo usando \cleveref?

(Nota: esta es una \cleverefversión de la pregunta¿Agregar automáticamente prefijo a referencias de otro documento?)

Enfoque 1: Tener un \crefex, o cambiar el nombre de \cref, lo que permite agregar un prefijo. Por ejemplo

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}

que debería aparecer como referencia si \crefexse completó.

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

Enfoque 2: Alternativamente, ¿podría detectar automáticamente si hay una referencia externa y agregar algún tipo de prefijo definido como una variable?

Cree un archivo llamado external_document.texcon el siguiente texto y compílelo varias veces.

\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}

Luego crea otro archivo con:

\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}

Esto escupirá correctamente tanto las referencias internas como las externas. ¿Cómo podríamos agregar la detección automática de referencias externas que agrega el prefijo \externaldocumentcomo se describe anteriormente?

información relacionada