Don't Break That Word!

I've recently been editing a long, scholarly tome that, for reasons I'll discuss in a future newsletter, my co-workers and I decided to typeset in Microsoft Word, following the techniques explained here:

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

Our intrepid typesetter has been fairly content except for one thing: there seems to be no way to keep a word from breaking at the end of a line. Microsoft Word happily breaks "Je-sus" and "Bud-dha," for example, which we'd like to avoid. We could force a word down with a soft return, but that doesn't seem like a very elegant solution. Clever idea: how about putting an optional hyphen (CTRL + -) at the *beginning* of the word? That works, but it also *displays* a hyphen at the beginning of the word, which certainly won't do. Can the optional hyphen go at the end of the word? No, that doesn't work at all. So where might we find an answer?

Well, Unicode fonts include all kinds of interesting things. Would they, by chance, include a zero-width nonbreaking space? If we had one of those, we could insert it at the spot where we didn't want a break to occur. I went to Alan Wood's spectacular Unicode Resources site and searched for "zero-width nonbreaking space":

http://www.alanwood.net/unicode/search.html

There it was, not under general punctuation but as the last entry under Arabic Presentation Forms, of all things:

http://www.alanwood.net/unicode/arabic_presentation_forms_b.html

The Web site told me the decimal number (65279) and hex number (FEFF) of the character, so I fired up Word 2002 (XP) and entered the character by typing the hex number followed by ALT + x. With nonprinting characters showing, I could see the little beauty--it looked like a gray box inside a gray box. When nonprinting characters *weren't* showing, the character was invisible, since it had no width. And sure enough, when I put the character into a word and then pushed that word to the end of the line, the word refused to break. Success!

I sent a sample to Word guru Steve Hudson, who tested the idea in various ways and pronounced it good. Thanks, Steve! So now I share this little marvel with you. If you'd like to see the character in action (and get a sample of the character that you can copy and use in your own documents), you can download the following document to play around with:

http://www.editorium.com/ftp/nonbreaking.zip

After you download, unzip, and open the document, notice the automatically hyphenated "excellent" on the first line. Now add a character somewhere in the middle of the *second* line--enough to make the second "excellent" break. But it won't!

Incidentally, the character works in Word 2000 and later versions as long as you have Unicode fonts installed on your computer. You can learn more here:

http://www.alanwood.net/unicode/fonts.html

Please note that using this character within a word will mess up spell-checking for that word, so you might want to check spelling *before* inserting the character hither and yon. If you need to get rid of the characters, display nonprinting characters; then search for ^u65279 and replace with nothing.

_________________________________________

READERS WRITE

After reading last week's article on finding and replacing weird WordPerfect characters, Jane Lyle (jlyle@indiana.edu), managing editor at Indiana University Press, sent the following macro. Thanks, Jane! The macro does its work by searching for characters formatted in the WP TypographicSymbols font, and it includes some characters that last week's macro overlooked. If you don't know how to use such macros, you can find out here.

'MACRO BEGINS HERE

' WPTyp Macro

' Macro recorded 10/25/2001 by Jane Lyle

'
Selection.Find.ClearFormatting

With Selection.Find

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.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

With Selection.Find

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "A"

.Replacement.Text = """"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "@"

.Replacement.Text = """"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = ">"

.Replacement.Text = "'"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "="

.Replacement.Text = "'"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "B"

.Replacement.Text = "^="

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "C"

.Replacement.Text = "^+"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "?"

.Replacement.Text = """"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.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

.Replacement.Font.Name = "Times New Roman"

.Font.Name = "WP TypographicSymbols"

.Text = "Y"

.Replacement.Text = ". . ."

.Forward = True

.Wrap = wdFindContinue

.Format = True

.MatchCase = False

.MatchWholeWord = False

.MatchWildcards = False

.MatchSoundsLike = False

.MatchAllWordForms = False

End With

Selection.Find.Execute Replace:=wdReplaceAll

'MACRO ENDS HERE

_________________________________________

RESOURCES

You can find lots of interesting spaces, hyphens, and other Unicode characters here:

http://www.alanwood.net/unicode/general_punctuation.html

This entry was posted in Typesetting. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

Post a Comment

You must be logged in to post a comment.

  • The Fine Print

    Thanks for reading Editorium Update (ISSN 1534-1283), published by:

    The EDITORIUM, LLC
    http://www.editorium.com

    Articles © on date of publication by the Editorium. All rights reserved. Editorium Update and Editorium are trademarks of the Editorium.

    You may forward copies of Editorium Update to others (but not charge for it) and print or store it for your personal use. Any other broadcast, publication, retransmission, copying, or storage, without written permission from the Editorium, is strictly prohibited. If you’re interested in reprinting one of our articles, please send an email message to editor@editorium.com

    Editorium Update is provided for informational purposes only and without a warranty of any kind, either express or implied, including but not limited to implied warranties of merchantability, fitness for a particular purpose, and freedom from infringement. The user (you) assumes the entire risk as to the accuracy and use of this document.

    The Editorium is not affiliated with Microsoft Corporation or any other entity.

    We do not sell, rent, or give our subscriber list to anyone. Period.

    If you’d like to subscribe, please enter your name and email address below. We publish the newsletter once a week, and on rare occasions we may send an important announcement. We never, ever send spam. Thank you for signing up!