
我在幾台機器上寫一個文件。其中一個安裝了 Ubuntu 14.04,並安裝了過時的 TexLive。其他有 Ubuntu 14.10 和 Arch Linux。
在我的文檔中我使用箭頭.元圖書館.現在我遇到了一個無法在我的一台機器(14.04 機器)上編譯的文件。
有沒有辦法,我可以讓乳膠忽略所有有問題的定義。我想要的是一些東西(也許是幾行程式碼來註釋和註釋)來啟用和禁用 TikZ 的新功能而不更改實際圖像的來源檔案?目前有 9 個使用 arrow.meta 提示的影像,而這個數字可能會成長。因此,改變影像的來源並不是正確的方法。
\documentclass[tikz]{standalone}
\usepackage[T1]{fontenc} % font encoding
\usepackage[utf8]{inputenc} % input encoding
\usepackage{lmodern} % fonts
\usepackage{tikz,pgfplots} % provides TikZ
\usetikzlibrary{arrows}
%\usetikzlibrary{arrows.meta}
%\newcommand{\Stealth}{\stealth} % does not work
\begin{document}
\begin{tikzpicture}
\draw[-Stealth] (0,0) to (1,1);
\end{tikzpicture}
\end{document}
答案1
最好的解決方案確實是更新 TeX 發行版。將來會省去很多麻煩,而且新arrows.meta
庫提供了很多不錯的功能。
但是,如果無法升級:下面的條件代碼將檢查pgf
已載入的版本是否為 3.0.0 或更高版本(日期為 2013/12/18 或之後)。如果是,我們加載arrows.meta
並-Stealth
可以像平常一樣使用。如果不是,則將呼叫的箭頭提示別名為庫提供的Stealth
舊提示。stealth
arrows
最終結果是,如果 TikZ/PGF 3.0.0 可用,則將使用它,但如果它們不可用,則Stealth
回退到它們,而不需要對繪圖程式碼進行任何修改。stealth
限制:此程式碼將無法成功處理使用引入的箭頭樣式修飾符或其他選項(例如 等-{Stealth[width=6pt]}
) 。arrows.meta
\documentclass[tikz]{standalone}
\usepackage[T1]{fontenc} % font encoding
\usepackage[utf8]{inputenc} % input encoding
\usepackage{lmodern} % fonts
\usepackage{tikz} % provides TikZ
\usetikzlibrary{arrows}
\makeatletter
\@ifpackagelater{pgf}{2013/12/18}{
\usetikzlibrary{arrows.meta}
}{
\pgfarrowsdeclarealias{Stealth}{Stealth}{stealth}{stealth}
}
\makeatother
\begin{document}
\begin{tikzpicture}
\draw[-Stealth] (0,0) to (1,1);
\end{tikzpicture}
\end{document}