Putting macrons over vowels - How?

In word processing, is there a way of putting macrons over vowels, e.g. over the vowels a,e,i,o,u in the Maaori language to indicate they are long vowels?

If you have Windows 11, you can add the NZ Aotearoa keyboard and then you have the macrons available to all programs. The modifier key is the tilde/back tick key ~ on the left of the number row. To add the macron to a vowel press the back tick key and the vowel at same time. Identity Through the Macron: The Windows 11 Aotearoa Keyboard – New Zealand News Centre

The letters are the pre-composed ones, āēīōū: U+0101, U+0113, U+012b, U+014d, U+016b

[Edit] For Windows 10 it looks as though you need to choose a Maori keyboard, see Te wiki o te reo Māori: How to type macrons in Windows

And if on Linux you can simply use the (configurable in at least GNOME (gnome-tweaks, Keyboard) and KDE) Compose Key followed by the vowel and _ underscore (or vice versa, doesn’t matter). Loads of combined and diacritic characters can be produced that way using different modifiers.

Choose Insert>Special Characters from the menu.
In the dialog, enter “macron” for Search.
Select a desired character.
Click the “Insert” button.

1 Like

U+00AF is the MACRON (non-combining).
To get the COMBINING MACRON you need to use U+0304.
In LibO typing o0304 and pressing Alt+X should create the combined pseudo-glyph ō. The deviation along the menu and the shown dialog is dispensable.
Just a funny idea: Ǖ is the combination of the (German) Ü (Ü)
with the COMBINING MACRON. This to illustrate what @ajlittoz hinted.

If you really need to “compose” glyphs you should look for (ancient) TeX, where you actually could put accents over/under letter like "o for ö
Today the typical solution is to use the predefined code-points of the Unicode fonts, and to check if the used font has all necessary chars, as already shown in the first answer.

Unicode provides two forms of “accented” letters:

  • a “universal” method where a base letter (more generally a non-combining glyph) is followed by combining diacritical marks
    These combining mark are found in the block starting at U+0300. There are presently 112 combining marks defined !
  • a “legacy” method consisting of precomposed glyphs
    The precomposed glyphs are a compatibility tribute to pre-existing character sets like ISO-8859-x, so that files can be easily transposed into Unicode with very simple procedures.

Unfortunately the existence of two forms immediately create an ambiguity because “legacy” precomposed glyphs can also be represented by a sequence of base letter+combining marks. Thus, two visually identical texts may have a different encoding and don’t binary compare equal.

Unicode addresses this issues by defining a canonical representation where every glyph should be encoded by a minimal-length sequence. According to this rule, precomposed glyphs are preferred over combining sequences.

Note that the combining feature is language-agnostic. You can then create combinations which don’t exist in any language.

You can also define a shortcut for macro to put a special character

Sub macron
	dim document as object, dispatcher as object
	dim args1(0) as new com.sun.star.beans.PropertyValue
	args1(0).Value=chr(&H61) & chr(&H304) 'insert letter 'a' & combine macron
	'args1(0).Value=chr(&101) 'insert small letter 'a' with combine macron
	'args1(0).Value=chr(&H304) 'insert only combine macron
	dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
End Sub

IMHO, avoid macros whenever you can. In this case, an AutoText or AutoCorrect is preferable: no programming skill required, no stress on Writer, no side-effect security risk (you can continue using LO without macros enabled).

Choosing between AutoText and AutoCorrect is a matter of the number of keystrokes you accept.