OOXML Hacking: Repairing Color Themes

Last time, I wrote about how to make great color themes. But what about if you (or your client) have discovered that an existing color theme has a problem. If you catch them early, most issues with color themes can be corrected using PowerPoint’s user interface. Say you’ve created a theme or template, but some of the tests in the last article show problems. Repairing color themes requires rearranging the theme colors, then recoloring any graphic elements on the Slide Master and Slide Layouts.

If you didn’t test the template or theme and you’ve already created a presentation before finding the theme problem, it’s more work to fix. Follow the same sequence: rearrange the colors in the theme, fix the Slide Master, then the Layouts and finally repair any element on each slide that still needs help.

But what about if there are multiple templates, or several decks that have been created from a faulty theme? Repairing color theme problems manually quickly becomes an ordeal. It’s time-consuming and error-prone to try to make all the changes by hand. Searching and Replacing using a text editor would be much quicker and more thorough. It’s time to hack some XML!


Repairing Color Themes – The Theme

If you haven’t editing XML directly before, please read XML Hacking: An Introduction. MacOS users should also read XML Hacking: Editing in macOS to avoid a couple of Mac-specific XML issues.

We’re going to fix all the color theme problems by searching for XML text and replacing it with corrected values. Professional test editors really shine for this kind of work because of their abilities to do search and replace on multiple folders full of files, saving you hours of work. NotePad++ for Windows and BBEdit for macOS are 2 excellent choices for this work, they both have multi-file search and replace.

If you’re using Windows, unzip the files in a separate folder. On a Mac, open the theme or template in BBEdit.

Start by correcting the color order of the theme file located in ppt\theme\theme1.xml. During design, you may have applied more than one theme and PowerPoint hoards them all. If you have more than one theme file, check the name attribute to ensure you’re changing the one actually used in your deck. (If the theme is called Office Theme, that’s a Microsoft default, you don’t have to update it.) You may also have more than one theme if your presentation contains more than one slide master. Here are before and after examples, showing only the first 4 colors:

Before: Theme1.xml
<a:clrScheme name="Broken">
  <a:dk1>
    <a:srgbClr val="333333"/>
  </a:dk1>
  <a:lt1>
    <a:srgbClr val="518CA3"/>
  </a:lt1>
  <a:dk2>
    <a:srgbClr val="FFFFFF"/>
  </a:dk2>
  <a:lt2>
    <a:srgbClr val="E4E4E4"/>
  </a:lt2>

This has blue in the lt1 (Light 1) slot and white in the dk2 (Dark 2) spot. One symptom is inserted SmartArt that shows blue text instead of the expected white.

Before: SmartArt Appearance
Repairing Color Themes - Before
After: Theme1.xml
<a:clrScheme name="Repaired">
  <a:dk1>
    <a:srgbClr val="333333"/>
  </a:dk1>
  <a:lt1>
    <a:srgbClr val="FFFFFF"/>
  </a:lt1>
  <a:dk2>
    <a:srgbClr val="518CA3"/>
  </a:dk2>
  <a:lt2>
    <a:srgbClr val="E4E4E4"/>
  </a:lt2>

If a presentation uses Chart Templates, you may also see files in the Theme folder like themeOveride1.xml. This override component allows a chart template to have a color theme different from the presentation into which it’s placed. All chart templates created from a template contain this themeOverride component, which is simply a copy of the main color theme. If the template color theme is bad, then you’ll also have to open all the chart templates and update chart/theme/themeOverride1.xml.


Repairing Color Themes – The Slide Master

For our simple example, we can skip this step, but for more complex repairs, it may also be necessary to adjust the color map in the slide master. If the presentation was based on a color theme exported from Word or Excel, this is necessary. It’s also often needed for legacy decks that have been imported from PowerPoint 2003 and earlier.

The Slide Master has 2 parts. First is the slide formatting that displays in the Slide Master view of PowerPoint. It’s tagged with <p:cSld>. Immediately after that are parameter storage sections holding references to the slide layouts, title, body and other text formatting, etc. The very first section <p:clrMap is what we’re looking for. The full default color map looks like this:

<p:clrMap bg1="lt1" tx1="dk1" bg2="lt2" tx2="dk2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>

Compare this to a color map when a Word color theme is imported to PowerPoint:

<p:clrMap bg1="dk1" tx1="lt1" bg2="dk2" tx2="lt2" accent1="accent1" accent2="accent2" accent3="accent3" accent4="accent4" accent5="accent5" accent6="accent6" hlink="hlink" folHlink="folHlink"/>

You can see that the dark colors dk1 and dk2 are mapped to the background instead of the text, while text is formatted with lt1 and lt2. The color theme hasn’t been altered, just the way it is mapped to the presentation elements. There is nothing in the program interface to fix this, you must edit the XML. Mental organization becomes very important when changing both the theme and the color map, you can easily get confused.


Repairing Color Themes – Search and Replace

The above steps are preparatory to making the actual changes. Now we need to change the color tags attached to all affected elements in the Slide Master(s) and all Slide Layouts and Slides. Let’s use the example of switching the blue and white. The blue was in the lt1 slot, which is mapped in the Slide Master to bk1 by default. The white was in the dk2, mapped to tx2. After switching the color order, we need to change all bk1 color tags to tx2 and all tx2 tags to bk1.

Wherever a tag is used as an attribute, it has straight quotes before and after. Include these in your search terms so you don’t mess up the color map in the Slide Master. It’s simplest to run this on all files in the archive:

Find what: “bk1” – Replace with: “tx22”

Find what: “tx2” – Replace with: “bk1”

Find what: “tx22” – Replace with: “tx2”

That should do it! Zip up the files with the same file ending as the original, if you’re using Windows. On the Mac, just save the file. Test in PowerPoint.

After: SmartArt Appearance
Repairing Color Themes - After

This is the simplest repair scenario. Sometimes you have to move more colors around, particularly if the creator was someone unfamiliar with PowerPoint. Make notes ahead of time, to make sure you’ve got the right colors moving to the right slots. And always work on a copy of the file, not the original! If it gets too complicated, just send it to us, we do this kind of thing all the time.

Next time, I’ll be discussing PowerPoint SuperThemes. Brandwares has cracked the construction of these, so I’ll cover what you need to know.

9:23 pm

Leave a Reply

*Required fields. Your email address will not be published.

Posting XML? To enter XML code, please replace all less than signs "<" with "&lt;" and greater than signs ">" with "&gt;". Otherwise, Wordpress will strip them out and you will see only a blank area where your code would have appeared.