# liblouis: Character definitions for german tables
#
#  Copyright (C) 2018 SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte
#
#  This file is part of liblouis.
#
#  liblouis is free software: you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as
#  published by the Free Software Foundation, either version 2.1 of the
#  License, or (at your option) any later version.
#
#  liblouis is distributed in the hope that it will be useful, but
#  WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
#  Lesser General Public License for more details.
#
#  You should have received a copy of the GNU Lesser General Public
#  License along with liblouis. If not, see
#  <http://www.gnu.org/licenses/>.
#
#-------------------------------------------------------------------------------

space \x00a0 a
include spaces.uti

# ===== BASIC LATIN - 0000-007F ================================================

punctuation   \x0021 5               #33    ! EXCLAMATION MARK
punctuation   \x0022 4               #34    " QUOTATION MARK
sign          \x0023 3456            #35    # NUMBER SIGN
sign          \x0024 46              #36    $ DOLLAR SIGN
sign          \x0025 123456          #37    % PERCENT SIGN
sign          \x0026 12346           #38    & AMPERSAND
punctuation   \x0027 6               #39    ' APOSTROPHE APOSTROPHE-QUOTE
lowercase     \x0027 6               #39    ' APOSTROPHE APOSTROPHE-QUOTE        # doesn't work with letter!
punctuation   \x0028 236             #40    ( LEFT PARENTHESIS
punctuation   \x0029 356             #41    ) RIGHT PARENTHESIS
punctuation   \x002A 35              #42    * ASTERISK
math          \x002B 235             #43    + PLUS SIGN
punctuation   \x002C 2               #44    , COMMA
punctuation   \x002D 36              #45    - HYPHEN-MINUS
punctuation   \x002E 3               #46    . FULL STOP PERIOD
punctuation   \x002F 256             #47    / SOLIDUS SLASH

include digits6DotsPlusDot6.uti

punctuation   \x003A 25              #58    : COLON
punctuation   \x003B 23              #59    ; SEMICOLON
math          \x003C 56              #60    < LESS-THAN SIGN
math          \x003D 2356            #61    = EQUALS SIGN
math          \x003E 45              #62    > GREATER-THAN SIGN
punctuation   \x003F 26              #63    ? QUESTION MARK

include latinLetterDef6Dots.uti

sign          \x0060 345             #96    `  GRAVE ACCENT
punctuation   \x007B 12356           #123   {  LEFT CURLY BRACKET
sign          \x007C 34              #124   |  VERTICAL LINE
punctuation   \x007D 23456           #125   }  RIGHT CURLY BRACKET
sign          \x007E 2346            #126   ~  TILDE
sign          \x007F 456             #127   [DELETE]

sign          \x0040 4-345           #64    @  COMMERCIAL AT
punctuation   \x005B 6-2356          #91    [  LEFT SQUARE BRACKET
sign          \x005C 4-34            #92    \  REVERSE SOLIDUS
punctuation   \x005D 6-2356          #93    ]  RIGHT SQUARE BRACKET
sign          \x005E 4-2346          #94    ^  CIRCUMFLEX ACCENT
sign          \x005F 4-456           #95    _  LOW LINE

# ===== LATIN-1 SUPPLEMENT: 0080-00FF ==========================================

punctuation   \x00A1 6-235           #161   ¡ INVERTED EXCLAMATION MARK
sign          \x00A2 4-14            #162   ¢ CENT SIGN
sign          \x00A3 4-123           #163   £ POUND SIGN
sign          \x00A4 0               #164   ¤ CURRENCY SIGN
sign          \x00A5 4-13456         #165   ¥ YEN SIGN
sign          \x00A6 5-36            #166   ¦ BROKEN BAR
sign          \x00A7 346             #167   § SECTION SIGN
sign          \x00A8 0               #168   ¨ DIAERESIS
sign          \x00A9 2356-45-14-2356 #169   © COPYRIGHT SIGN
lowercase     \x00AA 1               #170   ª FEMININE ORDINAL INDICATOR
punctuation   \x00AB 236             #171   « LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
sign          \x00AC 0               #172   ¬ NOT SIGN
sign          \x00AD 0               #173   ­ SOFT HYPHEN
sign          \x00AE 6-2356-45-1235-2356   #174 ® REGISTERED SIGN
sign          \x00AF 0               #175   ¯ MACRON
sign          \x00B0 4-356           #176   ° DEGREE SIGN
math          \x00B1 235-36          #177   ± PLUS-MINUS SIGN
sign          \x00B2 34-23           #178   ² SUPERSCRIPT TWO
sign          \x00B3 34-25           #179   ³ SUPERSCRIPT THREE
sign          \x00B4 0               #180   ´ ACUTE ACCENT
sign          \x00B5 56-134          #181   µ MICRO SIGN
sign          \x00B6 0               #182   ¶ PILCROW SIGN
sign          \x00B7 0               #183   · MIDDLE DOT
sign          \x00B8 0               #184   ¸ CEDILLA
sign          \x00B9 0               #185   ¹ SUPERSCRIPT ONE
lowercase     \x00BA 135             #186   º MASCULINE ORDINAL INDICATOR
punctuation   \x00BB 356             #187   » RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
math          \x00BC 3456-1-256      #188   ¼ VULGAR FRACTION ONE QUARTER
math          \x00BD 3456-1-23       #189   ½ VULGAR FRACTION ONE HALF
math          \x00BE 3456-14-256     #190   ¾ VULGAR FRACTION THREE QUARTERS
punctuation   \x00BF 6-26            #191   ¿ INVERTED QUESTION MARK
uplow         \x00C4\x00E4  345      #196 #228  Ää LATIN CAPITAL LETTER A WITH DIAERESIS
uplow         \x00D6\x00F6  246      #214 #246  Öö LATIN CAPITAL LETTER O WITH DIAERESIS
math          \x00D7 236             #215   × MULTIPLICATION SIGN
uplow         \x00DC\x00FC  1256     #220 #252   Üü LATIN CAPITAL LETTER U WITH DIAERESIS
uplow         \x1e9e\x00DF 2346           #223   ß LATIN SMALL LETTER SHARP S
math          \x00F7 0               #247   ÷ DIVISION SIGN

# ===== GENERAL PUNCTUATION: 2000-206F =========================================

punctuation   \x2013 6-36            #8211          EN DASH
punctuation   \x2014 6-36            #8212          EM DASH
punctuation   \x2018 6-236           #8216          LEFT SINGLE QUOTATION MARK
punctuation   \x2019 6-356           #8217          RIGHT SINGLE QUOTATION MARK
punctuation   \x201A 6-236           #8218          SINGLE LOW-9 QUOTATION MARK
punctuation   \x201B 6-356           #8219          SINGLE HIGH-REVERSED-9 QUOTATION MARK
punctuation   \x201C 236             #8220          LEFT DOUBLE QUOTATION MARK
punctuation   \x201D 356             #8221          RIGHT DOUBLE QUOTATION MARK
punctuation   \x201E 236             #8222          DOUBLE LOW-9 QUOTATION MARK
punctuation   \x201F 356             #8223          DOUBLE HIGH-REVERSED-9 QUOTATION MARK
sign          \x2020 4-235           #8224          DAGGER
sign          \x2030 3456-245-356-356      #8240    PER MILLE SIGN
sign          \x2031 3456-245-356-356-356  #8241    PER TEN THOUSAND SIGN
sign          \x2032 4-35            #8242          PRIME
sign          \x2033 4-35-35         #8243          DOUBLE PRIME
punctuation   \x2039 6-236                          SINGLE LEFT-POINTING ANGLE QUOTATION MARK
punctuation   \x203a 6-356                          SINGLE RIGHT-POINTING ANGLE QUOTATION MARK

# ===== CURRENCY SYMBOLS: 20A0-20CF ============================================

sign          \x20A0 4-15            #8352          EURO-CURRENCY SIGN
sign          \x20AC 4-15            #8364          EURO SIGN

# ===== LETTERLIKE SYMBOLS 2100-214F ===========================================

sign          \x2122 6-2356-45-2345-134-2356 #8482   TRADE MARK SIGN

# ===== NUMBER FORMS: 2150-218F ================================================

math          \x2153 3456-1-25               VULGAR FRACTION ONE THIRD
math          \x2154 3456-12-25              VULGAR FRACTION TWO THIRDS
math          \x2155 3456-1-26               VULGAR FRACTION ONE FIFTH
math          \x2156 3456-12-26              VULGAR FRACTION TWO FIFTHS
math          \x2157 3456-14-26              VULGAR FRACTION THREE FIFTHS
math          \x2158 3456-145-26             VULGAR FRACTION FOUR FIFTHS
math          \x2159 3456-1-235              VULGAR FRACTION ONE SIXTH
math          \x215a 3456-15-235             VULGAR FRACTION FIVE SIXTHS
math          \x215b 3456-1-236              VULGAR FRACTION ONE EIGHTH
math          \x215c 3456-14-236             VULGAR FRACTION THREE EIGHTHS
math          \x215d 3456-15-236             VULGAR FRACTION FIVE EIGHTHS
math          \x215e 3456-1245-236           VULGAR FRACTION SEVEN EIGHTHS

# ===== ARROWS: 2190-21FF ======================================================

sign          \x2190 0-246-25-25-0           LEFTWARDS ARROW
sign          \x2192 0-25-25-135-0           RIGHTWARDS ARROW
sign          \x2194 0-246-25-25-135-0       LEFT RIGHT ARROW

# ===== MATHEMATICAL OPERATORS: 2200-22FF ======================================

math          \x2212 36a             #8722   MINUS SIGN
math          \x2215 25              #8725   DIVISION SLASH
math          \x2217 35              #8727   ASTERISK OPERATOR
math          \x223C 25-25           #8764   TILDE OPERATOR
math          \x2245 26-26           #8773   APPROXIMATELY EQUAL TO
math          \x2259 26              #8793   ESTIMATES
math          \x2260 35-2356         #8800   NOT EQUAL TO
math          \x2261 2356-2356       #8801   IDENTICAL TO
math          \x2264 246-2356        #8804   LESS-THAN OR EQUAL TO
math          \x2265 135-2356        #8805   GREATER-THAN OR EQUAL TO
math          \x2266 246-2356        #8806   LESS-THAN OVER EQUAL TO
math          \x2267 135-2356        #8807   GREATER-THAN OVER EQUAL TO
math          \x22c5 3               #8901   DOT OPERATOR
math          \x22c6 3               #8902   STAR OPERATOR

# ===== MISCELLANEOUS TECHNICAL: 2300-23FF =====================================

punctuation   \x2329 5-2356          #9001 LEFT-POINTING ANGLE BRACKET
punctuation   \x232a 5-2356          #9002 RIGHT-POINTING ANGLE BRACKET

# ===== MISCELLANEOUS SYMBOLS: 2600-26FF =======================================

sign          \x2639 6-46-25-36-236  #9785   WHITE FROWNING FACE
sign          \x263a 6-46-25-36-356  #9786   WHITE SMILING FACE

# ===== SPECIAL PURPOSE CHARACTERS (from BOX DRAWING: 2500-257F) ===============

# KUERZUNGSVERBOT und "DUMMY"-TEXT:
lowercase     \x250A abcdef          #9482    BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
# "DUMMY"-ZAHL:
digit         \x250B b               #9483    BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
# GROSSBUCHSTABE (virtual use only):
sign          \x2565 46a             #9573    BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
# GROSSBUCHSTABENFOLGE (virtual use only):
sign          \x2567 45a             #9575    BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
# ENDE GROSSBUCHSTABENFOLGE (virtual use only):
sign          \x2568 45b             #9576    BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
# AUFHEBUNGSPUNKT bei Wort-Zahl-Ausdruecken (grade 2):
sign          \x256C ab              #9580    BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
# DOPPELPUNKT bei Zeitangaben:
sign          \x2573 6-25            #9587    BOX DRAWINGS LIGHT DIAGONAL CROSS
# MARKIERUNG FÜR ZAHL-BUCHSTABE-VERBINDUNG (zum Eliminieren überflüssiger Letter-Signs):
digit         \x2504 ac              #9476    BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
# APOSTROPH VOR ZAHL (z.B. Im Jahr '97):
digit         \x2500 69              #9472    BOX DRAWINGS LIGHT HORIZONTAL
# PUNKT VOR ZAHL (z.B. Kaliber .45):
digit         \x2501 39              #9473    BOX DRAWINGS HEAVY HORIZONTAL
# Strich und Punkt vor Zahl (Fr. --.45):
digit         \x2510 36a-36a-3       #9488    BOX DRAWINGS LIGHT DOWN AND LEFT
# Strich und Komma vor Zahl (EUR --,45):
digit         \x2511 36a-36a-2       #9489    BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY

# ===== BRAILLE PATTERNS: 2800-28FF ============================================

space         \x2800 0               #10240  BRAILLE PATTERN BLANK
sign          \x2801 1               #10241  BRAILLE PATTERN DOTS-1
sign          \x2802 2               #10242  BRAILLE PATTERN DOTS-2
sign          \x2803 12              #10243  BRAILLE PATTERN DOTS-12
sign          \x2804 3               #10244  BRAILLE PATTERN DOTS-3
sign          \x2805 13              #10245  BRAILLE PATTERN DOTS-13
sign          \x2806 23              #10246  BRAILLE PATTERN DOTS-23
sign          \x2807 123             #10247  BRAILLE PATTERN DOTS-123
sign          \x2808 4               #10248  BRAILLE PATTERN DOTS-4
sign          \x2809 14              #10249  BRAILLE PATTERN DOTS-14
sign          \x280a 24              #10250  BRAILLE PATTERN DOTS-24
sign          \x280b 124             #10251  BRAILLE PATTERN DOTS-124
sign          \x280c 34              #10252  BRAILLE PATTERN DOTS-34
sign          \x280d 134             #10253  BRAILLE PATTERN DOTS-134
sign          \x280e 234             #10254  BRAILLE PATTERN DOTS-234
sign          \x280f 1234            #10255  BRAILLE PATTERN DOTS-1234
sign          \x2810 5               #10256  BRAILLE PATTERN DOTS-5
sign          \x2811 15              #10257  BRAILLE PATTERN DOTS-15
sign          \x2812 25              #10258  BRAILLE PATTERN DOTS-25
sign          \x2813 125             #10259  BRAILLE PATTERN DOTS-125
sign          \x2814 35              #10260  BRAILLE PATTERN DOTS-35
sign          \x2815 135             #10261  BRAILLE PATTERN DOTS-135
sign          \x2816 235             #10262  BRAILLE PATTERN DOTS-235
sign          \x2817 1235            #10263  BRAILLE PATTERN DOTS-1235
sign          \x2818 45              #10264  BRAILLE PATTERN DOTS-45
sign          \x2819 145             #10265  BRAILLE PATTERN DOTS-145
sign          \x281a 245             #10266  BRAILLE PATTERN DOTS-245
sign          \x281b 1245            #10267  BRAILLE PATTERN DOTS-1245
sign          \x281c 345             #10268  BRAILLE PATTERN DOTS-345
sign          \x281d 1345            #10269  BRAILLE PATTERN DOTS-1345
sign          \x281e 2345            #10270  BRAILLE PATTERN DOTS-2345
sign          \x281f 12345           #10271  BRAILLE PATTERN DOTS-12345
sign          \x2820 6               #10272  BRAILLE PATTERN DOTS-6
sign          \x2821 16              #10273  BRAILLE PATTERN DOTS-16
sign          \x2822 26              #10274  BRAILLE PATTERN DOTS-26
sign          \x2823 126             #10275  BRAILLE PATTERN DOTS-126
sign          \x2824 36              #10276  BRAILLE PATTERN DOTS-36
sign          \x2825 136             #10277  BRAILLE PATTERN DOTS-136
sign          \x2826 236             #10278  BRAILLE PATTERN DOTS-236
sign          \x2827 1236            #10279  BRAILLE PATTERN DOTS-1236
sign          \x2828 46              #10280  BRAILLE PATTERN DOTS-46
sign          \x2829 146             #10281  BRAILLE PATTERN DOTS-146
sign          \x282a 246             #10282  BRAILLE PATTERN DOTS-246
sign          \x282b 1246            #10283  BRAILLE PATTERN DOTS-1246
sign          \x282c 346             #10284  BRAILLE PATTERN DOTS-346
sign          \x282d 1346            #10285  BRAILLE PATTERN DOTS-1346
sign          \x282e 2346            #10286  BRAILLE PATTERN DOTS-2346
sign          \x282f 12346           #10287  BRAILLE PATTERN DOTS-12346
sign          \x2830 56              #10288  BRAILLE PATTERN DOTS-56
sign          \x2831 156             #10289  BRAILLE PATTERN DOTS-156
sign          \x2832 256             #10290  BRAILLE PATTERN DOTS-256
sign          \x2833 1256            #10291  BRAILLE PATTERN DOTS-1256
sign          \x2834 356             #10292  BRAILLE PATTERN DOTS-356
sign          \x2835 1356            #10293  BRAILLE PATTERN DOTS-1356
sign          \x2836 2356            #10294  BRAILLE PATTERN DOTS-2356
sign          \x2837 12356           #10295  BRAILLE PATTERN DOTS-12356
sign          \x2838 456             #10296  BRAILLE PATTERN DOTS-456
sign          \x2839 1456            #10297  BRAILLE PATTERN DOTS-1456
sign          \x283a 2456            #10298  BRAILLE PATTERN DOTS-2456
sign          \x283b 12456           #10299  BRAILLE PATTERN DOTS-12456
sign          \x283c 3456            #10300  BRAILLE PATTERN DOTS-3456
sign          \x283d 13456           #10301  BRAILLE PATTERN DOTS-13456
sign          \x283e 23456           #10302  BRAILLE PATTERN DOTS-23456
sign          \x283f 123456          #10303  BRAILLE PATTERN DOTS-123456
