¿Podemos hacer que funcionen las referencias en imágenes de pgfplots externalizadas?

¿Podemos hacer que funcionen las referencias en imágenes de pgfplots externalizadas?

Tengo algunos gráficos creados con TikZ y pgfplots. En los subtítulos, uso \ref{...}etiquetas de trazado para imprimir el marcador allí; una característica interesante de hecho.

Ahora, al enviar a arXiv uno tiene que saltar algunos obstáculos para poder compilar el documento con su TeX Live terriblemente obsoleto (2011 en el momento de escribir este artículo). En particular, uso la externalización de TikZ porque TikZ ha evolucionado mucho y actualizar los archivos PDF de las figuras junto con las fuentes de LaTeX evita problemas.

El problema ahora es que dichas referencias a pgfplotstramas resp. sus etiquetas no logran resolverse; Recibo (??)en lugar del marcador. No hace falta decir que el problema no ocurre localmente.

¿Es esto algo que puedo eludir (a menos que codifique el marcador allí para arXiv), o tengo que vivir con ello (es decir, codificar el marcador en lugar de usar el mecanismo de referencia)?

No doy un MWE porque no considero razonable un envío falso a arXiv.

Respuesta1

El manual actual de TikZ (3.0.0) dice lo siguiente:

[ \labelen los gráficos externalizados a los que se hace referencia en el documento principal] se realiza automáticamente mediante la biblioteca externa. En detalle, el \labelinterior de unos gráficos externalizados hace que la biblioteca externa genere archivos auxiliares separados para cada imagen externa. Estos archivos se llaman imagename.dpth. [...] Cuando el documento principal cargue la imagen, copiará el .dptharchivo al .auxarchivo principal.

Por eso, cuando envías un documento con figuras externas preparadas previamente, debes empaquetar tanto el PDF como el PDF.y dptharchivos.

Respuesta2

La autorespuesta de Raphael muestra cómo hacerlo correctamente.


Desafortunadamente, a veces tenemos que lidiar con sistemas que (por razones de seguridad cuestionables) son restrictivos en los tipos de archivos que permiten cargar (por ejemplo, el "administrador editorial" no permite nombres de archivos que terminen en .dpth) o usan una versión prehistórica de LaTeX que no tiene exteriorización de TikZ por completo.

Si te encuentras en una situación tan desafortunada, mis siguientescortar a tajospodría ahorrarle problemas.

Supongamos que tiene una imagen exteriorizada external.pdfcon acompañamiento external.dpth. Cambie el nombre external.dpthy external.texreemplace su imagen TikZ con

\includegrapics{external}
\tikzexternalhack{external}

usando la siguiente definición en su preámbulo:

\makeatletter
\newcommand\tikzexternalhack[1]{%
    \write\@auxout{\noexpand\input{#1}}%
}
\makeatother

información relacionada