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 pgfplots
die 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:
[
\label
in der externalisierten Grafik, auf die im Hauptdokument verwiesen wird] wird automatisch von der externen Bibliothek realisiert. Genauer gesagt\label
veranlasst ein innerhalb einer externalisierten Grafik erfolgendes Hinzufügen einer separaten Hilfsdatei für jedes externe Bild die externe Bibliothek. Diese Dateien werden aufgerufenimagename.dpth
. [...] Wenn das Hauptdokument das Bild lädt, kopiert es die.dpth
Datei in die Hauptdatei.aux
.
Wenn Sie also ein Dokument mit vorbereiteten externen Abbildungen versenden, müssen Sie sowohl PDFUnd dpth
Dateien.
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.pdf
mit dem dazugehörigen external.dpth
. Benennen Sie es external.dpth
um in external.tex
und 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