
私は複数のマシンで文書を書いています。そのうちの 1 台には、Ubuntu 14.04 がインストールされており、TexLive も少し古いバージョンになっています。他のマシンには、Ubuntu 14.10 と Arch Linux がインストールされています。
私の文書では、矢印.metaライブラリ。現在、私のマシンの 1 つ (14.04 のもの) でコンパイルされないドキュメントで困っています。
問題のある定義をすべて無視するように LaTeX を作成する方法はありますか。私が欲しいのは、実際の画像のソース ファイルを変更せずに、TikZ の新しい機能を有効または無効にするための何か (おそらくコメント インおよびコメント アウトする数行のコード) です。現在、arrows.meta のヒントを使用している画像は 9 枚ですが、この数は増える可能性があります。したがって、画像のソースを変更することは、適切な方法ではありません。
\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
この最終結果は、描画コードに変更を加えることなくStealth
、TikZ/PGF 3.0.0 が利用可能な場合は が使用され、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}