summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-11-15 21:41:34 +0000
committerKarl Berry <karl@freefriends.org>2019-11-15 21:41:34 +0000
commit6024de648c5e4b1bcb3630cecc307ca55db9ae8e (patch)
treed9c6878e5900d0c9ea4de20694e550b88ef0ad8d /Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
parent7ebe75c756258ce417125e376f199df4fd5b47a9 (diff)
polyglossia (15nov19)
git-svn-id: svn://tug.org/texlive/trunk@52808 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua')
-rw-r--r--Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua52
1 files changed, 52 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
new file mode 100644
index 00000000000..42396073eee
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/polyglossia/polyglossia-french.lua
@@ -0,0 +1,52 @@
+require('polyglossia-punct')
+
+local function set_left_space(lang, char, kern, rubber)
+ polyglossia.add_left_spaced_character(lang, char, kern, "space", rubber)
+end
+
+local function set_right_space(lang, char, kern, rubber)
+ polyglossia.add_right_spaced_character(lang, char, kern, "space", rubber)
+end
+
+local function activate_french_punct(thincolonspace, autospaceguillemets)
+ -- We need different language tags here to make switching of options possible
+ -- within a paragraph.
+ local lang = "french"
+ if thincolonspace then
+ lang = lang.."-thincolon"
+ end
+ if autospaceguillemets then
+ lang = lang.."-autospace"
+ end
+
+ polyglossia.activate_punct(lang)
+ polyglossia.clear_spaced_characters(lang)
+
+ if thincolonspace then
+ set_left_space(lang, ':', 0.5)
+ else
+ set_left_space(lang, ':', 1, true) -- stretchable and shrinkable space
+ end
+
+ set_left_space(lang, '!', 0.5)
+ set_left_space(lang, '?', 0.5)
+ set_left_space(lang, ';', 0.5)
+ set_left_space(lang, '‼', 0.5)
+ set_left_space(lang, '⁇', 0.5)
+ set_left_space(lang, '⁈', 0.5)
+ set_left_space(lang, '⁉', 0.5)
+
+ if autospaceguillemets then
+ set_left_space(lang, '»', 0.5)
+ set_left_space(lang, '›', 0.5)
+ set_right_space(lang, '«', 0.5)
+ set_right_space(lang, '‹', 0.5)
+ end
+end
+
+local function deactivate_french_punct()
+ polyglossia.deactivate_punct()
+end
+
+polyglossia.activate_french_punct = activate_french_punct
+polyglossia.deactivate_french_punct = deactivate_french_punct