PowerPoint's text boxes could really use styles. But wait: they already do! Text boxes styles are built right into the file format, but there is no access to them thorough the program interface. Formatting text boxes using PowerPoint's user interface is primitive compared to the styling that can be applied to placeholders in PowerPoint. There is no master where you can format text box defaults. The program interface only allows you to set one style, then right-click and choose Set as Default Textbox. And even this default disappears if you click on the Clear All Formatting button (Home>Font group, look for the icon with an eraser over 1 or 2 letters).
Text Box Styles XML
First, let's clarify our terminology. Text styles in PowerPoint don't work like any other program, because there's no Style menu to apply to selected text. Instead, there are levels that you get to by clicking on the Increase List Level (Windows) or Indent More (Mac) buttons. Each level can have a different style.
Fortunately, with some judicious XML editing, you can create 9 preformatted levels of text for your text boxes. They can become nearly the equivalent of a text placeholder that you can add to any slide. This formatting includes line spacing, bullets, indentation, alignments and many other parameters, so this will have to be a 2-part article.
These text box styles will be saved in a theme, so they can be used in other presentations. However, if the theme is applied to Word or Excel, those programs ignore the custom styles and use their standard single-style text boxes. I guess we could expect that when all these settings are storing in a component called presentation.xml. If you're new to this subject, read XML Hacking: An Introduction. If you're using a Mac, you should also read XML Hacking: Editing in OS X.
The XML component that contains the text box text levels is ppt/presentation.xml. This component also contains presentation parameters like slide size, slide master ID and a list of slide IDs for all slides in the deck. Below those items is a tag called <p:defaultTextStyle> that contains 9 levels of text formatting. This structure is nearly identical to the text formatting used for default table text, covered in this article: XML Hacking: Default Table Text
Each of the text levels is identical except of a single digit in the name tag, so we can extract one level for an example that will work for all levels. When this is set up, you'll be able to insert a text box, then click on the Increase List Level button (called Indent More in OS X) to move between styles, just like a text placeholder. Here's a sample default level:
<a:lvl1pPr marL="0" algn="l" defTabSz="914400" rtl="0" eaLnBrk="1" latinLnBrk="0" hangingPunct="1"> <a:defRPr sz="2400" kern="1200"> <a:solidFill> <a:schemeClr val="tx1"/> </a:solidFill> <a:latin typeface="+mn-lt"/> <a:ea typeface="+mn-ea"/> <a:cs typeface="+mn-cs"/> </a:defRPr> </a:lvl1pPr>
This contains 2 different sections: the first line, called an element, with a string of parameters, called attributes, plus the list of additional parameters on separate lines below, called child elements. It's important to create the right data in the correct location, so for this article, I'm only going to cover the first line.
Text Box Styles: Attributes
From left to right, the default attributes are:
- marL - Sets the left margin for that text level in EMUs. 914,400 EMUs equal 1 inch, while 360,000 EMUs equal 1 centimeter.
- algn - Horizontal alignment. A value of l means left aligned. You can also use r for right aligned, ctr for center aligned, just for justified text and dist, which distributes text evenly across the line width, kind of like an extreme form of justification.
- defTabSz - Default tab size, again in EMUs.
- rtl - Is the language right to left? 0 means no.
- eaLnBrk - East Asian Line Break: East Asian languages have rules about where a line break occurs. The 1 value turns this attribute on. A 0 breaks the line wherever needed, without consulting the rules.
- latinLnBrk - Similar to the eaLnBreak, a 0 will not break the line without a hyphen, a 1 will break the line wherever needed without a hyphen.
- hangingPunct - Theoretically, this forces puctuation to be on the same line as text or allows it to drop to a spearate line. Online documentation for this is poor and I couldn't detect any difference in setting this to 0 or 1.
Those are the defaults. Then there are several optional parameters that you can add manually:
- marR - You can set the right margin of text, in EMUs.
- indent - Set the first line indent of each paragraph, in EMUs.
- fontAlgn - Vertical alignment. Acceptable values include auto and base which both set text on the font baseline, which is the default. You can also use b to align with the bottom of the descenders (like the bottom of a g or y), t to align with the ascenders or ctr to center text vertically. This latter setting solves the issue that when you increase PowerPoint bullet size, you also increase the bullet elevation above the baseline. Using fontAlgn="ctr" forces the bullet to stay aligned with the text whatever size it is.
- lvl - Determines the numbering level for this text level, independent of the level's position in the hierarchy of text box styles.
The picture below illustrates 5 levels of formatting in a text box. There is no local formatting applied, all I did was type the text and click on the Increase Indent button to move between levels, exactly as with a text placeholder.
Text Box Styles: Obscure Gotcha
This XML group is called p:defaultTextStyle for a reason: it's for other items besides text boxes. If you save you template and a PowerPoint theme (File>Save As>Save as type>Office Theme (*.thmx)), the slide master and layouts are saved in the file. Double-clicking on the theme creates a new presentation. But Handout and Notes masters are not saved in a theme, only in a template. PowerPoint creates new Handout and Notes Masters on the fly using its plain vanilla defaults. The Header, Footer, Date and Page Number placeholders are recreated from the p:defaultTextStyle levels. If the first level uses bullets, the placeholders will have bullets as well!
To get around this, format the first level without bullets, or distribute a template instead, which includes Handout and Notes masters that you can format to the design specs. I prefer templates, because you can also include sample slides.
We're here to help. Brandwares can improve your PowerPoint project: We teach the pros! Contact me at firstname.lastname@example.org.