PGFmanual翻译20190311 Tikz自身的逻辑结构-层

原来TikZ下面实际上有两层:

系统层

这一层提供了“在驱动程序中”发生的事情的完整抽象。驱动程序是一个类似于dvips或dvipdfm的程序,它接受.dvi文件作为输入,并生成.ps或.pdf文件。(pdftex程序也算作一个驱动程序,尽管它不接受.dvi文件作为输入。没关系。)每个驱动程序都有自己的生成图形的语法,这让每个希望以可移植的方式创建图形的人都感到头疼。pgf的系统层“抽象出”了这些差异。例如,系统命令\pgfsys@lineto{10pt}{10pt}将当前路径扩展到当前{pgfpicture}的坐标(10pt, 10pt)。取决于是dvipdfm,还是dvipdfm

pdftex用于处理文档,系统命令将转换为不同的\special

命令。系统层是尽可能“最小化”的,因为每个额外的命令都使得将pgf移植到一个新的驱动程序更加困难。

作为用户,您不会直接使用系统层。

基本层

基本层提供一组基本命令,允许您以比直接使用系统层更容易的方式生成复杂的图形。例如,系统层不提供创建圆的命令,因为圆可以由更基本的Bezier曲线(几乎)组成。但是,作为一个用户,您将需要一个简单的命令来创建圆圈(至少我是这样做的),而不是必须写下半个页面的Bezier曲线支持坐标。因此,基本层提供一个命令\pgfpathcircle,它为您生成必要的曲线坐标。

基本层由一个核心(它由几个相互依赖的包组成,这些包只能整体加载)和其他模块组成,这些模块通过更特殊的命令(如节点管理或绘图接口)扩展核心。例如,beamer包只使用核心模块,而不使用shape模块。

事实上,你使用的TikZ,既不是基本层也不是系统蹭,而是Tikz几个可能的“前端”之一。这是一组命令或一种特殊的语法,使使用基本层更加容易。直接使用基本层的一个问题是,为这个层编写的代码通常太“冗长”。例如,画一个简单的三角形,你可能需要多达五个基本层的命令,而使用TikZ前端,所有这些都归结为一个简单的metafont类命令:

\draw(0,0)- -(1,0)- -(1,1)- -cycle;

你可能感兴趣的:(PGFmanual翻译20190311 Tikz自身的逻辑结构-层)