在学习如何使用时,tikz
我见过许多使用以 开头的命令的指南和示例pgfmath
,它们交替使用这两个包名,所以我认为它们指的是同一件事。由于\usepackage{tikz}
使用pgfmath
命令就足够了,我不需要\usepackage{pgf}
这个,这进一步加强了我的信念。
然而最近我看到一些评论,用户指出命令 x 是pgf
not的一个功能tikz
,反之亦然。这让我很困惑。它们是单个包的别名还是两个非常密切相关的包的别名?
答案1
TikZ“仅仅”是 PGF 的一个前端。没有 PGF 就没有 TikZ。
PGF 和 TikZ 都使用 PGFMath 来解析任意输入,但也可以在没有 PGF 和 TikZ 的情况下使用。
从技术上来说,PGFMath与 PGF(代表可移植图形格式)无关,但由于它是用 PGF 开发的,因此它以某种方式继承了其前缀。
示例可能以开始,因为这是一种使用评估来\pgfmathsetmacro\myValue{<eval>}
定义宏的方法, 但也可以使用,特别是如果只是一个数字或长度。\myValue
<eval>.
\newcommand*\myValue{<eval>}
<eval>
PGF 命令以 开头\pgf…
,除了以 开头的命令外\pgfmath
,这些命令都是宏,在仅加载 PGFMath 时也可以使用,但也可以在pgfpicture
或之外使用tikzpicture
。(存在一些例外情况\pgfmathanglebetweenpoints
。)
PGF/TikZ 手册(这个名字只是pgfmanual.pdf
为了让你更困惑)有自己的章节
- 这TikZ 的设计原则和
- 这PGF 的设计原理:
- 所有命令和环境都以 开头
pgf
。 - 所有指定点(坐标)的命令都以 开头
\pgfpoint
。 - 所有扩展当前路径的命令都以 开头
\pgfpath
。 - 设置/更改图形参数的所有命令都以 开头
\pgfset
。 - 所有使用先前声明的对象(如路径、图像或阴影)的命令都以 开头
\pgfuse
。 - 所有与坐标变换有关的命令都以 开头
\pgftransform
。 - 所有与箭头有关的命令都以 开头
\pgfarrows
。 - 所有“快速”延伸或绘制路径的命令都以
\pgfpathq
或开头\pgfusepathq
。 - 所有与矩阵有关的命令都以 开头
\pgfmatrix
。
- 所有命令和环境都以 开头
笔记:
A
tikzpicture
内部创建一个pgfpicture
。TikZ 的命令是\path
(及其衍生物\draw
,,,,,,,,,,,,),\fill
\filldraw
\shade
\shadedraw
\clip
\graph
\useasboundingbox
\node
\coordinate
\matrix
\pic
- 环境
scope
及其\scoped
命令版本, - 有些像
\datavisualization
或\spy
只能通过图书馆获得,当然, \tikzset
[]
通过所提及的命令(以及\tikzgraphset
和)的可选参数之外的键值语法设置选项\tikzdatavisualizationset
。
该
\tikz
宏为 提供了快捷方式tikzpicture
。在 TikZ 中坐标被包含在
(
和中)
。在 TikZ 中路径操作是
--
、、和类似的(但和又是特殊的)|-
。rectangle
.. controls … ..
to
edge
显卡参数通常通过键值语法设置(如颜色和虚线图案)。
这些是通过 TikZ 在行
;
尾与键的组合来完成的draw
,fill
等等。变换也可以通过键值语法完成(
scale
,,shift
...)。箭通过 – 您猜对了 – 键值语法指定。明确地通过
arrows
键指定,但 TikZ 已设置其 PGFKeys 命名空间,因此带有 的键-
被解释为箭头规范。这些快捷命令在 TikZ 级别上不可用。
除了
\matrix
大多数矩阵设置都是通过键值语法完成的。(不过,TeX 也算数\pgfmatrixcurrentrow
,而且\pgfmatrixcurrentcolumn
通常可以在 TikZ 矩阵中看到。)
说起PGF键,与 PGFMath 类似,这只是另一个可以独立使用而无需 PGF 和 TikZ 的包。PGFKeys 不会绘制任何东西。