终于有人给TikZ做了所见即所得编辑器

TikZ Editor v0.4.0:左边源码、右边图形实时同步(tikz.dev/editor)
用LaTeX画过图的人,都被TikZ折磨过。
我说的不是写公式,那其实还好。我说的是画图——一个箭头从A指到B,一个状态机,一棵树,一张流程图。在LaTeX的世界里,画这些东西的事实标准叫TikZ。它强、它漂亮、它排版精度高到变态,导出来的线条和你正文里的字体严丝合缝。代价是:你得用写代码的方式去画图。
什么意思?你想画一个圆,得写\draw circle;想让它挪到右上角一点,你不能拿鼠标拖,得回去把坐标从(2,1)改成(2.3,1.2),然后重新编译,等它跑完,看一眼,发现还是不对,再改,再编译。一张稍微复杂点的图,光是对坐标就能耗掉你一下午。我见过有人为了一个节点的位置反复编译几十次。这不是画图,这是和编译器谈判。
所以这么多年,TikZ一直缺一样东西:一个能让你拖着画、它自动生成代码的所见即所得(WYSIWYG)编辑器。听起来是个再朴素不过的需求,但它一直没出现。
这次上HN首页的,就是这么个东西
6月这两天,Hacker News上一个叫TikZ Editor的Show HN冲到了前面,260多个赞,五十多条讨论,作者是Dominik Peters。地址在tikz.dev/editor,打开浏览器就能用,也有给macOS、Windows、Linux的桌面版,多几个本地文件和剪贴板的功能。
它做的事,一句话说清:左边是你的TikZ源码,右边是渲染出来的图,两边实时双向同步。你在右边用鼠标拖一个节点、拉一条线、改个大小,左边的代码立刻跟着变;你在左边敲代码,右边的图也立刻更新。不用等编译,挪一下就是一下。它内置二十多种图形、贝塞尔曲线、手绘路径,支持矩阵、foreach循环这些TikZ的常用花样,能导出SVG、PDF、PNG,也能从SVG、IPE、PPTX反向导入。MIT协议,开源免费,代码挂在GitHub上。
说实话,光是”打开就能用、不用配LaTeX环境”这一条,对很多人就够了。

过去要画一张TikZ图,得对着代码反复调坐标。图:KK IN HK/CC BY-SA 4.0
为什么以前没人做出来
不是没人想做。TikZiT这类工具早就有,但它们大多只能从零画,你拿不进自己手写的旧代码——你那些攒了好几年的TikZ图,到它面前等于白纸。真正的拦路虎在于:要双向同步,编辑器就得能”读懂”你写的TikZ代码,把它解析成一个个可以拖动的图形。
而解析TeX代码,是出了名的难。TeX本质上是个图灵完备的宏语言,语法灵活到没边,同一个图能有一百种写法。作者自己在HN上说得很直白:以前几乎没有真正的TikZ所见即所得编辑器,很大原因就是解析TeX太痛苦,是那种”没有哪个正常人愿意手写”的活儿。他坦言,是这两年LLM编码代理(coding agent)成熟了,才让啃下这块硬骨头变得现实——靠AI去暴力穷举各种语法情况。这点挺有意思:一个看着很”传统”的开发者工具,背后是AI改变了”什么值得做”的边界。

这个项目冲上HN首页,评论区也吵开了
HN上老用户怎么看
评论区整体是叫好的。有人说”真的真的很棒”,有人说”上大学那会儿要有这个就好了”。但真正被反复点名的杀手锏,是那句很戳人的话:能去碰你那些陈年TikZ代码,”而不至于把源码搅成一坨一看就是机器生成的浆糊”。这是老用户的痛点——以前一旦用可视化工具改图,原来的代码格式、缩进、注释全废了,再也看不下去。这个编辑器号称改动时不动你原有的换行和空格,只改该改的地方。
当然也有争议,而且很专业。有人挑刺说它生成的是绝对坐标,可在TikZ里大家更习惯用相对定位、用锚点(anchor),(2,1)这种硬坐标其实”很少需要”。这是手写党的洁癖,但也确实是道理——绝对坐标的图,后期一改全乱。作者承认这是取舍,他的回应是:至少你做简单编辑时,它不会平白给你冒出一个随机命名的新坐标来恶心你。还有人提了一串需求:节点像draw.io那样吸附、圆周上均匀排布、支持pgfplots和Typst那边的Cetz。官方文档也老实写了边界:decorations、graphs、plots只是部分支持,let这类高级写法还没做。
我怎么看
我不觉得这东西会让硬核TikZ用户扔掉编辑器。真要画极致精细、要复用、要参数化的图,手写代码依然最干净,绝对坐标那条批评就是明证。
但它解决的是另一拨人的问题——那些需要TikZ的质感、却不想为一张图付出”学一门语言”代价的人。写论文的研究生,做幻灯片的老师,偶尔要画张图的工程师。对他们来说,能拖、能即时看到、还不把代码搞脏,就是质变。它不是要取代手写,而是把入场的门槛从”先会写代码”降到了”打开浏览器拖一下”。
至于免费、MIT开源、不绑账号、本地能跑——在如今什么工具都想拉你订阅的年头,这几条朴素的好,反而最让我有好感。这种工具,我愿意它存在。
资料来源:TikZ Editor官网(tikz.dev/editor)、GitHub仓库DominikPeters/tikz-editor、Hacker News讨论帖(item id 48645437)。功能与支持范围以项目最新文档为准。
你画图是手写TikZ党,还是早就投奔draw.io了?说说你的看法。
夜雨聆风