BEHIND THE CURTAIN: STYLES, DOC DEFAULTS, STYLE SETS, AND THEMES

Intro

Building off of my last Behind the Curtain post, this post will dig into the "other 20%" and specifically answer the following three questions on Styles:

  • How do Document Defaults relate to the Normal Style?
  • How do Style Sets relate to Styles?
  • How do Themes relate to Styles?

We've got a lot to cover, so let's jump right in.

How do Document Defaults relate to the Normal Style?

In all previous versions of Word the Document Defaults were hardcoded into Word. That is, you couldn't change them. This means that the way you would change the default properties applied to your documents would either be to change the Styles within the Template used to create the document, or to write a macro that went through all documents and updated the properties defined by the Normal Style (the paragraph Style applied to text by default).

In Word 2007, you can certainly still do the former, but should know the following before you do the later:

By default, the Normal Style is empty

Put differently, all of your Normal properties are being specified by Styles further up the hierarchy; specifically, the Document Default and Table Styles.

To literally show you exactly what I'm talking about, here is the XML that makes-up the Normal Style and Document Defaults in Word 2007 [please see the Appendix to learn how to look at the XML that makes up Word documents]:

Normal Style

Document Defaults

This doesn't mean you can't specify properties for normal text in the Normal Style. It just means that we don't by default.

Why is Normal Empty?

We don't define any properties in the Normal Style for one major reason:

Generally, Normal text outside of tables should be spaced differently from Normal text inside of tables

…and leaving Normal empty allows us to do this. Let me explain how:

  • If you read my last post, you know that Word applies the Document Defaults, Table Styles, and then Paragraph Styles to document content in that order.
  • If the Normal Style—which is a Paragraph Style—specifies properties, those properties get applied to Normal text no matter where Normal text is in your document.
  • This is sub-optimal since it is common to want Normal text outside of a table to look different from Normal text inside of a table. For example, you may want some additional space between normal paragraphs outside of tables, but not inside of tables.
  • When you keep the Normal Style empty by default, this just works because Normal text outside of tables gets its properties from the Document Defaults, and Normal text inside of tables gets its properties from the Table Style.

On to question two…

How do Style Sets relate to Styles?

Style Sets only do two things:

  • change the properties of the Styles shown in the Style Gallery
  • reset your Document Defaults

They do the first to allow you to quickly change the look of your whole document. They do the second to make sure that the change will be the same every time. The Fancy Style Set is Fancy and will always be Fancy for all documents on all computers since we level the base that Fancy is built on every time we apply it (i.e. we reset the Document Defaults).

Exercise: Do the experiment in my last post where you change your Document Defaults. Notice that the Styles in your Style Gallery that inherit properties from the Document Defaults also change. That's because the base they are built up on changed.

Now, pick another in-box Style Set. Note that the new default properties you defined are not applied to the new Style Set. That's because applying the Style Set reset your Document Defaults to make sure that it looks the same every time you use it.

Style Sets only do these two things. Style Sets are not "in" your document. Your document does not "have" a Style Set. There is not a two-way connection between the Styles in your document and the Style Set. The Style Set simply tells the Styles Gallery what Styles to display and ensures they look the same every time.

Note: The literal Styles specified by a given Style Set are persisted in the document.

Exercise: You can test this for yourself by applying a Style Set, saving, and closing Word. When you reopen you will note that the Styles gallery has the same Styles in it, but that the Style Set is not selected in the Style Set menu.

Quick Aside on Working With Style Sets

Given this design, if you want to do more than apply in-box Style Sets, your best bet is to create new ones rather than modifying existing ones. To do this:

  • directly modify the Styles in the Styles Gallery or select text in your document and click "Save Selection as a New Quick Style" in the Style Gallery dropdown

  • click "Save as Quick Style Set" under Change Styles

This will create a new Style Set at C:\Users\<username>\AppData\Roaming\Microsoft\QuickStyles (assuming that you are using Vista) and will be available for all documents for the given user on the given computer.

Exercise: Open a blank document. Create a new Style Set. Apply your new Style Set to the document. Save the document. Email the document to yourself on another computer. Open the document on that other computer.

Note that the Styles Gallery looks the same but that your new Style Set is not in the list of Quick Styles. As you now know, this is because Style Sets simply tell the Styles Gallery what Styles to display. The Style Set is not "in" your document.

You'll also note that this scenario is a great example of why we do this. If we added new Style Set to your list every time you opened a document with a custom Style Set, the list could quickly become unmanageable.

Also, keep in mind that if you save a selection as a custom Quick Style, your custom Quick Style will still be available in the Styles Gallery even if you change your Style Set.

How do Themes Relate?

I saved the simplest for last. Themes are simply a new level of abstraction available to Styles. Specifically, Themes let you uses variables instead of constants when you specify the properties within a Style. For example, let's say I'm creating a new Style called "Tea," and I want to specify the color property.

With the introduction of Themes I have two choices:

  • make the color absolute (ex. green)
  • make the color relative (ex. Accent 3).

If I choose the former, Tea's color won't be affected when I change the Theme of my document. If I choose the later, Tea's color will be affected when I change the Theme of my document. This comes in handy when you want to make a compelling and consistent change to the overall look and feel of your document in a few clicks.

Conclusion

  • Normal is empty to allow Normal text outside of a table to look different than Normal text inside of a table.
  • Style Sets specify what Styles to show in your Styles Gallery and reset your Document Defaults.
  • Themes add a level of abstraction to Styles.

It's not quite as easy as 1, 2, 3, but hopefully it helps.

-Jonathan Bailor

Appendix – How to Look At the XML that Makes-up Word Documents

If you'd like details on Word's file format please see Brian Jones' blog. If you want to look at the XML that makes-up Word documents:

  • Show extensions in Windows
    • Click on the Tools menu in Windows Explorer and click Folder Options

    • Uncheck the box next to 'Hide extensions for known file types'

  • Right click on a Word document in Windows, select Rename, and change the .docx extension to .zip

Open the .zip file and open each of the respective XML files

Office Blogs Comments

Comments: (16) Collapse

  • I wonder if you could comment on how page breaks and paragraph formatting works together? I have a pet peeve with Word formatting that would probably be less "peevy" if I understood why it works this way... To reproduce (I'm using Word 2003, so maybe this is already fixed in 2007?): 1. Open a new, blank document.

    2. Type a line of text in the default Normal style, and press enter.

    3. Press Control-Enter to insert a page break.

    4. Type a little more text, then

    5. Apply a paragraph format that specifies a background color to the paragraph on page 2. If you now scroll up, you'll see the background color splashed across the "page break" line on page 1, but I really only wanted to color the first paragraph on page 2! Why does it "bleed up" like this? Thanks,

    - Kevin

  • A great couple of posts - I hope we'll see more in the future. I've been around long enough to remember the Word 6.0 Resource Kit which I seem to recall had a similar level of technical detail. Up to Word 2003 the document architecture was similar enough that I've been recycling what I learnt back then ever since... and I had been missing that level of understanding on how Word 2007 documents are put together! So thank you, thank you, thank you. Even if we never get technical manuals at the level of detail of the old Resource Kits, it's good to know some of the most information is being put in the public domain.

  • Hi TechieBird – Thanks for your kind words. Regarding Office Resource Kits…have you checked-out the 2007 Office Resource Kit - technet.microsoft.com/.../cc303401.aspx - Jonathan Bailor (MS)

  • @Kevin This actually happens because the page break, although it ends the page, isn't a paragraph mark, so it's on the same paragraph as the first line on the next page. Therefore, when you apply a paragraph style, it applies to the whole para - including the page break on the previous page. In Word 2007, we did fix this by automatically inserting a paragraph mark when you add a page break (and allowing that following para mark to sit after the page break, rather than on the next page). - Tristan

  • My file has borders, which I gather are themes.

    When I "saveaspdf" the brdrdot, brdrdashsm, brdrdash, brddash, and brdrdashd do not look very much like they do in the Word 2007 document, but are dotted/dashed. The brdrdb, brdtriple are thick solid lines. Brdrthtnsg look OK. The brdrwavy, brdrwavydb, and brdrdashdotstr totally disappear. And the brdrengrave looks ok. What can I do to get the pdf file to actually look like the word file. Of 4 pcs (2 desktops, 2 laptops; 3 XP and 1 Vista; all Office 2007), the problem exists on 3 of the 4. The old XP laptop produced pdf files with good looking borders ... did. My husband started removing things like Civilization, etc., to speed it up, and now the borders don't work any better on that machine than the other 3 machines.

  • This short series is beginning to help clarify my understanding of 2007; I was pretty confident with styles and templates in 2003, and I'm finding things just aren't quite working as I expect based on that old understanding--so this is very helpful--although I'm going to have to spend more time mulling it over. One of the things I've been puzzling over is how the style sets relate to templates. What I'm getting at a first read here is that they're not--so that may have just cleared up a big misunderstanding on my part. How can I make a style set available to all students, who may log in on any one of a dozen computers? I have a workgroup templates folder on a server (which brings up another peculiarity, but we'll not go into that in this post), so I'd thought I could create a style set "in" a template and it'd be available to all. Now I think I understand why that doesn't work. So--what would be the correct way to do this?

  • Hi Julie – Here’s a way to make your custom style set and only your custom style set available to all students who may log in on any one of a dozen computers:

    - create a custom style set

    - have it in use in the template (i.e. pick it as the “active style set”)

    - show the styles pane

    - click the manage styles button

    - click the restrict tab

    - check the Block Quick Style Set switching box

    - save the template All documents created from this template will have your custom style set in the Style Gallery and your students won’t be able to change it. Does this help? - Jonathan Bailor (MS)

  • Great series. Would you please also elaborate on numbering in Word 2007. Especially the difference between using a numbered style where the paragraph indents are set by the style vs. right clicking and using "adjust list indents" (which doesn't appear to be handled by styles) and how that affects such things as restarting or continuing numbering. This whole procedure isn't very intuitive. I have also had problems with list styles disconnecting from the associated paragraph/linked styles. Is there some way to set this up to be more stable? Thanks again. -John

  • Hi John - Thanks John. I'm not sure I can do justice to your question in a comment…so I’ll queue it up for a future post. Thanks for the great question. -Jonathan Bailor (MS)

  • Ruth -

    Thanks for your feedback. I've double-checked all border output to PDF files, and you are correct that the wavy line borders don't display in the PDF files. This is a known issue with our Save as PDF feature, and exists for both page borders and table borders. We don't have a workaround for the issue right now. The other borders should all be saving to the PDF file correctly, but it may not be obvious at an initial glance. Some of the borders look like a solid line, but if you zoom in, you'll see the actual pattern on-screen; printing the PDF file will also print the borders in the same way that they print from the Word file. The discrepancy between what you see on-screen between the two applications results from a difference in how the applications render lines. Word has a fixed minimum width for displaying lines; anything below this minimum width is displayed wider than it actually is. PDF, on the other hand, does not have a minimum width, so the lines are rendered at the actual width, and what displays on-screen may even vary with the PDF viewer you are using to display the file. Your best workaround for ensuring that the on-screen display of the PDF matches the on-screen display of the Word document is to increase the line width of the border to 1pt or higher for those borders that are made up of multiple lines. We haven't made any changes to how we output borders since we released the Save as PDF feature, so I am not sure why you are seeing different results on different machines. However, I suspect that you may have been using a third-party application, such as Adobe Acrobat Pro, to save out your PDF files, and this may have been removed when your husband was removing things from the machine.

  • Why is there absolutely 0 posts about blogging in Word. You've got a whole category devoted to it but not a single post since 06. I'm having a problem trying to open existing posts where it is only showing the last 20 posts and none prior to that when I try and "open existing posts". There seems to be no discussion on blogging from Word anywhere on the web, I would have thought that I would at least find some interesting blogging tips here...

  • Hi Brian - Check-out: blogs.msdn.com/.../595963.aspx - Jonathan Bailor (MS)

  • > When you keep the Normal Style empty by > default, this just works because Normal > text outside of tables gets its properties > from the Document Defaults, and Normal text > inside of tables gets its properties from > the Table Style. Apart from the fact that you can't customize the Normal paragraph style when you use table styles, that scheme works reasonably well. One "issue" that remains is that Ctrl+Q (ResetPara) used inside a table resets the paragraphs to the document default settings, not to the table style settings. So with most built-in table styles (with 0 pt "space after" and single line spacing), Ctrl+Q applies 10 pt after and a 1.15 multiple line spacing. BTW, you can then use "remove paragraph formatting" in the Styles Inspector to get rid of that... So it seems that the code for ResetPara (Ctrl+Q) may be in need of an overhaul. - Klaus

  • We have a large number of set templates and I'm trying to set a table style, but for whatever reasons the table even if I have defined paragraph spacing, the default Normal spacing is applied regardless (I've change the Normal default spacing from 12pt after to 12pt before). Any assistance will be much appreaciated. Thanks

    Yann

  • This post was extremely helpful to me, I finally "get" why the font sometimes changes on me when I insert a table.

    I hope this thread is still being monitored.  

    My frustration is that I do NOT want the table default to be different than Normal style.  I have my document defaults set to what I want -- Times New Roman, 12, and nothing defined in Normal.  When I insert a table, I get 10 point font.

    I don't see a way to define a default for tables.  I can change the Table Grid style after applying it to a table, I don't see a way to get at the Table Normal style (w/out VBA).

    I understand that if I define the font size in Normal, that will dominate in my table.  But I can't find a way to put the 12 point size IN Normal when Normal matches the document default.  

    I can modify the Table Grid style but I don't see a way to save that in a Quick Style Gallery.

    I'd like to be able to be in a document and pull in a style set where the default font in the table will match the default for the document.  Is there a way to do this?

    I'd also like to be able to set the document defaults for font and paragraph with VBA after the document has been created, but I understand that's not what this thread is about.  Just thought I'd throw that out there...

    Thank you so much for the post, I'm going to go search for more or yours!

    Laura

1 2  Next >
Comments

Comments: (loading) Collapse