Können wir Referenzen in externalisierte pgfplots-Bilder zum Laufen bringen?

Können wir Referenzen in externalisierte pgfplots-Bilder zum Laufen bringen?

Ich habe einige Diagramme mit TikZ und erstellt pgfplots. In den Bildunterschriften verwende ich \ref{...}Diagrammbeschriftungen, um die Markierung dort auszudrucken; wirklich eine nette Funktion.

Wenn man jetzt etwas bei arXiv einreicht, muss man einige Hürden überwinden, um das Dokument mit dem schrecklich veralteten TeX Live (zum Zeitpunkt des Schreibens dieses Artikels 2011) kompilieren zu können. Insbesondere verwende ich die TikZ-Externalisierung, da sich TikZ stark weiterentwickelt hat und das Hochladen der Abbildungs-PDFs zusammen mit den LaTeX-Quellen Probleme gut umgeht.

Das Problem besteht nun darin, dass die besagten Verweise auf pgfplotsdie Parzellen bzw. ihre Beschriftungen nicht aufgelöst werden können; ich erhalte (??)stattdessen den Marker. Natürlich tritt das Problem nicht lokal auf.

Kann ich dies umgehen (ohne den Marker dort für arXiv fest zu codieren) oder muss ich damit leben (d. h. den Marker fest codieren, anstatt den Referenzmechanismus zu verwenden)?

Ich vergebe kein MWE, da ich eine gefälschte Einreichung bei arXiv nicht für sinnvoll halte.

Antwort1

Im aktuellen (3.0.0) TikZ-Handbuch heißt es:

[ \labelin der externalisierten Grafik, auf die im Hauptdokument verwiesen wird] wird automatisch von der externen Bibliothek realisiert. Genauer gesagt \labelveranlasst ein innerhalb einer externalisierten Grafik erfolgendes Hinzufügen einer separaten Hilfsdatei für jedes externe Bild die externe Bibliothek. Diese Dateien werden aufgerufen imagename.dpth. [...] Wenn das Hauptdokument das Bild lädt, kopiert es die .dpthDatei in die Hauptdatei .aux.

Wenn Sie also ein Dokument mit vorbereiteten externen Abbildungen versenden, müssen Sie sowohl PDFUnd dpthDateien.

Antwort2

Wie das richtig geht, zeigt Raphaels Selbstantwort.


Leider müssen wir uns manchmal mit Systemen auseinandersetzen, die (aus fragwürdigen Sicherheitsgründen) hinsichtlich der Dateitypen, die sie hochladen dürfen, restriktiv sind (z. B. erlaubt der „Editorial Manager“ keine Dateinamen, die auf .dpth enden) oder eine prähistorische LaTeX-Version verwenden, die überhaupt nicht über eine TikZ-Externalisierung verfügt.

Wenn Sie sich in einer solchen unglücklichen Situation befinden, meine folgendenhackenkönnte Ihnen Ärger ersparen.

Angenommen, Sie haben ein Bild ausgelagert external.pdfmit dem dazugehörigen external.dpth. Benennen Sie es external.dpthum in external.texund ersetzen Sie Ihr TikZ-Bild durch

\includegrapics{external}
\tikzexternalhack{external}

Verwenden Sie in Ihrer Präable die folgende Definition:

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

verwandte Informationen