You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.6 KiB
53 lines
1.6 KiB
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)
|
|
set_left_space(lang, '‽', 0.5) -- U+203D (interrobang)
|
|
|
|
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
|
|
|