使用包 tikz-cd 和使用 cd tikz 库与直接加载 tikz 之间有什么区别?
我无法在任何一个包的文档中找到答案。
答案1
没有(实际)差异。代码(不包括版权注释行)tikz-cd.sty
是:
\ProvidesPackage{tikz-cd}[2014/10/30 v0.9e Commutative diagrams with tikz]
\RequirePackage{tikz}[2013/12/13] % pgf version 3.0.0 required
\usetikzlibrary{cd}
\endinput
所以它只加载 Ti钾Z 然后这样做\usetikzlibrary{cd}
。
答案2
这只是一个迂腐的评论:能存在差异。
这是一个确实恶劣的例子。
此代码有效1:
\documentclass{article}
\usepackage{tikz-cd}
\pgfmathdeclarefunction*{axis_height}{0}{\edef\pgfmathresult{1}}
\begin{document}
Hello
\end{document}
此代码不起作用:
\documentclass{article}
\usepackage{tikz}
\pgfmathdeclarefunction*{axis_height}{0}{\edef\pgfmathresult{1}}
\usetikzlibrary{cd}
\begin{document}
Hello
\end{document}
但是,这又有效了:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{cd}
\pgfmathdeclarefunction*{axis_height}{0}{\edef\pgfmathresult{1}}
\begin{document}
Hello
\end{document}
确实,这不是一个非常有用的代码,我刚刚设计了第二个代码来崩溃。但是,它确实表明,在其他库中加载tikz
然后加载cd
库(原则上可以做一些类似的事情\pgfmathdeclarefunction*{axis_height}{0}{\edef\pgfmathresult{1}}
)或稍后加载之间存在技术差异tikz-cd
,这会强制以一定的顺序加载库。
当然,cd
即使该库不是 pgf 的一部分,它也是一个标准库,其他库的作者很可能会查看代码cd
以确保不会对其造成损害,尽管其他人可能想要用名称定义函数,这并非不可想象axis_height
。然而,如果一个人非常严格,那么他必须说,至少在原则上,加载包tikz-cd
还是cd
加载库是会有所不同的。正如我所说,这只是一个扩展的评论,但它确实表明,人们不能绝对确定没有区别。
1 “有效”表示编译代码片段时不会出现错误。你肯定应该不是axis_height
如果您确实想使用该cd
库,请覆盖该函数。
答案3
此外,在 ConTeXt 中 tikz-cd 模块不可用,您需要执行以下操作:
\usemodule[tikz]
\usetikzlibrary[cd]