Hacker News 中文摘要

RSS订阅

Show HN:TikZ编辑器 – LaTeX图形的所见即所得编辑器 -- Show HN: TikZ Editor – WYSIWYG editor for figures in LaTeX

文章摘要

TikZ Editor v0.4.0是一款所见即所得的LaTeX图表编辑工具,支持拖拽调整元素位置并实时更新代码,无需重新编译。它兼容所有常见TikZ功能,包括\foreach循环,可在线使用或作为轻量级桌面应用,免费开源。

文章总结

好的,这是根据您的要求,对原文进行中文重述和精简后的版本:

标题:TikZ 编辑器 v0.4.0

这是一款用于 LaTeX 中 TikZ 图形的所见即所得编辑器。您可以从头开始创建,或编辑现有的 TikZ 图形,甚至可以直接打开论文的 TeX 文件来编辑其中的图片。当您移动元素时,TikZ 代码会即时更新,且不会干扰原有的格式(如换行和空格)。

该应用让微调元素位置变得简单快捷,无需重新编译。它支持所有常见的 TikZ 功能,包括 \foreach 循环。该应用是免费且开源的(MIT 许可,代码托管在 GitHub 上),可在网页上运行,也可作为带有额外功能的轻量级桌面应用使用。

核心功能:

  • 拖拽编辑:您可以直接拖拽路径或节点到目标位置,代码会即时更新,无需手动修改坐标。
  • 添加新元素:提供工具来添加新的路径(直线、箭头、多段线)、节点、矩形和圆形。新元素会插入到代码末尾,并可立即移动或调整大小。
  • 全功能源码编辑器:源码面板专为 TikZ 定制,支持语法高亮、代码折叠、悬停显示手册片段,并能高亮显示错误及解释。您还可以直接在源码视图中使用取色器和数字微调来编辑颜色和数值。
  • 便捷功能:支持对齐、等距分布的吸附功能,提供标尺、可自定义的参考线、缩放和放大镜工具。
  • 原生支持常见 TikZ 特性:支持绘制连接到节点锚点的路径,以及编辑节点标签、引脚和边标签。
  • 多选与分组:可选择多个对象进行分组(使用 TikZ 作用域实现),并支持对齐和分布等布局功能。
  • 多图形支持:可打开完整的 .tex 论文文件,通过底部的缩略图预览,在论文的不同 tikzpicture 环境间轻松切换。应用能理解许多自定义宏。
  • AI 辅助编辑:在桌面版中,如果安装了 OpenAI Codex,您可以请求 GPT 直接在应用中编辑图形。助手拥有多个 TikZ 专用工具,使用量会从您的 ChatGPT 账户中扣除。

可用工具:

  • 选择:移动、调整大小、旋转对象,编辑路径,以及多选编辑多个元素。
  • 放大:虚拟放大镜,用于查看图形细节。
  • 节点:使用 TikZ \node 向图形添加文本。
  • 形状:使用形状库添加节点,可添加文本。例如:菱形、多边形、星形、云朵、箭头。
  • 矩阵:插入指定行数和列数的节点矩阵。
  • 直线/箭头:绘制直线或带箭头的直线。
  • 贝塞尔曲线:在两点之间绘制曲线路径。
  • 路径:构建包含直线和曲线部分的多段路径。
  • 手绘:绘制带有平滑效果的手绘路径。
  • 网格/矩形/椭圆/圆形:绘制相应的图形路径。
  • 填充:为现有的封闭区域应用填充颜色。

编辑器功能列表:

  • 文件与导出:支持打开和编辑 .tex.tikz 文件;从 SVG、Ipe .ipe 和 PowerPoint .pptx 导入图形;导出为 SVG、PNG、PDF 或独立的 LaTeX 文件;支持多文档标签页。
  • 论文与图形:支持打开包含多个图形的完整论文,并通过缩略图预览导航;可绘制节点、形状、矩阵、箭头、路径、曲线、网格、矩形、椭圆和圆形;可直接在图形中编辑文本和公式。
  • 直接编辑:支持移动、调整大小、旋转、复制、分组、对齐、分布、翻转和重新排序对象;通过点手柄编辑路径,支持分割/合并、反转、打开/关闭、角点和平滑点命令;支持吸附到网格、参考线、对象点和对象间隙。
  • 循环与结构:使用“重复”对话框添加 \foreach 循环,将所选内容复制到多行多列;支持打开和编辑已使用 \foreach(包括嵌套循环)的图形;可为节点添加标签和引脚;通过添加子节点编辑树形图,通过行/列和转置命令编辑矩阵。
  • 面板:在“检查器”面板中检查和编辑描边、填充、箭头、文本、变换、形状和样式;在“对象”面板中管理对象可见性、分组、重命名和图层顺序;在“样式”面板中编辑 TikZ 样式,类似于浏览器开发者工具中的 CSS 编辑。
  • 源码与助手:源码编辑器支持语法高亮、自动补全、折叠、搜索、诊断和内联颜色样本;支持自动格式化代码(修复缩进);在桌面版中,可请求 Codex 助手帮助编辑图形,包括附带图片。

应用工作原理:

该应用使用 TypeScript 编写,桌面版基于 Tauri 和轻量级 Rust 后端。它解析 TikZ 代码并构建内部表示,形成一个语义层,将坐标、样式、变换、循环、节点、路径和文本解析为可编辑的场景元素。此表示与语法输入紧密关联,通过标记行和字符范围,应用可以使用小补丁修改代码,而无需重写整个 TikZ 代码,从而忠实保留用户的缩进和换行。场景随后使用 SVG 渲染。

文本和数学公式渲染通过 MathJax 实现。为支持多行文本,应用重新实现了 TeX 的连字算法和 Knuth-Plass 换行算法。应用包含一个自定义取色器,可将 RGB 颜色转换为最接近的短 xcolor 字符串。它还支持导入多种文件格式,这些转换器作为独立的 npm 包提供。桌面版还支持直接从 PowerPoint 和 Keynote 粘贴对象,并集成了 AI 辅助功能。

评论总结

根据评论内容,主要观点和论据总结如下:

正面评价(主流观点)
- 高度认可与感谢:多数评论者表达了对该工具的强烈赞赏,认为它解决了长期存在的需求。
- "Wow, this is really, really great." (k33n)
- "All STEM students and researches from the world thank you" (GL26)
- 核心功能亮点:用户特别强调其“可编辑旧TikZ代码而不破坏结构”的特性,以及通过AI代理快速生成图表的能力。
- "The killer feature... being able to touch old TikZ without turning the source into generated-looking soup." (Littice)
- "Good use of coding agents. Now I can make diagrams much faster." (dima-quant)
- 开源价值:多位用户感谢项目开源,并认为这是AI实用性的有力证明。
- "Thank you for making it open source." (quantummagic)

建设性建议与需求
- 扩展支持:用户希望增加对Typst的cetz库、pgfplots等工具的支持。
- "How hard would it be to support cetz? I'm using Typst all the time." (mharrison)
- "Will you consider adding support for pgfplots?" (deltapdelta_x)
- 功能优化:建议添加预设模板(如神经网络架构)和更直观的节点布局功能。
- "Add some presets... like common neural net architectures." (sorenjan)
- "The ability to position five nodes in a circular fashion." (emil-lp)

平衡性说明:评论整体以正面为主,少数建议聚焦于功能扩展而非批评。未出现明显负面评价,但用户对特定场景(如Typst用户)的兼容性需求值得关注。