TIKZ 和 PGF 是同一件事吗?

TIKZ 和 PGF 是同一件事吗?

在学习如何使用时,tikz我见过许多使用以 开头的命令的指南和示例pgfmath,它们交替使用这两个包名,所以我认为它们指的是同一件事。由于\usepackage{tikz}使用pgfmath命令就足够了,我不需要\usepackage{pgf}这个,这进一步加强了我的信念。

然而最近我看到一些评论,用户指出命令 x 是pgfnot的一个功能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 的设计原理
    1. 所有命令和环境都以 开头pgf
    2. 所有指定点(坐标)的命令都以 开头\pgfpoint
    3. 所有扩展当前路径的命令都以 开头\pgfpath
    4. 设置/更改图形参数的所有命令都以 开头\pgfset
    5. 所有使用先前声明的对象(如路径、图像或阴影)的命令都以 开头\pgfuse
    6. 所有与坐标变换有关的命令都以 开头\pgftransform
    7. 所有与箭头有关的命令都以 开头\pgfarrows
    8. 所有“快速”延伸或绘制路径的命令都以\pgfpathq或开头\pgfusepathq
    9. 所有与矩阵有关的命令都以 开头\pgfmatrix

笔记:

  1. Atikzpicture内部创建一个pgfpicture。TikZ 的命令是

    • \path(及其衍生物\draw,,,,,,,,,,,,),\fill​​​​​​​\filldraw\shade\shadedraw\clip\graph\useasboundingbox\node\coordinate\matrix\pic
    • 环境scope及其\scoped命令版本,
    • 有些像\datavisualization\spy只能通过图书馆获得,当然,
    • \tikzset[]通过所提及的命令(以及\tikzgraphset和)的可选参数之外的键值语法设置选项\tikzdatavisualizationset

    \tikz宏为 提供了快捷方式tikzpicture

  2. 在 TikZ 中坐标被包含在(和中)

  3. 在 TikZ 中路径操作--、、和类似的(但和又是特殊的)|-rectangle.. controls … ..toedge

  4. 显卡参数通常通过键值语法设置(如颜色和虚线图案)。

  5. 这些是通过 TikZ 在行;尾与键的组合来完成的drawfill等等。

  6. 变换也可以通过键值语法完成(scale,,shift...)。

  7. 通过 – 您猜对了 – 键值语法指定。明确地通过arrows键指定,但 TikZ 已设置其 PGFKeys 命名空间,因此带有 的键-被解释为箭头规范。

  8. 这些快捷命令在 TikZ 级别上不可用。

  9. 除了\matrix大多数矩阵设置都是通过键值语法完成的。(不过,TeX 也算数\pgfmatrixcurrentrow,而且\pgfmatrixcurrentcolumn通常可以在 TikZ 矩阵中看到。)

说起PGF键,与 PGFMath 类似,这只是另一个可以独立使用而无需 PGF 和 TikZ 的包。PGFKeys 不会绘制任何东西。

相关内容