27

我的团队在我们的大部分源代码中都使用了文学编程——这意味着内部文档是使用 LaTeX 编写的。我们一直在使用PStricks来绘制系统的精美技术图,但最近被推荐使用TikZ。我收集了这些信息:

  • TikZ/PGF 是新的和维护的;PStricks 在没有维护者的情况下运行了很长时间,但在过去几年中得到了一些维护。
  • TikZ 适用于许多后端,包括(对于那些关心的人)pdftex。PStricks 仅适用于dvips.
  • PStricks 比 TikZ 更强大,更有表现力。在紧急情况下,您甚至拥有 PostScript 的全部功能。
  • PStricks 有一个重要的生态系统,即构建在它之上的额外包;TikZ 太新了,没有很多这样的东西。
  • TikZ 声称在设计时“考虑到了 PStricks 的缺点”。作者没有具体说明哪些缺点。

我对两个问题的答案感兴趣。如果您愿意,请随时为每个问题发布一个答案:

  • 这两种工具的学习曲线如何?(我认为 PStricks 有一个陡峭的学习曲线;关于 TikZ 我不了解。)

  • 被视为编程 API,这两个包中的一个包的设计是否明显优于另一个包?如果是这样,哪个设计更好,为什么?(它有什么特性让你认为它更好?)

为了提出一个令人信服的论点,为什么一种 API 比另一种更好,您可能需要借助示例。

4

5 回答 5

18

快速回答:我更喜欢 TikZ 而不是 pstricks,因为我认为 TikZ

  • 设计得更好
  • 更容易学习
  • 与 pdftex 兼容
  • 给你更多的权力和抽象(你不必手动指定尽可能多的坐标)
  • 让您用同样的努力创建更漂亮的图形
  • 使用 TeX 编程更容易扩展(它从一开始就考虑到了可扩展性)

对于 pstricks 的用户,我建议将来使用 TikZ 编写所有新文档。对于METAPOST的用户,如果他们的图形不使用线性方程求解,我推荐TikZ。如果 METAPOST 图形需要线性方程求解,我建议尝试Asymptote

pstricks 确实为您提供了 PostScript 的强大功能,但使您的图形创作功能强大的不是 PostScript,而是抽象:使用自动定位、自动交点计算和显示样式模板。TikZ 为你提供了强大的抽象,即使你不是程序员,或者你这次不愿意编程。

我没有编写 TikZ 扩展的经验,但是快速浏览一下 TikZ 源代码,与我遇到的其他 TeX 宏包相比,它似乎很容易理解和扩展。

于 2009-05-01T06:50:46.350 回答
11

作为 TikZ 的忠实用户,我一直在与我物理系的一位喜欢 pstricks 的教授进行辩论,我认为我们已经得出结论,正如我在其他帖子中所说的那样。在深入 PS 本身时缺席几次,TikZ 和 pstricks 在大多数方面都非常可比。TiKZ 的可扩展性和兼容性很有吸引力,让我们同意:

  • 我们认为新用户应该学习 TikZ。
  • pstricks 的老手可能不会从转换中获得足够的收益,并且可能不值得做。

希望这会有所帮助!

于 2010-10-21T12:36:43.800 回答
2

我只用过 PSTricks,但我已经让它做我想做的一切。Tikz 有一本好看的手册,而且显然非常强大。我希望从绘图系统中得到两件我不能用 PSTricks 做的事情:羽化边缘(Tikz 可以做),我不记得另一件事了。OP 在询问“易于学习”:PSTricks 肯定需要一些试验和错误,我认为一些我不太擅长的编码学科。但是 \rput 是我使用 PSTricks 的核心。我无法想象没有它。

另一方面,“装饰品”看起来很整洁。我喜欢手册(共 560 页)第 210 页(!)上的“从垃圾中保存”示例。我不喜欢 Tikz 似乎使用完全不同的符号这一事实——我不认识其中的 LaTeX,这使它看起来很陌生和奇怪。不过,手册看起来很漂亮。透明度和“淡化”效果似乎非常强大.. 可以在 pstricks 中完成吗?..但我怀疑我是否会使用它们。Tikz 似乎更多地关注事物的“绘图”端。通常,我不画画,我做数字。

你会在坐标上做算术吗?我必须重新开始并从头开始学习使用 Tikz,如果我什至不确定我会从中得到什么,这将是一个艰难的卖点。

于 2010-01-17T11:50:53.657 回答
2

我正在开发一个使用安装在服务器上的 Miktex 发行版的 asp.net 应用程序。

该应用程序将生成数学问题并生成供访问者下载的 pdf 文件。数学问题包含一些 jpeg 图像和数学图表。

我很困惑是使用 PSTricks 还是 Tikz。在对应用程序进行基准测试后,我必须使用 Tikz,因为它只需要一个使用 pdftex 的编译步骤。所以 Tikz 在这种情况下获胜。:D

注意:我希望我的回答与您的问题相符:D

于 2011-03-24T02:04:45.740 回答
1

我认为 pstricks 更胜一筹。TikZ 甚至没有翻译坐标的好方法,比如 rput/uput/Aput/Bput pstricks 命令。您可以使用 xshift 和 yshift,但它们需要单位 (!),因此缩放图像将需要手动共享每个 xshift/yshift 调用。

于 2009-11-22T02:19:33.447 回答