summaryrefslogtreecommitdiff
path: root/macros/luatex/generic/luavlna
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-10-30 03:02:02 +0000
committerNorbert Preining <norbert@preining.info>2019-10-30 03:02:02 +0000
commit120cbc10db92bf43caa6bbf29549667e979beba4 (patch)
tree3fafda4ad4bc0c2839d2bfbf21a9c793db7d9b94 /macros/luatex/generic/luavlna
parent97f5151099967e6c823d640a90d87bca92c44035 (diff)
CTAN sync 201910300302
Diffstat (limited to 'macros/luatex/generic/luavlna')
-rw-r--r--macros/luatex/generic/luavlna/README.md2
-rw-r--r--macros/luatex/generic/luavlna/luavlna-doc.pdfbin89010 -> 88997 bytes
-rw-r--r--macros/luatex/generic/luavlna/luavlna.lua3
-rw-r--r--macros/luatex/generic/luavlna/luavlna.sty18
-rw-r--r--macros/luatex/generic/luavlna/luavlna.tex7
5 files changed, 25 insertions, 5 deletions
diff --git a/macros/luatex/generic/luavlna/README.md b/macros/luatex/generic/luavlna/README.md
index b027486b21..ae6eb4cfb8 100644
--- a/macros/luatex/generic/luavlna/README.md
+++ b/macros/luatex/generic/luavlna/README.md
@@ -1,4 +1,4 @@
-# Luavlna, version v0.1d, 2019-10-22
+# Luavlna, version v0.1e, 2019-10-29
# Introduction
diff --git a/macros/luatex/generic/luavlna/luavlna-doc.pdf b/macros/luatex/generic/luavlna/luavlna-doc.pdf
index cb80186aee..177832d3f4 100644
--- a/macros/luatex/generic/luavlna/luavlna-doc.pdf
+++ b/macros/luatex/generic/luavlna/luavlna-doc.pdf
Binary files differ
diff --git a/macros/luatex/generic/luavlna/luavlna.lua b/macros/luatex/generic/luavlna/luavlna.lua
index 73a10fe9ba..dea4c052eb 100644
--- a/macros/luatex/generic/luavlna/luavlna.lua
+++ b/macros/luatex/generic/luavlna/luavlna.lua
@@ -317,7 +317,8 @@ local break_hyphens = function(head, tail)
local glyph_id = node.id("glyph")
local n = head
while n do
- if n.id == glyph_id and hyphenate_langs[n.lang] and n.char == hyphenchar then
+ local skip = node.has_attribute(n, M.preventsingleid)
+ if skip ~= 1 and n.id == glyph_id and hyphenate_langs[n.lang] and n.char == hyphenchar then
-- Insert an infinite penalty before, and a zero-width glue node after, the hyphen.
-- Like writing "\nobreak-\hspace{0pt}" or equivalently "\penalty10000-\hskip0pt"
local p = node.new(node.id('penalty'))
diff --git a/macros/luatex/generic/luavlna/luavlna.sty b/macros/luatex/generic/luavlna/luavlna.sty
index 44efffb6bd..48db36b5f4 100644
--- a/macros/luatex/generic/luavlna/luavlna.sty
+++ b/macros/luatex/generic/luavlna/luavlna.sty
@@ -3,6 +3,8 @@
\def\nosingledefaults{\relax}
\input luavlna
+% we need to redefine the setting functions to use directly the language numbers
+% in order to support polyglossia
\def\singlechars#1#2{%
\ifcsname l@#1\endcsname%
\expandafter\directlua\expandafter{set_singlechars("\the\csname l@#1\endcsname","#2")}%
@@ -16,10 +18,26 @@
\fi%
}
+
+\def\enablesplithyphens#1{%
+ \ifcsname l@#1\endcsname%
+ \typeout{set lang #1, \the\csname l@#1\endcsname}
+ \directlua{enable_split_hyphens("\the\csname l@#1\endcsname")}%
+ \fi%
+}
+
+\def\disablesplithyphens#1{%
+ \ifcsname l@#1\endcsname%
+ \directlua{disable_split_hyphens("\the\csname l@#1\endcsname")}%
+ \fi%
+}
+
+
\AtBeginDocument{%
\singlechars{czech}{AIiVvOoUuSsZzKk}
\singlechars{slovak}{AIiVvOoUuSsZzKk}
\compoundinitials{czech}{Ch,CH}
\enablesplithyphens{czech}
+ \enablesplithyphens{slovak}
}
\endinput
diff --git a/macros/luatex/generic/luavlna/luavlna.tex b/macros/luatex/generic/luavlna/luavlna.tex
index a0fb9e515e..5159fbe5b5 100644
--- a/macros/luatex/generic/luavlna/luavlna.tex
+++ b/macros/luatex/generic/luavlna/luavlna.tex
@@ -11,7 +11,7 @@ luavlna.preventsingleid = math.random(2^16)
local languages = langno.load_languages()
local get_lang_id = function(lang)
- local langid = lang
+ local langid = tonumber(lang)
if not tonumber(lang) then
langid = languages:get_number(lang)
end
@@ -57,13 +57,13 @@ set_main_language = function(lang)
end
enable_split_hyphens = function(lang)
- local langid = languages:get_number(lang)
+ local langid = get_lang_id(lang)
if not langid then return nil, "Cannot find language number for: "..lang end
luavlna.split_hyphen_langs[langid] = true
end
disable_split_hyphens = function(lang)
- local langid = languages:get_number(lang)
+ local langid = get_lang_id(lang)
if not langid then return nil, "Cannot find language number for: "..lang end
luavlna.split_hyphen_langs[langid] = nil
end
@@ -118,5 +118,6 @@ end
\singlechars{slovak}{AIiVvOoUuSsZzKk}
\compoundinitials{czech}{Ch,CH}
\enablesplithyphens{czech}
+ \enablesplithyphens{slovak}
\fi