我有一些用 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.dpth
為external.tex
TikZ 圖片並將其替換為
\includegrapics{external}
\tikzexternalhack{external}
在序言中使用以下定義:
\makeatletter
\newcommand\tikzexternalhack[1]{%
\write\@auxout{\noexpand\input{#1}}%
}
\makeatother