OOXML Hacking: Font Themes

Font themes are one of the simpler theme elements in Open Office XML, but for some baffling reason, Mac Office users can’t create one. It’s odd enough that the only Mac program that can create a color theme is PowerPoint, but even it can’t provide an escape from Calibri and Arial! So I’m going to show you how to do it on your own.

Let’s start with a dead-simple font theme. Here’s the minimal file that Office will read:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a:fontScheme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Test">
  <a:majorFont>
    <a:latin typeface="Arial"/>
    <a:ea typeface=""/>
    <a:cs typeface=""/>
  </a:majorFont>
  <a:minorFont>
    <a:latin typeface="Arial"/>
    <a:ea typeface=""/>
    <a:cs typeface=""/>
  </a:minorFont>
</a:fontScheme>

Important Note: If you copy and paste this sample, you must change the non-breaking space characters to ordinary spaces. I need to use non-breaking spaces to format an HTML page, but Office will refuse to display your font theme if you don’t search and replace them with regular spaces.

You can create this in any text editor, including TextEdit in plain text mode (don’t try this with an rtf file). However, by default TextEdit will change the necessary straight quotes to smart quotes, producing a file that Office will not recognize. If you’re using TextEdit, make sure you visit both TextEdit>Preferences and Edit>Substitutions and turn off Smart Quotes in both locations. A better alternative is the free version of BBEdit. When you visit this link, click on the Download link to get the free version. If you do any significant amount of XML editing, the paid version of BBEdit is well worth the $50 price tag.

The most common font theme problem is using smart quotes (Hex 201C + 201D, Decimal 8220 + 8221) other than plain straight quotes (Hex 22, Decimal 34). But you can also ruin a font theme by using non-breaking spaces (Hex A0, Decimal 160) instead of regular spaces (Hex 20, Decimal 32). Even though a font theme is encoded in UTF-8, you should only use plain ASCII characters for the text. XML has a low tolerance for non-standard characters.

Now that you’re set up to edit, copy and paste the font theme file. The <a:latin> tag is the standard font for your theme. <a:majorFont> is for headings and <a:minorFont> for text. Fill in <a:ea> with a font that supports Chinese or Japanese (ea stands for East Asian), if you want to support those languages. The <a:cs> tag stands for complex scripts: Arabic, Thai, Hebrew and many more. For more detail on non-European language support in font themes, please see my article XML Hacking: Font Themes Complete. Or you can just leave those tags blank if you have a predictable user base that won’t require them.

A common mistake is to get too specific with the font name in font themes. The name is only the base font name as displayed in Powerpoint’s font menu. “Open Sans” will work, but “Open Sans Extrabold” will cause Word 2011 to display a blank space where the font theme should be, while Word 2016 will simply ignore the entire file.

Save the file as a text file with a .xml ending and give it the name you want to appear in the user interface. “Brandwares.xml” will appear in the Font Theme menu as Brandwares.

For Office 2016 or 2019, save this file to Users/YourUserName/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts. For Office 2011, save it to Users/YourUserName/Library/Application Support/Microsoft/Office/User Templates/My Themes/Theme Fonts. In current versions of OS X, the user Library is hidden by default. To open it, hold down the Alt key, while clicking on the Go menu and choosing Library.

Once it’s correctly installed, it will show in PowerPoint’s Slide Master view under the Fonts dropdown. A new Custom group will appear at the top of the list, with your font theme in it. Once you apply it and a color theme to a presentation, you can save as a theme file and distribute that to your users, it will contain the font theme you just created. Happy hacking!


Font Themes – An Alternate Method

March 2017 edit: If you have any problems creating a font theme from scratch, here’s a workaround. Open an existing font theme that come with Office and edit the font names to the ones you want to use. These files are the verbose style discussed in this article: XML Hacking: Font Themes Complete. For most uses, you only need to set the a:latin font in the a:majorfont and a:minorfont sections. Here’s where you can find the Microsoft Font Themes:

Office 2011 for Mac – Open Applications/Microsoft Office 2011/Office/Media/Office Themes/Theme Fonts and copy any of the XML files.

Office 2016 or 2019 for Mac – Open Applications, then right-click on Microsoft PowerPoint and choose Show Package Contents. Open Contents/Resources/Office Themes/Theme Colors and copy any of the XML files in there.

Here are the locations for 32-bit versions of Windows. If you’re using a 64-bit version of Windows, check the same path inside C:\Program Files (x86).

Office 2007 for Windows – Open C:\Program Files\Microsoft Office\Document Themes 12\Theme Fonts.

Office 2010 for Windows – Open C:\Program Files\Microsoft Office\Document Themes 14\Theme Fonts.

Office 2013 for Windows – Open C:\Program Files\Microsoft Office\root\Document Themes 15\Theme Fonts.

Office 2016 or 2019 for Windows – Open C:\Program Files\Microsoft Office\root\Document Themes 16\Theme Fonts.

Too complicated? We can help! Brandwares is a full service template creation service for all Office programs. Contact me at production@brandwares.com

10:35 pm

148 thoughts on “OOXML Hacking: Font Themes

    • The most common issues that I’ve seen are:

      • Smart quotes around the font names instead of straight quotes. This can happen if you use TextEdit with its default settings, or if you use Word to edit the XML.
      • Over-qualifying the font name. As an example, Arial will work, but Arial Bold will not. Use the base font name as it appears in the PowerPoint font menu.

      If neither of those seem to be the case, feel free to post your question at the Microsoft PowerPoint forum, where I answer questions. You can upload your Font Theme to Dropbox or other cloud storage, then include a Share link to it in your post. I’ll take a look at it. This way the knowledge benefits more people, thanks.

  1. Dear lord FINALLY a site that makes sense of this.

    Having just transitioned from a PC to a Mac for work this has irritated me for ages. Why there can’t be an option to create a custom on at the bottom of the fonts list like there is on the PC is beyond me, but thank you for explaining this concisely – there’s no documentation for this and, frankly, that folder is completely hidden and you would never guess to put it there. It doesn’t help that there is an identical folder structure in users/name/library/microsoft etc that does NOTHING!

    The smart quotes thing is important to highlight too, it didn’t recognise any of my custom ones due to a couple of rogue ones in the Fontset Name.

    Thanks again

    • Regarding the folder in Users/YourUserName/Library/Microsoft, every version of Office has different locations for support files. The Users/YourUserName/Library/Microsoft path was used by Office 2008 and Office 2011, so if you had those previously installed, you would still have that folder structure. The Microsoft installer leaves those folders alone so user can later retrieve any templates or themes that may still be in there.

  2. i looked all over the web—more than a few had ways to hack the PPT fonts. none of them worked—thank you for posting–you solution WORKED!!

    • Office users are used to work with “Family” fonts, where clicking on the Bold or Italic buttons switches the font. You could use “Single” fonts instead, where you switch weights by changing the font selected in the font dropdown. Then you could create a theme where the Regular weight was the Body font and the Bold was the Headings font in the theme.

      Unfortunately, this would mean that the Bold button would only apply a stroke to the Regular weight instead of switching it to the true Bold version. The would play havoc with the presentation design. Switching to Bold by changing the font choice isn’t very user-friendly and most PowerPoint users would have to be taught to change their ways.

      • Our company Montserrat as our corporate font. However, we use Montserrat Light as you normally would a “regular” weight font for body text, and the actual regular Montserrat as you would “bold,” for headings etc. It is an unusually thickly-weighted font that I’d like to move away from anyway, but it’s what we must work with for now.
        Do you have any suggestions as to how I could make a font theme that defaults new minor font items to use Light if you cannot specify font styles in the xml, or am I just going to have to live with it?

        • If you open the Format>Font dialog and both Montserrat Light and Montserrat Regular show as separate entries in the list of fonts, you can use both font names in the theme. (If you’re using a Mac, don’t trust the list of fonts that show on the Ribbon, since OS X automatically assembles fonts into a family for that dropdown.)

          If you only see Montserrat Light in the Format>Font dialog and you have to add the Bold attribute to get the Regular weight, then you’ll have to spec Montserrat Light for both heading and body in the font theme. In this case, you’ll just have to live with it.

      • Our brand uses font XYZ Heavy in uppercase for all headlines (H1), XYZ Bold for in regular casing subheadlines (H2, H3, etc), and then font ABC Light in regular casing for nearly all body text (special exceptions for captions and other needs).

        There’s no way to specify this in the XML file? You can only specify two fonts (and entire families at that)? Just wanted to double check, as this opens the door for users to break brand standards by doing whatever they want willy-nilly.

        • By design, font themes are limited to 2 typefaces. If the foundry has made those 2 fonts the primary font in a font family, then you can actually access up to 8 typefaces: 2 in the original font theme, then 6 others that are accessed by activating the bold and/or italic buttons in the Office program. But this will depend on the family created by the foundry, not on Microsoft programming.

          As an example, if XYZ Bold was the primary (roman) font in a font family, with XYZ Heavy being the bold member of that same family, you could spec XYZ Bold as the Headings font for the theme. Then applying the bold weight to the heading styles would get you XYZ Heavy. Your foundry should be able to create custom families, though some will charge exorbitant rates for this service.

  3. John, your tutorial was a lifesaver. Thank you! You helped me to finally solve the annoyance I was struggling against for 20 years. Sweet victory!

  4. I tried this and saved the xml file within Containers/UBF8T346G9.Office/User Content.localized/Themes.localized/Theme Fonts
    Sadly, nothing happens – I’ve restarted PPT a few times but those fonts just don’t show up. I’d really appreciate your help with this…
    Miriam

    • That doesn’t look like the right path. Please try Users/YourUserName/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts. to make the your user Library folder visible, you’ll probably have to hold down the Alt key while clicking on the Go menu and choosing Library. If that doesn’t work for you, please post the XML from your font theme.

  5. I’ve removed the issue with the text edit and I’m using a basic version of the font name. I’m getting a spinning wheel under custom fonts and I can see the file name appear but I can’t choose the font. Reasons for this?

    • Just to double-check your steps, after creating the font theme and placing it in the Theme Fonts folder, you would then open the presentation or document and apply the font theme to the file. After you apply it, then you would select a style in Word or a placeholder in PowerPoint and choose YourFontName (Body) or YourFontName (Headings). Have you followed those steps? Are you seeing the beach ball when you’re trying to apply font name with (Body) or (Headings) in the name, or just the plain font?

    • That font should be installed like any other. If you’re on Windows, fonts should be installed in C:/Windows/Fonts, on a Mac place them in Users/YourUserName/Library/Fonts to make them available to the current user, or Library/Fonts to install for all users.

  6. Hi, this is FANTASTIC, thanks! I’m wondering, can you include more than two font families? For instance, we’re trying to create a custom theme for a client with three different typefaces, but can only get the two to load using this XML script. Any help is GREATLY appreciated. THANK YOU!!!!

  7. Hi John, Did you ever resolve the previous issue of having the spinning wheel under Custom instead of being able to select the theme fonts? I believe I am following your directions correctly (for PPT 2011 for Mac) but when I select the Fonts drop down menu, it behaves as if it is trying to load my custom font.

    • I’m guessing here, but one trap with using TextEdit is that by default it inserts “smart” quotes instead of straight quotes. XML chokes on smart quotes. In TextEdit, open Preferences and uncheck the Smart quotes option to avoid this.

  8. I may be an idiot, but I can’t find the library, on my OS X (latest version iMac. I am new to the mac, however

    • In modern versions of OS X, the user Library folder is hidden by default. In the OS X menu at the top of your screen, hold down the Alt key while clicking on Go menu and choosing Library to make it temporarily visible.

      To make the Library folder permanently visible (I do this on every Mac), click on the Go menu and choose Home. Then choose the View menu and select Show View Options. At the bottom of the View Options dialog, check the Show Library Folder option.

    • A Font Theme file is a small XML file that stands alone. In a Windows installation, the default location for this file is C:\Users\YourUserName\AppData\Roaming\Microsoft\Templates\Document Themes\Theme Fonts. In Office 2011 for Mac, the location is Macintosh HD/Users/YourUserName/Library/Application Support/Microsoft/Office/User Templates/My Themes/Theme Fonts, while in Office 2016 for Mac the file would go in Macintosh HD/Users/YourUserName/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts. Once you place this file in the correct folder, it will then appear in PowerPoint as another font theme that can be applied to a presentation, template or theme. Please note that default paths may be customized on any computer and that the AppData (windows) and Library (OS X) folders are normally hidden.

      Once you apply that Font Theme, PowerPoint transfers the information to the theme1.xml part of your presentation (found in ppt/theme). This means that if you’re developing a full theme, you can edit the a:fontScheme section of theme1.xml to get the same effect. When I open theme1.xml and see <a:latin typeface=”Calibri”/>, I can edit that to <a:latin typeface=”Humanist“/> for both the a:majorFont and a:minorFont sections.

      If you still have questions, feel free to email me at production at brandwares dot com with your operating system and Office version and I can give you more exact details.

  9. Hi John, I’m afraid I’m not having any luck with this hack, either. I edited your file in TextEdit, with smart quotes turned off in both places. I saved the .xml file to Macintosh HD/Users/MyUserName/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts…
    I’m trying to use Georgia (a:majorFont) and Yu Gothic (a:minorFont).
    Thinking that maybe Yu Gothic was the problem, I tested Georgia as the a:minorFont, but that didn’t work either.
    I’m overlooking something somewhere!

    • Yu Gothic would not work as that’s considered an East Asian font rather than a Latin font. This article covers only the most basic font theme for Latin fonts, I’ll write a part 2 to the article to describe a complete Font Theme.

      Feel free to post your XML here, substituting &lt; for < and &gt; for >. You can also email the file to me at production at brandwares dot com and I’ll take a look at it.

    • Another possible cause is that the font name is entered in a form that PowerPoint can’t parse. Using the base font name as it appears in the PowerPoint font menu usually works. But I’m guessing.

      Feel free to post your XML here, substituting &lt; for < and &gt; for >. You can also email the file to me at production at brandwares dot com and I’ll take a look at it.

  10. John,

    I’m using Office Home & Student 2016 for Mac. I tried to use your simple XML code for a custom font theme, but custom themes never showed up in any of my Office apps.

    Here’s a solution that did work:
    As a second attempt, I copied a font theme XML file from within the application package for Word and then saved the copy with a new, unique name to my User Content/Themes/Theme Fonts folder.

    Within the opening < a:fontScheme / > tag, there is a name variable for the custom theme. (This variable is not represented in your simple font theme code.) I substituted my custom font theme name in place of the original, “Arial”.

    Within the opening < a:latin / > tag for both the major and minor font definitions, I changed the value of the typeface variable to the basic family name of my font: typeface=”Roboto”.

    Also within the opening < a:latin / > tag for both the major and minor font definitions, there is a variable for a panose number. (This variable also is not represented in your simple font theme code.) I left this panose variable unchanged, though I suspect the number would not actually describe my custom font.

    Finally, I left all of the complicated non-latin a:font tag definitions unchanged, and then saved.

    This time, upon launching Word and Powerpoint, my new custom font theme showed up in the Font Themes list.

    What accounts for this? Why did your simple font theme code fail? Was it the missing Name variable? The missing Panose variable? The missing list of foreign scripts?

    Postscript:
    As a related problem, my Powerpoint application will not respond to menu commands to Customize or Format Theme Colors.

    So far, the solution seems to be to crack open the PowerPoint application package, open and save a copy of a Theme Color XML file to my User Content/Themes/Theme Colors folder, and then carefully edit the hexidecimal values for each of the color variables listed.

    (BTW, this only works if you edit a copy of a Theme Color XML file from the Powerpoint application package. If you try this with an XML file from the Word application package, it fails. There are some differences in the code between the two that probably accounts for this.)

    Do you know whether or not Microsoft intends to fix these broken features in Office 2016 for Mac?

    Sincerely,
    Mark Oehlschlager

    • Invariably, when a font theme file doesn’t display in an Office program, it’s because there is a mistake in the XML. Your workaround is a perfectly good alternative method, since all you have to edit are the font names. If you can email the file to me at production at brandwares dot com, I’ll tell you what the problem was.

      As for PowerPoint not reacting to the Customize Colors… command, that sounds like a problem with your Office installation. You can get help with that issue here: Microsoft Answers

      After you create a color theme file that works in PowerPoint, you can apply the same color theme in Word by selecting the Design tab, clicking on Colors and selecting the custom theme file. This is much easier to do that editing the Word XML, which is tricky on a Mac.

      In case you didn’t see it, here’s my article on how to edit XML in OS X: XML Hacking: Editing in OS X. I really recommend using BBEdit to avoid having to unzip and rezip the files.

  11. I have created 2 font themes using your code. Both of them work in PPT. Thanks so much!

    Only one of them works in Word though. Any thoughts about why?
    They’re open type fonts I can access on the font menu in Word.

    The one that works is Georgia and Verdana.
    The one that doesn’t is Rooney Pro and RooneySans.

    • What are the symptoms of the font theme “not working”? Does the theme not show in the list of available font themes? Or does the font not switch to Rooney when you select that theme? Or something else?

      • The theme is available to select, but the font doesn’t display.
        The fonts to change when I chose the theme, but not to Rooney. In the font window it says Rooney Pro (Theme Headings) or RooneySans (Theme Body) but the font shown is a substitute (Times New Roman).

        I can access both of the Rooney fonts I want manually — and they display correctly.

  12. The theme is available to select, but the font doesn’t display.
    The fonts to change when I chose the theme, but not to Rooney. In the font window it says Rooney Pro (Theme Headings) or RooneySans (Theme Body) but the font shown is a substitute (Times New Roman).

    I can access both of the Rooney fonts I want manually — and they display correctly.

    • Those are the symptoms of a font that Microsoft Word sees as not being installed. If you’re using a Mac, trying running the Font Book application and verify the Rooney fonts. Select a Rooney font, then choose View>Show Font Info. If Kind says OpenType PostScript, that may be an issue with Word 2016 for Mac. That version has shown problems will being able to display PostScript and PostScript-flavored OpenType

  13. This is great. Thanks.

    Even better: I was able to specify a specific style of a font just by using its base name + style (e.g., “Calibri Light”). The built-in themes do the same thing.

    This was on Word 15.38 (170902). Maybe Microsoft fixed it since you wrote these directions?

    • Thanks for your kind words!

      Office is still working the same as when I wrote the article. Your trick will work for any font weight that is in it’s own family. Calibri is one family and Calibri Light is another, so you can spec Calibri Light in a theme. This trick wouldn’t work with Calibri Bold, where you can only spec the base font of Calibri. This is because Calibri Bold in in the Calibri family.

      As an illustration, open the Format>Font dialog in Word. Click on the Font dropdown (or Latin text font dropdown, if you have multiple languages installed). You’ll see Calibri and Calibri Light, but no Calibri Bold. As the article mentions in paragraph 5, the name you can use is the name that appears in PowerPoint’s font menu. Calibri Bold does not appear there, so you can’t use it.

  14. oops

    <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
    <a:fontScheme xmlns:a=”http://schemas.openxmlformats.org/drawingml/2006/main” name=”Test”>
    <a:majorFont>
    <a:latin typeface=”Arial Narrow”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:majorFont>
    <a:minorFont>
    <a:latin typeface=”Arial Narrow”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:minorFont>
    </a:fontScheme>

      • Here is the code I have just created for a new XML file. I have tried to strip out all curly quotes and replace with straight quotes. I have tried BentonSans Benton Sans and just Benton. The only XML option I get when saving from TextEdit is Word 2003 XML.

        When I open PPT and go to master and review the fonts list, I do not see anything other than the defaults provided by MS. Can you figure out what I am doing wrong? Thanks.

        <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
        <a:fontScheme xmlns:a=”http://schemas.openxmlformats.org/drawingml/2006/main” name=”Test”v
          <a:majorFont>
           <a:latin typeface=”BentonSans”/>
            <a:ea typeface=””/>
           <a:cs typeface=””/>
        </a:majorFont>
          <a:minorFont>   
         <a:latin typeface=”BentonSans”/>
            <a:ea typeface=””/>
            <a:cs typeface=””/>
          </a:minorFont>
        </a:fontScheme>

        • I have straight quotes in there, and when I paste it into your reply window they look like straight quotes…however when they show up in this text string in your window they slant…so have become curly it seems.

          • I have noticed now that when I try to review the fonts in master slide view, the Custom option briefly shows up and seems to have some entries below it, but before they can display it disappears and I am left with only the Office options.

        • Those are not smart quotes, but they aren’t straight quotes either. In fact you have 2 different slanted quotes, with a different type at the right side of 1.0 and to the right of UTF-8 in the first line. In the XML you posted, there is a v immediately after the name “Test” instead of a closing >. In addition, to the right of <a:minorFont>, there are 2 spaces and a character that doesn’t display on the web page. However, I can see it in the HTML.

          Office XML is very intolerant of even slight errors. Using a real text editor like the free TextWrangler helps a lot. I’ll email a repaired version to you, but here’s what it should look like:.

          <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
          <a:fontScheme xmlns:a=”http://schemas.openxmlformats.org/drawingml/2006/main” name=”Test”>
            <a:majorFont>
              <a:latin typeface=”BentonSans”/>
              <a:ea typeface=””/>
              <a:cs typeface=””/>
            </a:majorFont>
            <a:minorFont>
              <a:latin typeface=”BentonSans”/>
              <a:ea typeface=””/>
              <a:cs typeface=””/>
            </a:minorFont>
          </a:fontScheme>

  15. Hi John, thanks for all the clarity. It really helps.
    I’m still having issues trying to use ‘Avenir’.
    I have tried both the font family name only ‘Avenir’.. and tried using ‘Avenir Light’ and Avenir Heavy’ in the coding. But they are still showing ‘spinning wheel’ in PPT.
    I’ve tried both in 2011 and 2016 versions. I have checked and see that Avenir is a ‘postscript type 1 outline font’. So I assume, based on your information, this will not work.
    Could you tell me how to make this font work. Do I need to buy a different format, (if it’s available). Or is there another way around this issue. My client would like to use it.
    Here is my coding:


     

       

       

       

     

     
       

       

       

     

  16. Hi John,

    I’m hoping you can help me. I’ve created my files with both methods and placed them in the correct folder structure, when I restart Powerpoint the font theme isn’t showing up in the master slide. Am I able to email you my files to see if you can see where the issue might be?

    Thank you in advance!
    Tessa

  17. Thank you for all of your help, John.

    I’m running into issue with Avenir. Replaced “”. Not seeing anything loading in PowerPoint. Here’s what I have:

    <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
    <a:fontScheme xmlns:a=”http://schemas.openxmlformats.org/drawingml/2006/main” name=”Test”>
    <a:majorFont>
    <a:latin typeface=”Avenir”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:majorFont>
    <a:minorFont>
    <a:latin typeface=”Avenir”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:minorFont>
    </a:fontScheme>

  18. Thank you so much for this!! I really wish they would just include the same features in the Mac version as the Windows version!

  19. This is SUCH an awesome article, thank you so much.

    ADDING TO YOUR GREAT WORK, I did stumble across a way to put in the actual font weight you want… which is:
    * remove any spaces in the base name
    * add the weight with a dash between it and the font.

    So, e.g. if you want the “Light” weight of the font “Mic 32 New”, you can use “Mic32New-Light” as the font name. Works a treat in V.16.11 of Microsoft Powerpoint 2016.

    Again, thank you – this got us out of a jam!!

      • After some testing, I haven’t found this to be a reliable technique with all fonts. As an example, setting the Heading or major font to Arial-Bold doesn’t get you Arial Bold. Word 2010 substitutes Times New Roman when you try.

        I’ll do more testing to find out how you got your result, but for now I think you got lucky with that particular font.

  20. Thank you so much for this. Just adding, I was going crazy- with Text Edit, in Plain Mode, after unchecking Smart Quotes, saving as UTF-8 and xml extension, it still wasn’t working. Then I noticed there are also Smart Dashes and Smart Copy/Paste . I turned those off, copypasted again from this website (not from my previous version of the document) and added my fonts. It worked immediately! So if anyone is having trouble with Text Edit, they might want to make sure to work in Plain Mode, and turn off Smart Quotes, Smart Dashes, and Smart Copy/Paste.

  21. OMG, this is great! I have so many clients who want to use their brand typeface in PPT decks. This worked for me using Text Edit, in Plain Mode, unchecking Smart Quotes, Smart Dashes and Smart Copy/Paste. I turned those off, copied and pasted code from this website and added my fonts. I saved as UTF-8 with xml extension. I restarted and there it was in my Design/Fonts window!! Thank you so much for this!

    • Does it matter if the font is Open Type, Postscript or TrueType? DIN Pro is an Open Type font, and this hack worked, but only with the Open Type font. It won’t read the TT or Postscript file versions of DIN. Does PPT assign/read from the SYSTEM FONTS folder? When I added the 2 weights I want to System Fonts, it appears PPT is now reading these weights. Just curious. I may have to do this for other clients, and I want to be sure this is the way to set my system up. Thanks!

      • I would avoid Type 1 PostScript, Microsoft is phasing out support for it. TrueType and TrueType-flavor OpenType are the best choices. In MacOS, you can tell if an OpenType font is PostScript- or TrueType-flavored by opening it in Font Book. Select the font in the middle pane, then look to the right for the font description. If Kind is OpenType TrueType, you’re good to go. Office for Mac has had on-again-off-again font problems with OpenType PostScript flavors.

  22. BOOKMARKING YOUR WEBSITE LIKE NOW!!! I’ve spent over 3 days at work searching the web for a solution…THANK YOU!!…Do you happen to have one of these magic tricks for converting a widescreen to standard screen without the program automatically stretching and distorting all the images? thanks!

    • We can create a SuperTheme that contains both widescreen and standard formats. For images placed using placeholders, the placeholders should be the same size on both formats, to avoid distortion. If images are placed freehand, they would still get distorted when changing aspect ratios. Here’s my article on the subject: SuperThemes from Brandwares

  23. Thank you SO much. This simple XML code has enabled me to build useful templates for clients that include their corporate fonts. It’s INSANE that Microsoft don’t allow this basic functionality across all of the Office for Mac.

    • Sorry, the font theme only sets the font. To set other attributes, you would specify the font color and size in a style (for Word or Excel) or a text level (for PowerPoint), then distribute the file as a template.

  24. Hi John, Do you know if there’s any issue with this hacking in Ms PowerPoint 365 (16.0.10827.20118) 32-bit for Windows? Because is driving me crazy and I can’t get it to work.

    Thanks!

    • If you’re trying to create a font theme with TextEdit, double-check the quotes. Only straight quotes will work. Your Office version is mostly irrelevant, since the Office file formats are used in common by all versions. Office doesn’t give you any debugging information, so you have to make changes carefully. Most people try to make too many changes between tests, then they can’t find the error.

      When I’m trying something new, I’ll make one change at a time, rezip the files, then test. That way, if the file stops opening, I know exactly what the step was that caused the problem. You can send your font theme to me at my contact email and I’ll tell you what the issue is.

  25. Is there a way to add three fonts to a theme? We have a regular sans, a condensed version of that sans, and then a serif font, and I’d love to include all three as options (I’m an in house designer creating themes and templates that will be used by the rest of our organization.

    And thanks for this article! had no issues creating a custom font theme with just two fonts – I appreciate the thorough yet clear instructions!

    • Sorry, it’s limited to just 2 fonts. You can still use the third font in Word styles and PowerPoint text levels, it just won’t update automatically if you switch the theme later. I’m glad you find the information useful, thanks!

  26. In Office 2019 for Mac the folder is located at

    /users/???/library/Group Containers/UBF8T346G9.Office/User Content.localized/Themes.localized/Theme Fonts

    (note the “.localized”) addition

  27. Just wanted to say thank you very much for this – you’ve solved a big problem for me where previews of a branded Powerpoint file were defaulting to Times, instead of the embedded font. Once I created the font theme, and used that in the template, it was fixed! Your time in writing this up is really appreciated!

  28. Hi John,

    Thanks so much for this information, I now feel I finally have power over PowerPoint!

    I’m styling default charts and I was wondering if it’s possible change the settings for the title of the chart? Apologies if you’ve answered this for someone else – I can’t seem to find mention of it on a bit of a trawl through your site.

    If it helps, I’m on Microsoft Office 365 on a Mac.

    Thank you!

    • Format a sample chart including the title. Then choose Chart Design>Change Chart Type>Save as Template. This saves the chart template to the Charts subfolder of your Templates folder. Distribute that template to your client. It needs to be installed in a similar folder on their computers (C:\Users\TheirUserName\Documents\Custom Office Templates\Charts for current versions of Office for Windows). The chart template will retain your title styling.

      Here’s a Microsoft help page on Chart templates with more detail: Save a custom chart as a template

  29. Thanks for an informative article!
    I’ve made a custom fontset with Muli Light as both major and minor font.
    That works fine, but I don’t like the automatic bolding that Powerpoint applies to the text (when «bolding» with the B button).
    Q: When bolding like that, is it possible to force Powerpoint to replace Muli Light with Muli (Regular) Bold?
    From similar questions you have answered, I’m expecting a negative reply here, but I have to ask you just in case 🙂

    • Using the bold and italic buttons requires that the fonts be constructed as a family. Many online fonts have only a roman-italic family link and do not include a bold-bold italic variant.

      Font families must be created by the font foundry. PowerPoint can’t create them.

    • Using the bold and italic buttons requires that the fonts be constructed as a family. Many online fonts have only a roman-italic family link and do not include a bold-bold italic variant.

      Font families must be created by the font foundry. PowerPoint can’t create them.

  30. Thank you! I’m working on reworking the company’s ppt template and this is going to save me and the rest of the creative staff so much trouble.

  31. Thank you very much for this hack and shame on Microsoft for ‘not giving us the simple option’ in Office. Cheers from the Netherlands.

  32. Thanks a lot, it worked after days of reaserchs and trials. Unfortunately PowerPoint has changed automatically the kerning/lettre spacing. I was wondering if I could add a ligne of code to make it better. Thanks for you help, really appreciate.

    • The Font Theme only sets the font, no other characteristics. To set your default letter spacing, choose View>Slide Master, scroll up to the larger thumbnail at the top (the actual slide master) and set the letter spacing for each level of text you are using. In a well-constructed presentation, that letter spacing will ripple through to all your slides.

    • To post XML here, please follow the notes about using &gt; and &lt; in place of > and < characters. The most common problem I’ve seen with font themes is using smart or curly quotes in place of straight quotes. We can do this for you for US$30.

  33. I am tech challenged and do not understand much of your answer. I have a Mac and I’d like to be able to use fonts I have dowloaded to my computer which show up in Word. Can you in very simple language explain step by step? For ex. what does “change the non-breaking space characters to ordinary spaces” mean exactly? Don’t understand this “The most common font theme problem is using smart quotes (Hex 201C + 201D, Decimal 8220 + 8221) other than plain straight quotes (Hex 22, Decimal 34). But you can also ruin a font theme by using non-breaking spaces (Hex A0, Decimal 160) instead of regular spaces (Hex 20, Decimal 32). Even though a font theme is encoded in UTF-8, you should only use plain ASCII characters for the text. XML has a low tolerance for non-standard characters.

    Now that you’re set up to edit, copy and paste the font theme file. The tag is the standard font for your theme. is for headings and for text. “

    • Google searches can clear up the terms you don’t understand:

      Nonbreaking spaces

      Smart quotes

      Unicode, UTF-8, and ASCII encodings made easy

      I imagine that your second paragraph includes text that you tried pasting from the article. The text between less than (<) and greater than (>) signs doesn’t display, because those are formatting characters in HTML and XML. As noted in the help text for the comment box, please replace those with &lt; and &gt; to ensure they display.

      I understand that much of the content on this site may be too complex for some people to implement. The intended audience is design professionals and programmers who are already familiar with a more challenging way of modifying files by altering their underlying text. For anyone else, we remain available to do the work for you. A simple font theme, as described on this page, is US$30.

  34. Wow thank you John, this worked great. So it works on my end, PowerPoint v.16.4 (which is the current version). My client’s brand font is Bio Sans which I can activated thru my Creative Cloud License. What are the steps to make sure this now works on my clients Windows machine, who also has the most up-to-date version of PPT?

    Do I need to have them copy that .xml file I created to the desired location on the windows machine. I’m assuming so. Also they need to have those Bio Sans fonts available and installed as well, correct. And any additional user would need to follow those same steps.

    I’m pretty sure this is correct, just checking. And again thanks! You need to have a donate link button to get paid for your work and advice! If you do have something please let me know.

    • Once it works correctly on your Mac, it should work in Windows as long as the same fonts are installed. One caveat: Adobe distributes their fonts in OTF format, but Office is more reliable with TTF fonts. First try the OTF, if there are no issues, you’re good to go!

  35. Worked like a charm!! Thanks so much, was driving me crazy! I’m a designer tasked with creating a corporate template for PowerPoint, I work on mac, and more familiar with Adobe software rather than the Microsoft suite. Really appreciate your help!! ; )

    To anyone who needs the information, you’ll have to use the terminal to access the library folder, navigate to the font themes folder, then use vi to write the .xml file.

    • Thanks, I’m glad it helped! Using Terminal and vi will work, but is not necessary. To open the folder in the Finder:

      1. Hold down the Opt key while clicking on the Go menu and choosing Library. Your hidden user Library folder opens.
      2. Open ~/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts.
      3. Copy the xml file into the Theme Fonts folder.
  36. I’m hoping you or someone else out there is a pack rat like me–only less scattered! I have used Word on both Mac and Win since . . . well, I helped Moses with some documents, I think. And I keep a printed (yes, really) notebook of the various styles/themes/theme colors/theme fonts from the various versions. This helps me quickly thumb through and pick “looks” I might use or modify.

    Problem is, I’ve messed up my collection of .thmx and .xml files for the themes, theme fonts, and theme colors. I have some (ones I had used) but not others. I normally go into the dark recesses of directories in both Mac and Win and copy the distribution files into an “archive” for later reference and use. Alas, I’ve messed that up and the machines that had older Office versions are long dead and gone. (I likely have full backups on DVDs but those are in storage in another city at the moment!)

    So … Can anyone supply me with the original distribution .thmx and .xml for themes, fonts, and colors for Win 2007, 2010, 2013 and Mac 2011, 2013? If so, I’ll post a link to a share folder and you can drop them in to me.

    Thanks immensely. I hate having an incomplete collection ;-(

  37. First of all thank you, got it working really well!

    My question is now that I got one font theme working, how can I make more? Does it got into the same file, with the same code twice and just different fonts, or do I need to make multiple files, but how should those files be named if there are many?

    Thank you in advance for your help!

    • Each font theme must be a separate file. Once you get a font theme that works, copy and rename it, then replace the font names. I work for many clients, so I usually name the font theme for the client, but naming them for the fonts included in the theme may be better for your situation.

  38. Hi John,
    This worked for my computer (iMac/iOS) but when someone tries to open the same document (PowerPoint) on window desktop it comes up with an error message that says “read only embedded fonts included in this presentation”. The only option after that is to “open read-only” or “remove restricted fonts”.

    Please help. Thanks

  39. Hey there! I tried adding Ubuntu font on Powerpoint Version 16.52.
    Code looks all ok and I added to the suggested folder under ~/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts

    Thanks heaps, the XML is below:

    <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
    <a:fontScheme xmlns:a=”http://schemas.openxmlformats.org/drawingml/2006/main” name=”Test”>
    <a:majorFont>
    <a:latin typeface=”Ubuntu”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:majorFont>
    <a:minorFont>
    <a:latin typeface=”Ubuntu”>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:minorFont>
    </a:fontScheme>

        • To set the font theme for a presentation, use View>Slide Master>Fonts and select the Test font theme. It should appear at the top of the dropdown in a Custom section. If Test is not appearing there, you have an XML error. The most common problem is using curly or smart quotes instead of straight quotes.

          After setting the font theme, choose View>Slide Master and choose Unbuntu (Headings) or Ubuntu (Body) for your placeholders. The (Headings) or (Body) text indicates you’re using the themed version of the fonts.

    • Thanks for your suggestions. The article doesn’t discuss issues with line breaks. The readership for this blog consists of many graphic designers who are unfamiliar with text editors and have TextEdit already installed. Perhaps you missed the reference to the free version of BBEdit, which I do recommend over using TextEdit.

  40. Straight quote

    Thanks, John!

    Referred to your article from a Magnus Media article. VERY grateful.

  41. Thank you for this! It works (with help of BBEdit). I could not find the folder “Theme fonts” as you discribed it, but there was a “Group containers” in my Library with a “UBF8T346G9.Office” folder and some more subfolders. But if you search for “Theme fonts” in your finder, you probably will get there.

    • a “UBF8T346G9.Office” folder and some more subfolders” You need to drill down further. That’s where the Theme fonts are stored: Users/YourActualUserName/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts, as mentioned in the article. The location has not changed.

  42. Thank you! I was skeptical about digging into the code, but simply making a copy of an existing font.xml file and replacing the font names worked first time.

  43. First I want to say thank you for this fantastic tutorial — I’ve used it with great success on several files.

    However, today I ran into a strange issue. After duplicating and editing my previous XML files to specify the font DM Sans and selecting the custom theme, whenever I use either the bold keyboard shortcut or the bold button, the font reverts to bold Calibri. I can use the font menu to select DM Sans bold and it displays correctly, and the titles in slide masters correctly populated with DM Sans Bold once the top-level master was updated to the new theme. In all cases, the font drop-down menu displays “DMSans (body).” Any tips for troubleshooting?

    <?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
    <a:fontScheme xmlns:a=”http://schemas.openxmlformats.org/drawingml/2006/main” name=”Test”>
    <a:majorFont>
    <a:latin typeface=”DMSans”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:majorFont>
    <a:minorFont>
    <a:latin typeface=”DMSans”/>
    <a:ea typeface=””/>
    <a:cs typeface=””/>
    </a:minorFont>
    </a:fontScheme>

    • You have 2 issues.

      The first is that your fonts are not set up by the foundry to be a font family. Instead, they are single fonts. Single fonts must be changed by choosing a different font from the font menu. Family fonts, must be set that way by the type foundry, so the bold and italic buttons change the fonts.

      The second issue is an odd one. I’ve seen similar things happen when the font theme is set to Calibri, but you say that the font dropdown displays DMSans (Body), which indicates that the font theme is set to your chosen font. If you email a copy of the file to me, I’ll take a look at it at no charge.

  44. Hello, John.
    Thank you for sharing good contents.
    I’m a Mac 2021 user and have followed your instructions for Mac 2016 or 2019.
    However, it doesn’t work for me to save at Users/YourUserName/Library/Group Containers/UBF8T346G9.Office/User Content/Themes/Theme Fonts

    The difference is ‘.localized’ extension in the directory. User Content.localized/Themes.localized/Theme Fonts
    Is it the root reason of not working?

    Thank you.

    • The path to the font theme will not prevent it from working. Instead, you probably have an error in your XML. The most common issue is using “smart” curly quotes instead of straight quotes.

    • Yes, it is possible. Methods vary among Outlook versions, but the best solution is to modify Normal style of the NormalEmail.dotm template. This serves as the default for all new outgoing emails.

  45. Can selectable custom theme fonts be added to the file/template xml so that they’re always available to users, like colour schemes and custom colours/tables are?

    • An Office file can have only 1 font theme and that theme can only contain 2 typestyles per script. So a simple font theme can have 1 pair of fonts for languages using the Latin alphabet, another pair for complex script languages like Arabic or Thai, and a third pair for Asian languages. A complex font theme can have many pairs of fonts, but each is tied to a different script, so that’s not a useful strategy for switching fonts while using the same language.

      It’s pretty easy to supply font themes as standalone XML files. Then when you want to change font sets, you can pick a different font theme. Here at Brandwares, we use the same templates for all purposes, but we switch font themes depending on whether the document will be printed/PDFed internally (that font theme uses Myriad Pro) or if the file will be sent out via email (then the font theme is set to Verdana).

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.