Book design with OpenOffice

Exploring the use of OpenOffice writer and the open-source Ghostscript Ps2pdf "Distiller" for the writing, complete layout and final production of PDF files.  This is for books with complex structures, requiring tables of contents, tables of other things, indexes of various kinds, footnotes, bibliographies, etc.  

Robin Whittle  rw@firstpr.com.au    

Started 30 August 2002.  Last update 5 September 2002.

This is very much a work in progress - please check back for the latest updates.



Scope of this page

This is a "stream of consciousness" exploration of how I am using OpenOffice.org Writer (OOoWriter) to do a complete, complex, book.   This means writing the book entirely with OOoWriter, and generating the final page images, as individual .PDF files, which will be used to make the printing plates.  Previous approaches to this involve Microsoft Word and Adobe Acrobat Distiller - and very often some messy moving of the text from Word to Quark Xpress.  But I reckon it can all be done with OOWriter.   There's only one way to find out - the hard way.  

This is for a book to be printed in black and white, primarily text, but with some illustrations.  It needs a Table of Contents, footnotes / endnotes, and at least one index.  It also needs some automatically generated page references.  There should be decent typographic control, with kerning and perhaps drop-caps, but it is basically a text book, without elaborate boxes with shading etc, though no-doubt OOoWriter can do a lot of that.  The is all horizontal.  Anyone designing a book with elaborarate graphic requirements, text on angles, text overlaying graphics etc. would be better off using a DTP program, such as Adobe's InDesign, Quark Xpress, or perhaps the open-source Linux DTP program Scribus:  http://web2.altmuehlnet.de/fschmid/about.html .

Initially this page explored only two items of software:
Later I may look at the graphics capability of the OpenOffice suite.

The typographic, editing and layout requirements for creating a successful book are a deep business, which I am only partially familiar with - so in pursuing this project I will be finding out about all that too.   This page will link to relevant books and sites in the broader field of book design and editing for pre-press.

I started writing this page with Mozilla's Composer (http://www.mozilla.org) and then briefly tried to use OpenOffice.org Writer - which has a WYSIWIG (What You See Is What You Get = direct, graphic visual editing) HTML editing mode.  However there were problems with this, as noted below and I went back to using Mozilla.  Please excuse the spelling mistakes in this page - Mozilla has no spell checker, and I will eventually run through it with Netscape 7's spellchecker, which is based on an earlier version of Mozilla.

Overview of OpenOffice = OOo

The openoffice.org suite of software is an open-source "equivalent" to Microsoft Office.  But Open Office goes far beyond Microft Word's capabilities for creating complex documents with mulitple indexes, bibliographies etc.  

Open source software involves making the source code of the program avialable - so that anyone can use that source code to create their own version of the program, but with the proviso that if they ever release or sell any such derivative software, they must make their full source code available on a similar basis.   A great deal of open-source software is in wide use in servers, and to a lesser extent on corporate and home desktop computers.  The Linux and some other Unix-based operating systems are open source.  So is the Apache web server, which is by far the most widely used web server.

The history of OpenOffice is something like this.  Quoting from Justin Watt's page a Brief History of Star Office:
StarOffice is an office suite, like Microsoft Office, created by Star Division, a software company originally located in Hamburg, Germany. Even though Microsoft has been able to dominate the office suite market, it still forces users to choose between two platforms: Windows and MacOS. StarOffice, on the other hand, runs on Windows 95/98, NT, Solaris, Linux, O/S 2, and Java! At the end of 1998, Star Division made news by deciding to offer its version 5.0 office suite free to end users. Almost a year later in August of 1999, Sun Microsystems, bought Star Division for $73.5 million, thus acquiring StarOffice. The motivation for this purchase was said to bolster Sun’s competition with Microsoft’s Office while supporting its own very profitable server division by pursuing a flavor of StarOffice (StarPortal) that runs centrally on server and is accessible by multiple users over a network. Another year later, in October 2000, Sun decided to release StarOffice version 5.2’s source--free to anyone any over the internet via the Gnu Public License or GPL.
The page http://wwws.sun.com/software/star/staroffice/5.2/news/releases.html runs from the acquisition by Sun to their release of the source code at openoffice.org.  There's a bunch of user forums for StarOffice 5.2 at http://www.staroffice.com .  Some notes on the transition after version 5.2 are here: http://www.openoffice.org/FAQs/mostfaqs.html#7   The email and browser component was removed. All file formats are now based on XML (Extensible Markup Language - http://www.xml.org/xml/xmlfaq.shtml ).  

StarOffice 6.x vs. OpenOffice 1.x

StarOffice is the program Sun sells:  
http://wwws.sun.com/software/star/staroffice/
It is based on the OpenOffice source code, with some extra proprietary modules, fonts and clip-art as mentioned here: http://www.openoffice.org/FAQs/mostfaqs.html#7.  There is also a "StarSuite" which seems to be a cut-down version of StarOffice.  StarOffice contains a number of features listed here: http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#11 (9 September 2000) which are not found in OpenOffice:
This spellchecking system was developed by Dutch company Lernout & Hauspie.  Microsoft use a presumably similar or identical set of software and dictionaries for their Word programs, including Word 2000 and Word XP.  Lernout & Hauspie's web site was:  http://www.lhsl.combut this directs to a company which purchased the "speech and language assets of Lernout and Hauspie.": http://www.scansoft.com  - but I can't see anything about spellchecking at that site.  This is curious - the most powerful and widely used spellchecker can't be found on the Web!  There is a discussion below on the limitations of the open-source, volunteer-effort spellchecker used in OpenOffice.org Writer.


OpenOffice 1.0.x is the equivalent software from OpenOffice.org.   The suite is often referred to as "OpenOffice.org" or just "OOe".

In August 2002 there was a roadmap document http://www.openoffice.org/white_papers/ooo_road.pdf showing how the various versions of StarOffice and OpenOffice diverge.   In case it disappears from there, I have archived it here.  I found this at an index page: http://www.openoffice.org/white_papers/ .  Also from there is a 19 July 2000 document on the history and plan for the project, including notes on the licences for the Sun and OOe versions:  http://www.openoffice.org/white_papers/OOo_project/OOo_project.html .  From what I can tell, there is a single CVS repository of source code - the OpenOffice.org CVS - which Sun contributes to.  The code is licenced under the Free Software Foundation'sGeneral Public Licence (GPL) and also a Sun licence: SISSL, which is more suitable for proprietary developers.  However, "SISSL licensees are required to maintain compatibility with the GPL community versions of the same source code APIs and file formats.".  Also, "All libraries and embeddable components of the OpenOffice.org dual license will use the Lesser GPL (LGPL).".  

"StarOffice" is Sun's brand, but it may allow other developers to use it.

What we are interested in is the OpenOffice.org software, not Sun's version, unless there is some compelling reason to use it - as there may be in corporate envrironments.  (Later, I think I might want to buy the Sun version, because it has what is presumably a better spell-checker.)  Sun invested heavily in Star Office, and then made the source code open-source.  They fund a lot of OpenOffice work, from what I can tell.   So three-cheers for Sun!!!!

Another "white paper" on the technical structure of OpenOffice, written on 12 September 2000 is here: http://www.openoffice.org/white_papers/tech_overview/tech_overview.html  If this disappears, try http://www.archive.org .

From now on, I will refer to the OpenOffice software and project as OOo.

Here are some pertinent items of interest to computer programmers.
The programs are:
Their main features are listed here:  http://www.openoffice.org/dev_docs/source/features.html . On that page, it says that the Unix (ie. Linux etc.) versions can save straight to .PDF, using Ghostcript and Ps2pdf - but I am going to do this under Windows 2000 as well.  (I run both, but for desktop work prefer Windows 2000, not least because it fully supports the scroll-wheel of my Logitech trackball - X-windows under Unix/Linux doesn't have as good accelleration settings in its mouse/trackball driver, and does not easily support the scrollwheel.)

The program supports a huge number of languages, including those using Chinese Japanes and Korean character sets.  This is most impressive!

Supported file formats are listed at: http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#17 .

OOe is written entirely in C++ (though a FAQ says mainly C++, 20k source files and 7.6 million lines of code).

The 1.0.1 source is a 155.6 Meg tar-gzip (AKA "tarball) file.  This comprises:
So it is bigger than Mozilla and GCC (33 and 26 Meg tarballs respectively)!  This is seriously huge, folks!  The code has some comments, but I always think that virtually everyone's code apart from my own should have more comments.   Some are in German and the rest in English.   Star Division - the orginators of StarOffice - was founded in the mid 1980s, in Hamburg.   I rather like the idea of code written by meticulous Germans from an industrial city!  

Whereas Mozilla is constantly being built on 9 separte operating systems as the CVS changes - see Tinderbox - "                           Release Engineering in Sun do a full build of StarOffice once a week".  "Our current experience is that a full build of OpenOffice.org is approximately 20 hours on a single CPU Pentium III with 256MB of RAM running Linux."

Some guidance about the structure and what is in some of the directories can be found at:  http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#65 .  For instance, the /sw/ directory contains the wordprocessing code

According to http://www.openoffice.org/FAQs/build_faq.html the software is currently compilable (buildable) to run on:
In August 2002, these were the three operating systems for which executable programs were available.  Notably missing, and often discussed on the OOo site is a port for Macintosh OS X.

But an October 2001 lists http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#17 has these systems listed:

Ports completed

  • Linux (glibc version 2.1.x) *
  • LinuxPPC*
  • Solaris 2.6 and Solaris 7 and 8 (Sparc and Intel)
  • NetBSD/Sparc *
  • Windows NT,
  • Windows2000,
  • Windows95/98/ME

* Not available for StarOffice

Ports in progress

  • Mac OS X
  • Linux/Alpha
  • Linux/ARM
  • IRIX
  • FreeBSD
  • Tru64

Each document is saved as a file which is actually a zip file of multiple XML files.  XML compresses well.  I added a ".zip" suffix to a ".swx" file as saved by OOoWriter, and then ordinary Windows WinZip could open it and create a directory with the XML files it contained. There are separate files for "content", "styles" and "settings".  With patience, it would be possible to sleuth the innards of OpenOffice format files.  I suggest using a good, straight, text editor, such as the Windows freely available (but not open source - i.e. free-beer, not free-speech) text and binary file editor Code Genie:  http://www.code-genie.com .

I don't know much about XML yet - but it is a way of saving data in text form, in a structured and self-defnining way.   Google finds an astounding 12,400 pages for the phrase "XML tutorial": http://www.google.com/search?hl=en&lr=&ie=ISO-8859-1&as_qdr=all&q=%22XML+tutorial%22

XML is also used for communcation between sections of the program.

There are APIs (Application Programming Interfaces) to faclitate separate programs working directly with the core programs.  These are based on CORBA and are intended to be "version independent, scalable, durable and re-applicable. There's a whole bunch of stuff at http://www.openoffice.org/white_papers/tech_overview/tech_overview.html#18  about how the whole project is structured.  It looks most impressive to me.

There are a bunch of mailing lists with browsable archives at: http://www.openoffice.org/mail_list.html . Some fo these are for developers - people who write code for the project, rather than users.  But discuss@openoffice.org list is for users.  


In late August 2002, I downloaded OpenOffice for Windows, version 1.0.1 from http://www.openoffice.org . It was a 51 Meg download.  I also got the source . . . a 152 Meg gzip file!



Taming OOo Writer

Like MS Word, OOe Writer comes with all sorts of automatic rot which needs to be turned off.  The worst of these defaults is auto-completion of words as you type?   The horror!  Here are the basic things I did to make it civilised:

Tools > Autocorrect >
Word Completion - turn off Complete words and Collect suggestions
There is some stuff here on custom quotes I should look at later.
Options > Turn all this crap off!
Tools > Configure - many things I could alter about function keys, menus etc.

Tools > Options >
OpenOffice.org > View
Turn On  Inactive menu items.

Load/Save > General > Auto-save every 10 minutes without Prompt to Save.

Language settings >
Languages > Engish Australian . . . but there is no spellchecker dictionary for this, so leave it as "English (USA) because that is the only one with a spellchecker dictionary.
Writing Aids > options for hyphenation.  Did I change some of these?
Text Document > (Some can be flagged for the current document only.)
Basic Fonts  I set them all to Times, except for headings which I set to Helvetica.  (I have the basic 14 - really 35 - Postscript fonts as Type 1 fonts on this Windows 2000 machine.)  The defaults were for "Thorndale" and "Albany" which are not fonts which exist on Windows 2000.  OOo does not seem to come with any fonts, but StarOffice probably does.
Print There are all sorts of options here which could be handy later.
There is no talking paperclip, Lord be praised - but there is a curious lightglobe help thing which appears and disappears at the lower right corner for reasons I have not yet discovered. This is the "Help Agent" and it's behavior is controlled in Tools > Options > OpenOffice.org > General.  Pressing Help there, and navigating to the same OpenOffice.org > General path in the help system, leads to an explanation.



Fonts

OOe seems to have a sophisticated approach to fonts.  This is quite a challenge, because there are various font technologies, various requirements for printing and various approaches to screen display etc. many of which depend on the operating system.

My research will be limited to Windows 2000, which naturally handles Adobe Type 1 Postscript fonts - a blessing compared to Windows 98, which required the addition of ATM (Adobe Type Manager).

Fonts are specialised programs, written in one or another specialised language, sometimes with associated data files, which enable software to create images for screen and printers.   Some are freely available, but most of them are licenced and need to be purcased.

A short diversion into Postscript fonts and where they live on a Windows 2000 system:
On a Windows system, Postscript Type 1 fonts consist of two files - a .PFB binary file containing the instructions to the Postscript interpreter (in a printer,  in the screen display software, or in a program such as Ghostscript, Illustrator, Acrobat etc.) on drawing the glyphs (the characters) and  a second shorter .PFM Postscript Font Metrics file which contains information on glyph sizes, and I think kerning.  On Windows 2000, it appears under Windows Explorer that the font files live in C:\WINNT\Fonts, but there is no such physical directory, and once a font is installed, these .PFB and PFM files are nowhere to be found.  Searching for them with the Showall function of fab text-mode file manager Z-Tree Win http://www.ztree.comshows this.  So the data must be stored in some gobbledegook form by the Win2k operating system.  Deleting a font, using either the Settings > Control Panel > Font's thing, or the Windows Explorer at C:\WINNT\Fonts causes the following files to be updated.  None of them seem to be viewable or copyable without special tricks.
C:\Documents and Settings\Username\NTUSER.DAT      (Hidden file, approx. 1 Megabyte on my machine.)
C:\Documents and Settings\Username\ntuser.dat.LOG  (Hidden file, approx. 1 k on my machine.)
C:\WINNT\system32\config\software                  (Approx. 10.6 Megabyte on my machine.)
C:\WINNT\system32\config\SOFTWARE.LOG              (Hidden, approx. 8 k on my machine.)
 This Microsoft obfuscation might have been thought to be an attempt to stop the copying of copyrighted fonts, but copying a Postscript Type 1 font from that fake "C:\WINNT\Fonts" directory does copy both the .PFB and the .PFM file, which together constiute the total font.

To add a font, use Settings > Control Panel > Fonts and then File > Install New Font and select wherever the font is.  
To view the character set of the fonts, double click it and print it, landscape.  I make a book of all my fonts in this way.

For a  forthcoming book I did a lot of research into fonts.   I had already purchased Berling - which I use for my Real World Interfaces and First Principles logos.  I plan to use Berling for titles and headings.  

I decided to use Old Style 7 for the main body text, and Slimbach for the many quotes from correspondents.  These are similarly styled typefaces, with Slimbach having a larger x size.   I chose these typefaces in August 1999 after some research then, and now again in August 2002, I made the same decision after further research.   I used a magnificent book called Typefaces for Books  http://www.amazon.com/exec/obidos/tg/detail/-/1561310174/  by James Sutton and Alan Bartran, 1990.  It has 100 typefaces for the body text of books - not the headings etc. with extensive samples of paragraphs of text in a variety of point sizes and leadings (spacings).  I plan to use 11pt Old Style 7 on about 13.5 leading.

For future reference, here are a few font selection resources:
Here are the Adobe and other pages for these typefaces:
There are various types of font which we don't want to know about - any bitmap font, or anything specifically for X (meaing X-windows - the graphic display system for Unix computers.)

This leaves us with a variety of Postscript typefaces, TrueType, and OpenType.  In the past, Adobe's quest for world dominance lead to a breakaway non-Postscript font technology called TrueType - which I recall Microsoft were behind.  There are ways of getting a TrueType (TT) font into a .PDF file, but I will not be concentrating on that.   OpenType (OT) fonts are a later Adobe-Microsoft creation, which seems to incorporate Postscript and quite a number of advanced typographic features which may only be available to applications which know all about them.    Win2k (Windows 2000) - and OOo running on Win2k seems to be able to use all three types of fonts.  I guess that all OpenType fonts and probably TrueType fonts should be quite usable by OOeWriter, and probably produce usable results in a PDF, but I am not testing this..

Fonts in Win2k are installed using the Control Panel > Fonts thingo.  It happily accepts Postscript Type fonts, displays them on screen for all applications which use them, sends them to the Postscript printer etc.   This is an excellent thing!  The standard Microsoft fonts in Win2k are mainly OT and TT fonts.   Adobe now release some or all their fonts in OT format.   OT is a single format for Mac and Windows - whereas for these two operating systems, somewhat different sets of files were required for Postscript Type 1 fonts.   A good description of Open Type is here:  http://www.adobe.com/type/browser/pdfs/OTGuide.pdf

I assume that TrueType and OpenType fonts will be handled OK buy OOo, but I am not using them to generate .PDFs, so this page will not pursue them any further.



Spelling and HTML editing with OOoWriter

I had a brief stint at editing this page with OOoWriter's HTML editing mode - simply by opening an HTML file.  I quickly found some problems which made it impossible to go on.

I am hopeful that once my book is complete, there will be a civilised way of generating HTML from it - but I will investigate that later.  At present, I think the bugs in the way OOoWriter handles HTML are too serious to consider it as a general purpse HTML editor, except perhaps for very simple applications.  OOoWriter lets you put any old font name into HTML, which is a bad idea, since most of the fonts on any one computer system are highly unlikely to be found on all the systems used to view a Web page.  Tables are always a tricky thing to edit in HTML - perhaps OOoWriter's table handling is useful enough to use.  Perhaps its ability to put styles into the HTML (Cascading Style Sheets, I think this is) is useful too.

Since I am doing a serious book project, it may well be worth me purchasing Sun's StarOffice, which has a fully developed spell-checker licenced from the same company who Microsoft licence theirs from.  See above discussion of the spellchecker from Lernout & Hauspie.





The 200 pixel horizontal line was turned into a full screen-width horizontal line.  
<br>
<hr width="200" size="2" align="left"><br>
<h3>Scope of this page</h3>

was changed to:
<br>
<hr SIZE=1>
<br>&nbsp;
<br>&nbsp;
<br>&nbsp;
<h3>
Scope of this page</h3>
I could find no way of editing the horizontal line.  The only obviously valid way of inserting one was a "plain" horizontal line, which was the same 100% width line.

Trying to change a blank line, which was indented by one (blockquote) to be not indented, also took all the lines above which were a the same indent.  This is the sort of thing which used to bedevil Mozilla.  

Orindary bullet lists were transformed with some extra style tags into things which looked very different on Netscape 4.77 and Mozilla - the bullets were still there, but the text was another tab-stop to the right.  This was simply by opening the file in OOoWriter and then saving it.  Such upsetting of formatting is intolerable.

There were lots of extra style tags, such as all these:
<h4 STYLE="margin-left: 1cm; margin-right: 1cm; margin-top: 0cm">
StarOffice 6.x vs. OpenOffice 1.x</h4>

This stuff may or may not work, but it bloats the file, introduces more possibility for browser misinterpretation, and generally complicates things which are best left simple.

I used the spellchecker on this page, and found lots of errors!  But when I looked at the resulting HTML file, for all the words I corrected, each corrected word was surrounded by tags which I definitely don't want clogging up my HTML pages, such as this misspelling of "facilitate":
    <br>
There are APIs (Application Programming Interfaces) to faclitate separate
programs working directly with the core programs. &nbsp;These are based on
CORBA and are intended to be "version independent, scalable, durable and re-applicable.

being turned into:
<p>There are APIs (Application Programming Interfaces) to<span LANG="en-US">
facilitate&nbsp;</span>separate programs working directly with the core
programs.&nbsp; These are based on CORBA and are intended to be "version
independent, scalable, durable and re-applicable.


Worse still, the same thing happened to all words the spellchecker looked at, and for which I told it to Add to the dictionary.

Even worse, the spellchecker does not know about URLs at all, and sees a URL as being broken into sections for spellchecking by each '/', with the resulting fragments being checked individually.  The result is firstly a lot of unwanted mucking around when spell-checking, and adding various fragments of URLs to the dictionary so as not to have to worry about them in the future.  But it also adds these span things in the midst of URLs!

So:
<a
 href="http://www.openoffice.org/mail_list.html">http://www.openoffice.org/mail_list.html</a>
becomes:
<a href="http://www.openoffice.org/mail_list.html">http://www.openoffice.org/mail_<span LANG="en-US">list.html</span></a>
While this does not alter the link itself, it is messy, unwanted, stuff which will no-doubt cause grief to someone, such as search engines, less sophisticated browsers etc.  It would be a pain if searching an HTML file for a URL - unless using a program which properly parsed the HTML, rather than just looked at the text.

The spell checker itself looks promising.  At present it only has a USA English dictionary.

Here are some things I liked about the Spellchecker:
Here are some things I didn't like:
The Spellchecker is a recent (mid 2001), volunteer effort, addition to OpenOffice - the work of Kevin B.Hendricks:  http://www.openoffice.org/source/browse/external/aspell/ and http://www.openoffice.org/source/browse/external/aspell/ .  



Overview of Styles in OOoWriter vs. MS Word

Styles in MS Word

Oooops - this needs to be rewritten.  Word 2000 has character styles - In Format > Styles, for the List thingo, select All styles.  Most styles have a reverse P to indicated they are paragraph styles, and the others have an "a" to show they are character styles.  Creating a new style gives the option of making it a Paragraph or a Character style.  Word XP also has Table and List styles.

A "style" in MS Word is a body of data specifying a variety of potential things about text etc.  It applies to an entire paragraph - that is from the first character after a newline, to the newline which follows.  Styles have names, and it is a good idea to turn on the "Style" column on the left of the page (in View Normal mode, not in View > Print layout mode) to see the name of the style which each paragraph has.  This is done by setting Tools > Options > View > Style Area Width.    Unfortunately, some people who use Word a lot don't know what a style is, and don't want to know.  I have even seen an accomplished author of a vast and authoritative pyschology book use Word totally without styles for a paper he was writing.  All the headings were done with manual setting of the font-size etc. for each such heading.   The whole idea of styles is to define a style for a type of heading, apply that style to all the paragraphs which are headings, and then by updating that style - for instance changing the typeface and point size - all the headings follow that style, without any manual work or potential for error.

In MS Word, each style is based on another style - and this comes down to the "Normal" style, which is the basis for all others.  "Normal" can be altered, and this will flow on to all other styles, unless subsequent styles have specifications which override whatever was changed in "Normal".  For instance, if you have "Normal" set to Times New Roman at size = 10 points and "Blah" based on Normal, with size set to 12 points, then changing Normal's size to 10 will not (as I understand it) alter the paragraphs which use the "Blah" style.  They will continue to be Times New Roman at 12 points.  However, if style "Normal" was changed to be the font Helvetica (the real font of which Arial is a rough copy), then this woud change all the paragraphs using "Blah", because "Blah" is whatever "Normal" is, except for the size.

In Word 2000 and Word XP, each style can affect the format in seven ways:
Font format is to do with typface, horizontal scaling of each character, horizontal spacing, kerning, vertical position, italics, bold, underline etc., and colour.

Paragraph format concerns indentation,  jusification / centreing, line spacing of ordinary lines, and the addition of extra space before and after paragraphs.  So it is here that we set the leading - "lead" as in the metal, as per sheets of lead between rows of letterpress type, to space the lines futher apart vertically.  This can be in the form of "single", "1.5 lines", "double" or exact measurements, such as 12 points.  (It seems that for a 10 point font, the leading is typically 12 points.  A point is approximately 1/72 inches, or in computery systems, perhaps this is mangled to exactly 1/72 inch.)

A paragraph which is set to style "Blah" will have every character follow the dictates of that style, unless there has been some manual intervention.  For instance, one or more characters, including the entire paragraph, could have been selected, and then with one of the sub-menu items from the Format menu, something could have been altered, for instance to change the size or colour of the selected text, its font, whether it is italic or not etc.  In that case, the final result is a product of those manual changes overriding, for one or more characters, whatever is specified by the style.

So the hierachy of what affects each character is like this:
  1. The highest priority is given to any local manual formatting.
  2. Then, the format specified by the style this paragraph is set to.  But this style will probably not have everything set for it specifically, but will inherit some or most of its formatting from another style:
  3. The parent style of the style of this paragraph.  Recursively, this applies through any number of parents, until the "Normal" style is reached.  In traversing backwards like this to "Normal", it is possible that all the intermediate styles (and there may only be one) completely define the formatting so nothing depends on "Normal", but in general, most styles will depend on Normal to some degree.
There is no instantly visible way of seeing which parts of a paragraph have manual formatting applied to them.  Sometimes it is obvious, such as with italics, a different font etc.  But by manually turning on kerning, for instance, it might be hard to check where things are manually different from the style.  But the Format menu items are pretty good at showing where the selected text is not uniformly set to a particular characteristic.  For instance, if you select some text in which one or more characters is set to italics, then in the Format > Font > Font box, the Font Style will be blank, whereas without the italic characters, it would be "Regular".

Another dimension of the Style business is where the styles live.   As far as I know, they all live in each Word document.  But when a new document is created, it inherits its styles from whichever document template was used as its basis.   I think that when altering such a style in the Word document, there is an option for Add to Template, which might be able to write it back to a document template.

There is a more specific way of managing styles between documents and templates (.DOT files) - in Word 2000 this is Format > Style > Organizer.  This enables styles from the current document to be renamed and written to the Normal.dot document template.  I guess there is a way of copying them to another file, or rather reading styles into the current file from another file.  I recall there was a way of doing this in earlier versions of Word, but I can't find it in Word 2000.  Word XP has a very different user interface and I can't find the "Organizer" in it quickly, but I guess it can do this too.  Understanding exactly what styles are and what they do is tricky, and I wouldn't be surprised if Microsoft has "improved" Word XP over Word 2000 with layers of smart-looking, but actually obscuring, abstraction to make the mortal user's task even harder.

In Word, while a style can encompass a wide range of formatting parameters, the key thing to remember is that there is only one variety of style - they all apply to entire paragraphs.   This is where OOoWriter varies greatly from Word - there are a number of different types of style.

Styles in OOoWriter

tyles in OOoWriter have a much greater scope and power than in MSWord.  Some styles are paragraph styles, which are roughly or closely equivalent to the MS Word styles.  However there are also "Character styles".  These can be applied to any one or more characters in a paragraph, and will override the formatting specified by the paragraph style.  Then, by altering the specification of that character style, multiple such instances of the character style will automatically change their formatting.   In this respect, I think that OOoWriter more resembles a DTP program than an ordinary word processor.  But, to my knowledge, OOoWriter can't put text at strange angles or do all the things DTP programs do.

In addition to the Paragraph and Character categories of style, there are also Frame, Page and Numbering categories.

Style Category
The Style catalog displays the respective Style category according to the cursor position (i.e., Paragraph Styles if the cursor is in text, Frame Styles if a frame is selected). Click in the list box to select a different category.

Here is the description from the Help system, for "Style catalog; text documents":
Style Category

The Style catalog displays the respective Style category according to the cursor position (i.e., Paragraph Styles if the cursor is in text, Frame Styles if a frame is selected). Click in the list box to select a different category.

Category Meaning
Character Styles Character Styles are used for formatting single characters, or entire words and phrases. You can also nest Character Styles.
Paragraph Styles Use Paragraph Styles to format whole paragraphs. Apart from the normal format settings for paragraphs, the Paragraph Style also allows you to define the font to be used, and the Next Style.
Frame Styles Frame Styles are used to format graphic and text frames. These Styles are used to quickly format graphics and frames automatically.
Page Styles Use Page Styles to structure the page. If you have specified a "Next Style," OpenOffice.org will automatically apply the specified Page Style when an automatic page break occurs.
Numbering Styles Numbering Styles are used to format paragraphs in numbered or bulleted text.

As far as I know, OOoWriter has no equivalent of MS Word's "Style area" - the column on the left of the screen which shows the style of each paragraph.  But like MS Word, there is a little text box ("Apply Style" when the cursor is over it) on the top left which shows the paragraph style of the paragraph in which the cursor is currently positioned.   But the behaviour of this is somewhat weird.  Suppose I have two paragraphs, with the top set to paragraph style AAA and the bottom to BBB.  Placing the cursor in either causes the "Apply Style" box to show the appropriate style.  But if I drag the cursor from in the middle of the top paragraph to the middle of the bottom, then the cursor is in the bottom paragraph, and the "Apply Style" box is showing the style of the top paragraph.

There is a more useful way of seeing which styles apply to the current cursor position, and for setting selected text to a particular style - the "Stylist", which is F11 or Format > Stylist.  Here is what it looks like when the first of the top left row of buttons is selected: Paragraph mode:



The top three styles are ones I created.  This is a list of the "paragraph" category of styles in the current document.  By double-clicking one of these, the current paragraph will be set to use this style.  I think that this will get rid of any manual changes to the format of parts or all of this paragraph.  

The Stylist is a floating-toolbar sort of thing, not a dialogue box.  So one can move the cursor around and see how this changes which style is highlighted.  

When the second left button is pressed, the Stylist displays the "character" category of styles:



It is possible to select a character, a word, multiple words, the entire paragraph or many paragraphs and parts of paragraphs, and double-click one of these Character Styles, to apply this to that selected text.   Clearly, this goes beyond simple appearance - these include things for Indexing and cross-referencing.

Here are the other three style categories: Frame, Page and Numbering:
   

The three buttons on the right are as follows, with their help text and a few comments in brackets.:
Applying a new Style in Fill Format Mode:
  1. Open the Stylist.
  2. In the Stylist, select the Style you want to copy.
  3. Click the Fill Format Mode icon.
  4. Position the watering can on the object to apply the Style currently selected and press the mouse button.
There is an exception to this procedure: when applying a Character Style in the Fill Format Mode, select the character with the mouse (watering can) while holding down the mouse button instead of only clicking.
To quit the fill format mode, click the icon again or press Esc.

If the watering can icon is activated, a right-click anywhere in the document undoes the last watering can action. Be careful not to accidentally right-click and thus undo actions you want to keep.

(This works like a charm with character styles such as Emphasis.)
You can create a new Style by copying an existing Style, as follows:
  1. Open the Stylist.
  2. In the document, select a formatted text or paragraph the format of which you want to adopt as a Style.
  3. In the Stylist, click the icon: "New Style from Selection".
(This works fine with character styles - it prompts for a style name.)

A new Style from Selection can also be made by using drag and drop:
  1. Choose the type of Style to be used (Paragraph Style, Character Style, etc.) by clicking the corresponding icon at the top of the Stylist.
  2. Select that part of the paragraph, text or object which is to form the basis of the new Style.
  3. Drag this to the main Stylist area and release the mouse button over a free area when the insertion line is no longer visible.
(I could not get this to produce a visibly new style.)

This is how to update a Style:
  1. Open the Stylist.
  2. In the document, select a formatted text or paragraph the format of which you want to adopt as a Style.
  3. In the Stylist, select the Style you want to update (single-click, do not double-click!)
  4. In the Stylist, click on the icon: "Update Style".
You can also update the Style by using drag and drop:
  1. Select the Style to be updated in the Stylist.
  2. Select the section of paragraph text, the format of which is to be used to update the Style selected in the Stylist.
  3. Drag the text into the main Stylist area and release the mouse button when you see the insertion line above an entry.
The Paragraph Style directly above the insertion line is assigned the new format.
(I haven't tried these.)
Another way of applying a character style to a word is to put the cursor in that word, with no characters selected, and then double-click the appropriate style in the Stylist.

Once a style has been applied in one or more locations in the file, then modifying the style affects the resulting formatting of the text.  To modify a style, right click its entry in the Stylist.  There does not seem to be any other way than right click. Once done, this instantly changes all the text which has this character style.

Now here's something interesting.  Suppose I have just applied a character style to four sets of words. Then I modify the style in some way - say to give a background colour.  Then I click Cntrl Z to undo.  This does not undo the modification to the style - it undoes the last set of words I assigned to that style.  Subsequent Cntrl Zs progressively undo my other assigments to this character style.   So the fabulous Edit > Undo (Cntl Z) and Edit > Redo system affects the content of the document, not its styles.

There is much more to styles than this.  But just based on what I have written here, it can be seen that OOoWriter has a much broader, more orthogonal and richer vision of styles and complex documents than MS Word does.

I will read all the Help material on Styles.  There are conditional styles and all sorts of things to understand!  I won't attempt to describe it al here.