# Ensemble de signes représentés sur plusieurs cellules. Compatible braille 6pts et 8pts.

# Copyright (C) 2017 André-Abush CLAUSE <dev@andreabc.net>
# Copyright (C) 2017 Ludovic Oger <oger.ludovic@gmail.com>

#  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/>.

# Références :
# - Code braille français uniformisé pour la transcription des textes imprimés (CBFU) - Deuxième édition Septembre 2008
# - Notation mathématique braille - Première édition janvier 2007
# - IPA Braille: An Updated Tactile Representation of the International Phonetic Alphabet - Edited by Robert Englebretson, Ph.D. <http://www.iceb.org/icebipa.htm>
# updated 2018-02-24

################################################################################

# lettres grecques
noback uplow \x0391\x03b1 46-45-1,45-1 Α,α alpha
noback uplow \x0392\x03b2 46-45-12,45-12 Β,β bêta
noback uplow \x0393\x03b3 46-45-1245,45-1245 Γ,γ gamma
noback uplow \x0394\x03b4 46-45-145,45-145 Δ,δ delta
noback uplow \x0395\x03B5 46-45-15,45-15 Ε,ε epsilon
noback uplow \x0396\x03B6 46-45-1356,45-1356 Ζ,ζ zêta
noback uplow \x0397\x03B7 46-45-125,45-125 Η,η êta
noback uplow \x0398\x03B8 46-45-245,45-245 Θ,θ thêta
noback uplow \x0399\x03B9 46-45-24,45-24 Ι,ι iota
noback uplow \x039A\x03BA 46-45-13,45-13 Κ,κ kappa
noback uplow \x039B\x03BB 46-45-123,45-123 Λ,λ lambda
noback uplow \x039C\x03BC 46-45-134,45-134 Μ,μ mu
noback uplow \x039D\x03BD 46-45-1345,45-1345 Ν,ν nu
noback uplow \x039E\x03BE 46-45-1346,45-1346 Ξ,ξ ksi/xi
noback uplow \x039F\x03BF 46-45-135,45-135 Ο,ο omicron
noback uplow \x03A0\x03C0 46-45-1234,45-1234 Π,π pi
noback uplow \x03A1\x03C1 46-45-1235,45-1235 Ρ,ρ rhô
noback uplow \x03A3\x03C3 46-45-234,45-234 Σ,σ sigma
noback uplow \x03A4\x03C4 46-45-2345,45-2345 Τ,τ tau
noback uplow \x03A5\x03C5 46-45-136,45-136 Υ,υ upsilon
noback uplow \x03A6\x03C6 46-45-124,45-124 Φ,φ phi
noback uplow \x03A7\x03C7 46-45-12345,45-12345 Χ,χ khi
noback uplow \x03A8\x03C8 46-45-13456,45-13456 Ψ,ψ psi
noback uplow \x03A9\x03C9 46-45-2456,45-2456 Ω,ω oméga
noback sign \x03C2 45-234 ς var. sigma
noback sign \x03D0 45-12 ϐ var. bêta
noback sign \x03D1 45-245 ϑ var. thêta
noback sign \x03D2 46-45-136 ϒ var. upsilon majuscule
noback sign \x03D5 45-124 ϕ var. phi
noback sign \x03D6 45-1234 ϖ var. pi
noback sign \x03F0 45-13 ϰ var. kappa
noback sign \x03F1 45-1235 ϱ var. rhô
noback sign \x03F2 45-234 ϲ var. sigma (lunaire)
noback sign \x03F5 45-15 ϵ var. epsilon (lunaire)

# lettres majuscules ajourées (blackboard gras)
noback sign \x2102 46-46-14 ℂ
noback sign \x210D 46-46-125 ℍ
noback sign \x2115 46-46-1345 ℕ
noback sign \x2119 46-46-1234 ℙ
noback sign \x211a 46-46-12345 ℚ
noback sign \x211d 46-46-1235 ℝ
noback sign \x2124 46-46-1356 ℤ

# lettres majuscules rondes
# lignes commentées car requiert Liblouis compilé avec le support d'UTF-32
#sign \y1D4D0 46-5-1
#sign \y1D49C 46-5-1    # A
#sign \y1D4D2 46-5-14   # C
#sign \y1D49E 46-5-14   # C
#sign \y1D49F 46-5-145  # D
#sign \y1D4D3 46-5-145  # D
#sign \y1D4A0 46-5-15   # E
#sign \y1D4D4 46-5-15   # E
#sign \y1D4AB 46-5-1234 # P
#sign \y1D4DF 46-5-1234 # P

noback math \x2032 3 ′ prime
noback math \x2033 3-3 ″ seconde
noback math \x2034 3-3-3 ‴ tierce

#signes d'opérations
# noback math \x002B 235 + plus
     # unicode manquant (?) pour "grand plus"
noback math \x2295 46-235 ⊕ plus encerclé
noback math \x2A01 46-46-235 ⨁ grand plus encerclé
noback math \x222A 456-235 ∪ union
noback math \x22C3 456-456-235 ⋃ grande union
noback math \x2229 45-235 ∩ intersection
noback math \x22C2 45-45-235 ⋂ grande intersection
noback math \x2212 36 − moins
noback math \x2213 36-235 ∓ moins ou plus
noback math \x22C5 35-35 ⋅ point multiplicatif ; produit scalaire
     # astérisque, étoile... 5-35 *
     # unicode manquant (?) pour "grande croix de multiplication"
noback math \x2297 46-35 ⊗ produit tensoriel (croix dans un rond)
noback math \x2A02 46-46-35 ⨂ grand produit tensoriel (grande croix dans un rond)
     # unicode manquant (?) pour "croix double de multiplication"
     # factorielle 456-35 !
noback math \x2227 45-35 ∧ et logique; produit vectoriel...
noback math \x22C0 45-45-35 ⋀ grand et logique
noback math \x2228 45-26 ∨ ou logique
noback math \x22C1 45-45-26 ⋁ grand ou logique
noback math \x2218 456-3456 ∘ rond
     # divisé par (slash) 34 /
     # exposant 4


# signes d'égalité et d'inégalité
    # égal 2356 =
noback math \x2260 46-2356 ≠ différent de
noback math \x2248 5-2356 ≈ environ égal à
noback math \x224A 456-5-2356 ≊ presque égal à
noback math \x2243 45-2356 ≃ asymptotiquement égal à
noback math \x2245 456-2356 ≅ approximativement égal à
noback math \x2261 2356-2356 ≡ identique à
noback math \x2262 46-2356-2356 ≢  non identique à
noback math \x2259 25-2356 ≙ correspond à
    # supérieur à >
noback math \x2265 45-345 ≥ supérieur ou égal à
noback math \x2A7E 45-345 ⩾ supérieur ou égal à
    # inférieur à <
noback math \x2264 45-126 ≤ inférieur ou égal à
noback math \x2A7D 45-126 ⩽ inférieur ou égal à
    # plus grand ou plus petit que ><
noback math \x226B 5-5-345 ≫ très supérieur à
noback math \x226A 5-5-126 ≪ très inférieur à
noback math \x227B 46-46-345 ≻ suit
noback math \x227A 46-46-126 ≺ précède
noback math \x227D 45-45-345 ≽ suit ou est égal à
noback math \x227C 45-45-126 ≼ précède ou est égal à


# Parenthèses, accolades et crochets
# à compléter


# Notations ensemblistes
noback math \x2282 46-16 ⊂ inclus
noback math \x2284 46-34 ⊄ non inclus
noback math \x2286 456-46-16 ⊆ inclus au sens large
noback math \x2288 456-46-34 ⊈ non inclus au sens large
noback math \x2283 5-16 ⊃ contenant
noback math \x2285 5-34 ⊅ ne contenant pas
noback math \x2208 45-16 ∈ appartient à
noback math \x2209 45-34 ∉ n'appartient pas à
noback math \x220B 46-45-16 ∋ contient
noback math \x220C 46-45-34 ∌ ne contient pas
noback math \x2201 46-146 ∁ complémentaire
noback math \x2205 45-3456 ∅ ensemble vide


# flèches
noback math \x21A6 5-156 ↦ a pour image
noback math \x2197 45-156 ↗ croissant
noback math \x2191 45-12456 ↑ flèche vers le haut
noback math \x2196 45-246 ↖ flèche montante de droite à gauche
noback math \x2192 456-156 → flèche droite
noback sign \x27f6 25-25-135 ⟶ flèche droite littéraire
# sign \x2192 25-25-135 → flèche droite littéraire
noback math \x21C4 456-12456 ⇄ flèche droite au dessus d'une flèche gauche
noback math \x2190 456-246 ← flèche gauche
noback sign \x27f5 246-25-25 ⟵ flèche gauche littéraire
# sign \x2190 246-25-25 ← flèche gauche littéraire
noback math \x2198 46-156 ↘ décroissant
noback math \x2193 46-12456 ↓ flèche vers le bas
noback math \x2199 46-246 ↙ flèche descendante de droite à gauche
noback math \x2194 5-12456 ↔ flèche à gauche et droite
# sign \x2194 246-25-135 ↔ flèche à gauche et droite littéraire


# signes suscrits
#unicode approprié ? noback math \x23DC 4-25 ⏜ arc (top parenthesis)
# angle saillant : pas d'équivalence unicode pour la notation française courante (LaTex : widehat). voir \x2220
noback math \x20D7 46-25 ⃗ vecteur
# tenseur d'ordre n : séquence non reproductible: vecteur, lettre, exposant n ; braille : 46-25-4-1345 lettre
noback math \x0305 456-25 ̅  mesure algébrique, conjugué de...
#unicode approprié ? noback math \x035D 4-4-25 ͝  arc sous-tendu par un angle rentrant (COMBINING DOUBLE BREVE)
# angle rentrant : pas d'équivalence unicode pour la notation française courante
# vecteur axial : pas d'équivalence unicode pour la flèche suscrite
# tilde
# flèche circulaire de sens négatif : pas d'équivalence unicode pour la flèche suscrite
# T renversé : pas d'équivalence unicode pour le signe suscrit
# dague : pas d'équivalence unicode pour le signe suscrit
noback math \x033F 45-456-25 ̿  double barre horizontale
noback math \x20D6 456-46-25 ⃖  fèche horizontale dirigée vers la gauche

# signes souscrits
noback math \x032F 46-4-25 ̯  demi-rond convexe vers le haut, souscrit
noback math \x032D 46-45-25 ̭  accent circonflexe, souscrit
noback math \x0362 46-46-25 ͢  flèche vers la droite, souscrite
noback math \x20EF 46-46-25 ⃯ flèche vers la droite, souscrite
noback math \x0332 46-456-25 ̲  barre horizontale, souscrite
noback math \x032E 46-4-4-25 ̮  demi-rond convexe vers le bas, souscrit
noback math \x032C 46-456-45-25 ̬  accent circonflexe renversé, souscrit

# signes géométriques
noback math \x2225 456-1256 ∥ parallèle à
noback math \x22A5 45-1256 ⊥ perpendiculaire à


# Encadrements, barres verticales
noback math \x2016 45-123456 ‖ norme vecteur
#conflit possible ? noback math \x007C 123456 | valeur absolue


# Fonctions
# doublon dans le code 2007 (signes d'opérations) \x2218 456-3456 ∘ rond
noback math \x2202 5-145 ∂ différentielle partielle
# laplacien delta majuscule
noback math \x25A1 456-1456 □ d'alembertien
noback math \x2207 46-1456 ∇ nabla


# Intégrales
noback math \x222B 12346 ∫ intégrale
noback math \x222E 46-12346 ∮ intégrale de contour
noback math \x222C 12346-12346 ∬ intégrale double
noback math \x222F 46-12346-12346 ∯ intégrale de surface
noback math \x222D 12346-12346-12346 ∭ intégrale triple (absent du code 2007)
# unicode? 456-12346 somme après permutation circulaire


# Quantificateurs et signes d'implications
noback math \x2203 456-16 ∃ il existe
noback math \x2204 46-456-16 ∄ il n'existe pas
    # 456-16-235 il existe un unique
noback math \x2200 456-34 ∀ pour tout
    # pas d'unicode pour la négation de "pour tout"
noback math \x21d2 25-2 ⇒ implique
noback math \x21CF 46-25-2 ⇏ négation de "implique"
noback math \x21d0 5-25 ⇐ est impliqué par
noback math \x21CD 46-5-25 ⇍ négation de "est impliqué par"
noback math \x21D4 5-25-2 ⇔ équivalent à
noback math \x21CE 46-5-25-2 ⇎ négation de "équivalent à"

noback math \x2211 46-45-234 ∑ somme
noback math \x221A 345 √ racine carrée
noback math \x221B 4-146-345 ∛ racine cubique
noback math \x221E 45-14 ∞ infini
noback math \x2220 45-25 ∠ angle

# complément de fractions de base
noback math \x2153 16-34-146 ⅓ 1/3
noback math \x2154 126-34-146 ⅔ 2/3
noback math \x2155 16-34-156 ⅕ 1/5
noback math \x2156 126-34-156 ⅖ 2/5
noback math \x2157 146-34-156 ⅗ 3/5
noback math \x2158 1456-34-156 ⅘ 4/5
noback math \x2159 16-34-1246 ⅙ 1/6
noback math \x2150 16-34-12456 ⅐ 1/7
noback math \x215a 156-34-1246 ⅚ 5/6
noback math \x215b 16-34-1256 ⅛ 1/8
noback math \x215c 146-34-1256 ⅜ 3/8
noback math \x215d 156-34-1256 ⅝ 5/8
noback math \x215e 12456-34-1256 ⅞ 7/8
noback math \x2151 16-34-246 ⅑ 1/9
noback math \x2152 16-34-16-3456 ⅒ 1/10

# Alphabet phonétique international
include IPA-unicode-range.uti
# ajouts issus de la table IPA.utb :
# Conflit avec une autre table ? noback sign \x00F8 1256 # ø - slashed o - close-mid front rounded vowel
# Conflit avec une autre table ? noback sign \x00E6 146  # æ - ash - near-open front unrounded vowel
# ATTENTION ! Le symbole ci-dessous est très utilisé en phonétique (son anglais 'th' dans 'the' par exemple) mais le code braille phonétique entre en conflit avec la lettre grecque thêta.
# sign \x03B8 46-1456   # θ - theta - voiceless dental fricative (WARNING: greek letter)
