# Lao character tables # This document lists the per-character shaping information needed to [shape Lao text](../opentype-shaping-thai-lao.md#the-thailao-shaping-model). **Contents** - [Lao character table](#lao-character-table) - [Miscellaneous character table](#miscellaneous-character-table) ## Lao character table ## Lao glyphs should be classified as in the following table. Codepoints in the Lao block with no assigned meaning are designated as _unassigned_ in the _Unicode category_ column. Assigned codepoints with a _null_ in the _Shaping class_ column evoke no special behavior from the shaping engine. Note that this does include some valid codepoints, such as currency marks, punctuation, and other symbols. > Note: the `NUMBER` and `SYMBOL` _Shaping classes_ are important > during syllable identification, but generally evoke no further > special behavior during the rest of the shaping process. The _Mark-placement subclass_ column indicates mark-placement positioning for codepoints in the _Mark_ category. Assigned, non-mark codepoints have a _null_ in this column and evoke no special mark-placement behavior. Marks tagged with [Mn] in the _Unicode category_ column are categorized as non-spacing; marks tagged with [Mc] are categorized as spacing-combining. Some codepoints in the following table use a _Shaping class_ that differs from the codepoint's Unicode _General Category_. The _Shaping class_ takes precedence during OpenType shaping, as it captures more specific, script-aware behavior. :::{table} Lao character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Combining class | PUA | Glyph | |:----------|:-----------------|:------------------|:------------------------|:----------------|:-------|:------------------------------| |`U+0E80` | _unassigned_ | | | | | | |`U+0E81` | Letter | CONSONANT | _null_ | _0_ | _null_ | ກ Ko | |`U+0E82` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຂ Kho Sung | |`U+0E83` | _unassigned_ | | | | | | |`U+0E84` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຄ Kho Tam | |`U+0E85` | _unassigned_ | | | | | | |`U+0E86` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຆ Pali Gha | |`U+0E87` | Letter | CONSONANT | _null_ | _0_ | _null_ | ງ Ngo | |`U+0E88` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຈ Co | |`U+0E89` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຉ Pali Cha | |`U+0E8A` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຊ So Tam | |`U+0E8B` | _unassigned_ | | | | | | |`U+0E8C` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຌ Pali Jha | |`U+0E8D` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຍ Nyo | |`U+0E8E` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຎ Pali Nya | |`U+0E8F` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຏ Pali Tta | | | | | | | | | |`U+0E90` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຐ Pali Ttha | |`U+0E91` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຑ Pali Dda | |`U+0E92` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຒ Pali Ddha | |`U+0E93` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຓ Pali Nna | |`U+0E94` | Letter | CONSONANT | _null_ | _0_ | _null_ | ດ Do | |`U+0E95` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຕ To | |`U+0E96` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຖ Tho Sung | |`U+0E97` | Letter | CONSONANT | _null_ | _0_ | _null_ | ທ Tho Tam | |`U+0E98` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຘ Pali Dha | |`U+0E99` | Letter | CONSONANT | _null_ | _0_ | _null_ | ນ No | |`U+0E9A` | Letter | CONSONANT | _null_ | _0_ | _null_ | ບ Bo | |`U+0E9B` | Letter | CONSONANT | _null_ | _0_ | _null_ | ປ Po | |`U+0E9C` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຜ Pho Sung | |`U+0E9D` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຝ Fo Tam | |`U+0E9E` | Letter | CONSONANT | _null_ | _0_ | _null_ | ພ Pho Tam | |`U+0E9F` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຟ Fo Sung | | | | | | | | | |`U+0EA0` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຠ Pali Bha | |`U+0EA1` | Letter | CONSONANT | _null_ | _0_ | _null_ | ມ Mo | |`U+0EA2` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຢ Yo | |`U+0EA3` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຣ Lo Ling | |`U+0EA4` | _unassigned_ | | | | | | |`U+0EA5` | Letter | CONSONANT | _null_ | _0_ | _null_ | ລ Lo Loot | |`U+0EA6` | _unassigned_ | | | | | | |`U+0EA7` | Letter | CONSONANT | _null_ | _0_ | _null_ | ວ Wo | |`U+0EA8` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຨ Sanskrit Sha | |`U+0EA9` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຩ Sanskrit Ssa | |`U+0EAA` | Letter | CONSONANT | _null_ | _0_ | _null_ | ສ So Sung | |`U+0EAB` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຫ Ho Sung | |`U+0EAC` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຬ Pali Lla | |`U+0EAD` | Letter | CONSONANT | _null_ | _0_ | _null_ | ອ O | |`U+0EAE` | Letter | CONSONANT | _null_ | _0_ | _null_ | ຮ Ho Tam | |`U+0EAF` | Letter | _null_ | _null_ | _0_ | _null_ | ຯ Ellipsis | | | | | | | | | |`U+0EB0` | Letter | VOWEL_DEPENDENT | RIGHT_POSITION | _0_ | _null_ | ະ Sign A | |`U+0EB1` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | _0_ | _null_ | ັ Sign Mai Kan | |`U+0EB2` | Letter | VOWEL_DEPENDENT | RIGHT_POSITION | _0_ | _null_ | າ Sign Aa | |`U+0EB3` | Letter | VOWEL_DEPENDENT | RIGHT_POSITION | _0_ | _null_ | ຳ Sign Am | |`U+0EB4` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | _0_ | _null_ | ິ Sign I | |`U+0EB5` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | _0_ | _null_ | ີ Sign Ii | |`U+0EB6` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | _0_ | _null_ | ຶ Sign Y | |`U+0EB7` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | _0_ | _null_ | ື Sign Yy | |`U+0EB8` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | 118 | _null_ | ຸ Sign U | |`U+0EB9` | Mark [Mn] | VOWEL_DEPENDENT | BOTTOM_POSITION | 118 | _null_ | ູ Sign Uu | |`U+0EBA` | Mark [Mn] | VIRAMA | BOTTOM_POSITION | 9 | _null_ | ຺ Pali Virama | |`U+0EBB` | Mark [Mn] | VOWEL_DEPENDENT | TOP_POSITION | _0_ | _null_ | ົ Sign Mai Kon | |`U+0EBC` | Mark [Mn] | CONSONANT_MEDIAL | BOTTOM_POSITION | _0_ | _null_ | ຼ Semivowel Sign Lo | |`U+0EBD` | Letter | CONSONANT_MEDIAL | _null_ | _0_ | _null_ | ຽ Semivowel Sign Nyo | |`U+0EBE` | _unassigned_ | | | | | | |`U+0EBF` | _unassigned_ | | | | | | | | | | | | | | |`U+0EC0` | Letter | VOWEL_DEPENDENT | VISUAL_ORDER_LEFT | _0_ | _null_ | ເ Sign E | |`U+0EC1` | Letter | VOWEL_DEPENDENT | VISUAL_ORDER_LEFT | _0_ | _null_ | ແ Sign Ei | |`U+0EC2` | Letter | VOWEL_DEPENDENT | VISUAL_ORDER_LEFT | _0_ | _null_ | ໂ Sign O | |`U+0EC3` | Letter | VOWEL_DEPENDENT | VISUAL_ORDER_LEFT | _0_ | _null_ | ໃ Sign Ay | |`U+0EC4` | Letter | VOWEL_DEPENDENT | VISUAL_ORDER_LEFT | _0_ | _null_ | ໄ Sign Ai | |`U+0EC5` | _unassigned_ | | | | | | |`U+0EC6` | Letter Modifier | _null_ | _null_ | _0_ | _null_ | ໆ Ko La | |`U+0EC7` | _unassigned_ | | | | | | |`U+0EC8` | Mark [Mn] | TONE_MARKER | TOP_POSITION | 122 | _null_ | ່ Tone Mai Ek | |`U+0EC9` | Mark [Mn] | TONE_MARKER | TOP_POSITION | 122 | _null_ | ້ Tone Mai Tho | |`U+0ECA` | Mark [Mn] | TONE_MARKER | TOP_POSITION | 122 | _null_ | ໊ Tone Mai Ti | |`U+0ECB` | Mark [Mn] | TONE_MARKER | TOP_POSITION | 122 | _null_ | ໋ Tone Mai Catawa | |`U+0ECC` | Mark [Mn] | _null_ | TOP_POSITION | _0_ | _null_ | ໌ Cancellation mark | |`U+0ECD` | Mark [Mn] | BINDU | TOP_POSITION | _0_ | _null_ | ໍ Niggahita | |`U+0ECE` | Mark [Mn] | TONE_MARKER | TOP_POSITION | _0_ | _null_ | ໎ Yamakkan | |`U+0ECF` | _unassigned_ | | | | | | | | | | | | | | |`U+0ED0` | Number | NUMBER | _null_ | _0_ | _null_ | ໐ Digit Zero | |`U+0ED1` | Number | NUMBER | _null_ | _0_ | _null_ | ໑ Digit One | |`U+0ED2` | Number | NUMBER | _null_ | _0_ | _null_ | ໒ Digit Two | |`U+0ED3` | Number | NUMBER | _null_ | _0_ | _null_ | ໓ Digit Three | |`U+0ED4` | Number | NUMBER | _null_ | _0_ | _null_ | ໔ Digit Four | |`U+0ED5` | Number | NUMBER | _null_ | _0_ | _null_ | ໕ Digit Five | |`U+0ED6` | Number | NUMBER | _null_ | _0_ | _null_ | ໖ Digit Six | |`U+0ED7` | Number | NUMBER | _null_ | _0_ | _null_ | ໗ Digit Seven | |`U+0ED8` | Number | NUMBER | _null_ | _0_ | _null_ | ໘ Digit Eight | |`U+0ED9` | Number | NUMBER | _null_ | _0_ | _null_ | ໙ Digit Nine | |`U+0EDA` | _unassigned_ | | | | | | |`U+0EDB` | _unassigned_ | | | | | | |`U+0EDC` | Letter | CONSONANT | _null_ | _0_ | _null_ | ໜ Ho No | |`U+0EDD` | Letter | CONSONANT | _null_ | _0_ | _null_ | ໝ Ho Mo | |`U+0EDE` | Letter | CONSONANT | _null_ | _0_ | _null_ | ໞ Khmu Go | |`U+0EDF` | Letter | CONSONANT | _null_ | _0_ | _null_ | ໟ Khmu Nyo | | | | | | | | | |`U+0EE0` | _unassigned_ | | | | | | |`U+0EE1` | _unassigned_ | | | | | | |`U+0EE2` | _unassigned_ | | | | | | |`U+0EE3` | _unassigned_ | | | | | | |`U+0EE4` | _unassigned_ | | | | | | |`U+0EE5` | _unassigned_ | | | | | | |`U+0EE6` | _unassigned_ | | | | | | |`U+0EE7` | _unassigned_ | | | | | | |`U+0EE8` | _unassigned_ | | | | | | |`U+0EE9` | _unassigned_ | | | | | | |`U+0EEA` | _unassigned_ | | | | | | |`U+0EEB` | _unassigned_ | | | | | | |`U+0EEC` | _unassigned_ | | | | | | |`U+0EED` | _unassigned_ | | | | | | |`U+0EEE` | _unassigned_ | | | | | | |`U+0EEF` | _unassigned_ | | | | | | | | | | | | | | |`U+0EF0` | _unassigned_ | | | | | | |`U+0EF1` | _unassigned_ | | | | | | |`U+0EF2` | _unassigned_ | | | | | | |`U+0EF3` | _unassigned_ | | | | | | |`U+0EF4` | _unassigned_ | | | | | | |`U+0EF5` | _unassigned_ | | | | | | |`U+0EF6` | _unassigned_ | | | | | | |`U+0EF7` | _unassigned_ | | | | | | |`U+0EF8` | _unassigned_ | | | | | | |`U+0EF9` | _unassigned_ | | | | | | |`U+0EFA` | _unassigned_ | | | | | | |`U+0EFB` | _unassigned_ | | | | | | |`U+0EFC` | _unassigned_ | | | | | | |`U+0EFD` | _unassigned_ | | | | | | |`U+0EFE` | _unassigned_ | | | | | | |`U+0EFF` | _unassigned_ | | | | | | ::: ## Miscellaneous character table ## In addition to general punctuation, runs of Lao text text typically do not insert spaces between words. Consequently, the Zero-Width Space (`U+200B`) character is often used to insert invisible break points that may be converted to line breaks. :::{table} Additional punctuation character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:------------------|:---------------------------|:-------------------------------| |`U+200B` | Separator | PLACEHOLDER | _null_ | ​ Zero-width space | ::: Other important characters that may be encountered when shaping runs of Lao text include the dotted-circle placeholder (`U+25CC`), the zero-width joiner (`U+200D`) and zero-width non-joiner (`U+200C`), and the no-break space (`U+00A0`). The dotted-circle placeholder is frequently used when displaying a dependent vowel or a combining mark in isolation. Real-world text syllables may also use other characters, such as hyphens or dashes, in a similar placeholder fashion; shaping engines should cope with this situation gracefully. :::{table} Miscellaneous character table | Codepoint | Unicode category | Shaping class | Mark-placement subclass | Glyph | |:----------|:-----------------|:------------------|:---------------------------|:-------------------------------| |`U+00A0` | Separator | PLACEHOLDER | _null_ |   No-break space | |`U+200C` | Other | NON_JOINER | _null_ | ‌ Zero-width non-joiner | |`U+200D` | Other | JOINER | _null_ | ‍ Zero-width joiner | |`U+2010` | Punctuation | PLACEHOLDER | _null_ | ‐ Hyphen | |`U+2011` | Punctuation | PLACEHOLDER | _null_ | ‑ No-break hyphen | |`U+2012` | Punctuation | PLACEHOLDER | _null_ | ‒ Figure dash | |`U+2013` | Punctuation | PLACEHOLDER | _null_ | – En dash | |`U+2014` | Punctuation | PLACEHOLDER | _null_ | — Em dash | |`U+25CC` | Symbol | DOTTED_CIRCLE | _null_ | ◌ Dotted circle | :::