Superscript and subscript are formatting options that allow you to raise or lower characters in relation to the main text. Superscript is typically used for mathematical expressions, footnotes, ordinal indicators (such as "1st" or "2nd"), and chemical formulas. Subscript is commonly employed in chemical equations, mathematical notation, and certain linguistic elements. By adding superscripts and subscripts, you can enhance the readability and professionalism of your documents, especially in scientific, mathematical, and technical writing. In this article, we will demonstrate how to add superscripts and subscripts to Word documents in Python using Spire.Doc for Python.
- Add Superscript and Subscript Text to Word in Python
- Apply Superscript and Subscript Formatting to Existing Text in Word in Python
Install Spire.Doc for Python
This scenario requires Spire.Doc for Python and plum-dispatch v1.7.4. They can be easily installed in your Windows through the following pip command.
pip install Spire.Doc
If you are unsure how to install, please refer to this tutorial: How to Install Spire.Doc for Python on Windows
Add Superscript and Subscript Text to Word in Python
You can add text to a paragraph using the Paragraph.AppentText() method. After that, you can apply superscript or subscript formatting to the text through the TextRange.CharacterFormat.SubSuperScript property. The detailed steps are as follows.
- Create an object of the Document class.
- Add a section to the document using Document.AddSection() method.
- Add a paragraph to the section using Section.AddParagraph() method.
- Add normal text to the paragraph using Paragraph.AppendText() method.
- Add superscript or subscript text to the paragraph using Paragraph.AppendText() method.
- Apply superscript or subscript formatting to the superscript or subscript text using TextRange.CharacterFormat.SubSuperScript property.
- Save the resulting document using Document.SaveToFile() method.
- Python
from spire.doc import * from spire.doc.common import * # Create a Document instance document = Document() # Add a section to the document section = document.AddSection() # Add a paragraph to the section paragraph = section.AddParagraph() # Add normal text to the paragraph paragraph.AppendText("E = mc") # Add superscript text to the paragraph superscript_text = paragraph.AppendText("2") # Apply superscript formatting to the superscript text superscript_text.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript # Start a new line paragraph.AppendBreak(BreakType.LineBreak) # Add normal text to the paragraph paragraph.AppendText("H") # Add subscript text to the paragraph subscript_text = paragraph.AppendText("2") # Apply subscript formatting to the subscript text subscript_text.CharacterFormat.SubSuperScript = SubSuperScript.SubScript # Add normal text to the paragraph paragraph.AppendText("O") # Set the font size for the text in the paragraph for i in range(paragraph.Items.Count): item = paragraph.Items[i] if isinstance(item, TextRange): text_range = item text_range.CharacterFormat.FontSize = 36 # Save the resulting document document.SaveToFile("AddSuperscriptAndSubscriptText.docx", FileFormat.Docx2013) document.Close()
Apply Superscript and Subscript Formatting to Existing Text in Word in Python
To apply superscript or subscript formatting to a specific text, you need to search for the text using the Document.FindAllString() method, then apply superscript or subscript formatting to the instances of that text through the TextRange.CharacterFormat.SubSuperScript property. The detailed steps are as follows.
- Create an object of the Document class.
- Load a Word document using Document.LoadFromFile() method.
- Find a specific text in the document using Document.FindAllString() method. This method will return a list of TextSelection objects, each representing an instance of the text in the document.
- Get the first instance of the text as a single text range using TextSelection.GetAsOneRange() method, then apply superscript formatting to the text range by setting the TextRange.CharacterFormat.SubSuperScript property to SubSuperScript.SuperScript.
- Get the second instance of the text as a single text range using TextSelection.GetAsOneRange() method, then apply subscript formatting to the text range by setting the TextRange.CharacterFormat.SubSuperScript property to SubSuperScript.SubScript.
- Save the resulting document using Document.SaveToFile() method.
- Python
from spire.doc import * from spire.doc.common import * # Create a Document instance document = Document() # Load a Word document document.LoadFromFile("Sample.docx") # Find a specific number in the document text_selections = document.FindAllString("2", False, False) # Apply superscript formatting to the first instance of the number superscript_text = text_selections[0].GetAsOneRange() superscript_text.CharacterFormat.SubSuperScript = SubSuperScript.SuperScript # Apply subscript formatting to the second instance of the number subscript_text = text_selections[1].GetAsOneRange() subscript_text.CharacterFormat.SubSuperScript = SubSuperScript.SubScript # Save the resulting document document.SaveToFile("ApplySuperscriptAndSubscriptFormatting.docx", FileFormat.Docx2013) document.Close()
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.