Tikz 101 的“良好实践”应包括哪些内容

Tikz 101 的“良好实践”应包括哪些内容

最近,我一直在为我的演示文稿制作图形(主要是流程图),使用的是 Powerpoint,最近又用到了 LucidChart。我避免为此使用 Latex,因为我觉得这不会很容易。无论如何,现在我决定学习并掌握这个强大的工具,但正如我所料,通过手册来快速入门并不是一个好主意。所以我想知道我是否可以得到一些好的建议,让我在制作投影仪演示文稿中的图形时能够流畅进行。我注意到的一件事是,需要为所有内容指定坐标。先在幻灯片上画一个网格然后再继续,这是一个好主意吗?

因此,请贡献您发现的对使用 tikz 包生成图形有用的实践。我期待听到专家在这方面的看法

答案1

  • 使用样式。只要您有颜色、形状、字体、对齐方式,就为其定义 TikZ 样式并使用它。不要将此类格式细节应用于节点或边缘,而应应用样式。单点实现一致的自定义。

  • 继承风格。从基本节点样式(字体系列、基本颜色)开始,定义使用基本样式的样式并添加大小、颜色或对齐方式 - 无重复,全局更改的单点。

  • 使用宏。具有一致的 TikZ 命令或命令序列,可以重复使用和更改。

  • 使用常量。对于所需的每个值(例如距离),通过\def或 TikZ 长度命令声明一个常量,这样您就可以重复使用它并在单个源代码位置进行调整以定制整个绘图或大量绘图。

  • 使用相对位置。因此,您可以改变一个参考坐标,所有其他位置都会自动调整。

  • 让 TikZ 为您计算。一旦定义了某些点(例如角点),就可以使用 TikZ 语法来定义相对位置(例如中点和交点)。让 TikZ 为您完成几何处理。如果您更改参考点或图像大小,所有内容都会自动调整。

  • 说出一切。特别是在非平凡的绘图中,命名坐标之间的边缘比到处使用坐标号更容易理解。

  • 使用范围。不要重复操作 - 如果您无法通过样式应用一堆属性,请使用范围将设置应用于绘图的整个区域。同样,在这里,很容易在单个位置更改该部分。

  • 使用循环。如果需要重复执行某些操作,可以利用 TikZ\foreach循环的强大功能来减少重复代码的数量。

  • 不要嵌套 TikZ 图片。总是有其他方法可以做到的。

答案2

  • 不要尝试使用 Stefan Kottwitz 的所有东西,否则大部分都是优秀的答案在您的第一个 TikZ 图形中。

    更一般地说,不要试图一次性学习所有内容。即使你的初始代码更长、更不灵活且更难维护。

    • 当你有足够的知识来制作图片时,添加适当复杂化,如循环或样式。

    • 当你可以毫不费力地完成基本的循环或样式时,添加更多的事情。

  • 不要使用\def除非 (1) 你不能使用 LaTeX 命令创建宏 ( \newcommand*, \newcommand, \newlength,\newcounter等)(2)你明白为什么你需要\def (3)您了解使用 的后果\def

不特定于 TikZ:

  • 注释您的代码,以便当您以后不可避免地忘记时,您可以知道它是做什么用的。

    [至少,我不可避免地会忘记。]

答案3

1. 从基础开始

放置命名节点并在它们之间画线:

\node (a) at (1,5) {$A$};
\node (b) at (2,3) {$B$};
\draw (a) -- (b);

这样你就可以制作任何简单的图形,你只需要正确获取坐标(此时,最好先在纸上快速绘制,然后通过这种方式获取坐标)

2. 根据需要改进风格

Tikz 有许多样式函数,用于线宽、颜色等。有些比其他的更有用。寻找任何你认为可以改善绘图的东西,你就会找到它。你会很快记住最有用的。

3. 改进代码,使其更高效

不想给出坐标的精确数字?有很多方法可以实现相对放置!了解.north.south放置或使用坐标中的计算。

您过于喜欢使用复制粘贴?了解样式、宏、使用scopes 或最强大的\foreach循环。

你使用 beamer?了解如何使用 eg\only\alt

您最终将获得更短的代码,编写速度更快,因此您可以快速制作在图表上运行的算法的漂亮动画。

相关内容