Pages

09 October 2008

OpenOffice.org Impress makes LaTeX + Beamer look user-friendly. Now that I've gone through turning my OLF slides from boring black-on-white to prettier, I realize how much of a usability nightmare Impress is.

First I tried making a background image in Inkscape. Inkscape's nice, because it has a bunch of preset color palettes. I decided to use Tango colors. So I made a background image 1024x768 to be the right proportions. Saved the .svg and tried to set it as the background on my slides. Now, I've done this once before, so I knew it was convoluted and that rather than wasting my time trying to figure out how to do it again, I ought to just read the Help. Want to know how convoluted it is? Let me demonstrate...

Go to Format -> Area

Go to the Bitmaps tab

See this:

Guess which button you click? Add or Import? To save you the frustration, I'll just tell you: Import

Pick the file

Give it a name

Close that window

Go to Format -> Page

Click Background

Choose Bitmap

Choose the image you just imported

Why couldn't I just skip to Step 8 and browse for an image there? This becomes extra annoying when you start tweaking the background image and want to see how it fits. Every time you tweak, you have to delete the old one, import the new one, and then change it in the Page formatting again. There are too many steps involved, and none of the early ones are anything close to obvious! I gave up on the tweak, import, set, tweak, import, set, tweak, import, set thing after about 6 rounds. I decided to fake it with text box borders and fill and such.

So next I wanted to make my text and bullets be the right colors. I still wanted Tango colors. I even found the hex/HTML-style codes for the colors. So I go to the Styles thing, choose Outline 1, right click, and hit Modify. So far so good. I hit the Customize Tab on the window that opens, and there's no way at all visible to set a color other than their 30-or-so pre-defined ones. Bummer. After a bit of time reading Google, I learned that going to Tools -> Options, expanding OpenOffice.org, and going to Colors lets you define your own. Great! Oh, but you have to get out your calculator and convert all that hex to decimal. And they have to be added one at a time. And if you're not careful you'll overwrite one of their pre-defined ones. And if you hit Cancel it still commits the changes. This is the part where you give your screen the evil eye.

The sed line is to make it legible. Nobody at Sun has heard of newlines, it seems, so their XML is all one line. Oh, no wait, they use two lines. The first is to say that this is an XML file. It is now 110 lines long. I used vim, but you can use whatever text editor you want. Add in XML lines defining the colors you want using the nice simple hex format we're all used to using to define colors. Save it, start OpenOffice.org back up, and yay, you have all those colors you wanted. It took about 2 minutes. Adding one at a time and converting the hex to decimal, it probably would've taken 30 minutes.

Yay, now I have colors. I've got to be past the annoying part now, right? Nope, not that lucky. I wanted my bullets to all be Tango Sky Blue 2, so I pulled up the Style thing and told it that. As expected, all the bullets changed color to Tango Sky Blue 2. Oh, um, except the bullets on the slide that was in view when I used the Style tool. That one didn't change. Still have to do that manually.

I decided I didn't like the indenting on the bullets. I didn't want the first level to be indented at all, but I did want there to be some space between the bullet and the text. So I open up the Style thing again, go to Outline 1…and those options aren't there. Just to be sure, I checked what happens when I highlight a bulleted list and go to Format -> Bullets and Numbering. The options do exist. I just can't use them in bulk. So I went through every single slide setting the indenting and spacing on bullets. I had to highlight the bulleted lists manually too to do this because you see, Ctrl+A to Select All doesn't actually Select All. It opens up a file chooser instead.

I wanted to fake the effect I was trying to get in Inkscape, so I decided to make the title textboxes full width and set a border on them. I wanted it to have a one-shade-darker border, just like in Tango icons. The border, however, would expand past the edge of the slide in different amounts in each direction. No even borders for you!

Also, opening an .odp does not display nice user-editable XML, which I was under the impression is how ODF was supposed to be implemented. I was ready to give up quite a while back and just edit the file's XML directly. Well that isn't very possible, it seems.

I found one nice thing in OpenOffice.org Impress. There's a Color Bar in View -> Toolbars that adds a palette of all defined colors below your slide so you can select a textbox and click it to set the fill background.

Instead of using "sed -e 's/>/>\n/g'" you may want to use "xmllint --format" which will format and indent the file using the standard xml indenting. It's fairly common that xml files not meant for direct human input will have the newlines removed. ("xmllint --noblanks" can be used to drop the indenting later.)

Regarding the ODP files, they're actually actually zipped 'content packages' and if you were to unzip the file into a clean directory, you would then find a number of xml files and other embedded binary content. Openoffice also has a flat xml format, but the binary objects are base64 encoded in that and which could make editing the file a little more difficult. (This format is great though if you want to xslt an openoffice file or do a quick search and replace.)

You are so right! And I could add so many unusabilties of OpenOffice (2.x and 3.x) to this, that I decided after several attempts to use Impress, that I stick with Latex/Beamer. Maybe someone will write an Impress replacement that is unable to do 95% of what Impress is capable of, but do the remaining 5% in a reasonable way...