我們可以取得外部化 pgfplots 圖像的引用來運作嗎?

我們可以取得外部化 pgfplots 圖像的引用來運作嗎?

我有一些用 TikZ 和 創建的圖pgfplots。在標題中,我\ref{...}與繪圖標籤一起使用,以便將標記列印在那裡;確實是一個簡潔的功能。

現在,當提交到 arXiv 時,人們必須跳過一些步驟才能使文件使用過時的 TeX Live(在撰寫本文時為 2011 年)進行編譯。特別是,我使用 TikZ 外部化,因為 TikZ 已經發展了很多,並且將圖形 PDF 與 LaTeX 來源一起更新可以很好地規避問題。

現在的問題是上述對pgfplots情節的引用。他們的標籤無法解決;我得到的(??)不是標記。不用說,這個問題不會發生在本地。

這是我可以規避的事情(不需要對 arXiv 的標記進行硬編碼),還是我必須忍受它(即對標記進行硬編碼而不是使用參考機制)?

我不給出 MWE,因為我認為向 arXiv 提交虛假內容不合理。

答案1

目前(3.0.0)TikZ 手冊是這樣說的:

[\label在主文檔中引用的外化圖形中]是由外部庫自動實現的。具體來說,\label外部化圖形的內部導致外部庫為每個外部圖像產生單獨的輔助檔案。這些文件稱為imagename.dpth. [...] 當主文檔載入映像時,它會將檔案複製.dpth到主.aux檔案中。

因此,當您傳送預先準備好外部圖形的文件時,您必須打包 PDF dpth文件。

答案2

拉斐爾的自我回答顯示瞭如何正確地做到這一點。


不幸的是,我們有時不得不處理那些(出於可疑的安全原因)允許上傳的文件類型受到限制的系統(例如“編輯管理器”不允許以 .dpth 結尾的文件名)或使用史前的 LaTeX 版本完全沒有TikZ 外部化。

如果你碰巧遇到這樣不幸的情況,我的追隨者駭客可能會省去你的麻煩。

假設您有一張外部化的圖片external.pdf並附帶external.dpth.重新命名external.dpthexternal.texTikZ 圖片並將其替換為

\includegrapics{external}
\tikzexternalhack{external}

在序言中使用以下定義:

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

相關內容