在 Python 中管理上标和下标

添加上标和下标文本

您可以向任何段落部分添加上标和下标文本。在 Aspose.Slides 中,使用 escapement 属性来控制此行为,属性位于 PortionFormat 类。

escapement 是一个百分比,范围从 -100% 到 100%

  • > 0 → 上标(例如,25% = 稍微上移;100% = 完全上标)
  • 0 → 基线(无上标/下标)
  • < 0 → 下标(例如,-25% = 稍微下移;-100% = 完全下标)

步骤:

  1. 创建一个 Presentation 并获取幻灯片。
  2. 添加一个矩形 AutoShape 并访问其 TextFrame
  3. 清除已有的段落。
  4. 对于上标:创建一个段落和一个文本段,设置 portion.portion_format.escapement0 到 100 之间的值,设置文本,然后添加该文本段。
  5. 对于下标:创建另一个段落和文本段,设置 escapement-100 到 0 之间的值,设置文本,然后添加该文本段。
  6. 将演示文稿保存为 PPTX。
import aspose.slides as slides

with slides.Presentation("pres.pptx") as presentation:
    # 获取幻灯片。
    slide = presentation.slides[0]

    # 创建文本框。
    shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 200, 100)
    shape.text_frame.paragraphs.clear()

    # 创建上标文本的段落。
    superscript_paragraph = slides.Paragraph()

    # 创建常规文本的文本段。
    portion1 = slides.Portion()
    portion1.text = "SlideTitle"
    superscript_paragraph.portions.add(portion1)

    # 创建上标文本的文本段。
    superscript_portion = slides.Portion()
    superscript_portion.portion_format.escapement = 30
    superscript_portion.text = "TM"
    superscript_paragraph.portions.add(superscript_portion)

    # 创建下标文本的段落。
    subscript_paragraph = slides.Paragraph()

    # 创建常规文本的文本段。
    portion2 = slides.Portion()
    portion2.text = "a"
    subscript_paragraph.portions.add(portion2)

    # 创建下标文本的文本段。
    subscript_portion = slides.Portion()
    subscript_portion.portion_format.escapement = -25
    subscript_portion.text = "i"
    subscript_paragraph.portions.add(subscript_portion)

    # 将段落添加到文本框。
    shape.text_frame.paragraphs.add(superscript_paragraph)
    shape.text_frame.paragraphs.add(subscript_paragraph)

    presentation.save("TestOut.pptx", slides.export.SaveFormat.PPTX)

常见问题

我能在表格和其他容器中使用上标/下标,而不仅限于普通文本框吗?

是的。您可以在任何暴露 TextFrame 的对象(包括表格单元格)内部将文本格式化为上标或下标。该格式会应用于该框架内的文本段。

导出为 PDF、HTML 或图片时,上标/下标会被保留吗?

是的。Aspose.Slides 在导出到常见格式(如 PDFHTML、以及 raster images)时会保留上标/下标格式,因为渲染管线会遵循文本段级别的格式设置。

我能在同一文本片段中将上标/下标与超链接组合使用吗?

是的。Hyperlinks 在文本段(片段)级别分配,因此同一个文本段可以同时包含超链接并设置为上标或下标。