From b439631e2c3a99a345993513013a2ace563bdd3b Mon Sep 17 00:00:00 2001 From: Mojca Miklavec Date: Sat, 11 Jun 2011 00:32:38 +0000 Subject: An attempt to import the latest version of hyph-utf8 (#558) LuaTeX: * add support for loading multiple pattern files in LuaTeX TeX Live: * remove copthyph.tex from texmf: it is now part of hyph-utf8 * update language.ptx and language.def for pTeX * update some descriptions in tlpsrc files (not finished) * change lefthyphenmin from 2 to 1 for Afrikaans (not sure when it was set to 2) hyph-utf8: * load patterns for Latin and Cyrillic scripts for Serbian simultaneously * new version of German hyphenation patterns * support both U+0027 and U+2019 as apostrophe in Unicode engines git-svn-id: svn://tug.org/texlive/trunk@22909 c570f23f-e606-0410-a88d-b1316a301751 --- .../generic/hyph-utf8/generate-pattern-loaders.rb | 38 +- .../generic/hyph-utf8/generate-plain-patterns.rb | 36 +- .../generic/hyph-utf8/generate-ptex-patterns.rb | 4 +- .../source/generic/hyph-utf8/generate-tl-files.rb | 45 +- .../source/generic/hyph-utf8/languages.rb | 579 ++++++++++++++++----- .../source/generic/hyph-utf8/languages/gl/README | 50 +- .../mul-ethi/generate_patterns_mul-ethi.lua | 16 +- .../source/luatex/hyph-utf8/luatex-hyphen.dtx | 17 +- 8 files changed, 566 insertions(+), 219 deletions(-) (limited to 'Master/texmf-dist/source') diff --git a/Master/texmf-dist/source/generic/hyph-utf8/generate-pattern-loaders.rb b/Master/texmf-dist/source/generic/hyph-utf8/generate-pattern-loaders.rb index 9ea3ca061f8..12d40429359 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/generate-pattern-loaders.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/generate-pattern-loaders.rb @@ -70,9 +70,12 @@ text_engine_ptex_no = [" #{comment_engine_ptex}", " \\message{No #{language.message} - only for Unicode engines}", " %\\input zerohyph.tex"] text_patterns = " \\input hyph-#{language.code}.tex" -text_patterns_ptex = " \\input phyph-#{language.code}.tex" +text_patterns_ptex = " \\input hyph-#{language.code}.#{language.encoding}.tex" text_patterns_old = " \\input #{language.filename_old_patterns}" text_patterns_conv = " \\input conv-utf8-#{language.encoding}.tex" +text_patterns_utf8 = text_patterns + +text_patterns_quote = " \\input hyph-quote-#{language.code}.tex" ########### # lccodes # @@ -86,9 +89,19 @@ if language.code == 'af' or language.code == 'pt' or language.code == 'tk' or la lccodes_common.push("\\lccode`\\-=`\\-") end +if language.code == 'sh-latn' or language.code == 'sh-cyrl' then + text_patterns_utf8 = [" \\input hyph-sh-latn.tex", + " \\input hyph-sh-cyrl.tex"] + text_engine_utf8 = [" #{comment_engine_utf8}", + " \\message{UTF-8 Serbian hyphenation patterns}", + " % We load both scripts at the same time to simplify usage"] +end + if language.use_new_loader then if language.code == 'sh-latn' then filename = "#{$path_loadhyph}/loadhyph-sr-latn.tex" + elsif language.code == 'sh-cyrl' then + filename = "#{$path_loadhyph}/loadhyph-sr-cyrl.tex" else filename = "#{$path_loadhyph}/loadhyph-#{language.code}.tex" end @@ -137,6 +150,18 @@ end ####################### # GROUP nr. 2 - ASCII # ####################### + elsif language.code == "it" then + file.puts(text_if_native_utf) + file.puts(text_engine_utf8) + file.puts(text_patterns) + file.puts(text_patterns_quote) + file.puts('\else') + file.puts(text_engine_8bit) + file.puts(text_patterns) + file.puts('\fi\else') + file.puts(text_engine_ptex) + file.puts(text_patterns) + file.puts('\fi') # for ASCII encoding, we don't load any special support files, but simply load everything elsif language.encoding == "ascii" then file.puts(text_engine_ascii) @@ -152,10 +177,8 @@ end file.puts(" \\lccode`'=`'\\lccode`’=`’\\lccode`ʼ=`ʼ\\lccode`᾽=`᾽\\lccode`᾿=`᾿") end file.puts(text_patterns) - # russian and ukrainian exceptions - hacks with dashes - if language.code == 'ru' or language.code == 'uk' then - file.puts(' % Additional patterns with hyphen/dash: a hack to prevent breaking after hyphen, but not before.') - file.puts(" \\input exhyph-#{language.code}.tex") + if language.code == 'uk' then + file.puts(text_patterns_quote) end file.puts('\else') file.puts(text_engine_8bit) @@ -182,7 +205,10 @@ end else file.puts(text_if_native_utf) file.puts(text_engine_utf8) - file.puts(text_patterns) + file.puts(text_patterns_utf8) + if language.code == 'af' or language.code == 'it' or language.code == 'fr' or language.code == 'uk' or language.code == 'zh-latn' then + file.puts(text_patterns_quote) + end file.puts('\else') file.puts(text_engine_8bit) file.puts(text_patterns_conv) diff --git a/Master/texmf-dist/source/generic/hyph-utf8/generate-plain-patterns.rb b/Master/texmf-dist/source/generic/hyph-utf8/generate-plain-patterns.rb index 8627427ad90..7c60c10cc7a 100755 --- a/Master/texmf-dist/source/generic/hyph-utf8/generate-plain-patterns.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/generate-plain-patterns.rb @@ -11,6 +11,7 @@ load 'languages.rb' $path_root=File.expand_path("../../..") $path_plain="#{$path_root}/tex/generic/hyph-utf8/patterns/txt" +$path_quote="#{$path_root}/tex/generic/hyph-utf8/patterns/quote" $path_TL=File.expand_path("../../../../TL") $path_language_dat_lua="#{$path_root}/tex/luatex/hyph-utf8/config" @@ -27,19 +28,11 @@ language_codes = Hash.new languages.each do |language| language_codes[language.code] = language.code end -# language_codes['de-1901'] = 'de-1901' -# language_codes['de-1996'] = 'de-1996' -# language_codes['de-ch-1901'] = 'de-CH-1901' -# language_codes['en-gb'] = 'en-GB' -# language_codes['en-us'] = 'en-US' -# language_codes['zh-latn'] = 'zh-Latn' -# language_codes['el-monoton'] = 'el-monoton' -# language_codes['el-polyton'] = 'el-polyton' -# language_codes['mn-cyrl'] = 'mn' + language_codes['mn-cyrl-x-lmc'] = nil -language_codes['sh-latn'] = 'sr-latn' -language_codes['sh-cyrl'] = nil -# language_codes['sr-cyrl'] = 'sr-Cyrl' +# language_codes['sh-latn'] = nil +# language_codes['sh-cyrl'] = nil +# language_codes['sr-cyrl'] = nil # $file_language_dat_lua = File.open("#{$path_language_dat_lua}/language.dat.lua", "w") # $file_language_dat_lua.puts "return {\n" @@ -70,6 +63,7 @@ languages.sort{|x,y| x.code <=> y.code }.each do |language| patterns = language.get_patterns exceptions = language.get_exceptions + patterns_quote = Array.new if code == 'nn' or code == 'nb' patterns = "" @@ -80,7 +74,14 @@ languages.sort{|x,y| x.code <=> y.code }.each do |language| # patterns patterns.each do |pattern| - $file_pat.puts pattern.gsub(/'/,"’") + $file_pat.puts pattern + if pattern =~ /'/ then + if code != "grc" and code != "el-monoton" and code != "el-polyton" then + pattern_with_quote = pattern.gsub(/'/,"’") + $file_pat.puts pattern_with_quote + patterns_quote.push(pattern_with_quote) + end + end end # exceptions if exceptions != "" @@ -90,6 +91,9 @@ languages.sort{|x,y| x.code <=> y.code }.each do |language| characters_indexes.each do |c| ch = [c].pack('U') $file_let.puts ch + Unicode.upcase(ch) + if ch == "'" and code != "grc" and code != "el-monoton" and code != "el-polyton" then + $file_let.puts "’’" + end end # licence and readme $file_inf.puts "#{language.message}\n\n(more info about the licence to be added later)\n\n" @@ -100,6 +104,12 @@ languages.sort{|x,y| x.code <=> y.code }.each do |language| $file_let.close $file_inf.close + if patterns_quote.length > 0 + f = File.open("#{$path_quote}/hyph-quote-#{code}.tex", 'w') + f.puts "\\bgroup\n\\lccode`\\’=`\\’\n\\patterns{\n#{patterns_quote.join("\n")}\n}\n\\egroup\n" + f.close + end + # $file_language_dat_lua.puts "\t[\"#{language.name}\"]={" # $file_language_dat_lua.puts "\t\tloader=\"loadhyph-#{language.code}.tex\"," # $file_language_dat_lua.puts "\t\tcode=\"#{code}\"," diff --git a/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb b/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb index 53cfb23b08e..48befd6f011 100755 --- a/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb @@ -32,7 +32,7 @@ languages.each do |language| end # language_codes['mn-cyrl-x-lmc'] = nil # language_codes['sh-latn'] = 'sr-latn' -language_codes['sh-cyrl'] = nil +# language_codes['sh-cyrl'] = nil # e = Encoding.new("ec") # puts e.convert_string_to_escaped_characters("moja čaša") @@ -61,7 +61,7 @@ languages.sort{|x,y| x.code <=> y.code }.each do |language| if include_language puts ">> generating #{code} (#{language.name})" - file_ptex = File.open("#{$path_ptex}/phyph-#{code}.tex", "w") + file_ptex = File.open("#{$path_ptex}/hyph-#{code}.#{language.encoding}.tex", "w") patterns = language.get_patterns exceptions = language.get_exceptions diff --git a/Master/texmf-dist/source/generic/hyph-utf8/generate-tl-files.rb b/Master/texmf-dist/source/generic/hyph-utf8/generate-tl-files.rb index b738686b012..f3f19863968 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/generate-tl-files.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/generate-tl-files.rb @@ -28,9 +28,7 @@ language_grouping = { 'ancientgreek' => ['grc', 'grc-x-ibycus'], 'chinese' => ['zh-latn'], 'indic' => ['as', 'bn', 'gu', 'hi', 'kn', 'ml', 'mr', 'or', 'pa', 'ta', 'te'], - # TODO - until someone tells what to do; but this is wrong anyway - #'serbian' => ['sr-latn', 'sr-cyrl'], - 'serbian' => ['sh-latn'], + 'serbian' => ['sh-latn', 'sh-cyrl'], } language_used_in_group = Hash.new @@ -53,6 +51,8 @@ languages.each do |language| if language.code == 'sh-latn' then language.code = 'sr-latn' + elsif language.code == 'sh-cyrl' then + language.code = 'sr-cyrl' end end @@ -94,6 +94,10 @@ language_groups.sort.each do |language_name,language_list| $file_tlpsrc.puts "depend ukrhyph" end language_list.each do |language| + if language.description_s != nil then + $file_tlpsrc.puts "shortdesc #{language.description_s}" + $file_tlpsrc.puts "longdesc #{language.description_l.join("\nlongdesc ")}" + end name = "name=#{language.name}" # synonyms @@ -121,23 +125,29 @@ language_groups.sort.each do |language_name,language_list| if language.use_new_loader then file = "file=loadhyph-#{language.code}.tex" # we skip the mongolian language - if language.code == "mn-cyrl-x-lmc" then - file = "luaspecial=\"disabled:only for 8bit montex with lmc encoding\"" - else - filename_pat = "hyph-#{language.code}.pat.txt" - filename_hyp = "hyph-#{language.code}.hyp.txt" - - # check for existance of patterns and exceptions - if !File::exists?( "#{$path_txt}/#{filename_pat}" ) then - puts "some problem with #{$path_txt}/#{filename_pat}!!!" - end - if !File::exists?( "#{$path_txt}/#{filename_hyp}" ) then - puts "some problem with #{$path_txt}/#{filename_hyp}!!!" + if language.code != "mn-cyrl-x-lmc" then + if language.code == "sr-latn" or language.code == "sr-cyrl" then + filename_pat = "hyph-sh-latn.pat.txt,hyph-sh-cyrl.pat.txt" + filename_hyp = "hyph-sh-latn.hyp.txt,hyph-sh-cyrl.hyp.txt" + else + filename_pat = "hyph-#{language.code}.pat.txt" + filename_hyp = "hyph-#{language.code}.hyp.txt" + + # check for existance of patterns and exceptions + if !File::exists?( "#{$path_txt}/#{filename_pat}" ) then + puts "some problem with #{$path_txt}/#{filename_pat}!!!" + end + if !File::exists?( "#{$path_txt}/#{filename_hyp}" ) then + puts "some problem with #{$path_txt}/#{filename_hyp}!!!" + end end file_patterns = "file_patterns=#{filename_pat}" if File::size?( "#{$path_txt}/#{filename_hyp}" ) != nil then file_exceptions = "file_exceptions=#{filename_hyp}" + # TODO: nasty workaround + elsif language.code == "sr-latn" or language.code == "sr-cyrl" then + file_exceptions = "file_exceptions=#{filename_hyp}" else file_exceptions = "file_exceptions=" # puts "> #{filename_hyp} is empty" @@ -158,13 +168,16 @@ language_groups.sort.each do |language_name,language_list| if file_patterns + file_exceptions != "" $file_tlpsrc.print " \\\n\t#{file_patterns} \\\n\t#{file_exceptions}" end + if language.code == "mn-cyrl-x-lmc" then + $file_tlpsrc.print " \\\n\tluaspecial=\"disabled:only for 8bit montex with lmc encoding\"" + end # end-of-line $file_tlpsrc.puts end if language_name != "russian" and language_name != "ukrainian" then $file_tlpsrc.puts language_list.each do |language| - if language.use_old_patterns and language.filename_old_patterns != "zerohyph.tex" then + if language.use_old_patterns and language.filename_old_patterns != "zerohyph.tex" and language.filename_old_patterns != "copthyph.tex" then $file_tlpsrc.puts "runpattern f texmf/tex/generic/hyphen/#{language.filename_old_patterns}" end end diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages.rb index 5287e25f4ed..4064edb2618 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages.rb @@ -1,4 +1,19 @@ +class Author + def intialize(name,surname,email,contacted1,contacted2) + @name = name + @surname = surname + @email = email + # this mostly means if email has been recently checked + @contacted1 = contacted1 + # this means if we made more cooperation with author, + # exchanging patches etc. + @contacted2 = contacted2 + end + + attr_reader :name, :surname, :email +end + class Language def initialize(language_hash) @use_new_loader = language_hash["use_new_loader"] @@ -13,6 +28,9 @@ class Language @encoding = language_hash["encoding"] @exceptions = language_hash["exceptions"] @message = language_hash["message"] + + @description_s = language_hash["description_s"] + @description_l = language_hash["description_l"] if @synonyms==nil then @synonyms = [] end end @@ -47,21 +65,7 @@ class Language gsub(/\s+/m,"\n"). gsub(/^\s*/m,''). gsub(/\s*$/m,''). - gsub(/'/,"’"). split("\n") - # Russian and Ukrainian have some extra patterns with dashes - # we may combine these patterns with the main file anyway - if @code == 'ru' or @code == 'uk' then - filename = "../../../tex/generic/hyph-utf8/patterns/tex-special/exhyph-#{@code}.tex" - lines = IO.readlines(filename, '.').join("") - @patterns.concat(lines.gsub(/%.*/,''). - gsub(/.*\\patterns\s*\{(.*?)\}.*/m,'\1'). - gsub(/\s+/m,"\n"). - gsub(/^\s*/m,''). - gsub(/\s*$/m,''). - gsub(/'/,"’"). - split("\n")) - end if @code == 'eo' then @patterns = lines.gsub(/%.*/,''). @@ -100,32 +104,44 @@ class Language # return @lc_characters # end - attr_reader :use_new_loader, :use_old_patterns, :use_old_patterns_comment, :filename_old_patterns, :code, :name, :synonyms, :hyphenmin, :encoding, :exceptions, :message + attr_reader :use_new_loader, :use_old_patterns, :use_old_patterns_comment, :filename_old_patterns + attr_reader :code, :name, :synonyms, :hyphenmin, :encoding, :exceptions, :message + attr_reader :description_s, :description_l # this hack is needed for Serbian attr_writer :code end authors = { - "peter_heslin" => { - "name" => "Peter", - "surname" => "Heslin", - "tried_to_contact" => false, - }, - "dimitrios_filippou" => { - "name" => "Dimitrios", - "surname" => "Filippou", - "email" => "dfilipp{at}hotmail{dot}com", - "contact" => true, - "cooperate" => true, - }, - "claudio_beccari" => { - "name" => "Claudio", - "email" => "claudio{dot}beccari{at}polito{dot}it", - } - + "peter_heslin" => ["Peter", "Heslin", "", false, false], + "dimitrios_filippou" => ["Dimitrios", "Filippou", "dfilipp{at}hotmail{dot}com", true, true], + "claudio_beccari" => ["Claudio", "Beccari","claudio{dot}beccari{at}polito{dot}it", true, true], + "juan_aguirregabiria" => ["Juan M.", "Aguirregabiria", "juanmari{dot}aguirregabiria{at}ehu.es", true, true], + "igor_marinovic" => ["Igor", "Marinović", "marinowski{at}gmail.com", true, true], + "tilla_fick" => ["Tilla", "Fick", "fick{dot}tilla{at}gmail{dot}com", true, true], + "chris_swanepoel" => ["Chris", "Swanepoel", "cj{at}swanepoel{dot}net", true, true], + "matjaz_vrecko" => ["Matjaž", "Vrečko", "matjaz{at}mg-soft{dot}si", true, true], + "goncal_badenes" => ["Gonçal", "Badenes", "g{dot}badenes{at}ieee.org", false, false], + "pavel_sevecek" => ["Pavel", "Ševeček", "pavel{at}lingea{dot}cz", false, false], + "jana_chlebikova" => ["Jana", "Chlebíková", "chlebikj{at}dcs{dot}fmph{dot}uniba{dot}sk", false, false], + "yannis_haralambous" => ["Yannis", "Haralambous", "yannis{dot}haralambous{at}telecom-bretagne{dot}eu", true, false], + "frank_jensen" => ["Frank", "Jensen", "frank{dot}jensen{at}hugin{dot}com", true, true], + "sergei_pokrovsky" => ["Sergei B.", "Pokrovsky", "pok{at}iis{dot}nsk{dot}su", false, false], # not sure where B. belongs + "javier_bezos" => ["Javier", "Bezos", "jbezos{at}tex-tipografia{dot}com", true, true], + "een_saar" => ["Enn", "Saar", "saar{at}aai{dot}ee", false, false], + "dejan_muhamedagic" => ["Dejan", "Muhamedagić", "dejan{at}hello-penguin{dot}com", true, true], + "brian_wilson" => ["Brian", "Wilson", "bountonw{at}gmail{dot}com", true, true], + "arthur_reutenauer" => ["Arthur", "Reutenauer", "arthur{dot}reutenauer{at}normalesup{dot}org", true, true], + "mojca_miklavec" => ["Mojca", "Miklavec", "mojca{dot}miklavec{dot}lists{at}gmail{dot}com", true, true], + "santhosh_thottingal" => ["Santhosh", "Thottingal", "santhosh{dot}thottingal{at}gmail{dot}com>", true, true], + "yves_codet" => ["Yves", "Codet", "ycodet{at}club-internet{dot}fr", true, true], + "rune_kleveland" => ["Rune", "Kleveland", nil, false, false], + "ole_michael_selberg" => ["Ole Michael", "Selberg", nil, false, false], + "dorjgotov_batmunkh" => ["Dorjgotov", "Batmunkh", "bataak{at}gmail{dot}com", true, true], + "nazar_annagurban" => ["Nazar", "Annagurban", "nazartm{at}gmail{dot}com", false, false], } + # "use_new_loader" # => true - create a new file and use that one # => false - use "filename_old_patterns" in language.dat @@ -151,7 +167,7 @@ class Languages < Hash # -------------------------------------- # languages with no hyphenation patterns # -------------------------------------- -# arabic zerohyph.tex +# arabic { "code" => "ar", "name" => "arabic", @@ -162,8 +178,14 @@ class Languages < Hash "encoding" => nil, "exceptions" => false, "message" => nil, + + # TODO + "description_s" => "(No) Arabic hyphenation patterns", + "description_l" => [ + "Prevent hyphenation in Arabic.", + ], }, -# farsi zerohyph.tex +# farsi # =persian { "code" => "fa", @@ -175,6 +197,12 @@ class Languages < Hash "encoding" => nil, "exceptions" => false, "message" => nil, + + # TODO + "description_s" => "(No) Persian hyphenation patterns", + "description_l" => [ + "Prevent hyphenation in Persian.", + ], }, # ------------------------------- # special patterns, not converted @@ -189,9 +217,9 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => nil, "exceptions" => false, - "message" => "Ancient Greek Hyphenation Patterns for Ibycus encoding (v3.0)", + "message" => "Ancient Greek hyphenation patterns for Ibycus encoding (v3.0)", - "authors" => ["peter_heslin"], + # "authors" => ["peter_heslin"], }, # ---------------------------- # languages using old patterns @@ -211,10 +239,10 @@ class Languages < Hash "hyphenmin" => [1,1], # polyglosia "encoding" => nil, "exceptions" => true, -# "message" => "Polytonic Greek Hyphenation Patterns", +# "message" => "Polytonic Greek hyphenation patterns", "message" => "Hyphenation patterns for multi-accent (polytonic) Modern Greek", - "authors" => ["dimitrios_filippou"], + # "authors" => ["dimitrios_filippou"], }, # monogreek xu-grmhyph4.tex { @@ -227,12 +255,12 @@ class Languages < Hash "hyphenmin" => [1,1], # polyglosia "encoding" => nil, "exceptions" => true, -# "message" => "Monotonic Greek Hyphenation Patterns", +# "message" => "Monotonic Greek hyphenation patterns", "message" => "Hyphenation patterns for uni-accent (monotonic) Modern Greek", - "authors" => ["dimitrios_filippou"], + # "authors" => ["dimitrios_filippou"], }, -# ancientgreek xu-grahyph4.tex +# ancientgreek { "code" => "grc", "name" => "ancientgreek", @@ -244,10 +272,20 @@ class Languages < Hash "encoding" => nil, "exceptions" => false, "message" => "Hyphenation patterns for Ancient Greek", - - "authors" => ["dimitrios_filippou"], -}, -# coptic xu-copthyph.tex + + "version" => "5.0", + "last_modified" => "2008-05-27", + "type" => "rules", + "authors" => ["dimitrios_filippou"], + "licence" => "LPPL", + "description_s" => "Ancient Greek hyphenation patterns", + # TODO: please help me rewrite this + "description_l" => [ + "Hyphenation patterns for Ancient Greek language in UTF-8 encoding", + "as well as in ASCII-based LGR encoding of babel for 8-bit engines.", + ], +}, +# coptic { "code" => "cop", "name" => "coptic", @@ -258,9 +296,20 @@ class Languages < Hash "hyphenmin" => [1,1], # polyglosia TODO: no documentation found "encoding" => nil, "exceptions" => false, - "message" => "Coptic Hyphenation Patterns", - - "authors" => ["claudio_beccari"], + "message" => "Coptic hyphenation patterns", + + "version" => nil, + "last_modified" => "2004-10-03", + "type" => "rules", + "authors" => [ "claudio_beccari" ], + "licence" => "LPPL", # TODO: check; catalogue says so + "description_s" => "Coptic hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Coptic language in UTF-8 encoding", + "as well as in ASCII-based encoding for 8-bit engines.", + "The latter can only be used with special Coptic fonts (like CBcoptic).", + "The patterns are considered experimental.", + ], }, # german xu-dehypht.tex { @@ -273,7 +322,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "German Hyphenation Patterns (Traditional Orthography)", + "message" => "German hyphenation patterns (traditional orthography)", }, # ngerman xu-dehyphn.tex { @@ -286,7 +335,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "German Hyphenation Patterns (Reformed Orthography)", + "message" => "German hyphenation patterns (reformed orthography)", }, # swissgerman { @@ -297,7 +346,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Swiss-German Hyphenation Patterns (Traditional Orthography)", + "message" => "Swiss-German hyphenation patterns (traditional orthography)", }, # russian xu-ruhyphen.tex { @@ -310,7 +359,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "t2a", "exceptions" => false, - "message" => "Russian Hyphenation Patterns", + "message" => "Russian hyphenation patterns", }, # ukrainian xu-ukrhyph.tex { @@ -323,7 +372,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "t2a", "exceptions" => false, - "message" => "Ukrainian Hyphenation Patterns", + "message" => "Ukrainian hyphenation patterns", }, # ---------------------------- # languages using new patterns @@ -338,9 +387,23 @@ class Languages < Hash "hyphenmin" => [1,2], # in babel: 2,2 "encoding" => "ec", "exceptions" => true, - "message" => "Afrikaans Hyphenation Patterns", -}, -# catalan cahyph.tex + "message" => "Afrikaans hyphenation patterns", + + "version" => "0.9", + "last_modified" => "2010-10-18", + "type" => "dictionary", + "authors" => [ "tilla_fick", "chris_swanepoel" ], + "email" => [ "hyphen{at}rekenaar{dot}net" ], + "licence" => "LPPL", + "description_s" => "Afrikaans hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Afrikaans language in T1/EC and UTF-8 encoding.", + "(OpenOffice includes older patterns created by a different author,", + "but the patterns packaged with TeX are considered superior in quality.)", + "Word list used to generate patterns with opatgen might be released in future.", + ], +}, +# catalan { "code" => "ca", "name" => "catalan", @@ -350,9 +413,19 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => true, - "message" => "Catalan Hyphenation Patterns", -}, -# czech xu-czhyph.tex + "message" => "Catalan hyphenation patterns", + + "version" => "1.11", + "last_modified" => "2003-07-15", + "type" => "rules", # not only rules, also patgen, but it is a good approximation + "authors" => [ "goncal_badenes" ], + "licence" => "LPPL", + "description_s" => "Catalan hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Catalan language in T1/EC and UTF-8 encoding.", + ], +}, +# czech { "code" => "cs", "name" => "czech", @@ -367,9 +440,26 @@ class Languages < Hash "hyphenmin" => [2,3], "encoding" => "ec", "exceptions" => true, - "message" => "Czech Hyphenation Patterns (Pavel Sevecek, v3, 1995)", -}, -# slovak xu-skhyph.tex + "message" => "Czech hyphenation patterns (Pavel Sevecek, v3, 1995)", + + "version" => "3", + # guessing based on CTAN/macros/cstex/base/csplain.tar.gz: + # 1998-12-17 (patterns) + # 1995-08-23 (exceptions) + # but patterns claim 1995 + "last_modified" => "1995", # todo: no date + "type" => "dictionary", + "authors" => [ "pavel_sevecek" ], + "licence" => "GPL", + "description_s" => "Czech hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Czech language in T1/EC and UTF-8 encoding.", + "Original patterns 'czhyphen' are still distributed in 'csplain' package", + "and loaded with ISO Latin 2 encoding (IL2).", + # however hyph-utf8 could also be used for that + ], +}, +# slovak { "code" => "sk", "name" => "slovak", @@ -381,9 +471,22 @@ class Languages < Hash "hyphenmin" => [2,3], "encoding" => "ec", "exceptions" => true, - "message" => "Slovak Hyphenation Patterns (Jana Chlebikova, 1992)", -}, -# welsh cyhyph.tex + "message" => "Slovak hyphenation patterns (Jana Chlebikova, 1992)", + + "version" => "2", + "last_modified" => "1992-04-24", + "type" => "dictionary", + "authors" => [ "jana_chlebikova" ], + "licence" => "GPL", + "description_s" => "Slovak hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Slovak language in T1/EC and UTF-8 encoding.", + "Original patterns 'skhyphen' are still distributed in 'csplain' package", + "and loaded with ISO Latin 2 encoding (IL2).", + # however hyph-utf8 could also be used for that + ], +}, +# welsh { "code" => "cy", "name" => "welsh", @@ -393,9 +496,19 @@ class Languages < Hash "hyphenmin" => [2,3], "encoding" => "ec", "exceptions" => false, - "message" => "Welsh Hyphenation Patterns", -}, -# danish dkhyph.tex + "message" => "Welsh hyphenation patterns", + + "version" => nil, + "last_modified" => "1996", + "type" => "dictionary", + "authors" => [ "yannis_haralambous" ], + "licence" => "LPPL", + "description_s" => "Welsh hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Welsh language in T1/EC and UTF-8 encoding.", + ], +}, +# danish { "code" => "da", "name" => "danish", @@ -406,10 +519,19 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Danish Hyphenation Patterns", -}, -# esperanto xu-eohyph.tex -# TODO + "message" => "Danish hyphenation patterns", + + "version" => nil, + "last_modified" => "2011-01-11", + "type" => "dictionary", + "authors" => [ "frank_jensen" ], + "licence" => "LPPL", + "description_s" => "Danish hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Danish language in T1/EC and UTF-8 encoding.", + ], +}, +# esperanto { "code" => "eo", "name" => "esperanto", @@ -419,9 +541,22 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "il3", # TODO "exceptions" => false, - "message" => "Esperanto Hyphenation Patterns", -}, -# spanish xu-eshyph.tex + "message" => "Esperanto hyphenation patterns", + + "version" => nil, + "last_modified" => "1999-08-10", + "type" => "rules", + "authors" => [ "sergei_pokrovsky" ], + "licence" => "LPPL", + "description_s" => "Esperanto hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Esperanto language in UTF-8 and ISO Latin 3 (IL3) encoding.", + "Note that TeX distributions usually don't ship any suitable fonts in that encoding,", + "so unless you create your own font support or want to use MlTeX,", + "using native UTF-8 engines is highly recommended.", + ], +}, +# spanish # =espanol { "code" => "es", @@ -432,9 +567,19 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Spanish Hyphenation Patterns", -}, -# basque xu-bahyph.tex + "message" => "Spanish hyphenation patterns", + + "version" => "4.6", + "last_modified" => "2010-05-18", + "type" => "dictionary", + "authors" => [ "javier_bezos" ], + "licence" => "LPPL", + "description_s" => "Spanish hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Spanish language in T1/EC and UTF-8 encoding.", + ], +}, +# basque { "code" => "eu", "name" => "basque", @@ -444,7 +589,18 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Basque Hyphenation Patterns", + "message" => "Basque hyphenation patterns", + + "version" => nil, + "last_modified" => "2008-06-26", + "type" => "rules", + "authors" => [ "juan_aguirregabiria" ], + "licence" => "other-free", # "public-check", + "description_s" => "Basque hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Basque language in T1/EC and UTF-8 encoding.", + "Generating scripts for these rule-based patterns is included in hyph-utf8." + ], }, # french xu-frhyph.tex # =patois @@ -470,9 +626,9 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Galician Hyphenation Patterns", + "message" => "Galician hyphenation patterns", }, -# estonian xu-ethyph.tex +# estonian { "code" => "et", "name" => "estonian", @@ -482,7 +638,17 @@ class Languages < Hash "hyphenmin" => [2,3], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Estonian Hyphenation Patterns", + "message" => "Estonian hyphenation patterns", + + "version" => nil, + "last_modified" => "2004-04-13", + "type" => "dictionary", + "authors" => [ "een_saar" ], + "licence" => "LPPL", + "description_s" => "Estonian hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Estonian language in T1/EC and UTF-8 encoding.", + ], }, # finnish fihyph.tex { @@ -494,9 +660,9 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Finnish Hyphenation Patterns", + "message" => "Finnish hyphenation patterns", }, -# croatian xu-hrhyph.tex +# croatian { "code" => "hr", "name" => "croatian", @@ -506,7 +672,17 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Croatian Hyphenation Patterns", + "message" => "Croatian hyphenation patterns", + + "version" => nil, + "last_modified" => "1996-03-19", + "type" => "dictionary", + "authors" => [ "igor_marinovic" ], + "licence" => "LPPL", + "description_s" => "Croatian hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Croatian language in T1/EC and UTF-8 encoding.", + ], }, # hungarian xu-huhyphn.tex { @@ -518,7 +694,7 @@ class Languages < Hash "hyphenmin" => [2,2], # polyglosia "encoding" => "ec", "exceptions" => false, - "message" => "Hungarian Hyphenation Patterns (v20031107)", + "message" => "Hungarian hyphenation patterns (v20031107)", }, # armenian # Sahak Petrosyan @@ -531,7 +707,7 @@ class Languages < Hash "hyphenmin" => [1,2], # taken from Hyphenator.js; check the value "encoding" => nil, "exceptions" => false, - "message" => "Armenian Hyphenation Patterns", + "message" => "Armenian hyphenation patterns", }, # interlingua iahyphen.tex { @@ -543,7 +719,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ascii", "exceptions" => true, - "message" => "Hyphenation Patterns for Interlingua", + "message" => "Hyphenation patterns for Interlingua", }, # indonesian inhyph.tex { @@ -555,7 +731,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ascii", "exceptions" => true, - "message" => "Indonesian Hyphenation Patterns", + "message" => "Indonesian hyphenation patterns", }, # icelandic icehyph.tex { @@ -567,7 +743,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Icelandic Hyphenation Patterns", + "message" => "Icelandic hyphenation patterns", }, # irish gahyph.tex { @@ -579,7 +755,7 @@ class Languages < Hash "hyphenmin" => [2,3], # babel "encoding" => "ec", "exceptions" => true, - "message" => "Irish Hyphenation Patterns", + "message" => "Irish hyphenation patterns", }, # italian ithyph.tex { @@ -591,7 +767,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ascii", "exceptions" => false, - "message" => "Italian Hyphenation Patterns", + "message" => "Italian hyphenation patterns", }, # kurmanji { @@ -603,9 +779,9 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Kurmanji Hyphenation Patterns (v. 1.0 2009/06/29 JKn and MSh)", + "message" => "Kurmanji hyphenation patterns (v. 1.0 2009/06/29 JKn and MSh)", }, -# latin xu-lahyph.tex +# latin { "code" => "la", "name" => "latin", @@ -616,7 +792,22 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Latin Hyphenation Patterns", + "message" => "Latin hyphenation patterns", + + "version" => "3.2", + "last_modified" => "2010-06-01", + "type" => "dictionary", + "authors" => [ "claudio_beccari" ], + "licence" => "LPPL", + "description_s" => "Latin hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Latin language in T1/EC and UTF-8 encoding,", + "mainly in modern spelling (u when u is needed and v when v is needed),", + "medieval spelling with the ligatures \\ae and \\oe and the (uncial)", + "lowercase 'v' written as a 'u' is also supported. Apparently", + "there is no conflict between the patterns of modern Latin and", + "those of medieval Latin.", + ], }, # lithuanian { @@ -627,7 +818,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "l7x", "exceptions" => false, - "message" => "Lithuanian Hyphenation Patterns", + "message" => "Lithuanian hyphenation patterns", }, # latvian { @@ -638,7 +829,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "l7x", "exceptions" => false, - "message" => "Latvian Hyphenation Patterns", + "message" => "Latvian hyphenation patterns", }, # dutch nehyph96.tex { @@ -652,12 +843,8 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => true, - "message" => "Dutch Hyphenation Patterns", + "message" => "Dutch hyphenation patterns", }, -# norsk xu-nohyphbx.tex -# =norwegian -# nynorsk nnhyph.tex -# bokmal nbhyph.tex # polish xu-plhyph.tex { "code" => "pl", @@ -669,7 +856,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "qx", "exceptions" => true, - "message" => "Polish Hyphenation Patterns", + "message" => "Polish hyphenation patterns", }, # portuguese pthyph.tex # =portuges @@ -682,7 +869,7 @@ class Languages < Hash "hyphenmin" => [2,3], # babel "encoding" => "ec", "exceptions" => true, - "message" => "Portuguese Hyphenation Patterns", + "message" => "Portuguese hyphenation patterns", }, # pinyin xu-pyhyph.tex { @@ -706,9 +893,9 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Romanian Hyphenation Patterns", # : `rohyphen' 1.1 <29.10.1996> + "message" => "Romanian hyphenation patterns", # : `rohyphen' 1.1 <29.10.1996> }, -# slovenian xu-sihyph.tex +# slovenian # =slovene { "code" => "sl", @@ -719,7 +906,17 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Slovenian Hyphenation Patterns", + "message" => "Slovenian hyphenation patterns", + + "version" => "2.3", + "last_modified" => "1997-15-04", + "type" => "dictionary", + "authors" => [ "matjaz_vrecko" ], + "licence" => "LPPL", + "description_s" => "Slovenian hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Slovenian language in T1/EC and UTF-8 encoding.", + ], }, # uppersorbian xu-sorhyph.tex { @@ -731,7 +928,7 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => true, - "message" => "Upper Sorbian Hyphenation Patterns (E. Werner)", + "message" => "Upper Sorbian hyphenation patterns (E. Werner)", # \message{Hyphenation patterns for Upper Sorbian, E. Werner} # \message{Completely new revision 1997, March 22} }, @@ -757,9 +954,19 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "ec", "exceptions" => false, - "message" => "Turkmen Hyphenation Patterns", -}, -# turkish xu-tkhyph.tex + "message" => "Turkmen hyphenation patterns", + + "version" => "0.1", + "last_modified" => "2010-03-16", + "type" => "rules", + "authors" => [ "nazar_annagurban" ], + "licence" => "public", + "description_s" => "Turkmen hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Turkmen language in T1/EC and UTF-8 encoding.", + ], +}, +# turkish { "code" => "tr", "name" => "turkish", @@ -769,10 +976,9 @@ class Languages < Hash "hyphenmin" => [2,2], # polyglosia "encoding" => "ec", "exceptions" => false, - "message" => "Turkish Hyphenation Patterns", + "message" => "Turkish hyphenation patterns", }, # ukenglish ukhyphen.tex -# TODO - should we rename it or not? { "code" => "en-gb", "name" => "ukenglish", "synonyms" => ["british", "UKenglish"], @@ -782,7 +988,7 @@ class Languages < Hash "hyphenmin" => [2,3], # confirmed, same as what Knuth says "encoding" => "ascii", "exceptions" => true, - "message" => "Hyphenation Patterns for British English", + "message" => "Hyphenation patterns for British English", }, # US english { @@ -794,7 +1000,7 @@ class Languages < Hash "hyphenmin" => [2,3], # confirmed, same as what Knuth says "encoding" => "ascii", "exceptions" => true, - "message" => "Hyphenation Patterns for American English", + "message" => "Hyphenation patterns for American English", }, # US english # { @@ -806,10 +1012,10 @@ class Languages < Hash # "hyphenmin" => [2,3], # confirmed, same as what Knuth says # "encoding" => "ascii", # "exceptions" => true, -# "message" => "Hyphenation Patterns for American English", +# "message" => "Hyphenation patterns for American English", # }, # TODO: FIXME!!! -# serbian xu-srhyphc.tex +# serbian { "code" => "sh-latn", "name" => "serbian", @@ -824,14 +1030,30 @@ class Languages < Hash "encoding" => "ec", "exceptions" => true, "message" => "Serbian hyphenation patterns in Latin script", + + # only for serbian + "version" => "2.02", + "last_modified" => "2008-06-22", + "type" => "dictionary", + "authors" => [ "dejan_muhamedagic" ], + "licence" => "LPPL", + # for both scripts + "description_s" => "Serbian hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Serbian language in UTF-8 and 8-bit variant.", + "For 8-bit TeX the patterns are available separately as 'serbian' in", + "T1/EC encoding for Latin script and 'serbianc' in T2A encoding for", + "Cyrillic script. UTF-8 engines should only use 'serbian'", + "which has patterns in both scripts combined.", + ], }, # serbianc { - "code" => "sr-cyrl", + "code" => "sh-cyrl", "name" => "serbianc", "use_new_loader" => true, "use_old_patterns" => false, - "filename_old_patterns" => "srhyphc.tex", + # "filename_old_patterns" => "srhyphc.tex", "hyphenmin" => [2,2], "encoding" => "t2a", "exceptions" => true, @@ -847,7 +1069,21 @@ class Languages < Hash "hyphenmin" => [2,2], "encoding" => "t2a", "exceptions" => false, - "message" => "(New) Mongolian Hyphenation Patterns", + "message" => "(New) Mongolian hyphenation patterns", + + # only for this one + "version" => "1.2", + "last_modified" => "2010-04-03", + "type" => "dictionary", + "authors" => [ "dorjgotov_batmunkh" ], + "licence" => "LPPL", + # for both + "description_s" => "Mongolian hyphenation patterns in Cyrillic script", + "description_l" => [ + "Hyphenation patterns for Mongolian language in T2A, LMC and UTF-8 encoding.", + "LMC encoding is used in MonTeX. The package includes two sets of patterns", + "that will hopefully be merged in future.", + ], }, # mongolianlmc xu-mnhyph.tex (used to be mongolian) { @@ -871,7 +1107,17 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "t2a", "exceptions" => false, - "message" => "Bulgarian Hyphenation Patterns", + "message" => "Bulgarian hyphenation patterns", + + "version" => "1.7", + "last_modified" => "2008-06", + "type" => "pattern", + "authors" => [ "" ], + "licence" => "LPPL", + "description_s" => "Bulgarian hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Bulgarian language in T2A and UTF-8 encoding.", + ], }, # sanskrit { @@ -882,9 +1128,21 @@ class Languages < Hash "hyphenmin" => [1,5], # polyglosia "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Sanskrit Hyphenation Patterns (v0.2, 2008/1/3)", -}, -# norwegian nohyph.tex + "message" => "Sanskrit hyphenation patterns (v0.4, 2010/02/26)", + + "version" => "0.4", + "last_modified" => "2010-02-26", + "type" => "rules", + "authors" => ["yves_codet"], + "licence" => nil, + "description_s" => "Sanskrit hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Sanskrit and Prakrit in transliteration,", + "and in Devanagari, Bengali, Kannada, Malayalam and Telugu scripts", + "for Unicode engines.", + ], +}, +# norwegian { "code" => "no", "name" => "norwegian", # TODO: fixme @@ -893,9 +1151,9 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => false, - "message" => "Norwegian Hyphenation Patterns", + "message" => "Norwegian hyphenation patterns", }, -# norsk xu-nohyphbx.tex +# norsk { "code" => "nb", "name" => "bokmal", "synonyms" => ["norwegian", "norsk"], @@ -904,9 +1162,19 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => true, - "message" => "Norwegian Bokmal Hyphenation Patterns", -}, -# nynorsk nnhyph.tex + "message" => "Norwegian Bokmal hyphenation patterns", + + "version" => nil, + "last_modified" => "2007-02-07", + "type" => "dictionary", + "authors" => [ "rune_kleveland", "ole_michael_selberg" ], + "licence" => "free", # TODO + "description_s" => "Norwegian Bokmal and Nynorsk hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Norwegian Bokmal and Nynorsk in T1/EC and UTF-8 encoding.", + ], +}, +# nynorsk { "code" => "nn", "name" => "nynorsk", @@ -915,7 +1183,7 @@ class Languages < Hash "hyphenmin" => [2,2], # babel "encoding" => "ec", "exceptions" => true, - "message" => "Norwegian Nynorsk Hyphenation Patterns", + "message" => "Norwegian Nynorsk hyphenation patterns", }, ##### # assamese @@ -927,7 +1195,20 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Assameze Hyphenation Patterns", + "message" => "Assameze hyphenation patterns", + + # this is true for all Indic patterns + "version" => "0.5.3", + "last_modified" => "2010-05-01", + "type" => "rules", + "authors" => ["santhosh_thottingal"], + "licence" => "LGPL", + "description_s" => "Indic hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Assameze, Bengali, Gujarati, Hindi,", + "Kannada, Malayalam, Marathi, Oriya, Panjabi, Tamil and Telugu", + "for Unicode engines.", + ], }, # bengali { @@ -938,7 +1219,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Bengali Hyphenation Patterns", + "message" => "Bengali hyphenation patterns", }, # gujarati { @@ -949,7 +1230,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Gujarati Hyphenation Patterns", + "message" => "Gujarati hyphenation patterns", }, # hindi { @@ -960,7 +1241,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Hindi Hyphenation Patterns", + "message" => "Hindi hyphenation patterns", }, # kannada { @@ -971,7 +1252,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Kannada Hyphenation Patterns", + "message" => "Kannada hyphenation patterns", }, # malayalam { @@ -982,7 +1263,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Malayalam Hyphenation Patterns", + "message" => "Malayalam hyphenation patterns", }, # marathi { @@ -993,7 +1274,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Marathi Hyphenation Patterns", + "message" => "Marathi hyphenation patterns", }, # oriya { @@ -1004,7 +1285,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Oriya Hyphenation Patterns", + "message" => "Oriya hyphenation patterns", }, # panjabi { @@ -1015,7 +1296,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Panjabi Hyphenation Patterns", + "message" => "Panjabi hyphenation patterns", }, # tamil { @@ -1026,7 +1307,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Tamil Hyphenation Patterns", + "message" => "Tamil hyphenation patterns", }, # telugu { @@ -1037,7 +1318,7 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Telugu Hyphenation Patterns", + "message" => "Telugu hyphenation patterns", }, # lao { @@ -1048,7 +1329,19 @@ class Languages < Hash "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Lao Hyphenation Patterns", + "message" => "Lao hyphenation patterns", + + "version" => nil, + "last_modified" => "2010-05-19", + "type" => "rules", + "authors" => [ "brian_wilson", "arthur_reutenauer", "mojca_miklavec" ], + "licence" => nil, # TODO + "description_s" => "Lao hyphenation patterns", + "description_l" => [ + "Hyphenation patterns for Lao language for Unicode engines.", + "Current version is experimental and gives bad results.", + "Please wait for a new version.", + ], }, # pan-Ethiopic { @@ -1059,7 +1352,7 @@ class Languages < Hash "hyphenmin" => [1,1], "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Pan-Ethiopic Hyphenation Patterns", + "message" => "Pan-Ethiopic hyphenation patterns", }, # dumylang -> dumyhyph.tex # nohyphenation -> zerohyph.tex diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README index 6154587b019..95e00612c7b 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README @@ -1,25 +1,25 @@ -This directory contains seven files + README, licensed all but one under lppl 1.3: - -glpatter-utf8.tex: - The source file, version 2.4. When processed under the program - mkpatter ---by typing 'tex -ini -8bit glpatter-utf8.tex' (without the quotes) - at the command line, provided you have the utility - mkpattern installed--- it generates the file hyph-utf8-gl.tex. - -(hyph-gl.tex): - The generated file containing the patterns in UTF-8 (belongs to TEXMF/tex). - - -glhyextr.tex: ##This file is in the public domain## - A configuration file, to include additional patterns other - than the ones in glpatter-utf8.tex. It is not \input by glpatter-utf8.tex - (iin contrast with the single-byte encoded version glpatter.tex) - as modern tools allow the addition of patterns at run time. - -glhybiox.tex, glhymed.tex, glhyquim.tex, glhytec.tex & glhyxeog.tex: - Files with aditional patterns drawn from serveral fields of - the language, so that you may input them from glhyextr.tex. - -The files for specific patterns are very incomplete and feedback is welcome. - ---Javier A. Mgica +This directory contains seven files + README, licensed all but one under lppl 1.3: + +glpatter-utf8.tex: + The source file, version 2.4. When processed under the program + mkpatter ---by typing 'tex -ini -8bit glpatter-utf8.tex' (without the quotes) + at the command line, provided you have the utility + mkpattern installed--- it generates the file hyph-utf8-gl.tex. + +(hyph-gl.tex): + The generated file containing the patterns in UTF-8 (belongs to TEXMF/tex). + + +glhyextr.tex: ##This file is in the public domain## + A configuration file, to include additional patterns other + than the ones in glpatter-utf8.tex. It is not \input by glpatter-utf8.tex + (iin contrast with the single-byte encoded version glpatter.tex) + as modern tools allow the addition of patterns at run time. + +glhybiox.tex, glhymed.tex, glhyquim.tex, glhytec.tex & glhyxeog.tex: + Files with aditional patterns drawn from serveral fields of + the language, so that you may input them from glhyextr.tex. + +The files for specific patterns are very incomplete and feedback is welcome. + +--Javier A. Mgica diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/mul-ethi/generate_patterns_mul-ethi.lua b/Master/texmf-dist/source/generic/hyph-utf8/languages/mul-ethi/generate_patterns_mul-ethi.lua index a5fa334f22c..607c7270bbb 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/mul-ethi/generate_patterns_mul-ethi.lua +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/mul-ethi/generate_patterns_mul-ethi.lua @@ -1,10 +1,10 @@ #!/usr/bin/env texlua -- Extract Ethiopic syllables from the Unicode Character Database. --- Arthur Reutenauer, London, 2011-01-09 & 10, for the hyph-utf8 project +-- Arthur Reutenauer, London, 2011, for the hyph-utf8 project -- http://tug.org/tex-hyphen -- Copyright (c) TeX Users Group, 2011. --- You may freely use, modify and / or redistribute this file. +-- You may freely use, copy, modify and / or redistribute this file. -- Use with TeXLua. @@ -53,9 +53,13 @@ local pattfile = assert(io.open("hyph-mul-ethi.tex", "w")) pattfile:write[[ % Experimental pattern file for languages written using the Ethiopic script. -% Arthur Reutenauer, London, 2011-01-09 & 10, for the hyph-utf8 project. +% Arthur Reutenauer, London, 2011, for the hyph-utf8 project. % Copyright (c) TeX Users Group, 2011. -% You may freely use, modify and / or redistribute this file. +% You may freely use, copy, modify and / or redistribute this file. +% +% This is a generated file. If you wish to edit it, consider adapting the +% generating programme +% (svn://tug.org/texhyphen/trunk/hyph-utf8/source/generic/hyph-utf8/languages/mul-ethi/generate_patterns_mul-ethi.lua). % % The BCP 47 language tag for that file is "mul-ethi" to reflect the fact that % it can be used by multiple languages (and a single script, Ethiopic). It is, @@ -64,10 +68,6 @@ pattfile:write[[ % do for the moment is to simply allow break on either sides of Ethiopic % syllables, and to forbid it before some punctuation marks particular to % the Ethiopic script (which we thus make letters for this purpose). -% -% This is a generated file. If you wish to edit it, consider adapting the -% generating programme -% (svn://tug.org/texhyphen/trunk/hyph-utf8/source/generic/hyph-utf8/languages/ethiopic/make-patterns.lua. ]] diff --git a/Master/texmf-dist/source/luatex/hyph-utf8/luatex-hyphen.dtx b/Master/texmf-dist/source/luatex/hyph-utf8/luatex-hyphen.dtx index bca95daf0c7..c5a5af933a0 100644 --- a/Master/texmf-dist/source/luatex/hyph-utf8/luatex-hyphen.dtx +++ b/Master/texmf-dist/source/luatex/hyph-utf8/luatex-hyphen.dtx @@ -192,9 +192,11 @@ This work is under the CC0 license. % \begin{itemize} % \item For most languages: % \begin{quote} -% \verb+patterns = filename for patterns+\\ -% \verb+hyphenation = filename for exceptions+\\ +% \verb+patterns = filenames for patterns+\\ +% \verb+hyphenation = filenames for exceptions+\\ % \end{quote} +% Each string contains a coma-separated list of file names (whitespace +% before or after the coma is not accepted). % The files given by \verb+patterns+ (resp. \verb+hypenation+) must be % plain text files encoded in utf8, with only patterns (resp. % exceptions) and not even comments: their content will be used @@ -217,8 +219,8 @@ This work is under the CC0 license. % \item Optional fields may be added. For example: % \begin{quote} % \verb+loader = name of the TeX loader+\\ -% \verb+lefthyphenmin = value for \letfhyphenmin+\\ -% \verb+righthyphenmin = value for \letfhyphenmin+ +% \verb+lefthyphenmin = value for \lefthyphenmin+\\ +% \verb+righthyphenmin = value for \righthyphenmin+ % \end{quote} % Those fields are present in \texttt{language.dat.lua} as generated bu % \texttt{tlmgr}, for example, but they \emph{are not} used by the present @@ -280,6 +282,7 @@ local dbfile = kpse.find_file(dbname) if not dbfile then err("file not found: "..dbname) else + wlog('using data file: %s', dbfile) language_dat = dofile(dbfile) end % \end{macrocode} @@ -342,13 +345,15 @@ function loadlanguage(lname, id) % \begin{macrocode} wlog(msg, '', cname, id) for _, item in ipairs{'patterns', 'hyphenation'} do - local file = ldata[item] - if file ~= nil and file ~= '' then + local filelist = ldata[item] + if filelist ~= nil and filelist ~= '' then + for _, file in ipairs(filelist:explode(',')) do local file = kpse.find_file(file) or err("file not found: %s", file) local fh = io.open(file, 'r') local data = fh:read('*a') or err("file not readable: %s", f) fh:close() lang[item](lang.new(id), data) + end else if item == 'hyphenation' then item = item..' exceptions' end wlog("info: no %s for this language", item) -- cgit v1.2.3