Gestionar superíndice y subíndice en Python
Agregar texto superíndice y subíndice
Puedes agregar texto superíndice y subíndice a cualquier porción de párrafo. En Aspose.Slides, usa la propiedad escapement de la clase PortionFormat para controlarlo.
escapement es un porcentaje de -100% a 100%:
- > 0 → superíndice (p.ej., 25% = elevación ligera; 100% = superíndice completo)
- 0 → línea base (sin superíndice/subíndice)
- < 0 → subíndice (p.ej., -25% = descenso ligero; -100% = subíndice completo)
Pasos:
- Crea una Presentation y obtén una diapositiva.
- Añade un AutoShape rectangular y accede a su TextFrame.
- Limpia los párrafos existentes.
- Para superíndice: crea un párrafo y una porción, establece
portion.portion_format.escapementa un valor entre 0 y 100, asigna el texto y agrega la porción. - Para subíndice: crea otro párrafo y una porción, establece
escapementa un valor entre -100 y 0, asigna el texto y agrega la porción. - Guarda la presentación como PPTX.
import aspose.slides as slides
with slides.Presentation("pres.pptx") as presentation:
# Obtener una diapositiva.
slide = presentation.slides[0]
# Crear un cuadro de texto.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 200, 100)
shape.text_frame.paragraphs.clear()
# Crear un párrafo para texto superíndice.
superscript_paragraph = slides.Paragraph()
# Crear una porción de texto con texto normal.
portion1 = slides.Portion()
portion1.text = "SlideTitle"
superscript_paragraph.portions.add(portion1)
# Crear una porción de texto con superíndice.
superscript_portion = slides.Portion()
superscript_portion.portion_format.escapement = 30
superscript_portion.text = "TM"
superscript_paragraph.portions.add(superscript_portion)
# Crear un párrafo para texto subíndice.
subscript_paragraph = slides.Paragraph()
# Crear una porción de texto con texto normal.
portion2 = slides.Portion()
portion2.text = "a"
subscript_paragraph.portions.add(portion2)
# Crear una porción de texto con subíndice.
subscript_portion = slides.Portion()
subscript_portion.portion_format.escapement = -25
subscript_portion.text = "i"
subscript_paragraph.portions.add(subscript_portion)
# Añadir los párrafos al cuadro de texto.
shape.text_frame.paragraphs.add(superscript_paragraph)
shape.text_frame.paragraphs.add(subscript_paragraph)
presentation.save("TestOut.pptx", slides.export.SaveFormat.PPTX)
Preguntas frecuentes
¿Puedo aplicar superíndice/subíndice en tablas y otros contenedores, no solo en cuadros de texto normales?
Sí. Puedes dar formato al texto como superíndice o subíndice dentro de cualquier objeto que exponga un TextFrame (incluidas las celdas de tabla). El formato se aplica a las porciones de texto dentro de ese marco.
¿Se conservarán los superíndices/subíndices al exportar a PDF, HTML o imágenes?
Sí. Aspose.Slides conserva el formato de superíndice/subíndice al exportar a formatos comunes como PDF, HTML, y imágenes raster porque el pipeline de renderizado respeta el formato de texto a nivel de porción.
¿Puedo combinar superíndice/subíndice con hipervínculos en el mismo fragmento de texto?
Sí. Los hipervínculos se asignan a nivel de porción (fragmento), por lo que una porción puede tener simultáneamente un hipervínculo y estar formateada como superíndice o subíndice.