SuperAPI AI 工具集

svg-LaTeX-formula

设计与创作

查看项目

更新于 10-15 21:40

技能介绍

用途:把在 Draw.io 中编写的 LaTeX 数学公式导出为干净、标准、可被任意工具使用的 SVG 文件。Draw.io 能渲染 LaTeX 数学,但其 SVG 导出含专有 XML,其他工具无法读取;该技能改用先导出 PDF(矢量输出干净)再用 pdf2svg 转 SVG 的流程。

前置条件:需确认 drawio 与 pdf2svg 可用。检查命令:drawio --help 2>/dev/null && echo "drawio: OK" || echo "drawio: NOT FOUND";pdf2svg 2>/dev/null; [ $? -le 1 ] && echo "pdf2svg: OK" || echo "pdf2svg: NOT FOUND"。缺少 drawio 需安装 Draw.io Desktop;缺少 pdf2svg 可用 sudo apt install pdf2svg(Ubuntu/Debian)、brew install pdf2svg(macOS)或 sudo pacman -S pdf2svg(Arch)。

流程:第一步导出 PDF,每个页面或选中块生成一个 PDF,设置 Format: PDF、Border Width: 0、Background: Transparent、Crop: Enabled。单页命令:drawio -x -f pdf --border 0 --transparent --crop -p <page_index> -o "<output>.pdf" "<input>.drawio"。全部页面先统计页数 PAGE_COUNT=$(grep -c '<diagram' "<input>.drawio"),再循环 seq 0 到 PAGE_COUNT-1 逐页导出。多个 .drawio 文件可分别处理,若有子代理可并行加速。第二步转换:pdf2svg "<input>.pdf" "<output>.svg",批量则遍历目录内 PDF 逐个转换。第三步校验:确认每个 SVG 非空且为有效 XML,可报告文件大小。

目录约定:未指定输出位置时建议 formulas/(源文件)、formulas-pdf/(中间 PDF,可删)、svgs/(最终 SVG)。

多公式处理:常见一个 .drawio 含多页、每页一个公式,则统计页数、逐页导出 PDF、全部转 SVG,若页面名可用则按名命名输出。

限制与排错:drawio 命令未找到时需安装 Draw.io Desktop,Linux 上 AppImage 或 snap 可能未自动加入 PATH,可查 /snap/bin/drawio 或 AppImage 位置;pdf2svg 输出空 SVG 可能是输入 PDF 为空,需检查页面是否有内容及 --crop 是否裁掉全部(公式在页面边界外时可能发生);SVG 正确但无法导入时,部分工具对 SVG 特性挑剔,可尝试用 Inkscape 打开并另存为 Plain SVG。