Academic-PPT/skills/3-ppt-svg-technical-compliance/SKILL.md
fengmengqi 664849dc73 初始提交:SVG PPT技能与项目配置
- SVG布局规划、视觉风格、技术合规技能
- ppt-master技能下载脚本(从GitHub获取)
- .gitignore配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-26 22:20:17 +08:00

31 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: 3-ppt-svg-technical-compliance
description: 负责 SVG 图片的血液PPT底层兼容性与SVG语法约束。必须遵守以确保在 PowerPoint 中 100% 可编辑且不走样。
---
# PPT 兼容与工程合规 (Technical Compliance)
**核心职责**:确保生成的 SVG 代码能够被 `convert_svgs_to_pptx` 完美转换。PPTX 的解析引擎很脆弱,必须严格遵守以下降级与内联约束。
## 1. 样式处理协议:去 CSS 化 (Zero-CSS Policy)
* **全内联属性****严禁使用 `<style>` 标签或外部 CSS 类。**所有的样式(`fill`, `stroke`, `font-family`, `font-weight`, `font-size`)必须作为 XML 的内联属性写在元素标签上。
* **显式加粗**PPT 解析引擎经常忽略 CSS 的 `font-weight: bold`,必须使用 `<text font-weight="bold">`
## 2. 文本引擎协议 (Text Engine)
* **字体后备栈**`font-family` 必须首选 Windows 预装字体。中文优先 `"Microsoft YaHei", sans-serif`;英文/数字优先 `"Arial", "Inter", sans-serif`
* **绝对行坐标****禁用相对排版(如 `<tspan dy="1.2em">`**。如果文字有多行,尽量输出多行独立的 `<text x="..." y="...">` 标签,强制计算它们的绝对 y 坐标。这样在 PPT 里取消组合时,就是独立完美的文本框,不会叠在一起。
* **显式带单位尺寸**:所有字号最好带有 `px` 单位,如 `font-size="24px"`,部分 PPT 解析引擎对于无单位尺寸会处理出错。
## 3. 图元安全与降级 (Safe Elements & Downgrades)
* **正交倒角法则**:连线折角严禁出现 90 度直角的锯齿。必须在折线 `<path d="...">` 上加上 `stroke-linejoin="round"`,或手动使用圆弧贝塞尔曲线。
* **降级物理阴影****严禁使用复杂的 `<filter id="shadow">`PPT 会丢失效果)。**若要阴影,使用一个比原图向右下偏移 4px、填充色为黑色、`opacity="0.05"` 的 `<rect>` 垫在原图下面。
* **无引用图层扁平化**:禁用 `<use>``<foreignObject>`。所有的图标直接用 `<path>` 画出,或使用基础几何图形组合。
## 4. 层级解耦 (Group Structure)
使用具有语意 `id``<g>` 标签对“业务模块(如底框+文字+图标)”进行打包。
如果有整体移动需求,使用 `<g transform="translate(x, y)">`,这能在用户进入 PPT 取消组合时,保持组内元件的相对位置不乱。