我需要为我的LaTeX文档绘制一些图片,我发现手工制作的PostScript看起来很合适(我想以编程方式做事,需要数学函数等)。我也尝试过TikZ,但这看起来过于复杂且难以使用。
然而,使用普通标准PostScript有点痛苦,因为绘制形状实际上没有任何标准功能(例如甚至不是矩形)。
是否有任何PostScript库包含常见形状的功能并使生活更轻松?在我看来这个问题应该是相当普遍的。
或者我应该跳过PostScript并继续使用某些高级系统?哪一个?
答案 0 :(得分:6)
一些人和许多PostScript驱动程序定义了一组绘制形状的过程。 PostScript驱动程序可能会输出以下快捷方式:
/bd{bind def} bind def
/cp{closepath}bd
/gs{gsave}bd
/gr{grestore}bd
/m{moveto}bd
/rm{rmoveto}bd
/l{lineto}bd
/rl(rlineto}bd
/s{stroke}bd
/f{fill}bd
/sf{gs s gr f}bd
/xx{exch}bd
/rect {4 2 roll m 1 index 0 rl 0 xx rl neg 0 rl cp} bd
然后,将绘制一个矩形:
0 0 100 100 rect sf
这种麻烦确实使PostScript特别难以处理。如果您的图形是以编程方式/数学方式生成的,那么MetaPost可能更合适。 MetaPost生成封装的PostScript(您可以将其包含在LaTeX文档中),但它更适合使用代数定义绘制图像。
答案 1 :(得分:1)
我喜欢使用matplotlib。它可以直接生成postscript和PDF,它在python中,它也可以做相当复杂的图(因此它的名字)。如果你想直接破解PostScript,你就可以在LaTeX中使用psticks,但是你需要通过dvi2ps和ps2pdf来运行所有内容以制作PDF。你真的想要PostScript或PDF吗?我想你想要PDF,对吧?
答案 2 :(得分:1)
好的,我已经确定Asymptote是自切片面包以来最好的东西。处理绘制图形和任意数字非常好,并且具有大量扩展模块(如果您关心它,包括MetaPost兼容性)。此外,它使用LaTeX排版文本,这非常酷。作为额外的奖励,它甚至可以直接输出到PDF(或EPS)。
我仍然觉得有点可悲的是,虽然没有很好的例行程序可以用于良好的'PostScript'。
答案 3 :(得分:1)
答案 4 :(得分:1)
我在postscript中直接构建图像效果很好。我发现一个有用的约定是将字体中的字形处理为对象。因此,每个对象都希望将当前点设置在左下角,并将当前点保留在右下角。您可以将它们放在一个数组中并通过它:每个对象都为当前点准备好下一个对象。
答案 5 :(得分:0)
答案 6 :(得分:0)