TikZ 最新版本 3.1 有哪些新功能?

TikZ 最新版本 3.1 有哪些新功能?

TikZ 3.1 版是可在 CTAN 上获取自 2019 年 1 月 5 日起。

Christian Feuersaenger 发布最新版本在 sourceforge 上在同一天。

3.0.1a 版本的手册由 1161 页增加至 1282 页。

此版本有哪些新功能?

答案1

我将这个答案做成 Wiki,以便让那些了解 3.1 版新功能的人可以公开它们。

  • 一种新pic类型right angle

被添加。(第 561 页)

图片类型right angle=<A>--<B>--<C>

此图将向当前路径添加一个直角图形。其工作原理与角度图相同。

图片直角

\tikz
  \draw (1,0,0) coordinate (A) -- (0,0,0) coordinate (B) -- (0,0,1) coordinate (C)
    (B) -- (0,1,0) coordinate (D)
    pic [fill=gray,angle radius=4mm] {right angle = A--B--C}
    pic [draw,red,thick,angle eccentricity=.5,pic text=$\cdot$]
    {right angle = A--B--D};
  • 不幸的是“数据可视化后端”

在 3.0.1a 版本中没有记录,现在仍然没有记录。(第 944 页)

  • 图书馆3d

现在已经记录下来(第 557 页)

  • grid

如果xstepystep为 0 或负数,则不会绘制相应的线条(文档第 157 页)。

在此处输入图片描述

\begin{tikzpicture}
  \draw (0,0) grid [xstep=.5,ystep=.75] (3,2);
  \draw[thick,red] (0,0) grid [ystep=0] (3,2);
\end{tikzpicture}
  • SVG 动画;

编译latexdvisvgm --font-format=woff --exact --zoom=-1

\documentclass[dvisvgm]{standalone}
\usepackage{tikz}
\usetikzlibrary{animations}

\begin{document}

\tikz
\node :fill opacity = { 0s="1", 2s="0", begin on=click }
      :rotate = { 0s="0", 2s="90", begin on=click }
      [fill = blue!20, draw = blue, ultra thick, circle]
      {Click me!};

\end{document}

静态 SVG 和动画 SVG没有用户交互(例如点击激活)通过标签嵌入到 HTML 中<img>,例如:

<img src="https://url/of/some.svg" width="200"/>

<img>标签也适用于此网站 (TeX.SX)。遗憾的是,Imgur 不允许上传 SVG 文件,但可以使用第三方网站的文件 URL。

动画 SVG用户交互和脚本 SVG(如使用 pkg 生成的animate)必须使用以下标记嵌入到 HTML 中<object>

<object type="image/svg+xml" data="https://url/of/some.svg" width="200">
  <!-- optional (increases loading time): fallback & search engine indexing -->
  <img src="https://url/of/some.svg" />
</object>

不幸的是,博客网站和 StackExchange 不接受该<object>标签,主要是出于安全原因。作为一种解决方法,<img>可以使用标签作为链接的文本,在点击时将浏览器重定向到 SVG 的文件 URL。这是针对上述示例所做的。在Markdown句法:

[<img src="https://url/of/some.svg" width="200"/>](https://url/of/some.svg)
  • 透视绘图的一些基本工具

库中添加了具有一个、两个或三个消失点的图层perspective。文档位于手册第 726 页(第 63 节)。

手册中的一个示例如下:

\documentclass[tikz,margin=2mm]{standalone}

\usetikzlibrary{perspective}

\begin{document}
  \begin{tikzpicture}[
    isometric view,
    perspective={
      p = {(12,0,0)},
      q = {(0,12,0)},
      r = {(0,0,-12)}}]
      
    \fill[gray!80!white] (tpp cs:x=0,y=0,z=3)
      -- (tpp cs:x=0,y=3,z=3)
      -- (tpp cs:x=3,y=3,z=3)
      -- (tpp cs:x=3,y=0,z=3) -- cycle;
    \fill[gray] (tpp cs:x=0,y=0,z=0)
      -- (tpp cs:x=0,y=0,z=3)
      -- (tpp cs:x=0,y=3,z=3)
      -- (tpp cs:x=0,y=3,z=0) -- cycle;
    \fill[gray!50!white] (tpp cs:x=0,y=0,z=0)
      -- (tpp cs:x=0,y=0,z=3)
      -- (tpp cs:x=3,y=0,z=3)
      -- (tpp cs:x=3,y=0,z=0) -- cycle;
  \end{tikzpicture}
\end{document}

结果是:

在此处输入图片描述

大量标准 Tiz 键尚不受支持,例如shift,,,,,,xshift库中的所有键,并且肯定还会有更多yshiftrotate around xrotate around yrotate around zcanvas is ... plane3d

答案2

那么根据公告文本它是

版本 3.1 引入了用于 HTML/SVG 输出的新动画库,并附带大量错误修复。

还有完整的更新日志。(我从 Henri Menke 的评论中借用了这个链接)

答案3

模式

  • 在 3.1.4 中,patterns.meta记录了一个新库。它提供了定义新模式的机制。记录了宏\pgfdeclarepattern\tikzdeclarepattern及其选项,并附有使用示例。
  • 在 3.1.5 中,库中添加了四种新的通用且可配置的模式patterns.meta。它们是LinesHatch(网格)、DotsStars,可以用来替代patterns库提供的模式。 在此处输入图片描述

pgfmanual.pdf在最近的版本中

发行说明pgf


每个功能的具体页码和章节编号在pgfmanual不同版本间有所变化,因此使用一般描述。

  • 要阅读特定库或选项的文档,用户可以patterns.meta在部分中搜索关键词(如)参考文献和索引,然后pgfmanual单击相应的索引条目跳转到其文档。
  • 对于像这样的常见(选项)名称scale,用户需要区分多个索引条目。

示例图像背后的绘制代码:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{patterns, patterns.meta}

\begin{document}
\foreach \i in {Lines, Hatch, Dots, Stars} {
  \tikz \path[pattern={\i}] (0, 0) rectangle node[above=1cm] {\i} (2, 2);
}

\begin{tikzpicture}
  \draw[pattern={Lines[angle=45]}] 
    (0, 0) rectangle node[above=1cm] {Lines} +(2, 2);

  \draw[pattern={Hatch[distance=5pt]}, pattern color=orange] 
    (2.2, 0) rectangle node[above=1cm] {Hatch} +(2, 2);

  \draw[pattern={Dots[radius=.5pt, angle=60]}] 
    (4.4, 0) rectangle node[above=1cm] {Dots} +(2, 2);

  \draw[pattern={Stars[points=5, distance=.5cm, xshift=-.15cm, angle=36]}, pattern color=blue] 
    (6.6, 0) rectangle node[above=1cm] {Stars} +(2, 2);
\end{tikzpicture}
\end{document}

相关内容