Ideal Software

With some customization, Microsoft Word makes a pretty good tool for editing. The fact that it can be customized, in fact, is one of its finest features. I also like its use of styles, spell-checking, wildcard Find and Replace, and notes. There are also plenty of things I *don't* like, including Word's general "bugginess" and over-helpfulness. So I started thinking about what would make the ideal software for use in a publishing environment. What would that software look like? What features would it have?

So far, I have the following list, which includes some features that are already part of Word, others that are part of our Editorium software, and others that haven't been invented yet or are available in other programs:

1. Features designed specifically for editing, such as:

a. Batch Find and Replace using regular expressions (wildcards).

b. Quick and easy navigation.

c. Transposition of words and characters.

d. True title-case conversion.

e. Revision tracking and control.

f. Single-sourcing.

g. Automatically numbering notes and lists (that actually work).

h. Automatic backup and archiving.

2. Typesetting features:

a. Excellent hyphenation and justification.

b. Notes that can break over pages and be set in columns independent of body text.

c. Master pages for setup of headers, footers, folios, and so on.

d. Support for automatic ligatures, old-style numbers, and true small caps using master fonts.

e. Paragraph, character, and table styles.

f. "Long-document" features such as cross-referencing, indexing, and tables of contents.

g. "Book-building" features (in other words, a useable Master Document feature).

3. Indexing features with:

a. Embedded entries.

b. Display of entries sorted by page or alphabetically.

c. Real-time display of the index as it's being written.

d. Sorting word-by-word or letter-by-letter, with the ability to ignore introductory words and punctuation.

e. Word completion based on previous entries.

f. Automatic checking of cross-references.

4. The ability to export as:

a. PDF.

b. HTML.

c. HTML Help.

d. XML.

5. Cross-platform compatibility.

I know, I know: Dream on. But wouldn't it be great to have one program that did it all?

What would you add to the list? What would your ideal publishing software look like? Please let me know and I'll publish your response in the near future. You can send your ideas here: mailto:editor [at symbol] editorium.com.

_________________________________________

RESOURCES

Jacci Howard Bear has a great Web page on choosing desktop publishing software at About.com. Lots of reviews, comparisons, and other good information:

http://desktoppub.about.com/cs/softwarechoice/

Automated Letter-by-Letter Index Sorting

Last week's newsletter explained how to sort Word's index entries letter by letter rather than word by word:

Using "Found" Macros

But it didn't explain how to do it in an automated way. So here's an automated way, using wildcard Find and Replace. You can learn more about using wildcards in some of our past newsletters:

http://www.topica.com/lists/editorium/read/message.html?mid=1705963026

http://www.topica.com/lists/editorium/read/message.html?mid=1706069286

http://www.topica.com/lists/editorium/read/message.html?mid=1706069286

http://www.topica.com/lists/editorium/read/message.html?mid=1706069286

http://www.topica.com/lists/editorium/read/message.html?mid=1706365638

http://www.topica.com/lists/editorium/read/message.html?mid=1706458823

Here's the procedure, which you can record as a macro for future use. Or, better yet, just use the prerecorded macro I've included at the end of this article. Work through the procedure if you want to know more about using complicated searches, or if you just want to see how my devious little mind works. (There's probably a better way to do all this using Visual Basic for Applications, but that's a subject for another day.)

1. Make sure your index entries are visible by showing hidden text (Tools > Options > View > Hidden text).

2. Find the index entries and replace them with themselves colored as, say, plum, so your Find and Replace won't move across entry borders later:

Find What:

(XE "*")

Replace With:

1 (formatted as plum)

Use Wildcards:

Checked

3. Replace escaped colons and quotation marks with arbitrary symbols to be changed back later ("escaped" means they have a backslash in front of them, telling Word to treat them as characters, which is how you can use colons and quotation marks in your index entries!):

Find What:

:

Replace With:

&&&

Use Wildcards:

Unchecked

Find What:

"

Replace With:

@@@

Use Wildcards:

Unchecked

4. Put a colon after main-only (but actually, after all) entries:

Find What:

(XE "*)(")

Replace With:

1:2

Use Wildcards:

Checked

5. Find plum-colored, multiple-word index entries and enter semicolon entries, going from three spaces to one space, which ought to be enough for anybody (and besides, Word can only handle up to five "Find What Expression" wildcards):

Find What:

(XE ")([! :]@) ([! :]@) ([! :]@) ([! :]@): (formatted as plum)

Replace With:

12 3 4 5;2345:

Use Wildcards:

Checked

Find What:

(XE ")([! :]@) ([! :]@) ([! :]@): (formatted as plum)

Replace With:

12 3 4;234:

Use Wildcards:

Checked

Find What:

(XE ")([! :]@) ([! :]@): (formatted as plum)

Replace With:

12 3;23:

Use Wildcards:

Checked

6. Clean up colons at ends of entries:

Find What:

(XE "*):(") (formatted as plum)

Replace With:

12 (formatted as Automatic, which gets rid of all plum)

Use Wildcards:

Checked

7. Restore escaped colons and quotation marks, if any:

Find What:

&&&

Replace With:

:

Use Wildcards:

Unchecked

Find What:

@@@

Replace With:

"

Use Wildcards:

Unchecked

Now move to the bottom of your document and have Word generate your index (Insert > Index and Tables > Index). Well, look at that: The entries are sorted letter by letter. Neat!

If you want to work manually, you can insert a semicolon and alternate spelling after a main index entry to force Word to sort in any way you like. For example, let's say you've got some numbers in your index, ordered like this:

8123

835

86

Ordinarily, that's how they'd sort. But if you edit your index entries like this--

{XE "835;0835"}

{XE "86;0086"}

{XE "8123;8123"}

--you'll make them sort like this:

86

835

8123

If you really wanted to, you could even do something weird like this--

{XE "Zebra;1"}

--and force "Zebra" to the top of your index.

Pretty handy, no? At any rate, you now have an automated way to sort Word's index entries letter by letter. Enjoy!

Here's the prerecorded macro to make index entries sort letter by letter. If you don't know how to use such macros, you can find out here.

'THE MACRO STARTS HERE
Sub IndexEntriesLetterByLetter()
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorPlum
With Selection.Find
.Text = "(XE "")([! :]@) ([! :]@):"
.Replacement.Text = "12 3;23:"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorPlum
With Selection.Find
.Text = "(XE ""*"")"
.Replacement.Text = "1"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ":"
.Replacement.Text = "&&&"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = """"
.Replacement.Text = "@@@"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(XE ""*)("")"
.Replacement.Text = "1:2"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorPlum
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(XE "")([! :]@) ([! :]@) ([! :]@) ([! :]@):"
.Replacement.Text = "12 3 4 5;2345:"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorPlum
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(XE "")([! :]@) ([! :]@) ([! :]@):"
.Replacement.Text = "12 3 4;234:"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorPlum
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(XE "")([! :]@) ([! :]@):"
.Replacement.Text = "12 3;23:"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Font.Color = wdColorPlum
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Font.Color = wdColorAutomatic
With Selection.Find
.Text = "(XE ""*):("")"
.Replacement.Text = "12"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "(XE ""*):("")"
.Replacement.Text = "12"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "&&&"
.Replacement.Text = ":"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
With Selection.Find
.Text = "@@@"
.Replacement.Text = """"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
'THE MACRO ENDS HERE

_________________________________________

READERS WRITE

The newsletter for July 31 explained how to make punctuation easier to see by formatting it as big, bold, and red; the following newsletter offered some reader tips on doing so; and last week's newsletter included a terrific macro by Phil Rabichow to automate the process.

This week, Steve Hudson provides a similar macro as an exercise in Visual Basic programming (and of course, it's useful, too!). It's a toggle, so you'll probably want to put the subroutine named SomeToolbarNameToggleBigPunctuation() on a toolbar button for easy access. You can learn how to do this here:

http://www.topica.com/lists/editorium/read/message.html?mid=1707286867

As you look through the macro, pay particular attention to Steve's comments, which explain what's going on. The macro is an excellent example of VBA, including find loops, wildcard matching, range objects, optional parameters, design analysis, and much more. Actually, the whole macro has many left-of-center concepts--for example, a Find that can return nothing yet still not have finished (it picks up the Chr$(7) that marks a table start, which can't be included in the wildcard entry). The macro also nicely changes the cursor and screen updating, and it backs out formatting changes. Steve is a master at this kind of stuff, so get ready to learn something. And why not contact Steve to take care of your custom programming needs?

By the way, you'll note Steve's humor throughout. Here is Steve's commentary, edited slightly by me to fit the context of this newsletter:

The past newsletters found and formatted punctuation by inclusion, which rules out Unicode and the like. So I figured a macro would be better with punctuation by exclusion in order to show up all sorts of strange dweebs.

The second problem was your suggestion to create a temporary style that mucks my document up with no subsequent hint of destruction.

The third was "How do I reverse this?" If I have a formula in character styling and another elsewhere in terminal screen, I can't find this style and kill it dead with a known something else. So I have to transpose my edits to have a safe working practice. Ack.

The fourth problem was not acknowledging No Proofing on styles.

So the first one is easy enough, we simply start the square brackets formula for the find with a ! and then what we are not interested in. Thus the string for a trivial solution is [!A-Za-z0-9^160]. Note the ^160 for the nonbreaking space; Word honours the ole caret at a higher priority than anything else. Basically, this finds anything *except* a letter, a number, or a nonbreaking space, but I've added additional characters in the macro itself.

The second is also easy. We all use STYLES like good little folk, so let's keep those in place and add--oooo--MANUAL FORMATTING. We can hunt it down and undo it easy enough later by resetting that range to its underlying style again, so it's a temporary aberration for our temporary aberration. That's the third taken care of as well.

Now, the fourth and last--is there any way we can tell the Find to do only those styles with proofing set? Err, no. So we have to check this ourselves manually. 🙁 Word's find falls down spectacularly with stuff like this. Easy enough, and should be faster as we are doing less styling work, which is expensive.

Now some little style notes--I prefer to use ranges and let the users have their selection object. It may be faster running selection.finds, dunno, duncare 🙂 It makes the resulting code smaller and easier to read and allows me sick puns--the last being the most important reason of course. What's the use of knowing all this junk if you can't have fun with it, I say. I know that some folks hate nonstandard variable naming, but I like code that is human readable.

Next, always reset stuff back to the way it was. If users do a find, do they want your settings?

'THE MACRO STARTS HERE
Public Sub SomeToolbarNameToggleBigPunctuation()
'Attach this to a button on a toolbar
'we use the toolbar name to start the sub so we know where
'this sub is called from
Static Toggle As Boolean
Toggle = Not Toggle
ProofReadBigPunctuation Toggle
End Sub
Public Sub ProofReadBigPunctuation(MakeBig As Boolean, Optional Scope As Range)
'$--------
Author: heretic [at symbol] tdfa.com
'$Short: If makebig is true, it makes punctuation marks BIG
'to aid proofreading as discussed by Editmeister Jack.
'If makebig is false, it removes this formatting
'$Known issues: Destroys original doc highlighting IF
'highlighting is used in the formatting process.
Dim HomeOnThe As Range 'Our findermatic
Dim Finished As Boolean
Dim Progress As Double 'enough space for calcs in big dox
'Be nice, don't assume system settings
Dim Cursor_pholder As WdCursorType
Dim ScreenUpdating_pholder As Boolean
'frilly bits: change the cursor whilst we work!
Cursor_pholder = System.Cursor
System.Cursor = wdCursorWait
'freeze the screen to speed things up
ScreenUpdating_pholder = Application.ScreenUpdating
Application.ScreenUpdating = False
'This basic technique can be used in as many ways as Bill
'has bux.
'________________________________
'Give our range a document range to hang off.
'The first .dupe is strictly speaking unnecc but a good habit
'to get into with range objects--the second one prevents us
'changing the passed scope without realising it!
'We avoid the other parts of the document by setting our
'ranges parent to be the range that is the content only.
'I regularly use Activedocument.Content too.
'Also note how we deal with no explicit scope being passed
'from that Optional parameter
If Scope Is Nothing Then Set Scope = _
ActiveDocument.StoryRanges(wdMainTextStory).Duplicate
Set HomeOnThe = Scope.Duplicate
'Collapse our range to a point at the start of the doc
'main body content, just like a cursor in a virgin document.
HomeOnThe.Collapse
'We don't have to clearformatting or anything as it's
'a whole new range. Just set up the find
'$Customize: the ! means NOT anything in the following list
With HomeOnThe.Find
'note we don't use If MakeBig = True then
If MakeBig Then 'errant chars
.Text = "[! 0-9A-Za-z^9^12^13^160]" '$Customize
.MatchWildcards = True
Else '$Customize: formatting
With .Font
.Color = wdColorRed
.Bold = True
End With
.Highlight = True
End If
End With
'Get started on a standard manual processing find loop.
While Not Finished
'let the poor user know where we are at
Progress = Int(HomeOnThe.End * 100 / Scope.End)
Application.StatusBar = "Restyling " & Format(Progress) & "%"
'ensure the statusbar change gets through
DoEvents
'the find!
With HomeOnThe.Find
.Execute Replace:=wdReplaceNone
Finished = Not .Found
End With
'Our range is now either null, meaning nothing found
'or it contains a range for us to examine
If Not Finished Then 'we caught one!
If MakeBig Then 'style if proofing on
If Not ActiveDocument.Styles(HomeOnThe.Style).NoProofing Then _
FormatFontGruesome HomeOnThe
Else 'unstyle
HomeOnThe.Font.Reset
HomeOnThe.HighlightColorIndex = wdNoHighlight
End If
End If
HomeOnThe.Collapse wdCollapseEnd 'so we keep moving along
Wend 'finished
'destroy our objects
Set HomeOnThe = Nothing
'reset our changes
Application.ScreenUpdating = ScreenUpdating_pholder
System.Cursor = Cursor_pholder
Application.StatusBar = "Finished"
End Sub
Private Sub FormatFontGruesome(Scope As Range)
'$Short: to make shtuff shtand out shorty, you
'gotta problem wid dat?
'$Customize: don't forget to keep this matched with the
'find requirements for the undo
'I don't like the thought of changing font name
'as that could change the displayed character
'Lets just make it BIG, BOLD and RED on a YELLOW background
With Scope.Font
.Color = wdColorRed
.Bold = True
.Grow
.Grow
.Grow
End With
Scope.HighlightColorIndex = wdYellow
End Sub
Sub TestProofReadBigPunctuationOn()
Dim i As Long
Application.ScreenUpdating = False
Documents.Add
DoEvents
For i = 27 To 1200
Selection.InsertAfter ChrW(i)
Next i
ProofReadBigPunctuation True
Application.ScreenUpdating = True
End Sub
Sub TestProofReadBigPunctuationOnSimple()
'run this on any trial doc to be sure
ProofReadBigPunctuation True
End Sub
Sub TestProofReadBigPunctuationOff()
ProofReadBigPunctuation False
End Sub
'THE MACRO ENDS HERE

Many thanks to Steve for the macro and for the tutorial.

_________________________________________

RESOURCES

If you're looking for indexing resources, don't miss those supplied by the School of Library, Archival and Information Studies at the University of British Columbia:

http://www.slais.ubc.ca/resources/indexing/index.htm

Sorting Index Entries Letter by Letter

If you've used Microsoft Word's Index feature, you know that Word alphabetizes index entries word by word, like this:

New Deal

New World

Newborn

News release

Most indexers and publishers, however, prefer to sort index entries letter by letter, like this:

Newborn

New Deal

News release

New World

Is there a way to get Word to sort entries in this way? Yes--with some manual intervention. (If you've never used Word's indexing feature, you might want to read about it in Word Help before continuing.)

A typical Word index entry looks like this--

{XE "New Deal"}

--and it will sort in word-by-word order.

However, if you add a semicolon to the entry, followed by a letter-by-letter spelling (in other words, a spelling that omits the space between words), you can make the entry sort letter by letter. (In case you're wondering, this feature isn't documented in Word Help; you have to dig for it on Microsoft's Web site.)

The edited entry should look like this:

{XE "New Deal;NewDeal"}

So for our other examples above, the edited entries would look like this:

{XE "New World;NewWorld"}

{XE "Newborn"}

{XE "News release;Newsrelease"}

("Newborn" doesn't need editing, since it's already just one word.)

If we then have Word generate an index using those entries, they'll be sorted letter by letter, like this:

Newborn

New Deal

News release

New World

Neat!

But now I'm wondering: Is there an automated way to edit those index entries?

[Offstage, right: Loud clanks and clunks as your correspondent rifles through his toolbox.]

Hmmm. Here's something that *might* do the job. I'll try it and get back to you in about a week.

_________________________________________

READERS WRITE

After reading last week's article "Glorious Color," Word expert Steve Hudson wrote:

I *knew* I had an unsettled feeling about your post. It's gelled.

#1: H9 sure - but yellow on white?

#2: Printing on a black and white printer...

After reading Steve's note, I could see where it might be easy to miss what I had in mind, so here's a clarification:

#1: H9 sure - but yellow on white?

DARK yellow, which looks pretty good on screen. Regular yellow, as Steve points out, doesn't work well.

#2: Printing on a black and white printer...

The point is that you use the colors only while editing on-screen. When you're ready to print, you attach the *real* template for the final look--and then print.

Thanks to Steve for helping me clarify things.

After reading our article about making punctuation big and bold, Phil Rabichow wrote:

I enjoyed your technique for making punctuation stand out for those of us, er uh, those whose eyes may not be the sharpest (or to avoid eyestrain). I took your idea and expanded on it. I created a macro that would:

1. Create a character style called Standout that was Times New Roman, 18 points, bold, and red.

2. Handle the error in case the style already existed.

3. Replace all punctuation marks in one fell swoop with the new style.

Because of the error handling in 2. above, you can run the macro, add text with additional punctuation, and run the macro again. Also, instead of doing successive Find/Replace operations, it uses wildcards and Finds: [.,:;"'""?!] i.e., all types of punctuation. The backslash in front of the question and exclamation marks finds those characters. The macro also finds all quotes (") and apostrophes. Although it doesn't show in an email, what appears to be 7 apostrophes are really 1 set of quotes, 1 apostrophe, 1 opening smart quote (Alt+0147) and 1 closing smart quote (Alt+0148). [On a Macintosh, the character numbers would be 210 and 211.] Replace contains: ^& (the operator for Find What Text) and is formatted for the Standout character style.

The macro is:


Sub BigPunctuation()
' BigPunctuation Macro
' Macro recorded 8/11/02 by Phil Rabichow
' Creates Standout style & replaces punctuation
' of selection with large red bold font
'
On Error Resume Next
ActiveDocument.Styles.Add Name:="Standout", _
Type:=wdStyleTypeCharacter
ActiveDocument.Styles("Standout").BaseStyle = _
"Default Paragraph Font"
With ActiveDocument.Styles("Standout").Font
.Name = "Times New Roman"
.Size = 18
.Bold = True
.Color = wdColorRed
End With
With ActiveDocument.Styles("Standout").Font
With .Shading
.Texture = wdTextureNone
.ForegroundPatternColor = wdColorAutomatic
.BackgroundPatternColor = wdColorAutomatic
End With
.Borders(1).LineStyle = wdLineStyleNone
.Borders.Shadow = False
End With
' Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Selection.Find.Replacement.Style = _
ActiveDocument.Styles("Standout")
With Selection.Find
.Text = _
"[.,:;""" & ChrW(8220) & ChrW(8221) & "'?!]"
.Replacement.Text = "^&"
.Forward = True
.Wrap = wdFindStop
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

Note that this macro will apply to a selection in case you only want to change some of the punctuation. If you remove the apostrophe before the line

Selection.HomeKey Unit:=wdStory

the macro will work on the entire document.

Thank you again for your time and a wonderful publication.

Thanks to Steve for the terrific macro! If you don't know how to use macros like this one, you can find out here.

And you can learn more about improving the visibility of punctuation (including how to get the big, bold punctuation back to normal) here:

http://www.topica.com/lists/editorium/read/message.html?mid=1710712423

_________________________________________

RESOURCES

The American Society of Indexers is "the only professional organization in the United States devoted solely to the advancement of indexing, abstracting, and database building." Their site has lots of links to indexing and publishing resources and, of course, tons of information about indexing:

http://www.asindexing.org/site/index.html

Glorious Color

In the past, I've recommended using your own template to apply to documents you're editing. This allows you to use a typeface that's easy to read on your monitor, offers plenty of differentiation between double and single quotation marks, and has a long em dash, a medium-sized en dash, and a short hyphen (so you can tell them apart). You can learn more about this here:

http://www.topica.com/lists/editorium/read/message.html?mid=1700934923

One difficulty I've encountered with my custom template is distinguishing between different heading levels. I like to know at a glance how a heading is styled, without having to look at the formatting toolbar or the "style area," which you can learn about here:

http://www.topica.com/lists/editorium/read/message.html?mid=1710340695

To get around the problem, I've usually formatted my Heading 1 style in 22-point type, my Heading 2 style in 18-point type, and my Heading 3 style in 14-point type, with Heading 1 and 2 centered and Heading 3 flush left. This works okay, but if I need to add Heading 4 and Heading 5 (which is sometimes necessary), I start running out of formatting.

But I've recently discovered a nice solution: color!

Why not make Heading 1 red?

And Heading 2 blue?

And Heading 3 green?

And Heading 4 orange?

And Heading 5 brown?

You get the picture! Some of the standard Microsoft Word colors stand out well on a white background and are easily distinguishable from each other. These are, in my opinion, red, blue, green, orange, brown, pink, sky blue, bright green, and dark yellow (one for each of Word's nine heading levels), but feel free to use whatever works well for you.

You might want to arrange the heading level colors in a way that is easy to remember. The order I used above works for me. I split the colors into groups of three: red, green, and blue (commonly known as RGB); orange, brown, and pink (which makes no sense except that I like orange better than brown, and brown better than pink); and finally (in order of sky, lawn, and dirt), sky blue, bright green, and dark yellow. But you could use the (approximate) order of the spectrum, or maybe some mnemonic device based on the first letter of each word.

Whatever system you choose, using color makes it easy to see and identify heading levels, and it also makes a manuscript much more fun to read!

_________________________________________

READERS WRITE

After reading last week's newsletter about making punctuation big and bold, Hilary Powers wrote:

Enjoyed the newsletter, as always - but the current suggestion seems like an awful lot of work for a partial solution. I much prefer to edit in a font that has punctuation big enough to see... and everything else, too. If you have Lucida Console on your system, give it a try - it's both denser and easier to read than Courier New, and everything is clear. Even the dots for spaces with hidden characters turned on are the size of lentils. The similarity between en dashes and hyphens is the only problem for onscreen work, and that's easy to deal with.

It looks awful on paper, though, so you do have to change it - basically, switch templates - before giving the file to anyone who plans to print it.

Susan Bullowa wrote:

I highlight all punctuation marks using Search and Replace. No font fuss. Next time, I plan to develop nested macros (if I can in Word).

In a book I just worked on, the author's I's, me's, and my's were all highlighted because my editor asked me to make the book a bit less egocentric! It worked like a charm.

Karen MacKenzie, a Word moderator and WMVP at Woody's Lounge (see the Resources column, below), wrote:

Great tip! I've already placed style and macro in my normal.dot. But I did modify the replace so as to get it all in one fell swoop. The change as follows:

Wild Card search

Search for: [,.;:'"] (What you listed, but I omit the hyphens and dashes... too much for me!)

Replace with ^& (this tells Word to put back what it found)

Many thanks to Hilary, Susan, and Karen for their helpful thoughts and suggestions.

_________________________________________

RESOURCES

Woody's Lounge, as the name implies, is a great place to hang out and learn more about Word and other Microsoft stuff. Post questions, get answers, and help others with your ever-expanding knowledge. You can visit the lounge here:

http://www.wopr.com/cgi-bin/w3t/wwwthreads.pl

Don't forget to check out Woody's books and other goodies while you're there.