Within-Document Outlining in Scrivener



I do a lot of work with outlines and their graphical cousins, mind maps, And so moving outlines in and out of Scrivener and doing outline work within Scrivener is something I do a lot.

I wonder if a workflow like the following would work for you? If you had things set up the way I do in Scrivener and in Word, then achieving what you want could go like this:

a) You do your outlining work in Scrivener using a strategy for within-document outlining that I will describe below. Within-document outlines simply appear in Scriv as paragraphs with varying levels of left indent.

b) When it is time to put your outline into your final preferred format, you either use Copy and Paste to get the content into a fresh Word document (or use Scrivener’s Compile function with the Format Override option turned off to generate an RTF document to open in Word).

c) Once in Word, you run a simple AppleScript that converts the indent-formatted outline which came out of Scrivener into a Microsoft Word formatted outline.

d) You then apply Word’s outline numbering formatting as you ordinarily would.

e) There is one additional step you would need to make if you started with an RTF document from Scrivener. When you open an RTF document in Word, your personal formatting defaults and customized paragraph styles which are stored in your Normal template are not automatically invoked. One way to get around this is to simply take the content of the RTF document, copy it, and pasted everything into a fresh Word document.

If a process like the above sounds like it would suit you, then you might want to read further. (See next post.)



What follows is a list of things I have found useful in my own outlining workflow, and following that is a description of how you could go about setting up things in Word and Scrivener to do something similar. Since Word uses its own custom system for outline format, I found I could not do everything I wanted to do and have the kind of workflow that I wanted without the help of an AppleScript application which would do some of the work of converting different outline formats in and out of Word’s special outline format. So, I have included below also an attachment which is the latest version of this conversion program which I have posted in these forums before, but which has been updated and in particular with functionality that I think provides for exactly what you are looking for, namely, a way to get an outline-structured Scrivener document into the Word-recognized format. What I mean by an “outline-structured Scrivener document” is a document which is outline structured visually by virtue of a set of paragraph presets which adjust the left margin to different levels. This is what I call an “indent formatted” outline. More on this below.

So to begin, here are the things I have found useful to have set up.

  1. In Scrivener, make a set of custom paragraph presets which specify increasing amounts of left indent that you can use to do indent-formatted outlining within a Scrivener document. By assigning key commands to these paragraph presets using System Preferences you will be able to do outlining within documents in Scrivener in much the same happy way you have been doing it in Word. (Being able to manipulate outline structure at the level of documents, i.e. at the binder level, as Scrivener’s outline view does is great for many things, but I find for many kinds of outline that I do the ability to work with outline structure within a document is an important addition.)

  2. Make the visual styling of outline paragraphs in Word and Scrivener match (specifically with regard to left indent and spacing before/after paragraph). This serves one main purpose: it enables you to copy outline structured text from Word and paste it into Scrivener and preserve the relevant outline structure. This requires no conversion, because your Word outlines will be both MS-outline structured as well as indent-format structured (which is what you need to outline within a doc in Scriv).

Note: Word maintains two separate sets of style information for outline paragraphs. There is a fixed style for such paragraphs which is what you see when you are in outline view in Word. But there is also an ordinary, customizable paragraph style for each such paragraph and that is what you see when you look at paragraphs in normal view or page layout view. What we are doing here is making the styling that you see in Normal View match the styling of the set of custom paragraph presets that you made in Scrivener.

  1. Recognize that some kinds of outlining are better done in a dedicated outlining application. I have found that a good deal of the outlining but I once did in Word is actually best done in a good mind mapping application. This has greatly reduced my need to move outlined material in and out of the Word outline format. Of course, this means I also have an interest in being able to move between mind maps and Scrivener projects, but since mind maps are just graphical representations of outlines, the same family of strategies applies. I have found that Scrivener works in a nice way with mind mapping. [I won’t say anything more about working with mind maps and Scriv here, though.]

  2. Get yourself an outline converter program to help you move things in and out of the Microsoft outline format. Just so happens I wrote one and you are welcome to use it.

How could you go about setting up things in Word and Scrivener to do something similar to what I am doing? (See my next post.)



So, how could you go about setting up things in Word and Scrivener to do something similar to what I described earlier? (I am referencing Snow Leopard, Scriv 2.0 and Word 2004 when I detail particular steps to take, because that is what I am using.)

  1. Settle on the common paragraph formatting for outling structured text in Scrivener and Word. We only need to consider two paragraph format parameters: left indent and space after. I settled on a .25" left indent increment for successive levels of outline (except the first, which has no indent). The format of your first level of outline (Word’s Heading 1 style) pretty much needs to match your default paragraph style in Scrivener (as far as indent and space after is concerned). I use 12pts after for the first three outline levels, and 6pts after for the deeper outline levels.

  2. Impose these style choices on the outline paragraph types in Word (Heading 1, Heading 2, …). To do that, open the Normal template and make nine dummy paragraphs. Use outline mode to set them all at the different levels of outline. Return to Normal View. Using Format>Paragraph, set the left indent and spacing-after settings of each paragraph according to its outline level. Now, for each paragraph, Update its Style based on the current format of the paragraph–you can do this by picking that paragraph’s own style off the Style pop-up menu on the Formatting toolbar. Once you have done this, clean up: delete all the paragraphs you made and set the style of the lone remaining paragraph back to Normal style. Now, Save the template. Your MS outlines when viewed in Normal View in Word will reflect these style choices. Your MS outlines when seen in Outline View in Word will be uneffected.

  3. Now, make matching custom paragraph presets in Scrivener. To do this, make a Word outline document that has a paragraph at every outline level. Switch to Normal View, if necessary. Now, select all, copy, and paste the result into a fresh document in a Scriv project. (Do not use Paste and Match Style, just normal Paste.) Put your insertion point into the first paragraph, and choose Format > Formatting > New Preset from Selection. Name the preset something sensible, choose to Include All Formatting, but deselect the Include Font and Include Font Size options. You are going to need names for every level of indent you see in the document, so choose wisely. I went with OB, O1, O2, … O6 (I did not bother to make presets for Word’s last two levels). OB is for zero indent and corresponds to Word’s Outline level 1. O1 is for one .25" level of indent and corresponds to Word’s outline level 2. Etc. Choosing each paragraph in turn, make a paragraph preset for it like that. Next, you will want to assign keyboard shortcuts for each preset. In Apple’s System Preferences > Keyboard > Shortcuts, you can do this. I chose shift-command-0, shift-command-1, etc. as suitably handy.

You now have matching paragraph stylings for outline structured paragraphs in Scrivener and Word. This means you can paste Word outlines into Scrivener and the result will be the right thing for your within-document outlining work in Scrivener.

However, we are one step shy of full glory, because within-document outlines from Scrivener when pasted (or otherwise pulled) into Word will only have the same /appearance/ as outline-structured paragraphs. These paragraphs will not yet be assigned the appropriate outline level status that Word’s custom way of doing things requires. The text you brought over from Scrivener will be an indent-format outline, and not yet also an MS-Word-format outline.

To convert an indent-format outline text to MS-Word-format outline text, you need something like a little Applescript conversion utility for the job. (See my next post.)



(UPDATE: I now use a Word macro for some of the functions described below – it is much faster.)

The attached Applescript script program, will convert indent-format outlines to MS-Word format outlines (as well as perform a number of other outline format conversions). If the Script Menu is enabled on your Mac, you can simply place this Applescript in ~/Library/Scripts/Application Scripts/Microsoft Word/ and it will then always be available under the Script menu when you are in Word.

The program assumes that your indent outline format uses an indent increment of approximately .25". (I had to pick something, so I picked what I like.)

(This script is known to work on Mac OS 10.4-10.6.x and with Word 2004 in particular. If you have a different configuration, you will just have to try it and see.)

All Best,
(Not affiliated with Lit & Latte.)
Greg’s Outline Converter 4.app.zip (85.8 KB)

Wow, Greg. Thanks for your extraordinary help. I’m very nearly there. I followed your instructions to the letter, and have just a few tweaks (I hope) to make it output the outline in the format I’m seeking.

I started by defining Heading 1 to Heading 8 in Word (2008 for Mac, 12.2.7) with the indents and spacing-after as you did.

Then I pasted it into Scrivener, defining OB to O7 formatting exactly as you did. It looks like this:


I made a few tweaks: I prefer all spacing-after set to 6pts. I made sure the Headings in Word were similarly defined, just in case.

Pasting that Scrivener text into Word won’t work properly: your script turns all of it into Heading 1. I must have done something wrong. BUT, exporting it into Word and then running the script looks beautiful in outline view:


But then in normal view the indentations are lost:


Where do you think I went wrong?


Screen shot 2010-11-22 at 1.57.30 .png

One thing to add:

It looks like the problem may be in Word. I changed the Heading 1 - 8 formatting (in Word) to exactly resemble the indentation and spacing of OB - O7 (in Scrivener). Then I go to Tools > Templates > Organizer and I copy those redefined Headings to the global template from the file I’m working in.

But then when I export my Scrivener file to .docx and open it in Word, the Headings have reverted!

So the solution seems to be this: simply format the lecture in Scrivener using the preset indents & spacing, then paste that text into Word, and (with OR without running your script) apply outline numbering. The initial results look good.

What do you think?

The fact that the outline looks correct in Outline View in Word shows the script worked. The only trouble with the resulting doc is that Word has not automatically associated your outline text styling globals (Normal template) with this doc. You need to apply step (e) to your result:

You can use step (e) for this too:


It does not sound like your situation calls for this test, but in the interest of completeness I include here a testing script which reports on what left indents Word is reporting to the Outline Converter script. With this script you can check to see if your indent settings are within tolerance of what the converter expects.

This would be useful if you found that the script is failing to identify some of your indent-style paragraphs, you could check to see what Word thinks your “indent base” is, i.e. the indent factor (expressed in points) that when multiplied yields the different levels of indent for the various outline levels.

So, the attached script can be run in Apple’s preinstalled Applescript Editor app and will report the left indent of the first (up to) nine paragraphs of an open Word document.

The Outline Converter is set to expect something which has approximately an indent base of 18 pts – which is .25 inches worth of indentation.
Word Left Indent Test.scpt.zip (2.54 KB)

I am surprised that this works, but I see that it does! The surprising thing is that Word’s “Outlined Numbered” format applies correctly on the basis of the varying levels of left indent alone – without the need of imposing the outline levels on the paragraphs. (Maybe it should have been obvious, but I rarely use these numbered paragraph formats myself.)

The only downside I can see to leaving it at that would be that the result is not actually a Word outline and could not be tweaked or further manipulated as an outline once in Word (without applying the script). For your purposes, it sounds like you don’ t really need that, so the scriptless way looks like a simple boon.

Glad you found a good solution for you needs.