Prefixo para referências \externaldocument em \cleveref

Prefixo para referências \externaldocument em \cleveref

A questãoCaso especial para o último elemento com \foreachalterou manualmente as referências e adicionou a capacidade de ter um prefixo nas referências. Posso fazer a mesma coisa usando \cleveref?

(Nota: Esta é uma \cleverefversão da perguntaAdicionar prefixo automaticamente às referências de outro documento?)

Abordagem 1: Tenha um \crefex, ou renomeie \cref, o que permite a adição de um prefixo. Por exemplo

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 deve gerar as referências se \crefexfor concluído.

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

Abordagem 2: Alternativamente, ele poderia detectar automaticamente se há uma referência externa e adicionar algum tipo de prefixo definido como uma variável?

Crie um arquivo chamado external_document.texcom o seguinte texto e compile-o algumas vezes.

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

Em seguida, crie outro arquivo com:

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

Isso cuspirá corretamente as referências internas e externas. Como podemos adicionar a detecção automática das referências externas que adiciona o prefixo de \externaldocumentconforme descrito acima?

informação relacionada