#+locale:fr
#+type:literary
#+contraction:no
#+dots:6

#-display-name: Unified French 6 dots
#-author: Michel Such <michel.such@free.fr>
#-author: André-Abush CLAUSE <dev@andreabc.net>
#-author: Ludovic Oger <oger.ludovic@gmail.com>
#-author: Nicolas Pitre <nico@cam.org>
#-author: The BRLTTY Team <http://brltty.com/>
#-license: LGPLv2.1
#-updated: 2017-12-04

# liblouis: Unified French 6 dots Braille table

# Copyright (C) 1995-2004 by The BRLTTY Team
# Copyright (C) 2012-2017 Michel Such <michel.such@free.fr>
# 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/>.

# Définitions pour code braille français international unifié
# Par Nicolas Pitre <nico@cam.org>
# Référence: http://www.inlb.qc.ca/apropos/c2003unificationdubraille.aspx
# maintenu par Michel Such <michel.such@free.fr>

# mise à jour importante 2012 :
# - ajout des signes de la table française encore non pris en compte pour p456 p5 p56
# - effacement de la ligne z avec caron car c'étaient les codes des p456 et p5
# Mise à jour 2017 par André-Abush CLAUSE <dev@andreabc.net> et garconvacher (Ludovic Oger <oger.ludovic@gmail.com>)
#   - corrections de mauvaises définitions telles que pour les signes {}[]$£€¥\•<>#%‰°
#   - inclusion du fichier fr-fr-unicode permettant le support des lettres grecques, quelques symboles mathématiques et signes divers.
# Référence : "Arrêté du 6 février 2014 relatif aux normes ayant trait à la présentation et aux différentes codifications du braille utilisées en France"
#              http://social-sante.gouv.fr/fichiers/bo/2014/14-02/ste_20140002_0000_0086.pdf


# Uncontracted Unified French Table
# ----------------------------------

undefined 0

space \s 0      	# blank 32
space \t 9 tab    # 9
space \x001B 1b   # escape
space \x000A 0    # lf
space \x000c 0    #
space \x000D 0    # cr
space \x00A0 a    # no-break space
space \x007f 0

#include text_nabcc.dis
#include fr-brl6.dis
include latinLetterDef6Dots.uti

uplow \x00c7\x00e7  12346 # c cédille (Çç)
uplow \x00c6\x00E6 345     #*ae
uplow \x0152\x0153    246 # oe liés (Œœ)
noback uplow \x00d1\x00f1 12456 # n tilde (Ññ)

uplow \x00c0\x00e0  12356 # a accent grave (Àà)
uplow \x00c8\x00e8   2346 # e accent grave (Èè)
uplow \x00d9\x00f9  23456 # u accent grave (Ùù)
noback uplow \x00cc\x00ec  34 # i accent grave (Ìì)
noback uplow \x00d2\x00f2 346 # o accent grave (Òò)

uplow \x00c2\x00e2     16 # a accent circonflexe (Ââ)
uplow \x00ca\x00ea    126 # e accent circonflexe (Êê)
uplow \x00ce\x00ee    146 # i accent circonflexe (Îî)
uplow \x00d4\x00f4   1456 # o accent circonflexe (Ôô)
uplow \x00db\x00fb    156 # u accent circonflexe (Ûû)

uplow \x00c1\x00e1  12356 # a accent aigu (Áá)
uplow \x00c9\x00e9 123456 # e accent aigu (Éé)
uplow \x00d3\x00f3    346 # o accent aigu (Óó)
uplow \x00da\x00fa  23456 # u accent aigu (Úú)
noback uplow \x00cd\x00ed 34 # i accent aigu (Íí)

uplow \x00c4\x00e4    345 # a tréma (Ää)
uplow \x00cb\x00eb   1246 # e tréma (Ëë)
uplow \x00cf\x00ef  12456 # i tréma (Ïï)
uplow \x00d6\x00f6    246 # o tréma (Öö)
uplow \x00dc\x00fc   1256 # u tréma (Üü)

digit 0 3456
litdigit        0      3456
comp6 0 3456

include digits6DotsPlusDot6.uti
include litdigits6DotsPlusDot6.uti

noback math + 235  # plus
math * 35   # astérisque
math / 34   # barre oblique
math = 2356 # égal
midnum + 235
endnum + 235
midnum = 2356
endnum = 2356

math \x00F7 25     # divisé par
math \x003c 5-126  # inférieur à
math \x003e 5-345  # supérieur à

punctuation , 2    # virgule
postpunc , 2
punctuation ; 23   # point-virgule
postpunc ; 23
punctuation : 25   # deux-points
postpunc : 25
punctuation . 256  # point
postpunc . 256
punctuation ? 26   # point d'interrogation
postpunc ? 26
punctuation ! 235  # point d'exclamation
postpunc ! 235
punctuation " 2356 # guillemet
postpunc " 2356 	    # guillemet
prepunc " 2356 	   # guillemet
punctuation ( 236  # parenthèse ouvrante
punctuation ) 356  # parenthèse fermante
prepunc ( 236      # parenthèse ouvrante
postpunc ) 356     # parenthèse fermante
punctuation ' 3    #  apostrophe
punctuation « 2356 # guillemet français ouvrant
prepunc « 2356	    # guillemet français ouvrant
punctuation » 2356 # guillemet français fermant
postpunc » 2356	   # guillemet français fermant
punctuation [ 45-236  # crochet droit ouvrant
prepunc [ 45-236  # crochet droit ouvrant
punctuation ] 356-12	#	crochet droit fermant
postpunc ] 356-12	#	crochet droit fermant
punctuation { 6-6-236	#	accolade de gauche
prepunc { 6-6-236	#	accolade de gauche
punctuation } 356-3-3	#	accolade de droite
postpunc } 356-3-3	#	accolade de droite

# guillemets
punctuation \x00AB 2356     # right-pointing double angle quotation mark
punctuation \x00BB 2356     # left-pointing double angle quotation mark
punctuation \x0091 2356     # [left single quotation mark] (private use one)
punctuation \x0092 2356     # [right single quotation mark] (private use two)
punctuation \x0093 2356     # [left double quotation mark] (set transmit state)
punctuation \x0094 2356     # [right double quotation mark] (cancel character)
punctuation \x2018 2356     # left single quotation mark
punctuation \x2019 2356     # right single quotation mark
punctuation \x201C 2356     # left double quotation mark
punctuation \x201D 2356     # right double quotation mark
punctuation \x201E 2356     # double low-9 quotation mark
punctuation \x201F 2356     # double high-reversed-9 quotation mark
punctuation \x275B 2356     # heavy single turned comma quotation mark ornament
punctuation \x275C 2356     # heavy single comma quotation mark ornament
punctuation \x275D 2356     # heavy double turned comma quotation mark ornament
punctuation \x275E 2356     # heavy double comma quotation mark ornament
punctuation \x275F 2356     # heavy low single comma quotation mark ornament
punctuation \x2760 2356     # heavy low double comma quotation mark ornament

noback sign \x200e 0        # (left to right mark)
noback sign \x200f 0        # (right to left mark)

# tirets et traits d'union
punctuation - 36         # hyphen-minus
sign \x2010 36           # hyphen
sign \x2011 36           # non-breaking hyphen
sign \x2012 36           # figure dash
sign \x2013 36           # (en dash)
sign \x2014 36           # (em dash)
noback sign \x2015 36-36 # horizontal bar (quotation dash long dash introducing quoted text)
sign \xFE58 36           # small em dash
sign \xFE63 36           # small hyphen-minus
sign \xFF0D 36           # fullwidth hyphen-minus

sign \x2022 246-135      # (bullet)
sign \x2026 256-256-256  # 8230	MS Word smart ellipsis
sign \x25cf 35           # black circle
sign \xf0b7 1245         # (bullet MS symbol font?)

sign \\ 5-34         # barre oblique inversée
sign @ 345           # arobase
sign \x0023 5-3456   # croisillon
comp6 \x0023 5-3456  # # croisillon
sign \xFE5F 5-3456   # croisillon minuscule
sign \xFF03 5-3456   # croisillon pleine chasse
sign % 5-346         # pourcent
sign ‰ 5-346-346     # pour mille
sign * 5-35          # astérisque
sign _ 5-36          # souligné
sign ¸ 456           # cédille
noback sign ´ 5
sign \x0060 6   # accent aigu (`)
sign \x007C 456 # barre verticale
#sign \x0082 6       # [single low-9 quotation mark (break permitted here)
sign \x0083 124      # [latin small letter f with hook (no break here)
sign \x0084 56       # [double low-9 quotation mark (<control>)
sign \x0085 36       # [horizontal ellipsis (next line)
sign \x0086 356      # [dagger (start of selected area)
sign \x0087 3567     # [double dagger (end of selected area)
noback sign \x0088 4 # [modifier letter circumflex accent (character tabulation set)
sign \x0089 346      # [per mille sign (character tabulation with justification)
noback sign \x008B 5 # [single left-pointing angle quotation mark] (partial line down)
sign \x0095 1245     # [bullet] (message waiting)
noback sign \x0096 36-36      # [en dash] (start of guarded area)
noback sign \x0097 36-36      # [em dash] (end of guarded area)
sign \x0098 46     # [small tilde] (start of string)
sign \x0099 2345   # [trade mark sign] (<control>)
sign \x2122 5-2345 # TRADE MARK SIGN
noback sign \x009B 5 # [single right-pointing angle quotation mark] (control sequence introducer)
sign \x00A1 235      # inverted exclamation mark
noback sign \x00A6 45      # broken bar
sign \x00A8 46      # diaeresis
noback sign \x00AA 16      # feminine ordinal indicator
sign \x00AC 256       # not sign
noback sign \x00AD 0  # soft hyphen
sign \x00AE 5-1235  # registered sign
sign \x00B1 235-36  # plus-minus sign
sign \x00B5 45-134  # micro sign
sign \x00B6 456     # pilcrow sign
noback sign \x00B7 0       # middle dot
sign \x00BA 26      # masculine ordinal indicator

sign \x00BF 26      #*inverted question mark
sign \x00C5 1       #*latin capital letter a with ring above
#sign \x00C6 345     #*latin capital letter ae
sign \x00D0 12      # latin capital letter eth
sign \x00D7 5-35    # multiplication sign
sign \x00D8 3456    # latin capital letter o with stroke
sign \x00DE 245     # latin capital letter thorn
sign \x00DF 234     # latin small letter sharp s
sign \x00E5 2       #*latin small letter a with ring above
uplow \x00c6\x00E6 345     #*ae
sign \x00F0 12      # latin small letter eth
sign \x00F8 56      # latin small letter o with stroke
sign \x00FE 245     # latin small letter thorn
sign © 5-14				  # copyright
sign ° 5-135			  # degré
sign & 5-123456		  # perluète (et commercial)
sign ¢ 45-14  		  # cent
sign € 45-15			  # euro
sign £ 45-123			  # livre
sign $ 45-234			  # dollar
comp6 $ 45-234
sign ¥ 45-13456		  # yen
sign ¤ 6-45					  # symbole monétaire
sign § 5-1234			  # paragraphe

sign ^ 4 # accent circonflexe
noback sign ¹ 4-16  # exposant 1
noback sign ² 4-126 # exposant 2
noback sign ³ 4-146 # exposant 3
sign ¼ 16-34-1456   # un quart
sign ½ 16-34-126    # un demi
sign ¾ 146-34-1456  # trois quarts
sign \x007E 5-26  # 126 ~    tilde

# unicode braille
include braille-patterns.cti
# other signs: 8 and 6 dots
include fr-bfu-comp68.cti

# Braille indicators
numsign 6             # number sign, just a dots operand
numericmodechars ^,:.+-*/()=
numericmodechars .,
numericnocontchars âêîôûëïüœ
capsletter 46
begcapsword 46-46
endcapsword 46
begcaps 46-46
endcaps 46
emphclass italic
emphclass underline
emphclass bold
begemphphrase italic 456-456
endemphphrase italic before 456
begemphword italic 456
emphletter italic 456
begemphphrase bold 456-456
endemphphrase bold before 456

noback midword \x2019 3     # right single quotation mark
midnum \s 0						# espace entre les chiffres
decpoint , 2


repeated ... 256-256-256		#	points de suspension
repeated --- 36-36-36
repeated ___ 456-456-456

word = 6-2356
word + 6-235
begword + 6-235
begword = 6-2356
midword + 6-235
midword = 6-2356
endword + 6-235
endword = 6-2356

nofor pass2 [@6-235]$d @6-235-6
nofor pass2 [@6-2356]$d @6-2356-6

