Tikz 命令总结

Tikz 命令总结

很多时候,当我编写 tikz-picture 代码时,我不记得命令语法或某个选项的名称,而只能在 pgf-manual 中查找,因为 pgf-manual 不是很短。有人有适合一两页的 Tikz 命令摘要吗?

答案1

命令模板

  • 基本路径:

    \drawing-command [options] path-specification;

  • 路径指定:

    (coordinate) path-component (coordinate);

  • 路径重用

    postaction={<basic drawing commands> or <decorate>}当将此选项赋予下面的任何基本绘图命令时,初始绘图命令完成后不会立即丢弃和重新使用路径。

    preaction={<basic drawing commands> or <decorate>}当将此选项赋予下面的任何基本绘图命令时,在执行初始绘图命令之前将使用一次路径。

基本绘图命令:

  • \path:构造路径

以下所有命令实际上都是\path带有一个或两个选项的缩写形式:

  • \draw:构造并绘制(“描边”)路径
  • \fill:构造并填充路径
  • \filldraw:构造、填充并绘制路径(按此顺序)
  • \shade:构建并阴影化路径
  • \shadedraw:构造、着色并绘制路径(按顺序)
  • \coordinate:标记坐标
  • \node[<options>] at (<coordinate>) (<name>) {<text>}:构造一个节点
  • \path (nodeName1) edge [options->] (nodeName2);:一条边

坐标规格:

  • (<x>,<y>):将坐标指定为当前 x 和 y 向量的倍数(默认值:向右 1 厘米,向上 1 厘米)
  • (<θ>:<r>)以极坐标形式指定坐标,r为矢量长度,θ为角度(以度为单位)
  • +<coordinate specification>:指定相对于前一个位置的坐标,但不保存当前位置
  • ++<coordinate specification>:指定相对于前一个位置的坐标

笔记

  1. 长度可以带单位也可以不带单位。如果带单位,则按字面意思理解;如果没有单位,则为电流xy矢量的倍数(视情况而定)。

  2. 相对坐标是相对于最后一个已保存位置。除非另有说明,以上所有操作均将其结果位置保存为最后保存的位置。

  3. 当在贝塞尔曲线规范中使用相对坐标时,行为会略有不同。第二个控制点是相对于曲线的最终位置而取的,而最终点是相对于初始点(或最后保存的位置)而取的。

路径规范:

  • (coordinate) (coordinate):将“当前点”从第一个坐标移动到第二个坐标
  • (coordinate) -- (coordinate):从第一个坐标到第二个坐标绘制一条线
  • (coordinate) .. controls (control) and (control) .. (coordinate):使用指定的控制点从第一个坐标到第二个坐标绘制三次贝塞尔曲线
  • (coordinate) to[options] (coordinate)to path从第一个坐标到第二个坐标绘制一个;to paths 可能非常复杂
  • (coordinate) rectangle (coordinate):以坐标为对角绘制一个矩形
  • (coordinate) circle[options]:以坐标为中心画一个圆
  • (coordinate) arc[options]:从坐标处开始绘制圆弧
  • (coordinate) node[options] {text}:在坐标处添加一个节点
  • (coordinate) coordinate:在给定坐标处添加坐标标签

基本选项

  • draw[=<colour specification>]1:绘制当前路径(使用给定的颜色)
  • fill[=<colour specification>]1:填充当前路径(使用给定的颜色)
  • <colour specification>:设置绘制、填充、文本的颜色(不明确执行这些操作)
  • line width=<dimen>:设置线宽
  • thin、、thickultra thick:线宽的预设

1括号表示可选部分,代码中不能输入。即使用draw=red而不是draw[=red]

答案2

我内心的懒惰数学家决定想出另一种方法。我在文档上运行了以下脚本:

(for f in  pgfmanual-en-tikz-{design,scopes,coordinates,paths,actions,shapes,graphs,matrices,trees,plots,transparency,decorations,transformations}.tex; do
cat $f
done) | perl -ne '
if (/(\\(begin|end)\{(coordinatesystem|keylist|package|predefinednode|command|key|stylekey|pathoperation)\})|\\(sub)*section|\\catcode/) {
print;
$c = ($_ =~ tr/{/{/);
$c -= ($_ =~ tr/}/}/);
} else {
if ($c > 0) {
print;
$c += ($_ =~ tr/{/{/);
$c -= ($_ =~ tr/}/}/);
};
};
' | xclip

然后将结果粘贴到以下模板中:

\documentclass[a4paper]{ltxdoc}
\usepackage[scale=.9]{geometry}

\usepackage{tikz}

% The location of this will depend on where you put the sources of the pgfmanual
\input{../../../local/share/pgf/doc/generic/pgf/macros/pgfmanual-en-macros}

\begin{document}

%%%% <--- pasted text goes here

\end{document}

然后删除了一些意外包含的内容(搜索codeexample并删除所有此类环境 - 它们由于开关而被包含在内\catcode),并添加了一个缺失的右括号。

当我在 2012 年首次运行此程序时,它生成了一份 21 页的文档,其中列出了手册中 TikZ 部分的所有命令和键(据我所知)。我在 2022 年重新运行了该过程,现在它是一份 27 页的文档。

答案3

VisualTikZ最近已上传到 CTAN。它包含 150 多页TikZ命令和选项示例。每个命令或选项都显示一个小图。例如,这里有一些页面:

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

相关内容