应如何更新此代码以使其不需要密钥compat=1.9
?
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{tikzpicture}[baseline]
\begin{axis}[
axis lines=left,
xtick=\empty,
ytick=\empty,
tiny,
ylabel=Edible Resources,
xlabel=Nutritional Need,
title=Distribution of Edibles,
title style={font=\tiny},
]
\addplot[ domain=0:10, color=blue ] {2*x};
\end{axis}
\end{tikzpicture}%
\end{document}
如果我移除compat
键,轴标签就会离轴太远。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[baseline]
\begin{axis}[
axis lines=left,
xtick=\empty,
ytick=\empty,
tiny,
ylabel=Edible Resources,
xlabel=Nutritional Need,
title=Distribution of Edibles,
title style={font=\tiny},
]
\addplot[ domain=0:10, color=blue ] {2*x};
\end{axis}
\end{tikzpicture}%
\end{document}
我尝试在pgfplots
手册中搜索“看似”的关键词,以及诸如此类的内容\empty
,但我找不到任何东西,最终放弃了。
我问这个问题的部分动机是,我通常不清楚 的键状态compat
是什么pgfplots
。在大多数情况下,我认为compat
键是临时的快速修复,以使现有代码正常工作。但是,我不确定这是否正确,pgfplots
或者我是否不应该问这个问题。
也就是说,与其他软件包不同,在pgfplots
的情况下保持向后兼容性似乎包括提供compat
密钥。那么,难道我们根本就不期望相同的代码会产生相同的结果吗?compat
在使用时始终指定一个密钥pgfplots
,而不是更改它,这真的是最佳实践吗?如果是这样,当我想在新文档中使用来自不同文档的图,而以前的文档使用不同的值时,应该如何处理这种情况compat
?我可以在文档中间继续切换吗?这样做明智吗?
答案1
创建新图时,应使用尽可能高的兼容性设置,以便能够使用所有新功能和最新代码。目前这是
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
当将图从兼容性较低的旧文档移动到新文档时,请将较低的兼容性级别作为“注意可能会出现问题!”的指示。
因此,使用更高级别测试绘图,并与旧输出进行比较。如果新输出没问题(在很多情况下都是这样),则无需执行任何操作。如果输出有误,您可以调整绘图代码,或者在本地更改兼容级别:
\begin{figure}
\pgfplotsset{compat=1.4}
...
\caption{...}
\end{figure}
文档(2.2.2 可能需要注意的旧功能 ff)提到了一些其他键,您可以使用它们将旧图适配到较新的 pgfplots 版本。
答案2
\pgfplotsset{compat=...}
简单地说,不要删除\pgfplotsset{compat=newest}
。
然而,禁忌症。如果未来的兼容性对您来说是个问题,只需将\pgfplotsset{compat=1.14}
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}[baseline]
\begin{axis}[
axis lines=left,
xtick=\empty,
ytick=\empty,
tiny,
ylabel=Edible Resources,
xlabel=Nutritional Need,
title=Distribution of Edibles,
title style={font=\tiny},
]
\addplot[ domain=0:10, color=blue ] {2*x};
\end{axis}
\end{tikzpicture}%
\end{document}
答案3
在我看来,该compat
机制是 pgfplots 包的更好功能之一。它允许作者添加、更改或更正行为,而不会破坏旧文档,这些文档将继续正常工作。
例如,我的文档中有很多 1.11 之前的图表。即使在 1.11 中(很好!)切换到axis cs
默认坐标系,它们现在也能完美运行。在新文档中,我真的很喜欢新的默认设置,但更改所有旧文档会很麻烦……两全其美。
作为反例,我被论证顺序的改变困扰了atn2
好几次......
所以我认为你的问题恰恰相反。如果你在 1.3 之前准备了文档,你可能注意到了这个问题,手动移动标签。如果没有compat
,或者compact
版本低于 1.3,文档仍将正确编译。如果没有 compat 功能,作者会修复该错误,现在您必须重新编辑文档以修复过度转换。
当您准备新图表时,您应该使用当前 pgfplots 版本的兼容级别。这样,它以后将保持不变。如果有人尝试使用太旧的 pgfplots 版本进行编译,则会发出警告。