Software I like: LibreOffice/Apache OpenOffice

 Use LibreOffice

Writer | Impress | Calc | Draw | Base

LibreOffice was a fork of The latter now exists as Apache OpenOffice. Unfortunately efforts are divided between the two projects. (The original project had to be be referred to as, used as an adjective, because the name OpenOffice itself was owned by someone else.)

The native file format is a zip’d collection of files with the main content stored as XML.

A possible alternative to LO/AOO is the Calligra suite, a descendent of KDE’s KOffice. As of 2019 Jun 14, there still is no real integration of Zotero with Calligra Words, but RTF/ODF-Scan for Zotero is a Zotero add-on that provides an awkward work-around (requiring the presence of LO).


My notes




In trying to draw box-and-whisker plots, I tried Advance Office Chart (produced plot but ugly) and Boxplots (nothing happened at final stage when Draw was supposed to be started). See LO bug 70361 and AOO bug 13184. See also list of missing chart types.



Base provides ‘native-support drivers for some of the most widely employed multi-user database engines’ as well as ‘built-in support for JDBC- and ODBC-standard drivers’ (ref). As built-in database engines, LO has long had HSQLDB (written in Java) and now also has Firebird (written in C++) (ref).

Special characters for formatting

Name Unicode
Keys Notes
hyphen-minus 002D - minus normal hyphen, cheap minus sign
soft hyphen 00AD ­ Ctrl+minus permit a line break, otherwise invisible
hyphen 2010
non-breaking hyphen 2011 Ctrl+Shift+minus appear as a hyphen but prevent a line break
figure dash 2012   width of a digit
en dash 2013
em dash 2014
minus sign 2212   nice minus sign
There are others; see
Space characters
space 0020 ▆ █   normal space character
no-break space 00A0 ▆ █ Ctrl+Shift+space 1 appear as a space but prevent a line break
en space 2002 ▆ █
em space 2003 ▆ █
three-per-em (thick) space 2004 ▆ █
four-per-em (mid) space 2005 ▆ █
six-per-em (~thin) space 2006 ▆ █
figure space 2007 ▆ █
punctuation space 2008 ▆ █
thin (five-per-em) space 2009 ▆ █
hair space 200A ▆ █
zero-width space 200B ▆​█ Ctrl+/ 2 permit a line break, otherwise invisible 3
zero-width non-joiner 200C ▆‌█
zero-width joiner 200D ▆‍█
narrow no-break space 202F ▆ █
medium mathematical space 205F ▆ █
word joiner 2060 ▆⁠█ Alt-I G B 2 prevent a line break after a character 4
There are others; see
  1. Was Ctrl-Space in OOo version 2; now more consistent with Ctrl+Shift+minus for non-breaking hyphen.
  2. These items (with different names) are available in OOo in the Insert ▶ Formatting Mark menu if Complex text layout (CTL) has been enabled (Tools ▶ Options ▶ Language Settings ▶ Languages).
  3. Can be used, for example, to permit a line break in a long URL.
  4. Can be used after a word at the end of a line, with a following space character, to force a line break before the word, without using a fixed-width non-breaking space which would mess up full justification of the second line. This might be used to avoid having a one-character word at the end of a line.

There are various ways of entering these characters into a document. For example, under Linux, one can copy and paste from the Character Map application; select View ▶ By Unicode Block and look under General Punctuation.

Macros and macro libraries

In LibreOffice, the function Tools ▶ Macros ▶ Record Macro is disabled by default. To enable it in LO 3, do Tools ▶ Options ▶ LibreOffice ▶ General and click on Enable experimental (unstable) features. Starting with LO 4, do Tools ▶ Options ▶ LibreOffice ▶ Advanced and click on Enable macro recording (limited); the limitations apparently include opening or switching between windows, and changing anything but document contents.

If you export a macro library, it will be saved in a directory which has the name of the library. That directory will contain an XML file script.xlb which contains a line specifying the name of the library, plus a line for each module in the library. For each module the directory will contain an XML file module_name.xba. Each .xba contains the Basic script for the module wrapped in XML elements and with HTML entities for certain characters (e.g., ").

I have a module Insert.xba located in
C:\Documents and Settings\username\Application Data\\3\user\basic\Fun\
for OOo 3 under Windows XP and in
for OOo 2.2 under Linux.

The module has the form of one-line subroutines for every special character that I want, plus a generic subroutine for inserting a string wherever the cursor is – whether in the main text, a footnote, a table or elsewhere. The macro does not attempt to identify and replace text that has been selected beforehand.

Below is shown a sample one-line subroutine for a specific special character, followed by the generic insertion subroutine.

… Sub enDash : zzzInsert(Chr(&H2013)) : End Sub … Sub zzzInsert(string) Dim oDoc as Object Dim oText as Object Dim oVCurs as Object Dim oTCurs as Object oDoc=thiscomponent oVCurs = oDoc.currentcontroller.getViewCursor() oText = oVCurs.getText oTCurs = oText.createTextCursorByRange(oVCurs) oText.insertString(oTCurs.getStart(),string,false) End Sub

Further information about macros:

Customizing things

See above re custom icons.

In what follows, userdir refers to a path which is different for different OOo versions and for different operating systems. For example:

(Cf. [Tutorial] The OOo user profile.)

To replicate my cusomizations after installing OO/LO on a new computer or (if necessary) after installing a new version:

Exit from OO/LO and its Quickstarter before doing the above.

As noted above, the zero-width space (to permit a line break) and the zero-width non-breaking space (or ‘word joiner’, to prevent a line break) are available in the Insert ▶ Formatting Mark menu only if ‘complex text layout’ (CTL) has been enabled.

If OOo acts oddly, the user profile may have been corrupted. See Resetting the user profile.

R. Funnell
Last modified: 2020-02-16 08:48:52