← 提示词库 Anthropic/claude-code/skills/google-workspace/references/slides.md 原文 md
🌐 中英双语对照

Google Slides reference / Google Slides 参考

As a first step, before you build, rewrite or restyle any slide, in a new deck or an existing one, you must read the design rules below in full. Before you add or change a chart, also read references/charts.md. After the rules come the Slides connector's tools and how to carry out the rules with them.

作为第一步,在新建、重写或重新设计任何幻灯片之前(无论演示文稿是新的还是既有的),你必须完整阅读下文的设计规则。在添加或修改图表之前,还须阅读 references/charts.md。 规则之后是 Slides 连接器的工具,以及如何借助这些工具落实规则。

Slide design / 幻灯片设计

When the user asks for something specific, such as a slide count, exact wording, a color or a layout, do that; these rules decide what the user left open. The rules for charts are in charts.md; the rules for the words on slides are under "Writing slide copy" below.

当用户提出具体要求时,例如幻灯片数量、确切措辞、颜色或布局,照做即可;这些规则只决定用户留白的部分。图表规则见 charts.md;幻灯片文字的规则见下文"撰写幻灯片文案"(Writing slide copy)一节。

Your slides should be indistinguishable from a top strategy consultancy's deck, an investment bank's pitch book, or a front-page business story.

你制作的幻灯片应达到与顶级战略咨询公司的演示文稿、投资银行的推介材料或报纸头版商业报道难以区分的水准。

【评论】以顶级咨询与投行的交付物作为质量基准,是对模型输出风格的高标准设定,也隐含了幻灯片被当作正式商业文书的定位。

Deck structure / 演示文稿结构

An example outline; the deck's own subject decides the titles:

下面是一个示例大纲;标题由文稿自身的主题决定:

  1. Title slide: "Q3 Cost Review: Reducing Logistics Spend by 15%", with the presenter, date and audience when you know them.
    1. 标题页:"Q3 Cost Review: Reducing Logistics Spend by 15%"(第三季度成本回顾:将物流支出降低 15%),在已知时附上演示者、日期和受众。
  2. Executive summary: logistics costs grew 22% year over year, driven by three controllable factors; fixing them saves $4.2M a year. Previews the deck and the recommendation.
    1. 执行摘要:物流成本同比增长 22%,由三个可控因素驱动;解决它们每年可节省 $4.2M。预览整份文稿和建议。
  3. "Logistics spend outpaced revenue growth 3:1 since Q1": spend against revenue, with the gap opening in Q2.
    1. "Logistics spend outpaced revenue growth 3:1 since Q1"(自第一季度以来,物流支出增速达营收增速的 3 倍):支出与营收对比,差距在第二季度拉开。
  4. "Three drivers explain 80% of the increase: carrier rates, expedited shipping, and warehouse overtime": the increase broken down by driver.
    1. "Three drivers explain 80% of the increase: carrier rates, expedited shipping, and warehouse overtime"(三个因素解释了 80% 的增长:承运商费率、加急运输和仓库加班):按驱动因素分解的增长构成。
  5. "Two carriers raised rates 18% while volume stayed flat": rate change by carrier against volume share.
    1. "Two carriers raised rates 18% while volume stayed flat"(两家承运商提价 18%,而货量持平):各承运商费率变化与货量占比对照。
  6. "Expedited orders doubled, mostly from late order entry, not customer demand": the causes of expedited volume.
    1. "Expedited orders doubled, mostly from late order entry, not customer demand"(加急订单翻倍,主因是订单录入迟滞而非客户需求):加急货量的成因。
  7. "Overtime is concentrated in two sites with outdated staffing models": overtime hours by site.
    1. "Overtime is concentrated in two sites with outdated staffing models"(加班集中在人员编制模型过时的两个站点):各站点加班时长。
  8. "Three fixes, ranked by savings and effort": renegotiation, order cutoff enforcement and staffing changes compared.
    1. "Three fixes, ranked by savings and effort"(三项整改,按节省额与实施难度排序):对比重新谈判、严格执行订单截单时间与人员编制调整。
  9. "Recommendation: pursue all three fixes, starting with carrier renegotiation for fastest payback": savings and payback timeline.
    1. "Recommendation: pursue all three fixes, starting with carrier renegotiation for fastest payback"(建议:三项整改全部推进,从回报最快的承运商重新谈判开始):节省额与回报时间线。
  10. Next steps: owners, milestones, and the decisions needed from this audience by the end of the month.
    1. 后续步骤:负责人、里程碑,以及需要在本月底前由该受众做出的决策。

Designing a slide / 设计一张幻灯片

Design each slide before you build it, in this order: the message, the evidence, the layout. The layout comes last because it depends on what the slide has to hold.

在构建每张幻灯片之前先做设计,顺序是:信息、论据、布局。布局放在最后,因为它取决于幻灯片要承载什么。

Message: the title / 信息:标题

The title carries the slide's message, and most slides need one. There are three conventions for slide titles:

标题承载幻灯片的信息,大多数幻灯片都需要标题。幻灯片标题有三种惯例:

  1. Story: one sentence that tells the reader the main takeaway: "German revenue grew 12% in 2025, three times the US rate". Active voice, a specific subject, the number in it when there is one, at most about fifteen words and never more than two lines; on a 10-inch-wide slide, two lines at 32pt hold about twelve words. Not "German market overview", and not "We analyzed the German market".
    1. **叙事式:**用一句话告诉读者核心结论:"German revenue grew 12% in 2025, three times the US rate"(2025 年德国营收增长 12%,为美国增速的三倍)。主动语态,主语具体,有数字就写进去,最多约十五个词且绝不超过两行;在 10 英寸宽的幻灯片上,32pt 两行约容纳十二个词。不要写"German market overview"(德国市场概览),也不要写"We analyzed the German market"(我们分析了德国市场)。
  2. Label only: the general theme of the slide: "German revenue in 2025".
    1. **纯标签式:**幻灯片的总体主题:"German revenue in 2025"(2025 年德国营收)。
  3. Label and story: "German revenue" on the first line and "German revenue grew 12% in 2025, three times the US rate" on the second. This shows both the theme and the takeaway.
    1. **标签加叙事式:**第一行写"German revenue"(德国营收),第二行写"German revenue grew 12% in 2025, three times the US rate"(2025 年德国营收增长 12%,为美国增速的三倍)。这样主题与结论同时呈现。

Write every title in the deck the same way. If the deck already has a convention, use it. Otherwise default to story titles on content slides.

整套文稿的标题写法保持统一。文稿已有惯例就沿用;否则内容页默认采用叙事式标题。

Structural slides (the title slide, agenda, executive summary, section dividers, next steps, appendix) take a label title whatever the deck's convention. They do not carry a single finding, so a story title reads as forced: "These are the four topics we will cover" is worse than "Agenda". The executive summary's takeaway goes in its body, not its title.

结构性页面(标题页、议程、执行摘要、章节分隔页、后续步骤、附录)无论文稿惯例如何都用标签式标题。它们不承载单一发现,叙事式标题会显得生硬:"These are the four topics we will cover"(这是我们将讨论的四个主题)不如"Agenda"(议程)。执行摘要的结论放在正文里,而不是标题里。

Evidence / 论据

The content's only job is to make the reader believe the title. Before choosing a layout, decide what will do that: text, a graphic, an image, a table, a chart, footnotes, or a combination, and roughly how much of each. Most slides need one main element and a little supporting text:

内容的唯一职责是让读者相信标题。选择布局之前,先决定由什么来完成这件事:文字、图形、图片、表格、图表、脚注,或其组合,以及各自的大致比重。大多数幻灯片需要一个主元素加少量辅助文字:

Layout / 布局

Match the company's style and branding, as shown by the slide master, the finished slides already in the deck, and anything the user has said. Add new slides from the master's layouts so they inherit its fonts, sizes and positions. If no layout fits your design, start from the closest one, so the slide keeps the deck's background and fonts, and build from there.

遵循公司的风格与品牌,依据来自幻灯片母版、文稿中已有的成品页以及用户说过的要求。新幻灯片从母版版式添加,以继承其字体、字号和位置。没有合适版式时,从最接近的版式入手,让幻灯片保留文稿的背景与字体,再行构建。

With the message and the evidence decided, choose the layout that holds them. A text-heavy slide might suit a simple title-and-body layout; a highly visual slide might need no body text, only a graphic with the words built into it. Some common layouts:

信息与论据确定后,选择能容纳它们的布局。文字密集的幻灯片可能适合简单的"标题加正文"版式;高度视觉化的幻灯片可能不需要正文,只需一个把文字内置其中的图形。常见布局有:

Other layouts are fine if they follow the deck's design standards. When the deck has layouts to choose from, use one with text placeholders for any slide that has text, so the text takes the master's fonts and sizes; keep the blank layout for slides that are entirely visual, such as a full-bleed image or a diagram built from shapes. Don't give three or more slides in a row the same layout unless they form a deliberate series, such as one slide per team member.

只要符合文稿的设计标准,其他布局亦可。文稿提供可选版式时,任何含文字的幻灯片都应使用带文本占位符的版式,让文字继承母版的字体和字号;完全视觉化的幻灯片(如满版图片或由形状构成的图示)才用空白版式。连续三页及以上不要用同一版式,除非它们构成有意设计的系列,例如每位团队成员一页。

Starting from the deck's design / 从文稿的既有设计出发

A deck with its own template or theme. Keep its design. New content uses the theme's colors exactly, and new slides use its layouts. If the user asks for a restyle, change the theme and the master rather than restyling slide by slide. A theme change does not reach text and shapes that carry their own fixed colors, which most real decks have, so replace those colors as well.

**自带模板或主题的文稿。**保留其设计。新内容严格使用主题色,新幻灯片使用其版式。用户要求改换风格时,修改主题和母版,而不是逐页重设样式。主题变更不会波及自带固定颜色的文字和形状,而大多数实际文稿都有这类元素,因此这些颜色也要替换。

A deck styled slide by slide on the default theme. Someone built the deck by styling slides directly and never changed the master. The existing slides are the design system: don't create or change a master. Read a representative finished slide (background, fonts, sizes, colors, how shapes are styled) and make new slides match it, applying the styling on each slide the way the existing ones do, since the master has nothing to inherit.

**在默认主题上逐页设置样式的文稿。**有人直接对幻灯片逐页设置样式构建了文稿,从未修改母版。既有幻灯片就是设计体系:不要创建或修改母版。研读一页有代表性的成品页(背景、字体、字号、颜色、形状的样式),让新幻灯片与之匹配,并像既有页面那样逐页应用样式,因为母版没有可供继承的内容。

A new or blank deck. Set the design up in the master before adding any slide: theme colors, a heading font and a body font, the background, the default text colors, and a bold title style. Text color is set in the master's text styles, not shape by shape. Let the slides inherit it, so the deck stays consistent and a later restyle is one edit. Anything that belongs on every slide, such as a background or a logo, goes on the master, never copied onto each slide. If the deck is for a company, match its brand; look up its brand guidelines if they are not obvious. Otherwise use what the user told you, and fill in the rest. Unless the palette you pick below says otherwise:

**新建或空白文稿。**在添加任何幻灯片之前,先在母版中完成设计设定:主题色、标题字体和正文字体、背景、默认文字颜色,以及加粗的标题样式。文字颜色在母版的文本样式中设定,而不是逐个形状设置。让幻灯片继承这些设定,这样文稿保持一致,日后改换风格也只需一次编辑。凡是应出现在每一页上的元素,如背景或徽标,都放在母版上,绝不逐页复制。文稿是为某家公司制作时,与其品牌保持一致;品牌规范不明显时就去查证。否则使用用户告知的内容,其余自行补足。除非你在下面选择的配色方案另有说明:

Do not default to a dark-blue background. Pick a palette that matches the content:

不要默认使用深蓝背景。选择与内容匹配的配色方案:

A cream or beige background (such as #F5F5DC, #FAF0E6, #FAEBD7 or #FFF8E1) belongs only to the warm editorial look; never use one as a default. A dark background suits the title slide and section dividers.

奶油色或米色背景(如 #F5F5DC、#FAF0E6、#FAEBD7 或 #FFF8E1)只属于暖调编辑风;绝不将其作为默认。深色背景适合标题页和章节分隔页。

Finished slides and rough slides. Not every existing slide is a style reference. What makes a slide rough is unfinished formatting, not its words: text boxes left empty or added in the stock font and size rather than the deck's, a bare box standing in for a chart, fonts and colors that match nothing else in the deck. A title that is just "draft", "WIP", "TBD" or "placeholder", or a sticky note on the slide ("update numbers before Friday"), is a reason to look closer, not proof. Filler text or an unfilled placeholder on a designed template slide does not make it rough, and a title slide or divider that is meant to look different is not rough either. Take the deck's conventions from the finished slides: the ones styled deliberately, that agree with each other when there is more than one. If every slide is rough, there is no deck style to match: take fonts and colors from the master when the deck has its own rather than the default one, follow this guide for the rest, and tell the user so in one line. Rough slides are still slides to fill in or fix when asked; they are just not the style to copy.

**成品页与粗糙页。**并非每一页既有幻灯片都可作为风格参考。一页幻灯片显得粗糙在于排版未完成,而不在于它的文字:留空或以默认字体字号(而非文稿字体)添加的文本框、用一个空框充当图表、与文稿其他部分毫不匹配的字体和颜色。标题只写着"draft"、"WIP"、"TBD"或"placeholder",或页面上贴着便签("周五前更新数字"),是值得细看的线索,而不是定论。设计好的模板页上的占位文字或未填写的占位符并不使它粗糙,本就应与众不同的标题页或分隔页也不算粗糙。从成品页中提炼文稿惯例:即那些经过刻意设计、且在多于一页时彼此一致的页面。如果每一页都粗糙,就没有可循的文稿风格:文稿拥有自己的母版(而非默认母版)时,从母版提取字体和颜色,其余遵循本指南,并用一句话告知用户。粗糙的幻灯片在被要求时仍是要填写或修复的对象;它们只是不宜模仿的风格。

Text / 文字

Keep slide text brief. If you have more than one sentence, use bullet points.

幻灯片文字要简短。超过一句话就使用项目符号列表。

【评论】这是典型的防幻觉条款:宁可缺数据也不允许模型虚构数字,与要求向用户索取缺失数据的做法相配合。

When a slide needs a lot of text, break it up with callouts or a supporting visual.

一张幻灯片需要承载大量文字时,用标注框或辅助视觉元素将其拆分。

Graphics / 图形

A well-chosen graphic shows structure at a glance that a paragraph would take a while to describe: a diagram, flow chart, timeline, process map, org chart, funnel, pyramid, 2×2 matrix, Venn diagram, cycle, roadmap, before-and-after comparison, or icon-and-label layout.

一个恰当的图形能让人一眼看出结构,而用段落描述则要花不少工夫:示意图、流程图、时间线、流程映射、组织架构图、漏斗、金字塔、2×2 矩阵、维恩图、循环图、路线图、前后对比,或"图标加标签"版式。

Images / 图片

An image must carry information. A generic stock photo is worse than empty space. Use an image when it is the evidence: a product shot, a screenshot, a place, a person, a before and after. Otherwise leave it out.

图片必须承载信息。一张千篇一律的图库照片还不如留白。只有当图片本身就是论据时才使用:产品实拍、屏幕截图、地点、人物、前后对比。否则不要放图。

Icons / 图标

A small icon beside each point gives the reader something to scan before they read, and it is the simplest way to fix a slide that would otherwise be a wall of text. Use icons when a slide has three to six parallel items (features, categories, steps, risks, teams) and nothing in the content calls for a chart or a diagram: a row of icons with labels, or a grid of icon cards, reads at a glance where four bullets do not. Icons also help a text-heavy slide whose text you cannot cut, by giving each block an anchor.

在每个要点旁放一个小图标,让读者在阅读之前先有一个可扫视的对象,这也是改造"满页文字"幻灯片最简单的办法。幻灯片有三到六个并列条目(功能、类别、步骤、风险、团队),且内容不需要图表或图示时,使用图标:一排带标签的图标或一组图标卡片可以一眼读完,四条列表项则做不到。对于文字无法删减的文字密集型幻灯片,图标也能通过为每个文字块提供锚点而发挥作用。

Tables / 表格

A table is right when the reader looks up specific values across a few dimensions, or compares a small set of items on several attributes. If one comparison is the point, that is a chart, not a table. Keep the styling light so the numbers read first.

读者需要在少数几个维度上查询具体数值,或在若干属性上比较少量条目时,表格是合适的。如果核心只是单一对比,那应该用图表而非表格。样式保持轻量,让数字优先进入视线。

People read tables and charts differently. A table is read across the rows, then down, so it suits an audience where each person looks up their own row, such as regional sales where each reader finds their region. In a live presentation a table hides the point in detail. A full table in the appendix serves pre-reads and questions. Charts make a point faster and suit executive audiences. Use charts for the message and tables for reference.

人们阅读表格和图表的方式不同。表格是横着按行读、再纵向看的,适合每个人查找自己所在行的受众,例如区域销售场景中每位读者寻找自己的区域。现场演示中,表格会把要点埋进细节里。附录中的完整表格服务于预读和答疑。图表更快地传达观点,适合高管受众。传达信息用图表,供人查阅用表格。

Footnotes and sources / 脚注与来源

Footnotes do two jobs.

脚注承担两项职责。

The first is citing sources. If a number came from external research or an internal data set, put a superscript number immediately after the claim ("…grew 12%¹") and a footnote at the bottom of the slide starting with the same number, specific enough that the reader can find the original. Include the publisher and the date, because a market-size figure from 2021 and one from 2025 are different claims. Put hyperlinks behind the reference text rather than pasting raw URLs. Numbering restarts on each slide; if the deck has a sources appendix, number continuously across slides instead.

第一是标注来源。某个数字来自外部研究或内部数据集时,在论断后紧跟一个上标数字("…grew 12%¹"),并在幻灯片底部放一条以相同数字开头的脚注,具体到读者能找到原始出处。注明发布方和日期,因为 2021 年的市场规模数字与 2025 年的是不同的论断。超链接放在引用文字背后,不要粘贴裸 URL。每页重新编号;文稿设有来源附录时,则改为全稿连续编号。

The second is methodology and caveats: detail the main message doesn't need but that matters if someone challenges the analysis, such as sample sizes, exclusions, exchange rates, or how a term like "active user" is defined. Put methodology and caveats first, then the provenance, starting "Source:".

第二是方法与注意事项:即主信息不需要、但一旦有人质疑分析时就重要的细节,例如样本量、剔除项、汇率,或"active user"(活跃用户)这类术语的定义。先写方法与注意事项,再写出处,以"Source:"开头。

Keep the citation format the same across the deck. Footnotes sit at the bottom of the slide at 10–12pt in a muted color. If everything on the slide came from one report, a single "Source: [report, year]" line replaces per-item footnotes.

引用格式在整个文稿中保持一致。脚注位于幻灯片底部,10–12pt,用柔和的颜色。整页内容都来自同一份报告时,用一行"Source: [报告名, 年份]"替代逐项脚注。

Cite only sources you actually have, whether the user gave them to you or you read them yourself. Do not add a "Prepared by" line, a confidentiality notice, or a date outside the title slide unless the user asked for it. A source you did not have is a fabricated citation, and a chart of the user's own numbers needs none.

只引用你实际掌握的来源,无论是用户提供的还是你亲自查阅的。除非用户要求,不要添加"Prepared by"(编制人)行、保密声明,或标题页之外的日期。你没有掌握的来源就是伪造引用;使用用户自身数字的图表则无需引用。

【评论】该条款把"引用未掌握的来源"明确定性为伪造引用,与"绝不编造数字"共同构成对数据可信度的约束,也是对模型编造出处倾向的针对性防范。

Size, spacing and placement / 尺寸、间距与位置

Visual hierarchy and size. The reader's eye should land on the title first, then the main visual or the bold text, then the detail. Size and weight control that order. Slides are read from the back of a room, so sizes that look right on a web page are too small here. On a standard 16:9 slide:

**视觉层级与字号。**读者的视线应先落在标题上,再落到主视觉或加粗文字上,最后是细节。字号和字重控制这一顺序。幻灯片是在房间后排观看的,因此在网页上合适的字号在这里都偏小。标准 16:9 幻灯片上:

Element Size
Slide title 32–40pt bold, at least about 1.75× the body
Section header 24–28pt
Body text 16–18pt
Captions 14pt
Footnotes and source lines 10–12pt, muted
元素 字号
幻灯片标题 32–40pt 加粗,至少约为正文的 1.75 倍
章节标题 24–28pt
正文文字 16–18pt
图注说明 14pt
脚注与来源行 10–12pt,柔和色

Footnotes, source lines, the second line of a chart label, a chart's year row (11pt) and chart callouts (11–12pt) are the only text you add below 14pt, with one exception: a template whose own body text is smaller, which is common in banking and consulting decks. Match the template, since consistency with it matters more than the floor, but don't go below 10pt. Set sizes explicitly instead of leaving them to defaults.

脚注、来源行、图表标签的第二行、图表年份行(11pt)和图表标注(11–12pt)是你仅可使用小于 14pt 文字的情形,唯一例外是正文本身更小的模板——这在银行和咨询文稿中很常见。与模板保持一致,因为与模板一致比字号下限更重要,但不低于 10pt。显式设定字号,不要依赖默认值。

Fitting text. If the content doesn't fit at these sizes, there is too much content for one slide. Don't shrink text you wrote to make it fit: resize the container, cut words, or split the slide. Text the user wrote keeps its wording; it may go modestly below its original size, and if it ends up under 10pt, tell the user. Never leave text overflowing its box or cut off.

**文字适配。**内容在这些字号下放不下,说明单页内容过多。不要缩小你写的文字来硬塞:调整容器大小、删减文字或拆分幻灯片。用户写的文字保留原措辞;字号可适度低于原值,若最终低于 10pt,告知用户。绝不留下溢出文本框或被裁切的文字。

Use the slide. Keep a margin of about half an inch on every side. On a slide you lay out, fill most of that area (about 70% or more of it), use most of the width, and reach toward the bottom margin rather than clustering in the top half. Open space under a short list is fine; a slide that is all margin is not. When you edit an existing slide, the user's layout is intentional; don't rearrange it to fill space.

**善用版面。**四周保留约半英寸的边距。在你排版的幻灯片上,填满该区域的大部分(约 70% 以上),用足宽度,内容向下边距延伸,而不是挤在上半部分。短列表下方留白无妨;整页都是边距的幻灯片不行。编辑既有幻灯片时,用户的布局是有意为之;不要为填满空间而重排。

Spacing. Leave 0.3–0.5 inches between content blocks, and use the same gap throughout the deck.

**间距。**内容块之间留 0.3–0.5 英寸,整个文稿使用相同的间距。

The title band. Measure where the title ends before placing content under it, since the title's height varies by template, and start the content at least 10pt below it.

**标题带。**在标题下方放置内容前,先测量标题结束的位置,因为标题高度随模板而异,内容至少从其下方 10pt 处开始。

Insets. Text on a shape or a card is inset 10–15pt from the shape's edges. Text touching the edge of its container is the most common small layout defect.

**内边距。**形状或卡片上的文字距形状边缘内缩 10–15pt。文字贴住容器边缘是最常见的小型排版缺陷。

Alignment. Align body text left rather than centering it, so the slide has a clean edge. Title alignment follows the layout: centered on the title slide and section headers, left-aligned on content slides. A template's own title alignment always wins.

**对齐。**正文左对齐而非居中,使幻灯片边缘整洁。标题对齐随版式而定:标题页和章节页居中,内容页左对齐。模板自身的标题对齐方式始终优先。

Clutter, emphasis and variety / 克制、强调与变化

Clutter. Every element on a slide costs the audience attention. Leave off anything that does not add more than it costs, and do not fill white space for its own sake.

**杂乱。**幻灯片上的每个元素都在消耗观众的注意力。凡是收益抵不过成本的一律去掉,也不要为填白而填白。

Highlighting when a slide has to be dense. Sometimes a slide or a chart has to be complicated. You can still get the message across by directing attention. If something needs to stand out and no legend has already assigned the colors, use color for it. Contrast also shows a shift, such as shading where actuals turn into projections. You can circle related elements, or put a callout on the one item with a non-obvious takeaway; draw it as a plain box and line, because the stock callout shapes look bad (a callout on a chart follows Callouts in references/charts.md instead, with no box). On wordy slides, bold the words someone glancing at the slide needs; they can read the full sentences if they want to.

**幻灯片不得不密集时的强调。**有时幻灯片或图表不得不复杂。你仍可以通过引导注意力来传达信息。某处需要突出且图例尚未分配颜色时,就用颜色来实现。对比也能呈现转变,例如在实际值转为预测值处加底纹。可以圈出相关元素,或对唯一一个结论不直观的条目加标注;把它画成朴素的框加引线,因为自带的标注形状观感不佳(图表上的标注则遵循 references/charts.md 中"标注"(Callouts)的规则,不加框)。文字较多的页面上,对匆匆一瞥的读者所需的词加粗;想细读的人自会读完整句子。

Variety. The default failure is a deck where every slide is a title and a block of bullets. Nobody in the room reads a paragraph off a screen, and twelve slides with the same shape blur together. Bullets should be the minority. If more than about a third of the deck is coming out as bullet slides, some of those slides contain a number or a comparison that should be a chart, and some are two slides squeezed into one. A slide holds one message and, if it is a bullet slide, a few short lines, usually three or four. A slide that needs a paragraph is a pre-read page, not a slide: split it, or move the detail to the appendix. Vary the rhythm on purpose: a big number after two charts, a dark divider between sections, an image slide to open a section. Use different kinds of slides, and build each kind the same way every time.

**变化。**最常见的失败是整份文稿每一页都是标题加一组列表。现场没有人会逐段读屏幕上的文字,而十二页同构的幻灯片会混成一片。列表页应当是少数。文稿中超过约三分之一的页面是列表页时,其中一些页面含有本应做成图表的数字或对比,另一些则是两页内容挤成了一页。一张幻灯片承载一个信息;如果是列表页,则只有几行短句,通常三到四行。需要一整段文字的页面是预读材料,不是幻灯片:拆分它,或把细节移入附录。有意变换节奏:两张图表后接一页大数字,章节之间放深色分隔页,用图片页开启新章节。使用不同种类的页面,且每一类的构建方式保持一致。

Writing slide copy / 撰写幻灯片文案

These rules cover the words you put on slides: titles, bullets, labels, callouts and footnotes.

这些规则约束你放在幻灯片上的文字:标题、列表项、标签、标注和脚注。

Slide copy should read as though a person wrote it. When readers think something was written by AI, they judge it as sloppy and stop trusting it, whatever the content. They make that judgment from a set of common indicators, listed below, so take extra care to keep them out of your writing.

幻灯片文案应读起来像出自真人之手。读者一旦认为某段文字是 AI 写的,无论内容如何,都会判定它草率并不再信任。他们依据一组常见特征做出这种判断,下文逐一列出,因此要格外注意不让它们出现在你的文字里。

【评论】该段及后续条目是对 AI 生成文本典型特征的系统性规避清单,属于面向"去机器感"的风格防御设计,也反映了读者信任与文本来源感知之间的关系。

Common mistakes / 常见错误

Slides connector / Slides 连接器

This part covers the Slides connector: read_presentation, read_slide_page, read_slide_page_thumbnail, and update_presentation. Most of the behavior here was tested against Google's Slides API; the rest was seen through the connector, and a few rules have not been checked yet.

本部分介绍 Slides 连接器:read_presentation、read_slide_page、read_slide_page_thumbnail 和 update_presentation。此处所述行为大多已针对 Google 的 Slides API 做过测试;其余是通过连接器观察到的,还有少数规则尚未核验。

Applying the design rules / 应用设计规则

The design rules are above. What follows is specific to building with update_presentation.

设计规则见上文。以下是使用 update_presentation 进行构建的专属说明。

Create / 创建

Choose a route based on the deck.

根据文稿情况选择路线。

How a slide is addressed / 幻灯片的寻址方式

Read / 读取

["revisionId,pageSize,layouts(objectId,layoutProperties.name),slides(objectId,slideProperties.layoutObjectId,pageElements(objectId,size,transform,shape(shapeType,placeholder,text.textElements(textRun(content,style.fontSize,style.bold))),table(rows,columns,tableColumns,tableRows(rowHeight,tableCells(location,text.textElements.textRun.content))),image.contentUrl,sheetsChart(spreadsheetId,chartId),line.lineType,elementGroup.children.objectId))"]

Unlike the Sheets connector, Slides accepts parentheses in masks.
与 Sheets 连接器不同,Slides 的掩码接受括号。

python <skill>/scripts/slides_helper.py outline deck.json
[3] slide s4_slide  layout BLANK
  s4_title   shape  x=0.50 y=0.35 w=9.00 h=0.70  TEXT_BOX 32pt 'Revenue grew 42% year over year'
  s4_table   table  x=3.70 y=1.30 w=5.80 h=1.20  2x3 first row ['Metric', 'Q1', 'Q2']
  s4_note    shape  x=0.50 y=4.60 w=4.00 h=0.30  TEXT_BOX 12pt 'This footnote is...'  !! TEXT MAY OVERFLOW (needs ~0.80 in)

It flags elements off the page, boxes that overlap, text that probably overflows its box, and empty placeholders. "inherited size" means the font size comes from the layout, so the overflow check is skipped for that box. An overlap flag means the boxes intersect; check the render to see whether the content actually collides.
它会标记超出页面的元素、相互重叠的文本框、可能溢出文本框的文字以及空占位符。"inherited size"(继承字号)表示字号来自版式,因此该框会跳过溢出检查。重叠标记表示两个框相交;需查看渲染结果判断内容是否真的相撞。

Build slides / 构建幻灯片

Build new slides and elements from an inch-based spec with slides_helper.py build. It converts to EMU, sets unscaled transforms, checks IDs, styles text, fills tables, and warns about text that won't fit.

用 slides_helper.py build 按基于英寸的规格构建新幻灯片和元素。它会换算成 EMU、设置未缩放的变换、检查 ID、设置文字样式、填充表格,并对放不下的文字发出警告。

{"slides": [
  {"id": "s4_slide", "layout": "BLANK", "index": 3,
   "elements": [
     {"id": "s4_title", "type": "text", "x": 0.5, "y": 0.35, "w": 9, "h": 0.7,
      "text": "Revenue grew 42% year over year", "size": 32, "bold": true, "color": "#1F2937"},
     {"id": "s4_card", "type": "round_rect", "x": 0.5, "y": 1.3, "w": 2.8, "h": 1.6,
      "fill": "#E8EEF7", "text": "ARR\n$4.2M", "size": 24, "bold": true, "color": "#1F3864", "align": "CENTER"},
     {"id": "s4_table", "type": "table", "x": 3.7, "y": 1.3, "w": 5.8, "size": 14,
      "rows": [["Metric", "Q1", "Q2"], ["ARR", "$3.0M", "$4.2M"]],
      "header": true, "col_align": ["START", "END", "END"]}]},
  {"id": "s3_slide", "existing": true,
   "elements": [{"id": "s3_label", "type": "text", "x": 0.5, "y": 2.1, "w": 4, "h": 0.5,
                 "text": "of pilots converted", "size": 16}]}]}
python <skill>/scripts/slides_helper.py build spec.json --revision <revisionId> [--page 10x5.625]

The output is the full requests and writeControl for update_presentation; warnings go to stderr. Fix every warning before sending, apart from the small-text ones that "Applying the design rules" allows. Slides never shrinks text to fit, so a warned box will spill. Build also warns about text boxes and shapes under 14 pt that aren't a short footer line at the bottom of the slide, and about typed bullet marks. Element types: text, rect, round_rect, ellipse, table. On a text element, "bullets": true makes each line a bullet and "space_below" adds points after each paragraph (about 8 to 10 points suits bulleted lines). On a table, "col_widths" sets each column in inches (give a label column more room than number columns) and "col_align" aligns each column ("END" for numbers). Set "existing": true to add elements to a slide that already exists. Pass --page when the deck isn't 10 x 5.625 in.

输出是 update_presentation 所需的完整 requests 和 writeControl;警告输出到 stderr。发送前修复每一个警告,"应用设计规则"一节所允许的小字警告除外。Slides 从不缩小文字来适配,因此被警告的文本框一定会溢出。build 还会对小于 14pt、且不属于幻灯片底部短页脚行的文本框和形状发出警告,也会对手工键入的列表符号发出警告。元素类型:text、rect、round_rect、ellipse、table。对文本元素,"bullets": true 把每一行变成列表项,"space_below" 在每段之后加间距(约 8 到 10 磅适合列表行)。对表格,"col_widths" 以英寸设定各列宽(标签列应比数字列更宽),"col_align" 设置各列对齐(数字用 "END")。向已存在的幻灯片添加元素时设置 "existing": true。文稿不是 10 x 5.625 英寸时传 --page。

Edit recipes / 编辑配方

Each recipe is part of one update_presentation call with writeControl.requiredRevisionId from your last read.

每个配方都是一次 update_presentation 调用的组成部分,writeControl.requiredRevisionId 取自你上一次读取。

Change text everywhere. replaceAllText with containsText: {"text": ..., "matchCase": true} needs no IDs. Limit it with pageObjectIds to change only some slides. Use {{placeholders}} in templates for this.

全局替换文字。replaceAllText 配 containsText: {"text": ..., "matchCase": true} 无需 ID。用 pageObjectIds 限定范围,只改动部分幻灯片。模板中的 {{placeholders}} 正是为它准备的。

Replace one box's text. deleteText with textRange: {"type": "ALL"}, then insertText at insertionIndex: 0. The new text keeps the box's style. Deleting from an already-empty box fails, so check the read first.

**替换单个文本框的文字。**先用 deleteText 配 textRange: {"type": "ALL"},再在 insertionIndex: 0 处 insertText。新文字沿用该框的样式。对已空的文本框执行删除会失败,所以先核对读取结果。

Use a layout's placeholders. createSlide with slideLayoutReference: {"predefinedLayout": "TITLE_AND_BODY"} and placeholderIdMappings naming the placeholders you'll fill:

使用版式的占位符。createSlide 配 slideLayoutReference: {"predefinedLayout": "TITLE_AND_BODY"},并用 placeholderIdMappings 指明你要填写的占位符:

{"createSlide": {"objectId": "s2_slide", "insertionIndex": 1,
  "slideLayoutReference": {"predefinedLayout": "TITLE_AND_BODY"},
  "placeholderIdMappings": [
    {"layoutPlaceholder": {"type": "TITLE", "index": 0}, "objectId": "s2_title"},
    {"layoutPlaceholder": {"type": "BODY", "index": 0}, "objectId": "s2_body"}]}}

Then insertText into s2_title and s2_body. Placeholder text takes the theme's font and size, which keeps the deck consistent. Predefined layouts include TITLE, TITLE_AND_BODY, TITLE_AND_TWO_COLUMNS, TITLE_ONLY, SECTION_HEADER, BIG_NUMBER, and BLANK. A deck with a custom theme may name its layouts differently; the masked read lists them, and slideLayoutReference: {"layoutId": ...} picks one by ID. Fill or delete every placeholder you create, because an empty one shows prompt text in the editor.

然后向 s2_title 和 s2_body 执行 insertText。占位符文字继承主题的字体和字号,从而保持文稿一致。预定义版式包括 TITLE、TITLE_AND_BODY、TITLE_AND_TWO_COLUMNS、TITLE_ONLY、SECTION_HEADER、BIG_NUMBER 和 BLANK。带自定义主题的文稿版式名称可能不同;带掩码的读取会列出它们,用 slideLayoutReference: {"layoutId": ...} 按 ID 选取。你创建的每个占位符都要填写或删除,因为空占位符会在编辑器里显示提示文字。

Bullets. Insert lines separated by real newlines, then createParagraphBullets with textRange: {"type": "ALL"} and bulletPreset: "BULLET_DISC_CIRCLE_SQUARE". Typed "- " is text, not a bullet, and createParagraphBullets keeps typed markers as text, so leave them out of the inserted lines.

**列表。**插入以真实换行符分隔的多行文字,然后用 createParagraphBullets 配 textRange: {"type": "ALL"} 和 bulletPreset: "BULLET_DISC_CIRCLE_SQUARE"。手工键入的 "- " 只是文字,不是列表符号,且 createParagraphBullets 会把键入的符号保留为文字,因此插入的行里不要带它们。

Style text. updateTextStyle with style and a matching fields list, such as "fontSize,bold,foregroundColor". Font size is {"magnitude": 24, "unit": "PT"}; color is {"opaqueColor": {"rgbColor": {"red": ..., "green": ..., "blue": ...}}} with values from 0 to 1. Alignment is a paragraph property: updateParagraphStyle with style.alignment (START, CENTER, END, JUSTIFIED).

设置文字样式。updateTextStyle 配 style 和对应的 fields 列表,例如 "fontSize,bold,foregroundColor"。字号写作 {"magnitude": 24, "unit": "PT"};颜色写作 {"opaqueColor": {"rgbColor": {"red": ..., "green": ..., "blue": ...}}},取值 0 到 1。对齐是段落属性:updateParagraphStyle 配 style.alignment(START、CENTER、END、JUSTIFIED)。

Shape fill and outline. updateShapeProperties with shapeBackgroundFill.solidFill.color and outline.propertyState: "NOT_RENDERED" to drop the border.

形状填充与轮廓。updateShapeProperties 配 shapeBackgroundFill.solidFill.color;要去掉边框,用 outline.propertyState: "NOT_RENDERED"。

Move or resize. updatePageElementTransform with applyMode: "ABSOLUTE" and a full transform. Remember that the element's base size stays the same, so set scaleX / scaleY to the rendered size divided by the base size. Moving is safer than resizing: to resize a text box, it is often simpler to delete it and create a new one at the right size.

移动或缩放。updatePageElementTransform 配 applyMode: "ABSOLUTE" 和完整的变换矩阵。注意元素的基础 size 不变,因此要把 scaleX / scaleY 设为渲染尺寸除以基础尺寸。移动比缩放安全:要改变文本框大小时,删掉重建一个尺寸合适的往往更简单。

Tables. insertText and updateTextStyle take cellLocation: {"rowIndex": r, "columnIndex": c}. updateTableCellProperties with a tableRange sets cell fills. insertTableRows, deleteTableRow, insertTableColumns, and deleteTableColumn change structure. updateTableColumnProperties sets column widths in EMU.

表格。insertText 和 updateTextStyle 接受 cellLocation: {"rowIndex": r, "columnIndex": c}。updateTableCellProperties 配 tableRange 设置单元格填充。insertTableRows、deleteTableRow、insertTableColumns 和 deleteTableColumn 改变结构。updateTableColumnProperties 以 EMU 设定列宽。

Charts from Sheets. createSheetsChart with the sheet's spreadsheetId, the chartId (from the Sheets addChart reply, or from get_spreadsheet with fields: ["sheets.properties.title", "sheets.charts.chartId", "sheets.charts.spec.title"]), linkingMode: "LINKED", and elementProperties. A linked chart stays tied to its data; refreshSheetsChart updates it after the sheet changes. Don't paste a chart as an image.

来自 Sheets 的图表。createSheetsChart 配表格文件的 spreadsheetId、chartId(来自 Sheets addChart 的响应,或用 get_spreadsheet 配 fields: ["sheets.properties.title", "sheets.charts.chartId", "sheets.charts.spec.title"] 获取)、linkingMode: "LINKED" 和 elementProperties。关联图表与其数据保持绑定;表格文件变更后用 refreshSheetsChart 更新。不要把图表粘贴成图片。

Images. createImage needs a URL Google can fetch publicly. For a local image, build the slide in a .pptx with the pptx skill and upload it, or ask the user to insert the image.

图片。createImage 需要 Google 可公开抓取的 URL。本地图片可先用 pptx 技能构建 .pptx 再上传,或请用户自行插入图片。

Reorder, copy, delete. updateSlidesPosition with slideObjectIds and insertionIndex; duplicateObject for a slide or element (set objectIds to name the copies); deleteObject for either. List slideObjectIds in the slides' current order in the deck, or the whole batch is rejected; the listed slides move as a block and keep that order. duplicateObject puts each copy directly after the original, so copying one slide several times leaves the copies in the reverse of the order you sent the requests. To make several copies in a chosen order in one batch: duplicate the original once per copy, sending the requests in the reverse of that order, so the copies end up after it in the order you want. Fill them. If they belong elsewhere in the deck, move them as a block with one updateSlidesPosition that lists them in that order. Delete the original if it was a template.

重排、复制、删除。updateSlidesPosition 配 slideObjectIds 和 insertionIndex;复制幻灯片或元素用 duplicateObject(用 objectIds 为副本命名);二者都可用 deleteObject 删除。slideObjectIds 必须按幻灯片在文稿中的当前顺序列出,否则整批请求被拒;列出的幻灯片作为一个整体移动并保持该顺序。duplicateObject 把每个副本直接放在原件之后,因此对同一页多次复制时,副本顺序与你发送请求的顺序相反。要在一个批次中按选定顺序生成多个副本:每个副本复制一次原件,并按目标顺序的逆序发送请求,这样副本最终按你想要的顺序排列在原件之后。填好它们的内容。若它们应属于文稿的其他位置,用一次 updateSlidesPosition 按该顺序列出并整体移动。若原件只是模板,删除它。

Verify / 验证

  1. Read the deck with the mask above and run slides_helper.py outline. Check the text, slide order, and every flag.
    1. 用上文掩码读取文稿并运行 slides_helper.py outline。检查文字、幻灯片顺序和每一个标记。
  2. Where you can run code, look at the rendered slides. Export with Drive download_file_content and exportMimeType: "application/pdf"; a large result is saved to a file. If the export comes back in the chat instead, skip the render rather than copying it into a file. Otherwise:
    1. 在可以运行代码的场合,查看渲染后的幻灯片。用 Drive 的 download_file_content 配 exportMimeType: "application/pdf" 导出;较大的结果会存为文件。如果导出内容直接出现在对话里,就跳过渲染,不要把它抄进文件。否则:
python <skill>/scripts/render_export.py <saved export> render --pages 3-4

Open each page image and check for overflow, overlap, clipped text, and low contrast. read_slide_page_thumbnail returns an image URL instead; use it only if your surface can open image URLs, since some environments can't.
打开每一页的图片,检查溢出、重叠、文字被裁切和低对比问题。read_slide_page_thumbnail 返回的是图片 URL;仅当你的运行环境能打开图片 URL 时才使用它,因为有些环境做不到。
3. Fix the problems, then check again. If you can't run code or render, rely on step 1 and tell the user you couldn't check the layout visually.
3. 修复问题后再次检查。不能运行代码或渲染时,依赖第 1 步,并告知用户你无法以视觉方式核查版面。

Slides failures / Slides 常见故障

Symptom Cause Fix
A read is 100 KB or more No field mask, so layouts and masters came back Use the mask in Read.
Elements land in the wrong place or size Base size used without the transform scale Use slides_helper.py outline for real geometry, and build for new elements.
A table is a different size than requested Table size comes from columns and rows, and rows grow with text Read tableColumns and tableRows; set widths with updateTableColumnProperties.
Text spills out of its box Slides doesn't shrink text Enlarge the box, cut the text, or split the slide (Fitting text above says when a smaller size is allowed). build warns before you send.
The object ID (ab) length should not be less than 5, or a duplicate ID error IDs too short, reused, or with invalid characters Use descriptive IDs such as s4_title, unique per deck.
Unknown dimension unit UNIT_UNSPECIFIED A size or transform without unit: "EMU", or a new shape with no size Give every new element a full size and transform with units. build does this.
Prompt text such as "Click to add title" appears An empty placeholder Fill it or delete it. outline flags these.
createImage fails The URL isn't publicly fetchable Use a public URL, or the .pptx upload route.
deleteText: The startIndex 0 must be less than the endIndex 0 The box has no text to delete Skip the delete when the read shows no text.
createSlide: The placeholder (…) is not on the page placeholderIdMappings names a placeholder the layout doesn't have Map only the placeholders that layout has; TITLE_ONLY has no BODY.
症状 原因 解决方法
一次读取达到 100 KB 或更多 未传字段掩码,版式和母版全部返回 使用"读取"一节中的掩码。
元素位置或尺寸不对 直接使用了基础 size 而未乘变换缩放 用 slides_helper.py outline 获取真实几何信息,新元素用 build。
表格尺寸与请求不符 表格尺寸来自列与行,且行随文字变高 读取 tableColumns 和 tableRows;用 updateTableColumnProperties 设定列宽。
文字溢出文本框 Slides 不会缩小文字适配 扩大文本框、删减文字或拆分幻灯片(上文"文字适配"说明了何时允许缩小字号)。发送前 build 会发出警告。
The object ID (ab) length should not be less than 5,或 ID 重复错误 ID 过短、重复或含非法字符 使用 s4_title 这类描述性 ID,并保证全文稿唯一。
Unknown dimension unit UNIT_UNSPECIFIED 尺寸或变换缺少 unit: "EMU",或新形状没有尺寸 为每个新元素提供带单位的完整 size 和 transform。build 会自动完成。
出现"Click to add title"等提示文字 存在空占位符 填写或删除它。outline 会标记这些情况。
createImage 失败 URL 无法公开抓取 换用公开 URL,或走 .pptx 上传路线。
deleteText:The startIndex 0 must be less than the endIndex 0 文本框内没有可删除的文字 读取结果显示无文字时跳过删除。
createSlide:The placeholder (…) is not on the page placeholderIdMappings 指定了版式没有的占位符 只映射该版式已有的占位符;TITLE_ONLY 没有 BODY。