# ----------------------------------------------------------------------------------------------
#  odt2braille - Braille authoring in OpenOffice.org.
#  Copyright (c) 2010 by DocArch <http://www.docarch.be>.
# ----------------------------------------------------------------------------------------------
#
#  Catalan Braille
#     Created and maintained by Bert Frees <bertfrees@gmail.com>
#	  with the assistance of Carles Sadurní Anguita <http://www.transcriptor.net/>
#
# ----------------------------------------------------------------------------------------------

space       \x0009        9                                       <control> HORIZONTAL TABULATION
space       \x001B        1b                                      <control> ESCAPE
space       \x00A0        a                                       NO-BREAK SPACE
include spaces.uti

# ==============================================================================================
# SINGLE-CELL
# ==============================================================================================

# ----------------------------------------------------------------------------------------------
# Unicode 0000..007F  C0 Controls and Basic Latin
# ----------------------------------------------------------------------------------------------

include latinLetterDef6Dots.uti

uplow       \x00C0\x00E0  12356,12356         Àà                  LATIN CAPITAL LETTER A WITH GRAVE - LATIN SMALL LETTER A WITH GRAVE
uplow       \x00C7\x00E7  12346,12346         Çç                  LATIN CAPITAL LETTER C WITH CEDILLA - LATIN SMALL LETTER C WITH CEDILLA
uplow       \x00C8\x00E8  2346,2346           Èè                  LATIN CAPITAL LETTER E WITH GRAVE - LATIN SMALL LETTER E WITH GRAVE
uplow       \x00C9\x00E9  123456,123456       Éé                  LATIN CAPITAL LETTER E WITH ACUTE - LATIN SMALL LETTER E WITH ACUTE
uplow       \x00CD\x00ED  34,34               Íí                  LATIN CAPITAL LETTER I WITH ACUTE - LATIN SMALL LETTER I WITH ACUTE
uplow       \x00CF\x00EF  12456,12456         Ïï                  LATIN CAPITAL LETTER I WITH DIAERESIS - LATIN SMALL LETTER I WITH DIAERESIS
uplow       \x00D2\x00F2  346,346             Òò                  LATIN CAPITAL LETTER O WITH GRAVE - LATIN SMALL LETTER O WITH GRAVE
uplow       \x00D3\x00F3  246,246             Óó                  LATIN CAPITAL LETTER O WITH ACUTE - LATIN SMALL LETTER O WITH ACUTE
uplow       \x00DA\x00FA  23456,23456         Úú                  LATIN CAPITAL LETTER U WITH ACUTE - LATIN SMALL LETTER U WITH ACUTE
uplow       \x00DC\x00FC  1256,1256           Üü                  LATIN CAPITAL LETTER U WITH DIAERESIS - LATIN SMALL LETTER U WITH DIAERESIS

punctuation \x0021        256                 !                   EXCLAMATION MARK
punctuation \x0022        236                 "                   QUOTATION MARK
punctuation \x0027        3                   '                   APOSTROPHE
punctuation \x0028        126                 (                   LEFT PARENTHESIS
punctuation \x0029        345                 )                   RIGHT PARENTHESIS
sign        \x002A        35                  *                   ASTERISK
math        \x002B        235                 +                   PLUS SIGN
punctuation \x002C        2                   ,                   COMMA
punctuation \x002D        36                  -                   HYPHEN-MINUS
punctuation \x002E        3                   .                   FULL STOP
include loweredDigits6Dots.uti
punctuation \x003A        25                  :                   COLON
punctuation \x003B        23                  ;                   SEMICOLON
math        \x003C        246                 <                   LESS-THAN SIGN
math        \x003D        2356                =                   EQUALS SIGN
math        \x003E        135                 >                   GREATER-THAN SIGN
punctuation \x003F        26                  ?                   QUESTION MARK
punctuation \x005B        12356               [                   LEFT SQUARE BRACKET
punctuation \x005D        23456               ]                   RIGHT SQUARE BRACKET
sign        \x007C        456                 |                   VERTICAL LINE


# ----------------------------------------------------------------------------------------------
# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
# ----------------------------------------------------------------------------------------------

punctuation \x0082        2                   ‚                   <control> BREAK PERMITTED HERE - ANSI: SINGLE LOW-9 QUOTATION MARK - MACROMAN: C CEDILLA
punctuation \x0084        236                 „                   <control> - ANSI: DOUBLE LOW-9 QUOTATION MARK - MACROMAN: N TILDE
punctuation \x0093        236                 “                   <control> SET TRANSMIT STATE - ANSI: LEFT DOUBLE QUOTATION MARK - MACROMAN: I GRAVE
punctuation \x0094        236                 ”                   <control> CANCEL CHARACTER - ANSI: RIGHT DOUBLE QUOTATION MARK - MACROMAN: I CIRCUMFLEX
punctuation \x0096        36                  –                   <control> START OF GUARDED AREA - ANSI: EN DASH - MACROMAN: N TILDE
punctuation \x00A1        235                 ¡                   INVERTED EXCLAMATION MARK
punctuation \x00AB        236                 «                   LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
punctuation \x00AD        36                  ­                   SOFT HYPHEN
sign        \x00B8        2                   ¸                   CEDILLA
punctuation \x00BB        236                 »                   RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
punctuation \x00B7        5                   ·                   MIDDLE DOT
punctuation \x00BF        26                  ¿                   INVERTED QUESTION MARK
math        \x00D7        236                 ×                   MULTIPLICATION SIGN
math        \x00F7        256                 ÷                   DIVISION SIGN


# ----------------------------------------------------------------------------------------------
# Unicode 2000..206F  General Punctuation
# ----------------------------------------------------------------------------------------------

punctuation \x2010        36                  ‐                   HYPHEN
punctuation \x2011        36                  ‑                   NON-BREAKING HYPHEN
punctuation \x2012        36                  ‒                   FIGURE DASH
punctuation \x2013        36                  –                   EN DASH
punctuation \x2018        236                 ‘                   LEFT SINGLE QUOTATION MARK
punctuation \x2019        236                 ’                   RIGHT SINGLE QUOTATION MARK
punctuation \x201A        236                 ‚                   SINGLE LOW-9 QUOTATION MARK
punctuation \x201B        236                 ‛                   SINGLE HIGH-REVERSED-9 QUOTATION MARK
punctuation \x201C        236                 “                   LEFT DOUBLE QUOTATION MARK
punctuation \x201D        236                 ”                   RIGHT DOUBLE QUOTATION MARK
punctuation \x201E        236                 „                   DOUBLE LOW-9 QUOTATION MARK
punctuation \x201F        236                 ‟                   DOUBLE HIGH-REVERSED-9 QUOTATION MARK
punctuation \x2043        36                  ⁃                   HYPHEN BULLET

include braille-patterns.cti

# ==============================================================================================
# MULTI-CELL
# ==============================================================================================

# ----------------------------------------------------------------------------------------------
# Unicode 0000..007F  C0 Controls and Basic Latin
# ----------------------------------------------------------------------------------------------

sign        \x0024        345-234             $                   DOLLAR SIGN
math        \x0025        456-356             %                   PERCENT SIGN
sign        \x0026        6-12346             &                   AMPERSAND
math        \x002F        6-2                 /                   SOLIDUS
sign        \x0040        56-16               @                   COMMERCIAL AT
sign        \x005C        5-3                 \                   REVERSE SOLIDUS
math        \x007B        5-123               {                   LEFT CURLY BRACKET
math        \x007D        456-2               }                   RIGHT CURLY BRACKET


# ----------------------------------------------------------------------------------------------
# Unicode 0080..00FF  C1 Controls and Latin-1 Supplement
# ----------------------------------------------------------------------------------------------

sign        \x0080        456-15              €                   <control> - ANSI: EURO-CURRENCY SIGN - MACROMAN: A DIAERESIS
punctuation \x0085        3-3-3               …                   <control> NEXT LINE (NEL) - ANSI: HORIZONTAL ELLIPSIS - MACROMAN: O DIAERESIS
sign        \x0089        456-356-356         ‰                   <control> CHARACTER TABULATION WITH JUSTIFICATION - ANSI: PER MILLE SIGN - MACROMAN: A CIRCUMFLEX
punctuation \x0097        36-36               —                   <control> END OF GUARDED AREA - ANSI: EM DASH - MACROMAN: O ACUTE
sign        \x00A2        45-14               ¢                   CENT SIGN
sign        \x00A3        5-2346              £                   POUND SIGN
sign        \x00A5        456-13456           ¥                   YEN SIGN
sign        \x00A9        126-46-14-345       ©                   COPYRIGHT SIGN
sign        \x00AA        56-16               ª                   FEMININE ORDINAL INDICATOR
sign        \x00AE        126-46-1235-345     ®                   REGISTERED SIGN
math        \x00B1        235-25-36           ±                   PLUS-MINUS SIGN
sign        \x00B2        16-3456-12          ²                   SUPERSCRIPT TWO
sign        \x00B3        16-3456-14          ³                   SUPERSCRIPT THREE
sign        \x00B5        4-134               µ                   MICRO SIGN
math        \x00BC        1456-2-145          ¼                   VULGAR FRACTION ONE QUARTER
math        \x00BD        1456-2-12           ½                   VULGAR FRACTION ONE HALF
math        \x00BE        1456-25-145         ¾                   VULGAR FRACTION THREE QUARTERS


# ----------------------------------------------------------------------------------------------
# Unicode 0100..017F  Latin Extended-A
# ----------------------------------------------------------------------------------------------

uplow       \x013F\x0140  123-5,123-5         Ŀŀ                  LATIN CAPITAL LETTER L WITH MIDDLE DOT - LATIN SMALL LETTER L WITH MIDDLE DOT


# ----------------------------------------------------------------------------------------------
# Unicode 0370..03FF  Greek and Coptic
# ----------------------------------------------------------------------------------------------

lowercase   \x03B1        4-1                 α                   GREEK SMALL LETTER ALPHA
lowercase   \x03B2        4-12                β                   GREEK SMALL LETTER BETA
lowercase   \x03B3        4-1245              γ                   GREEK SMALL LETTER GAMMA
lowercase   \x03B4        4-145               δ                   GREEK SMALL LETTER DELTA
lowercase   \x03B5        4-15                ε                   GREEK SMALL LETTER EPSILON
lowercase   \x03B6        4-1356              ζ                   GREEK SMALL LETTER ZETA
lowercase   \x03B7        4-156               η                   GREEK SMALL LETTER ETA
lowercase   \x03B8        4-1456              θ                   GREEK SMALL LETTER THETA
lowercase   \x03B9        4-24                ι                   GREEK SMALL LETTER IOTA
lowercase   \x03BA        4-13                κ                   GREEK SMALL LETTER KAPPA
lowercase   \x03BB        4-123               λ                   GREEK SMALL LETTER LAMDA
lowercase   \x03BC        4-134               μ                   GREEK SMALL LETTER MU
lowercase   \x03BD        4-1345              ν                   GREEK SMALL LETTER NU
lowercase   \x03BE        4-1346              ξ                   GREEK SMALL LETTER XI
lowercase   \x03BF        4-135               ο                   GREEK SMALL LETTER OMICRON
lowercase   \x03C0        4-1234              π                   GREEK SMALL LETTER PI
lowercase   \x03C1        4-1235              ρ                   GREEK SMALL LETTER RHO
lowercase   \x03C2        4-234               ς                   GREEK SMALL LETTER FINAL SIGMA
lowercase   \x03C3        4-234               σ                   GREEK SMALL LETTER SIGMA
lowercase   \x03C4        4-2345              τ                   GREEK SMALL LETTER TAU
lowercase   \x03C5        4-136               υ                   GREEK SMALL LETTER UPSILON
lowercase   \x03C6        4-124               φ                   GREEK SMALL LETTER PHI
lowercase   \x03C7        4-12346             χ                   GREEK SMALL LETTER CHI
lowercase   \x03C8        4-13456             ψ                   GREEK SMALL LETTER PSI
lowercase   \x03C9        4-2456              ω                   GREEK SMALL LETTER OMEGA


# ----------------------------------------------------------------------------------------------
# Unicode 2000..206F  General Punctuation
# ----------------------------------------------------------------------------------------------

punctuation \x2014        36-36               —                   EM DASH
punctuation \x2015        36-36               ―                   HORIZONTAL BAR
punctuation \x2026        3-3-3               …                   HORIZONTAL ELLIPSIS


# ----------------------------------------------------------------------------------------------
# Unicode 20A0..20CF  Currency Symbols
# ----------------------------------------------------------------------------------------------

sign        \x20AC        456-15              €                   EURO SIGN


# ----------------------------------------------------------------------------------------------
