Precomposed vs. Composite characters

Modern day computers use Unicode encoding to represent the letters (and punctuation marks) of a given alphabet. In particular, in ancient greek, each letter and its combinations (breathing, accentation etc.) is represented by a single and specific "character" (also known as code point).

These "characters" are called "precomposed", in the sence that each possible variation of a letter (actually a vowel) is already composed and made to be represented by a special code. For example, greek small letter alpha (α) is assigned to U+03B1, while greek small letter alpha with tonos (ά) is assigned to U+03AC.

The Uniocde Standard permits us to decompose such characters, and write them (actually type them) using their discrete "parts". These characters are called "composite" or "decomposable" characters, because a character can be defined as a sequence of one or more other characters.

The following image provides an example:

a-composed.gif

As you can see, greek small letter alpha with tonos (or with acute) can be typed as a single "percomposed" character (U+03AC) or as two consecutive characters; greek small letter alpha (U+03B1) followed by combining acute accent (U+0301). This is the "composite" equivalent of the letter.

As a result the dative singular of the feminine article can be typed in four different ways:

Letters Unicode coding Type
τη ͂ ͅ U+03C4 U+03B7 U+0342 U+0345 Composite (Canonical)
τῆ ͅ U+03C4 U+1FC6 U+0345 Partially precomposed
τῃ ͂ U+03C4 U+1FC3 U+0342 Partially precomposed
τῇ U+03C4 U+1FC7 Fully precomposed

In any case, the word's rendering will be the same, but most existing S/W (including LibreOffice / OpenOffice) will be able to successfully handle the last form only, because of a number of problems that exist:

  1. Since all existing input methods (keyboard layouts) produce "precomposed" characters, both inserting and searching for "composite" characters is really hard. New keyboard layouts and search algorithms should be created to successfully handle "composite" characters.
  2. All existing dictionaries are based on "precomposed" characters. This means that text written using "composite" characters would produce a lot of false hits, effectively making the use of a spell checker impossible. New dictionaries should be created to successfully handle "composite" characters.
  3. All existing hyphenation patterns are also based on "precomposed" characters. This means that text written using "composite" characters would be incorrectly hyphened, which is unacceptable. New hyphenation patterns should be written to successfully handle "composite" characters.

Given these existing problems, the use of "composite" characters is discouraged (but not disallowed).

AncientGreek Composite Characters Support ^

AncientGreek provides three macros to convert "precomposed" to "composite" characters (and vice versa). These macros (contained in module "Composite") are:

• ConvertFromComposite Macro

This macro will convert all greek "composite" characters to "precomposed". Executing it against a normal document (e.g. using "precomposed" characters) will have no effect.

• ConvertToComposite Macro

This macro will convert all greek "precomposed" characters to "composite". Executing it against a "composite" document (e.g. using "composite" characters) will have no effect.

• RunFixComposite Macro

This macro will fix any incorrectly typed "composite" character found in a document.

When typing "composite" characters, the order of the characters is significant. Normally, one would type the vowel followed by the breathing mark, followed by the accentation mark; but this is not always the case. For example greek iota small letter with psili and acute can be typed as seen in the following image.

i-composed.gif

The correct way to type the letter is shown on the first line of the image, while the incorrect way is shown on the second. Although the result in both cases is visually almost identical, the error is still there.

This macro will convert the result of the second line to that of the first one.

It should be noted that this macro is used by the ConvertFromComposite macro, right before the conversion is performed.

×

Info

If a table is truncated, then you can see all its content by scrolling it to the right and back.