diff options
Diffstat (limited to 'Master')
-rw-r--r-- | Master/texmf-dist/doc/luatex/luavlna/README.md | 2 | ||||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.pdf | bin | 91137 -> 91253 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.tex | 5 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luavlna/luavlna.lua | 28 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luavlna/luavlna.sty | 4 | ||||
-rw-r--r-- | Master/texmf-dist/tex/luatex/luavlna/luavlna.tex | 12 |
6 files changed, 37 insertions, 14 deletions
diff --git a/Master/texmf-dist/doc/luatex/luavlna/README.md b/Master/texmf-dist/doc/luatex/luavlna/README.md index 853a3683ff2..de38ed0c671 100644 --- a/Master/texmf-dist/doc/luatex/luavlna/README.md +++ b/Master/texmf-dist/doc/luatex/luavlna/README.md @@ -1,4 +1,4 @@ -# Luavlna, version v0.1g, 2020-06-02 +# Luavlna, version 0.1h, 2021-01-08 # Introduction diff --git a/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.pdf b/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.pdf Binary files differindex 84e384611fe..40cca345466 100644 --- a/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.pdf +++ b/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.pdf diff --git a/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.tex b/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.tex index eb39ca3ac91..20a83ae127d 100644 --- a/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.tex +++ b/Master/texmf-dist/doc/luatex/luavlna/luavlna-doc.tex @@ -83,7 +83,8 @@ Co třeba í znaky š diakritikou? Různé možnosti [v závorkách <i jiných znacích -Podpora iniciál a titulů: M. J. Hegel, Ing. Běháková, Ph.D., Ž. Zíbrt. +Podpora iniciál a titulů: M. J. Hegel, Ing. Běháková, Ph.D., Ž. Zíbrt, +Ch. Borner. Podpora jednotek: 100,5 MN\cdot{}s, 100.5 kJ, 200 µA, $-1$ dag, 12 MiB, 1 m$^3$/s. @@ -110,7 +111,7 @@ Co třeba í znaky š diakritikou? Různé možnosti [v závorkách \textless i jiných znacích -Podpora iniciál a titulů: M. J. Hegel, Ing. Běháková, Ph.D., Ž. Zíbrt. +Podpora iniciál a titulů: M. J. Hegel, Ing. Běháková, Ph.D., Ž. Zíbrt, Ch. Borner. Podpora jednotek: 100,5 MN\cdot{}s, 100.5 kJ, 200 µA, $-1$ dag, 12 MiB, 1 m$^3$/s. diff --git a/Master/texmf-dist/tex/luatex/luavlna/luavlna.lua b/Master/texmf-dist/tex/luatex/luavlna/luavlna.lua index 511ee859a1b..be833905f22 100644 --- a/Master/texmf-dist/tex/luatex/luavlna/luavlna.lua +++ b/Master/texmf-dist/tex/luatex/luavlna/luavlna.lua @@ -166,6 +166,20 @@ end local init_buffer = "" local is_initial = function(c, lang) + -- space is not initial + if c == " " then + init_buffer = "" + return false + end + -- look in the initals table + if lang then + -- insert the current character to the init_buffer + -- and try to find the string in the initial table + -- for the current language + init_buffer = init_buffer .. c + local tbl = initials[lang] or {} + if tbl[init_buffer] then return true end + end return is_uppercase(c) end @@ -295,7 +309,7 @@ local function prevent_single_letter (head) space = false -- handle initials -- uppercase letter followed by period (code 46) - elseif no_initials~=true and init and head.id == glyph_id and head.char == period_char and nextn.id == glue_id and utf_len(word) == 1 then + elseif no_initials~=true and init and head.id == glyph_id and head.char == period_char and nextn.id == glue_id then head = insert_penalty(head) elseif head.id == glyph_id then local char = getchar(head) @@ -334,7 +348,7 @@ end -- detect if the current character is a hyphen local function is_breakable_hyphen(n) - return n.id == glyph_id and hyphenate_langs[n.lang] and n.char == hyphenchar + return n.id == glyph_id and hyphenate_langs[n.lang] and n.char == hyphenchar and n.next end -- don't process hyphens if the next node is penalty @@ -346,6 +360,14 @@ local function is_next_penalty(n) end end +-- split hyphens should be active only inside words, there is no need to break +-- standalone hyphens +local function is_next_glyph(n) + local next_node = n.next + return next_node and next_node.id == glyph_id +end + + -- Enable hyphenation of words that contain hyphens -- and repeating of the explicit hyphen on a new line when -- the hyphen is hyphenated @@ -357,7 +379,7 @@ local break_hyphens = function(head, tail) local n = head while n do local skip = node.has_attribute(n, M.preventsingleid) - if skip ~= 1 and is_breakable_hyphen(n) and not is_next_penalty(n) and not is_hyphen_ligature(n) then + if skip ~= 1 and is_breakable_hyphen(n) and not is_next_penalty(n) and is_next_glyph(n) and not is_hyphen_ligature(n) 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/Master/texmf-dist/tex/luatex/luavlna/luavlna.sty b/Master/texmf-dist/tex/luatex/luavlna/luavlna.sty index aa6f623aa9c..89e6d475435 100644 --- a/Master/texmf-dist/tex/luatex/luavlna/luavlna.sty +++ b/Master/texmf-dist/tex/luatex/luavlna/luavlna.sty @@ -1,4 +1,4 @@ -\ProvidesPackage{luavlna}[2019/10/30 luavlna] +\ProvidesPackage{luavlna}[2021-01-08 luavlna] \RequirePackage{kvoptions} @@ -23,7 +23,7 @@ \def\enablesplithyphens#1{% \ifcsname l@#1\endcsname% - \typeout{set lang #1, \the\csname l@#1\endcsname}% + \typeout{set lang #1, \the\csname l@#1\endcsname} \directlua{enable_split_hyphens("\the\csname l@#1\endcsname")}% \fi% } diff --git a/Master/texmf-dist/tex/luatex/luavlna/luavlna.tex b/Master/texmf-dist/tex/luatex/luavlna/luavlna.tex index 0b6540a5cc6..ab47b8d6fcf 100644 --- a/Master/texmf-dist/tex/luatex/luavlna/luavlna.tex +++ b/Master/texmf-dist/tex/luatex/luavlna/luavlna.tex @@ -71,20 +71,20 @@ end % Set letters which are prevented from breaking \def\singlechars#1#2{% -\directlua{set_singlechars("#1","#2")}% +\directlua{set_singlechars("#1","#2")} } % Define compound initials \def\compoundinitials#1#2{% -\directlua{set_compounds("#1","#2")}% +\directlua{set_compounds("#1","#2")} } % Enable inserting of visual marks for debugging \def\preventsingledebugon{% -\directlua{luavlna.debug(true)}% +\directlua{luavlna.debug(true)} } \def\preventsinglelang#1{% - \directlua{set_main_language("#1")}% + \directlua{set_main_language("#1")} } %\newluatexattribute\preventsinglestatus @@ -94,12 +94,12 @@ end \preventsinglestatus=2 } -\def\preventsingleoff{% +\def\preventsingleoff{ \preventsinglestatus=1 } % Disable inserting of visual marks for dewbugging \def\preventsingledebugoff{% -\directlua{luavlna.debug(false)}% +\directlua{luavlna.debug(false)} } % enable/disable split hyphens for a language |