TikZ图提取与SVG转换技能Skill extract-tikz

此技能用于自动从Beamer源文件中提取TikZ图表,编译为PDF并转换为SVG格式,适用于Quarto幻灯片制作,涉及自动化脚本、文档处理和格式转换。关键词:TikZ, Beamer, SVG, Quarto, 自动化, LaTeX编译, PDF转换, 图表提取。

DevOps 0 次安装 0 次浏览 更新于 3/24/2026

name: extract-tikz description: 从Beamer源文件中提取TikZ图表,编译为PDF,使用0-based索引转换为SVG。用于更新Quarto幻灯片中的TikZ图表。 argument-hint: “[LectureN, 例如 Lecture2]” allowed-tools: [“Read”, “Bash”, “Glob”]

提取TikZ图表到SVG

从Beamer源文件中提取TikZ图表,编译为多页PDF,并将每页转换为SVG,用于Quarto幻灯片。

步骤

步骤0:新鲜度检查(强制性)

在编译前,验证extract_tikz.tex是否与当前Beamer源文件匹配。

  1. 找到Beamer源文件:ls Slides/$ARGUMENTS*.tex
  2. 从Beamer中提取所有\begin{tikzpicture}
  3. Figures/$ARGUMENTS/extract_tikz.tex进行比较
  4. 如果存在任何差异:从Beamer源文件更新extract_tikz.tex
  5. 如果extract_tikz.tex不存在:从头创建它

步骤1:导航到讲座的Figures目录

cd Figures/$ARGUMENTS

步骤2:编译extract_tikz.tex文件

TEXINPUTS=../../Preambles:$TEXINPUTS xelatex -interaction=nonstopmode extract_tikz.tex

步骤3:计算页数

pdfinfo extract_tikz.pdf | grep "Pages:"

步骤4:使用0-based索引将每页转换为SVG

关键:PDF页是1-indexed,但输出SVG文件是0-indexed!

PAGES=$(pdfinfo extract_tikz.pdf | grep "Pages:" | awk '{print $2}')
for i in $(seq 1 $PAGES); do
  idx=$(printf "%02d" $((i-1)))
  pdf2svg extract_tikz.pdf tikz_exact_$idx.svg $i
done

步骤5:同步到docs/以进行部署

cd ../..
./scripts/sync_to_docs.sh $ARGUMENTS

步骤6:验证SVG文件

  • 读取2-3个SVG文件,确认它们包含有效的SVG标记
  • 确认文件大小合理(不为0字节)

步骤7:报告结果

源数据真实性提醒

TikZ图表必须先在Beamer .tex文件中编辑,然后逐字复制到extract_tikz.tex。参见.claude/rules/single-source-of-truth.md