diff options
Diffstat (limited to 'Master/texmf-dist/source/generic')
14 files changed, 1653 insertions, 195 deletions
diff --git a/Master/texmf-dist/source/generic/hyph-utf8/collaboration/generate-js-Hyphenator.rb b/Master/texmf-dist/source/generic/hyph-utf8/collaboration/generate-js-Hyphenator.rb new file mode 100755 index 00000000000..55a44f67f1b --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/collaboration/generate-js-Hyphenator.rb @@ -0,0 +1,204 @@ +#!/usr/bin/env ruby + +# This file generates patterns for Hyphenator.js +# http://code.google.com/p/hyphenator +# +# Collaboration with: +# Mathias Nater, <mathias at mnn.ch> + +load '../languages.rb' +# TODO: should be singleton +languages = Languages.new + +languages["de-CH-1901"] = languages["de-ch-1901"] +languages["en-GB"] = languages["en-gb"] +languages["en-US"] = languages["en-us"] +languages["en-US-x-knuth"] = languages["en-us"] +languages["mn"] = languages["mn-cyrl"] +languages["sr-Cyrl"] = languages["sr-cyrl"] +languages["sr-Latn"] = languages["sh-latn"] +languages["zh-Latn"] = languages["zh-latn"] + + +$path_root=File.expand_path(Dir.getwd + "/../../../..") +$path_plain="#{$path_root}/tex/generic/hyph-utf8/patterns/txt" +$path_js=File.expand_path("#{$path_root}/../collaboration/hyphenator/repo") + +# change to current folder and read all the files in it +Dir.chdir("#{$path_plain}") +files = Dir.glob("*.pat.txt") +# files = Dir.glob("*sl.pat.txt") + +# we need to escape some characters; for a complete list see +# http://www.jslint.com/lint.html +# but at the moment there are only two such characters present anyway +# +# this function encapsulates the string into single quotes and uses +def unescape_string_if_needed(str) + # unsafe characters - see above for complete list + unsafeCharacters = [0x200c, 0x200d] + # let's convert our string into array (to preserve proper unicode numbers) + str_array=str.unpack("U*") + # set this to false until the first replacement takes place + replacement_done = false + + # loop over all unsafe character and try to replace all occurencies + unsafeCharacters.each do |c| + # find the first occurence of that character + i = str_array.index(c) + while i != nil + # replaces a single character with '%uXXXX', where XXXX is hex code of character + # this only works with non-math characters, but it should not happen that any bigger number would occur + str_array[i,1] = sprintf("%%u%4X", c).unpack("U*") + i = str_array.index(c) + replacement_done = true + end + end + + # convert the array back to string + str = str_array.pack("U*") + + if replacement_done + return "unescape('#{str}')" + else + return "'#{str}'" + end +end + +class Pattern + # include Enumerable + + def initialize(pattern) + @pattern = pattern.strip + @pattern_array = @pattern.unpack("U*") + @length = @pattern_array.length + end + + def <=>(anOther) + # if @length == anOther.length + # 0.upto(@length-1) do |i| + # if @pattern_array[i] != anOther.pattern_array[i] + # return @pattern_array[i] <=> anOther.pattern_array[i] + # end + # end + # return 1 <=> 1 + # else + # @length <=> anOther.length + # end + @length <=> anOther.length + end + + def js_pattern + @pattern.gsub(/[.]/, "_") + end + + def to_s + @pattern + end + + def length_of_letters_only + return @pattern.gsub(/[0-9]/,'').unpack("U*").length + end + + # def sort_by_length + attr_reader :pattern, :length, :pattern_array +end + +# TODO: this should be an explicit array of patterns only +class Patterns < Array + def length_of_shortest_and_longest_pattern + # store the minimum and maximum length of pattern + a = [self.first.length_of_letters_only, self.first.length_of_letters_only] + # + # a = [0, 1] + self.each do |pat| + a[0] = [a[0], pat.length_of_letters_only].min + a[1] = [a[1], pat.length_of_letters_only].max + # a.first = [a.first, pat.length_of_letters_only].min + # a.last = [a.last, pat.length_of_letters_only].max + end + return a + end + # TODO: you need to make sure that patterns are sorted according to their length first + def each_length + current_length = 0 + first_pattern_with_some_size = Array.new + + self.each_index do |i| + pattern = self[i] + if pattern.length > current_length + current_length = pattern.length + first_pattern_with_some_size.push(i) + end + end + + first_pattern_with_some_size.each_index do |i| + i_first = first_pattern_with_some_size[i] + i_last = nil + if i < first_pattern_with_some_size.length-1 + i_last = first_pattern_with_some_size[i+1] + else + i_last = self.length + end + i_len = i_last-i_first + + yield self[i_first,i_len] + end + end +end + +files.each do |filename| + code_in = filename.gsub(/hyph-(.*).pat.txt/,'\1') + code_out = code_in.gsub(/-/,"_") + language = languages[code_in] # FIXME + # TODO: handle exceptions + puts + puts "Generating Hyphenator.js support for " + code_in + puts " writing to '#{$path_js}/#{code_out}.js'" + puts + patterns = Patterns.new + File.open(filename,'r') do |f_in| + f_in.each_line do |line| + if line.strip.length > 0 + patterns.push(Pattern.new(line)) + end + end + end + patterns.sort! + # puts patterns + specialChars = patterns.join('').gsub(/[.0-9a-z]/,'').unpack('U*').sort.uniq.pack('U*') + + File.open("#{$path_js}/#{code_out}.js", "w") do |f_out| + # BOM mark + # f_out.puts [239,187,191].pack("ccc") + # f_out.print ["EF","BB","BF"].pack("H2H2H2") + f_out.putc(239) + f_out.putc(187) + f_out.putc(191) + f_out.puts "Hyphenator.languages.#{code_out} = {" + f_out.puts "\tleftmin : #{language.hyphenmin[0]}," + f_out.puts "\trightmin : #{language.hyphenmin[1]}," + lengths = patterns.length_of_shortest_and_longest_pattern + f_out.puts "\tshortestPattern : #{lengths.first}," + f_out.puts "\tlongestPattern : #{lengths.last}," + # TODO: handle Ux201C, Ux201D + # if specialChars.gsub!(/.../, ...) ~= nil + # if specialChars =~ /[]/ + # if has_unsafe_characters(specialChars) + # end + unescape_string_if_needed(specialChars) + f_out.puts "\tspecialChars : #{unescape_string_if_needed(specialChars)}," + f_out.puts "\tpatterns : {" + + # current length of patterns (they are sorted according to their length) + current_length = 0 + pattern_string = "" + i_first = i_last = -1 + patterns.each_length do |pats| + f_out.puts "\t\t#{pats.first.length} : #{unescape_string_if_needed(pats.join(""))}" + end + + f_out.puts "\t}" + f_out.puts "};" + end +end 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 8a1b1044532..16e32e975e9 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 @@ -8,7 +8,7 @@ $package_name="hyph-utf8" # TODO - make this a bit less hard-coded -$path_tex_generic="../../../tex/generic" +$path_tex_generic=File.expand_path("../../../tex/generic") $path_loadhyph="#{$path_tex_generic}/#{$package_name}/loadhyph" # TODO: should be singleton @@ -72,7 +72,9 @@ languages.each do |language| language.code == 'bn' or language.code == 'gu' or language.code == 'hi' or + language.code == 'hy' or language.code == 'kn' or + language.code == 'lo' or language.code == 'ml' or language.code == 'mr' or language.code == 'or' or @@ -81,14 +83,16 @@ languages.each do |language| language.code == 'te' then file.puts(text_if_native_utf) file.puts(" \\message{UTF-8 #{language.message}}") - file.puts(' % Set \lccode for ZWNJ and ZWJ.') - file.puts(' \lccode"200C="200C') - file.puts(' \lccode"200D="200D') - if language.code == 'sa' - file.puts(' % Set \lccode for KANNADA SIGN JIHVAMULIYA and KANNADA SIGN UPADHMANIYA.') - file.puts(' \lccode"0CF1="0CF1') - file.puts(' \lccode"0CF2="0CF2') - end + if language.code != 'lo' then + file.puts(' % Set \lccode for ZWNJ and ZWJ.') + file.puts(' \lccode"200C="200C') + file.puts(' \lccode"200D="200D') + if language.code == 'sa' then + file.puts(' % Set \lccode for KANNADA SIGN JIHVAMULIYA and KANNADA SIGN UPADHMANIYA.') + file.puts(' \lccode"0CF1="0CF1') + file.puts(' \lccode"0CF2="0CF2') + end + end file.puts(" \\input hyph-#{language.code}.tex") file.puts('\else') file.puts(" \\message{No #{language.message} - only available with Unicode engines}") 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 5ec25efaf69..3e01322cfde 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 @@ -9,9 +9,10 @@ require 'unicode' load 'languages.rb' -$path_plain="../../../../plain" -$path_TL="../../../../TL" -$path_language_dat="#{$path_TL}/texmf/tex/generic/config" +$path_root=File.expand_path("../../..") +$path_plain="#{$path_root}/tex/generic/hyph-utf8/patterns/txt" +$path_TL=File.expand_path("../../../../TL") +$path_language_dat_lua="#{$path_root}/tex/luatex/hyph-utf8/config" $l = Languages.new # TODO: should be singleton @@ -28,20 +29,20 @@ languages.each do |language| 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['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'] = 'mn' language_codes['mn-cyrl-x-lmc'] = nil -language_codes['sh-latn'] = 'sr-Latn' +language_codes['sh-latn'] = 'sr-latn' language_codes['sh-cyrl'] = nil -language_codes['sr-cyrl'] = 'sr-Cyrl' +# language_codes['sr-cyrl'] = 'sr-Cyrl' -$file_language_dat_lua = File.open("#{$path_language_dat}/language.dat.lua", "w") -$file_language_dat_lua.puts "{\n" +$file_language_dat_lua = File.open("#{$path_language_dat_lua}/language.dat.lua", "w") +$file_language_dat_lua.puts "return {\n" languages.sort{|x,y| x.code <=> y.code }.each do |language| if language.use_new_loader or language.code == 'en-us' then @@ -62,10 +63,10 @@ languages.sort{|x,y| x.code <=> y.code }.each do |language| if include_language puts "generating #{code}" - $file_pat = File.open("#{$path_plain}/#{code}.pat.txt", 'w') - $file_hyp = File.open("#{$path_plain}/#{code}.hyp.txt", 'w') - $file_let = File.open("#{$path_plain}/#{code}.chr.txt", 'w') - $file_inf = File.open("#{$path_plain}/#{code}.lic.txt", 'w') + $file_pat = File.open("#{$path_plain}/hyph-#{code}.pat.txt", 'w') + $file_hyp = File.open("#{$path_plain}/hyph-#{code}.hyp.txt", 'w') + $file_let = File.open("#{$path_plain}/hyph-#{code}.chr.txt", 'w') + $file_inf = File.open("#{$path_plain}/hyph-#{code}.lic.txt", '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 817a0e04d4f..e4aff48abfe 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 @@ -7,17 +7,20 @@ load 'languages.rb' $package_name="hyph-utf8" # TODO - make this a bit less hard-coded -$path_tex_generic="../../../tex/generic" -$path_TL="../../../../TL" +$path_tex_generic=File.expand_path("../../../tex/generic") +$path_TL=File.expand_path("../../../../TL") $path_language_dat="#{$path_TL}/texmf/tex/generic/config" # hyphen-foo.tlpsrc for TeX Live $path_tlpsrc="#{$path_TL}/tlpkg/tlpsrc" +$path_txt="#{$path_tex_generic}/#{$package_name}/patterns/txt" + $l = Languages.new # TODO: should be singleton languages = $l.list.sort{|a,b| a.name <=> b.name} language_grouping = { + 'english' => ['en-gb', 'en-us'], 'norwegian' => ['nb', 'nn'], 'german' => ['de-1901', 'de-1996', 'de-ch-1901'], 'mongolian' => ['mn-cyrl', 'mn-cyrl-x-lmc'], @@ -81,6 +84,7 @@ language_groups.sort.each do |language_name,language_list| #$file_tlpsrc.puts "name hyphen-#{language_name}" $file_tlpsrc.puts "category TLCore" + $file_tlpsrc.puts "depend hyphen-base" # external dependencies for Russian and Ukrainian (until we implement the new functionality at least) if language_name == "russian" then @@ -89,7 +93,7 @@ language_groups.sort.each do |language_name,language_list| $file_tlpsrc.puts "depend ukrhyph" end language_list.each do |language| - name = " name=#{language.name}" + name = "name=#{language.name}" # synonyms if language.synonyms != nil and language.synonyms.length > 0 then @@ -108,17 +112,49 @@ language_groups.sort.each do |language_name,language_list| lmin = language.hyphenmin[0] rmin = language.hyphenmin[1] end - hyphenmins = " lefthyphenmin=#{lmin} righthyphenmin=#{rmin}" + hyphenmins = "lefthyphenmin=#{lmin} \\\n\trighthyphenmin=#{rmin}" # which file to use + file = "" + file_patterns = "" + file_exceptions = "" if language.use_new_loader then - file = " file=loadhyph-#{language.code}.tex" + file = "file=loadhyph-#{language.code}.tex" + # we skip the mongolian language + if language.code != "mn-cyrl-x-lmc" then + + 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 + + file_patterns = "file_patterns=#{filename_pat}" + if !File::size?( "#{$path_txt}/#{filename_hyp}" ) then + file_exceptions = "file_exceptions=#{filename_hyp}" + else + file_exceptions = "file_exceptions=" + # puts "> #{filename_hyp} is empty" + end + end else - file = " file=#{language.filename_old_patterns}" + file = "file=#{language.filename_old_patterns}" end - $file_tlpsrc.puts "execute AddHyphen#{name}#{synonyms}#{hyphenmins}#{file}" + $file_tlpsrc.puts "execute AddHyphen \\\n\t#{name}#{synonyms} \\" + $file_tlpsrc.print "\t#{hyphenmins} \\\n\t#{file}" + if file_patterns + file_exceptions != "" + $file_tlpsrc.print " \\\n\t#{file_patterns} \\\n\t#{file_exceptions}" + 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 $file_tlpsrc.puts "runpattern f texmf/tex/generic/hyphen/#{language.filename_old_patterns}" @@ -126,10 +162,13 @@ language_groups.sort.each do |language_name,language_list| end end if language_name == "greek" then + $file_tlpsrc.puts $file_tlpsrc.puts "docpattern d texmf/doc/generic/elhyphen" elsif language_name == "hungarian" then + $file_tlpsrc.puts $file_tlpsrc.puts "docpattern d texmf/doc/generic/huhyphen" elsif language_name == "german" then + $file_tlpsrc.puts $file_tlpsrc.puts "runpattern f texmf/tex/generic/hyphen/dehyphtex.tex" $file_tlpsrc.puts "runpattern f texmf/tex/generic/hyphen/ghyphen.README" end diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages.rb index c16782bea4d..450013b7868 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages.rb @@ -21,7 +21,7 @@ class Language def get_exceptions if @exceptions1 == nil - filename = "../../../tex/generic/hyph-utf8/patterns/hyph-#{@code}.tex"; + filename = "../../../tex/generic/hyph-utf8/patterns/tex/hyph-#{@code}.tex"; lines = IO.readlines(filename, '.').join("") exceptions = lines.gsub(/%.*/,''); if (exceptions.index('\hyphenation') != nil) @@ -40,7 +40,7 @@ class Language def get_patterns if @patterns == nil - filename = "../../../tex/generic/hyph-utf8/patterns/hyph-#{@code}.tex"; + filename = "../../../tex/generic/hyph-utf8/patterns/tex/hyph-#{@code}.tex"; lines = IO.readlines(filename, '.').join("") @patterns = lines.gsub(/%.*/,''). gsub(/.*\\patterns\s*\{(.*?)\}.*/m,'\1'). @@ -69,7 +69,7 @@ class Language def get_comments_and_licence if @comments_and_licence == nil then - filename = "../../../tex/generic/hyph-utf8/patterns/hyph-#{@code}.tex"; + filename = File.expand_path("../../../tex/generic/hyph-utf8/patterns/tex/hyph-#{@code}.tex"); lines = IO.readlines(filename, '.').join("") @comments_and_licence = lines. gsub(/(.*)\\patterns.*/m,'\1') @@ -430,7 +430,7 @@ class Languages < Hash "use_new_loader" => true, "use_old_patterns" => false, "filename_old_patterns" => "frhyph.tex", -# "hyphenmin" => [], + "hyphenmin" => [2,3], "encoding" => "ec", "exceptions" => false, "message" => "French hyphenation patterns (V2.12, 2002/12/11)", @@ -495,6 +495,19 @@ class Languages < Hash "exceptions" => false, "message" => "Hungarian Hyphenation Patterns (v20031107)", }, +# armenian +# Sahak Petrosyan <sahak at mit dot edu> +{ + "code" => "hy", + "name" => "armenian", + "use_new_loader" => true, + "use_old_patterns" => false, + "filename_old_patterns" => nil, + "hyphenmin" => [1,2], # taken from Hyphenator.js; check the value + "encoding" => nil, + "exceptions" => false, + "message" => "Armenian Hyphenation Patterns", +}, # interlingua iahyphen.tex { "code" => "ia", @@ -749,8 +762,8 @@ class Languages < Hash # US english { "code" => "en-us", - "name" => "english", - "use_new_loader" => false, + "name" => "usenglishmax", + "use_new_loader" => true, "use_old_patterns" => false, "filename_old_patterns" => "ushyphmax.tex", "hyphenmin" => [2,3], # confirmed, same as what Knuth says @@ -758,6 +771,18 @@ class Languages < Hash "exceptions" => true, "message" => "Hyphenation Patterns for American English", }, +# US english +# { +# "code" => "en-us-x-knuth", +# "name" => "english", +# "use_new_loader" => false, +# "use_old_patterns" => false, +# "filename_old_patterns" => "hyphen.tex", +# "hyphenmin" => [2,3], # confirmed, same as what Knuth says +# "encoding" => "ascii", +# "exceptions" => true, +# "message" => "Hyphenation Patterns for American English", +# }, # TODO: FIXME!!! # serbian xu-srhyphc.tex { @@ -890,16 +915,16 @@ class Languages < Hash "exceptions" => false, "message" => "Bengali Hyphenation Patterns", }, -# guajrati +# gujarati { "code" => "gu", - "name" => "guajrati", + "name" => "gujarati", "use_new_loader" => true, "use_old_patterns" => false, "hyphenmin" => [1,1], # TODO "encoding" => nil, # no patterns for 8-bit TeX "exceptions" => false, - "message" => "Guajrati Hyphenation Patterns", + "message" => "Gujarati Hyphenation Patterns", }, # hindi { @@ -915,7 +940,7 @@ class Languages < Hash # kannada { "code" => "kn", - "name" => "assamese", + "name" => "kannada", "use_new_loader" => true, "use_old_patterns" => false, "hyphenmin" => [1,1], # TODO @@ -989,6 +1014,22 @@ class Languages < Hash "exceptions" => false, "message" => "Telugu Hyphenation Patterns", }, +# lao +{ + "code" => "lo", + "name" => "lao", + "use_new_loader" => true, + "use_old_patterns" => false, + "hyphenmin" => [1,1], # TODO + "encoding" => nil, # no patterns for 8-bit TeX + "exceptions" => false, + "message" => "Lao Hyphenation Patterns", +}, +# dumylang -> dumyhyph.tex +# nohyphenation -> zerohyph.tex +# arabic -> zerohyph.tex +# farsi zerohyph.tex +# =persian ] languages.each do |l| diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/es/README b/Master/texmf-dist/source/generic/hyph-utf8/languages/es/README new file mode 100644 index 00000000000..9529767ad44 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/es/README @@ -0,0 +1,83 @@ +DIVISI'ON DE PALABRAS +~~~~~~~~~~~~~~~~~~~~~ + +The file eshyph.tex under /base is the base for the Spanish patters. +It is intended mainly for backward compatibility. New systems are +best based on CTAN:language/hyph-utf8/, which has the same patterns. + +Why 4.x? Well, I know at least other three files with the same name, +so this one is the fourth (there were at least 6 or 7 patterns files). +The others should vanish as soon as posible. + +(c) Javier Bezos 1993 1997. +(c) Javier Bezos and CervanTeX 2001-2009 +Some parts, (c) by Francesc Carmona +Licence: LPPL + +- division.pdf is a draft of an article (in Spanish) explaining the +rules to be applied and how they are being translated into TeX in a +unified set of patterns (somewhat outdated). +- eshyph-make.lua generates the patterns, with eshyph.src for prefixes +and special cases. +- eshyph-test.tex makes a comparison with strict syllabic rules. It +requires a file spanish-words.txt (not supplied) with a list of word, +one per line. You can (should) filter the words. + +For bug reports and comments: + + http://www.tex-tipografia.com/spanish_hyphen.html + +I would like to thanks Francesc Carmona for his permission +to steal parts of his work without restrictions. + +The contrib directory, as its name implies, is not part of the +official bundle. It has a different set of patterns, but it does not +follow the rules by the Spanish Academy (despite its claims). + +What's new in 4.5 (2009-08-01) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Missing group -gl- added (a major bug). A few minor improvements +for "des-" and "in-". + +What's new in 4.4 (2009-05-19) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some bad patterns fixed. + +What's new in 4.3 (2009-05-14) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Some patterns fixed, particularly for "familia", "superar", "sub-" and +final consonants. Patterns are now generated with the help of a few +lua/luatex files (whose status is alpha). + +What's new in 4.2 +~~~~~~~~~~~~~~~~~ + +The encoding is UTF-8, so that it can be used with LuaTeX. Yet, it +works without changes with standard TeX. + +What's new in 4.1 +~~~~~~~~~~~~~~~~~ + +- Thanks to a list of about 750000 words and extensive +tests, wrong hyphenations have been reduced dramatically +and the number of patterns has been almost duplicated. + +- Since the Spanish Academy rules of 1999 are very vague, +incomplete and even contradictory, they had to be +completed with some traditional ones. The Academy has +published new rules in November 2005 including many of +the traditional ones employed here and therefore only +minor adjustments have been necessary. + +- Patterns for a few verbal endings are necessary, and +now the "voseo" forms (used in many countries of Central +and South America) have been included. + +2009-05-19 +_____________________________________________________________ +Javier Bezos | http://www.cervantex.es/ +............................................................. +TeX y tipografia | http://www.tex-tipografia.com/
\ No newline at end of file diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/es/eshyph-make.lua b/Master/texmf-dist/source/generic/hyph-utf8/languages/es/eshyph-make.lua new file mode 100644 index 00000000000..4fd01932953 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/es/eshyph-make.lua @@ -0,0 +1,82 @@ +-- (encoding:utf-8) + +-- (c) Javier Bezos 2009 +-- License: LPPL. v. 4.5 + +patfile = io.open('eshyph.tex', 'w') +patfile:write('\\patterns{\n') + +-- Basic patters +-- Using the characters iterator in luatex + +digraphs = 'ch ll' +liquids = 'bl cl fl gl kl pl vl br cr dr fr gr kr pr rr tr vr' +avoid = 'tl' +silent = 'h' +letters = 'bcdfghjklmnpqrstvwxyz' + +for n in letters:gmatch('.') do + if silent:find(n) then + patfile:write('2' .. n .. '.') + else + patfile:write('1' .. n .. ' 2' .. n .. '.') + end + for m in letters:gmatch('.') do + pat = n .. m + if digraphs:find(pat) then + patfile:write(' ' .. n .. '4'.. m .. ' 2' .. pat .. '.') + elseif liquids:find(pat) then + patfile:write(' ' .. n .. '2'.. m .. ' 2' .. pat .. '.') + elseif avoid:find(pat) then + patfile:write(' 2' .. n .. '2'.. m) + elseif silent:find(m) then + patfile:write(' 2' .. n .. '1' .. m) + else + patfile:write(' 2' .. pat) + end + end + patfile:write('\n') +end + +patfile:write('1ñ 2ñ.\n') + +letters = 'bcdlmnrstxy' +etim = 'pt ct cn ps mn gn ft pn cz tz ts' + +for n in etim:gmatch('%S+') do + for m in letters:gmatch('.') do + patfile:write('2' .. m .. '3' .. n:sub(1,1) .. '2' .. n:sub(2,2) .. ' ') + end + patfile:write('4' .. n .. '.\n') +end + +src = io.open('eshyph.src') + +function prefix(p) + if p:match('r$') then + p = p:sub(1,-2) .. '2' .. p:sub(-1) .. '1' + patfile:write(p:sub(1,-2) .. '3r\n') + elseif p:match('[aeiou]$') then + p = p .. '1' + patfile:write(p .. 'h\n') + end + patfile:write(p .. 'a2 ' .. p .. 'e2 ' .. p .. 'i2 ' .. p .. 'o2 ' .. p .. 'u2\n') + patfile:write(p .. 'á2 ' .. p .. 'é2 ' .. p .. 'í2 ' .. p .. 'ó2 ' .. p .. 'ú2\n') + +end + +for ln in src:lines() do + ln = ln:match('[^%%]*') + for p in ln:gmatch('%S+') do + if p:match('/(.*)/') then + prefix(p:match('/(.*)/')) + elseif p:sub(1,1) == '*' then + patfile:write('de2s3' .. p:sub(2) .. '\n') + else + patfile:write(p .. '\n') + end + end +end + +patfile:write('}') +patfile:close() diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/es/eshyph.src b/Master/texmf-dist/source/generic/hyph-utf8/languages/es/eshyph.src new file mode 100644 index 00000000000..912f287322c --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/es/eshyph.src @@ -0,0 +1,891 @@ +% 4.5 +san4c5t +plan4c5t +% +2no. +%.no2 +%.ano4 % ano-dino +4caca4 % caca-huete +4cago4 4caga4 4cagas. % Chi-cago +4teta. 4tetas. % es-teta +4puta4 4puto4 % com-putar y derivados, reputa-ción +.hu4mea .hu4meo .he4mee +4meo. % Tolo-meo +4meable. 4meables. % imper-meable +4pedo4 % bí-pedo % tubér-culo % +4culo4 +3mente. +% -aer aero deca +% ieron etc. no en aer. +% iera iese no en aer +% no en aer (el acento!) (contrá)eme ete ele elo ela enos elos +4i3go. 4es. 4és 4e. 4e3mos. 4éis. 4en. +4ía. 4ías. 4ía3mos. 4íais. 4ían. +4í. 4í4s3te. 4í4s3tes. 4í3tes. 4í3mos. 4ís3teis. +4e3ré. 4e3rás. 4e3rés. 4e3rís. 4e3rá. 4e3re3mos. 4e3réis. 4e3rán. +4i3ga. 4i3gas. 4i3gás. 4i3gamos. 4i3gáis. 4a4i3gan. +4e3ría. 4e3rías. 4e3ríamos. 4e3ríais. 4e3rían. +% +4i3gá3mosme. +4i3gá3mosmele. 4i3gá3mosmelo. 4i3gá3mos3mela. +4i3gá3mosmeles. 4i3gá3mosmelos. 4i3gá3mos3melas. +4i3gá3moste. +4i3gá3mostele. 4i3gá3mostelo. 4i3gá3mos3tela. +4i3gá3mosteles. 4i3gá3mostelos. 4i3gá3mos3telas. +4i3gá3mosle. 4i3gá3mosla. 4i3gá3moslo. +4i3gá3mosele. 4i3gá3moselo. 4i3gá3mosela. +4i3gá3moseles. 4i3gá3moselos. 4i3gá3moselas. +4i3gá3monos. +4i3gá3monosle. 4i3gá3monoslo. 4i3gá3monosla. +4i3gá3monosles. 4i3gá3monoslos. 4i3gá3monoslas. +4i3gá3moos. +4i3gá3moosle. 4i3gá3mooslo. 4i3gá3moosla. +4i3gá3moosles. 4i3gá3mooslos. 4i3gá3mooslas. +4i3gá3mosles. 4i3gá3moslas. 4i3gá3moslos. +4ed. 4é. +4edme. +4édmele. 4édmelo. 4éd3mela. +4édmeles. 4édmelos. 4éd3melas. +4edte. +4édtele. 4édtelo. 4éd3tela. +4édteles. 4édtelos. 4éd3telas. +4edle. 4eedla. 4edlo. +4édsele. 4édselo. 4édsela. +4édseles. 4édselos. 4édselas. +4ednos. +4édnosle. 4édnoslo. 4édnosla. +4édnosles. 4édnoslos. 4édnoslas. +4eos. +4éosle. 4éoslo. 4éosla. +4éosles. 4éoslos. 4éoslas. +4edles. 4edlas. 4edlos. +4er. +4erme. +4érmele. 4érmelo. 4ér3mela. +4érmeles. 4érmelos. 4ér3melas. +4erte. +4értele. 4értelo. 4ér3tela. +4érteles. 4értelos. 4ér3telas. +4erle. 4erla. 4erlo. +4erse. +4érsele. 4érselo. 4érsela. +4érseles. 4érselos. 4érselas. +4ernos. +4érnosle. 4érnoslo. 4érnosla. +4érnosles. 4érnoslos. 4érnoslas. +4e3ros. +4é3rosle. 4é3roslo. 4é3rosla. +4é3rosles. 4é3roslos. 4é3roslas. +4erles. 4erlas. 4erlos. +4í3do. 4í3da. 4í3dos. 4í3das. +%-ear: norte, ante, super +4o. 4as. 4a. 4ás. 4a3mos. 4áis. 4an. +4aste. 4astes. 4ó. 4ates. 4asteis. 4a3ron. +4a3ba. 4a3bas. 4á3bamos. 4a3bais. 4a3ban. +4a3ría. 4a3rías. 4a3ríamos. 4a3ríais 4a3rían. +4a3ré. 4a3rás. 4a3rés. 4a3rís. 4a3rá. 4a3remos. 4a3réis. 4a3rán. +4a3ra. 4a3ras. 4á3ramos. 4a3rais. 4a3ran. +4a3re. 4a3res. 4á3remos. 4a3reis. 4a3ren. +4a3se. 4a3ses. 4á3semos. 4a3seis. 4a3sen. +4ad. +% +e5r4as. e5r4a3mos. e5r4áis. e5r4an. +e5r4aste. e5r4astes. e5r4ates. e5r4asteis. e5r4a3ron. +e5r4a3ba. e5r4a3bas. e5r4á3bamos. e5r4a3bais. e5r4a3ban. +e5r4a3ría. e5r4a3rías. e5r4a3ríamos. e5r4a3ríais e5r4a3rían. +e5r4a3ré. e5r4a3rás. e5r4a3rés. e5r4a3rís. e5r4a3rá. e5r4a3remos. e5r4a3réis. e5r4a3rán. +e5r4a3ra. e5r4a3ras. e5r4á3ramos. e5r4a3rais. e5r4a3ran. +e5r4a3re. e5r4a3res. e5r4á3remos. e5r4a3reis. e5r4a3ren. +e5r4a3se. e5r4a3ses. e5r4á3semos. e5r4a3seis. e5r4a3sen. +e5r4ad. +% +4adme. +4ádmele. 4ádmelo. 4ád3mela. +4ádmeles. 4ádmelos. 4ád3melas. +4adte. +4ádtele. 4ádtelo. 4ád3tela. +4ádteles. 4ádtelos. 4ád3telas. +4adle. 4eadla. 4adlo. +4ádsele. 4ádselo. 4ádsela. +4ádseles. 4ádselos. 4ádselas. +4adnos. +4ádnosle. 4ádnoslo. 4ádnosla. +4ádnosles. 4ádnoslos. 4ádnoslas. +4aos. +4áosle. 4áoslo. 4áosla. +4áosles. 4áoslos. 4áoslas. +4adles. 4adlas. 4adlos. +4ar. +4a4rme. +4á4rmele. 4á4rmelo. 4á4r3mela. +4á4r3meles. 4á4r3melos. 4á4r3melas. +4a4r3te. +4á4r3tele. 4á4r3telo. 4á4r3tela. +4á4r3teles. 4á4r3telos. 4á4r3telas. +4a4r3le. 4a4r3la. 4a4r3lo. +4a4r3se. +4á4r3sele. 4á4r3selo. 4á4r3sela. +4á4r3seles. 4á4r3selos. 4á4r3selas. +4a4r3nos. +4á4r3nosle. 4á4r3noslo. 4á4r3nosla. +4á4r3nosles. 4á4r3noslos. 4á4r3noslas. +4a3ros. +4árosle. 4ároslo. 4árosla. +4árosles. 4ároslos. 4ároslas. +4a4r3les. 4a4r3las. 4a4r3los. +% +4a3do. 4a3da. 4a3dos. 4a3das. +% +e5r4a3do. e5r4a3da. e5r4a3dos. e5r4a3das. +% +4ando +4ándole. 4ándolo. 4ándola. 4ándoles. 4ándolos. 4ándolas. +4ándonos. 4ándoos. +4ándome. 4ándomelo. 4ándomela. 4ándomele. +4ándomelos. 4ándomelas. 4ándomeles. +4ándote. 4ándoteme. +4ándotelo. 4ándotela. 4ándotele. +4ándotelos. 4ándotelas. 4ándoteles. +4ándotenos. +4ándose. 4ándoseme. +4ándoselo. 4ándosela. 4ándosele. +4ándoselos. 4ándoselas. 4ándoseles. +4ándosenos. +% +4a3dor. 4a3dora. 4a3dores. 4a3doras. +% +e5r4a3dor. e5r4a3dora. e5r4a3dores. e5r4a3doras. +% +/acto/ % (gal)acto, (l)acto +/afro/ +.a2 % a, an (prevent) +.an2a2 .an2e2 .an2i2 .an2o2 .an2u2 +.an2á2 .an2é2 .an2í2 .an2ó2 .an2ú2. +ana3lí +.aná3li +.ana3li +.an3aero +.an3e2pigr +.ane3xa .ane3xá .ane3xe .ane3xé .ane3xio .ane3xió +.an3h +.ani3mad .ani3mád +.ani3dar +.ani3ll +.ani3m +.aniña +.ani3q +.an3i2so .an3i2só +.ani3vel +.ano5che +.ano5din +.ano5mal +.ano5nad +.anó3nim +.anó5mal +.ano5nim +.ano5ta .ano3tá +.anua3l +.anua4lm +.anu3bl +.anu3da +.anu3l +asu3b2 +/aero/ +/anfi/ +/anglo/ +/ante/ +.ante2o3je +acante2 +4ísmo. 4ísmos. 4ísta. 4ístas. +4ístico. 4ísticos. 4ística. 4ísticas. +t4eo3nes. +mante4a +e4a3miento +/.anti/ +ti2o3qu ti2o3co +/archi/ +/auto/ +/biblio/ +/bio/ +bi1u2ní +/cardio/ +/cefalo/ +/centi/ +centi5área +/ciclo/ +o4i3dea. o4i3deas. o4i3dal. o4i3dales. +4o2i3de. 4o2i3des. 4i2dal. 4i2dales. +4i3deo. 4i3deos. +/cito/ +3c2neor +/cnico/ % (té)cnico +%?.co? +.co2a2 .co2e2 .co2i2 .co3o4 .co2u2 % Note coo +.co2á2 .co2é2 .co2í2 .co2ó2 .co2ú2 +co4á3gul +co4acci +co4acti +co4adju +co4a3dun +co4adyu +co3agen +co4a3gul +co4a3lic +co4aptac +co4art +co4árt +co4e3fic +co4erc +co4erz +co4e3tá +co3exis +co4imbr +co4inci +co4i3to +co3n4imbri +co4o3per +co4o3pér +co4opt +co4ord +con1imbr +con1urb +/cripto/ +/crono/ +/contra/ % -aer = +/deca/ % deca, (en)deca, -aer +4e3dro. 4e3dros. 4é3drico. 4é3dricos. 4é3drica. +4é3dricas. +/.de2s/ +deca2i3mient +decimo1 +3sa. 3sas. +*órde +*orde +*abast +*aboll +*aboto +*abr +desa3brid +*abroch +*aceit +*aceler +desa3cert +desa3ciert +*acobar +*acomod +*acomp +*acons +*acopl +*acorr +*acostum +*acot +desa3craliz +*acredit +*activ +*acuart +*aderez +*adeud +*adorar +*adormec +*adorn +*advert +*aferr +*afic +*afil +*afin +*afor +desa3gú +desa3garr +*agraci +*agrad +*agravi +*agreg +*agrup +*agu +desa3guisado +*aherr +*ahij +*ajust +*alagar +*alent +*alfom +*alfor +*aliñ +desa3lin +*alien +*aline +desa3liv +*alm +*almid +*aloj +*alquil +*alter +*alumbr +desa3marr +desa3mobl +*amold +*amort +*amuebl +*ampa +*and +*angel +de3sangr +*anid +*anim +*aním +*anud +desa3pañ +desa3pacib +*apadr +*apare +*aparec +*aparic +*apeg +*apercib +*apes +*aplic +*apolill +*apoy +*aprend +*apret +*apriet +*aprob +*apropi +*aprovech +*arbol +*aren +*arm +des4arme +*arraig +*arregl +*arrend +*arrim +desa3rroll +*arrop +*arrug +*articul +*asent +*asist +*asn +desa3soseg +desa3sosieg +*atenc +*atend +*atiend +*atent +desa3tin +*atorn +*atranc +*autor +*avis +desa3yun +desa3zón +desa3zon +*embal +*embál +*embar +*embár +*embarg +*embols +*emborr +*embosc +*embot +*embrag +*embrág +*embrave +*embráve +*embroll +*embróll +*embruj +*embrúj +de3semej +*empañ +*empáñ +*empac +*empaquet +*empaquét +*emparej +*emparéj +*emparent +*empat +*empé +*empedr +*empeg +*empeor +*emperez +*empern +*emple +*empolv +*empotr +*empoz +*enam +*encab +*encad +*encaj +*encáj +*encall +*encáll +*encam +de3sencant +*encap +*encar +*encár +*ench +*encl +*enco +*encr +*encu +*end +de3senfad +de3senfád +*enfi +*enfo +*enfó +de3senfren +*enfund +*enfur +de3sengañ +de3sengáñ +*enganch +*engar +*engas +*engom +*engoz +*engra +*enhebr +*enj +*enlad +*enlaz +*enlo +*enm +*enr +*ens +*enta +de3sentend +de3sentien +de3sentién +*enter +*entier +*entiér +*ento +*entr +*entu +*envain +de3senvolvim +de3seo +*eq +de3s4erci +de3s4ert +de3s4ért +*espa +de3sesperac +*esperanz +de3sesper +*estabil +*estim +de3sider +de3sidia +de3sidio +de3siert +de3sign +de3sigual +de3silusi +*imagin +*iman +*impon +*impresX +*incent +*inclin +*incorp +*incrust +de3sinenc +de3sinfec +de3su3dar de3su3das de3su3dan +*inflam +*infl +*inform +*inhib +*insect +*instal +de3s4integr +de3s4inter +*intox +*inver +*impres +de3sisten +de3isti +*obedec +*oblig +*obstr +de3socup +*odor +de3solac +de3solad +de3soll +*orej +*orient +de3sortij +*organi +de3suell +de3sonce +*ovi +*oxi +*oye +*oyé +de3s4ubstan +de3s4ustan +de3s4oseg +*ub4ic +*unir +*unier +*unim +.dieci1o2 +/dodeca/ +/ecano/ % (m)ecano +/eco/ +/ectro/ % (esp)ectro, (el)ectro +/.en2/ +%.en2a2 .en2e2 .en2i2 .en2o2 .en2u2 +%.en2á2 .en2é2 .en2í2 .en2ó2 .en2ú2 +.ene3mist .ene3míst +.eno3jar +.enu3mera .enu3merá +.enu3mere +4o3lógico. 4o3lógica. 4o3lógicos. 4o3lógicas. +4o3lógicamente. 4o3logía. 4o3logías. +4ó3logo. 4ó3loga. 4ó3logos. 4ó3logas. +/endo/ +/ento/ % (ci)ento +4emboca +/entre/ +/euco/ % (l)euco +/euro/ % euro, (n)euro +/extra/ +u4teri +.cau5t +.deu5t +/fono/ +/foto/ +/gastro/ +/geo/ +/gluco/ +/hecto/ +/helio/ +/hemato/ +/hemi/ +/hemo/ +2al. 2ales. +/hexa/ +/hidro/ +/hiper/ +pe3r4e3mia +/histo/ +/homo/ +/icono/ +.i2n2a2 .i2n2e2 .i2n2i2 .i2n2o2 .i2n2u2 +.i2n2á2 .i2n2é2 .i2n2í2 .i2n2ó2 .i2n2ú2 +.in3abord +.in3abarc +.in3acent +.in3aguant +.in3adapt +.ina3movib +.in3analiz +.ina3nic +.in3anim +.iná3nim +.in3apel +.in3aplic +.in3aprens +.in3apreci +.in3arrug +.in3asist +.iné3dit +.in3efic +.in3efici +.in3eludi +.ine3narr +.ini3cia .ini3ciá .ini3cie +.ino3cuo .ino3cua +.ino3cula .ino3culá .ino3cule +.inú3til +.inu3tiliz +/infra/ +/.inter/ +.in3ter2e3sa .in3ter2e3se .in3ter2e3so +.in3ter2e3sá .in3ter2e3sé .in3ter2e3só +.de3s4in3ter2e3sa .de3s4in3ter2e3se .de3s4in3ter2e3so +.de3s4in3ter2e3sá .de3s4in3ter2e3sé .de3s4in3ter2e3só +3te3ri3n 4te4r5i4nsu +.in3te3r4rog +.in3te3r4rupc .in3te3r4rupt .in3te3r4rump +/intra/ +/iso/ +/kilo/ +/macro/ +mal2 ma4l3h .ma4l3e4du mal3b mal3c mal3d mal3f mal3g +mal3m mal3p mal3q mal3s mal3t mal3v +bien2 bien3h bien3v bien3q bien3m bien3t +b4ien3do. .su3b4ien b4ien3das. +/maxi/ +/megalo/ +/mega/ +/melano/ +/micro/ +/mili/ +familia3ri ia5res. +amili6a a3rio +li5área +/mini/ +2os. 2o3so. 2o3sos. 2o3sa. 2o3sas. 2o3samente. +mini4a5tur +/multi/ +/miria/ +/mono/ +2i3co. 2i3cos. 2i3ca. 2i3cas. +/namo/ % (di)namo +/necro/ +/neo/ +/neto/ % (mag)neto +/norte/ +/octo/ +/octa/ +/oligo/ +/omni/ +i2o. i2os. +/paleo/ +/para/ +para2is. aí5so. aí5sos. +/penta/ +/piezo/ +/pluri/ +/poli/ +poli4u3r +poli4o5mie +poli4arq poli4árq +poli4éste +poli4andr +poli4antea +expoli4 +.pos2t2a2 .pos2t2e2 .pos2t2i2 .pos2t2o2 .pos2t2u2 +.pos2t2á2 .pos2t2é2 .pos2t2í2 .pos2t2ó2 .pos2t2ú2 +.pos3tin .pos3tín +pos3ta. pos3tas. +s3te. s3tes. s3tal. s3ta3les. +s3ti3lla. s3ti3llas. s3ti3llón. s3ti3llones. +.pos3tó3ni +.pos3terg +.pos3te3ri +.pos3ti3go +.pos3ti3la +.pos3ti3ne +.pos3ti3za .pos3ti3zo +.pos3tu3ra +s3tor. s3tora. s3toras. s3tores. +.pos3tu3la .pos3tu3lá .pos3tu3le .pos3tu3lé +.post3elec +.post3impr +.post3ind +.post3ope +.post3rev +.pre2a2 .pre2e2 .pre2i2 .pre2o2 .pre2u2 .pre2h2 +.pre2á2 .pre2é2 .pre2í2 .pre2ó2 .pre2ú2 +pre3elij pre3elig +pre3exis +pre3emin +preo3cup preo2cúp +pre3olí +pre3opin +.pro2a2 .pro2e2 .pro2i2 .pro2o2 .pro2u2 .pro2h2 +.pro2á2 .pro2é2 .pro2í2 .pro2ó2 .pro2ú2 +/proto/ +/radio/ +/ranco/ % (f)ranco +.re2a2 .re3e4 .re2i2 .re2o2 .re2u2 +.re2á2 .re2é2 .re2í2 .re2ó2 .re2ú2 +ea3cio. ea3cios. ea3cia. ea3cias. +.re3abr .re3ábr +.re3afirm .re3afírm +.re3ajust .rea3júst +.rea3liza .rea3lizá .rea3líza +.re3alim +.rea3lism .rea3list +.re3anim .re3aním +.re3aparec +.re3ubica .re3ubíca +.reu3mati .reu3máti +.re3unir .re3unír +.re3usar .re3usár +.re3utiliz .re3utilíz +/rmano/ % (ge)rmano +/retro/ +/romo/ % (c)romo +/sobre/ +/semi/ +i2a. i2as. +2ótic emi2o2 +/seudo/ % (p)seudo +o2os. +.so3a4s +/socio/ +a3rio. a3rios. +3logía +4ón. 4ones. +4i4er. +4o2ico. 4o2icos. 4o2ica. 4o2icas. +.su2b2a2 .su2b2e2 .su2b2i2 .su2b2o2 .su2b2u2 +.su2b2á2 .su2b2é2 .su2b2í2 .su2b2ó2 .su2b2ú2 +.sub2i3ll +.sub2i3mien +.sub3índ +.sub3ími +.su4b3ray +.sub3aflue +.sub3arr +.sub3enten +.sub3estim .sub3estím +.sub3ofici +.sub3urba +.sub3alter +.sub3insp +.su3bién +.su3bir +.su3bam +.su3bordin .su3bordín +.sub3acuá +.sub3espe +.sub3esta +.su3burbi +.su4b5rein +/super/ % -ar +supe3r4a4r supe3r4á4r +supe3r4á3vit. supe3r4á3vits. +4a3ción. 4a3ciones. +4e3rior. 4e3riores. 4e3riora. 4e3rioras. 4e3riormente. +4e3rioridad. 4e3rioridades. +4e3ra3ble. 4e3ra3bles. 4e3ra3blemente. +pe5r4ante +perpon5d6r +/supra/ +sup6ra +/talmo/ % (of)talmo +/tele/ +4ósteo. 4ósteos. +/termo/ +/tetra/ +/topo/ +/tropo/ % (ant)ropo +poi3de. poi3des. +/ultra/ +/xeno/ +inter4és +inter4esar +inter4in +inter4ino +inter4ior +mili4ar +mili4ario +para4íso +para4ulata +super4able +super4ación +super4ior +tran4sacc +trans4ar +trans4eúnte +trans4iber +trans4ición +trans4ido +trans4igen +trans4igir +trans4istor +trans4itab +trans4it +trans4itorio +trans4ubsta +ultra4ísmo +wa3s4h +.bi1anual +.bi1aur +.bien1and +.bien1apa +.bien1ave +.bien1est +.bien1int +.bi1ox +.bi1ó2x +.bi1un +.en1aceit +.en1aciy +.en1aguach +.en1aguaz +.en1anch +.en1apa +.en1arb +.en1art +.en2artr +.en1ej +.hepta1e +.intra1o +.intra1u +.mal1acon +.mal1acos +.mala1e +.mal1andant +.mal1andanz +.mal1est +.mal1int +.pa4n1a4meri +%.pan1esl +.pa4n1europ +.pa4n1afri +%.pan1isl +.pa4n1ópti +3p2sic +3p2siq +.re3a2eg +.re3a2q +.re3a2z +.re3a2grup +.re3i2m +.re3inc +.re3ing +.re3ins +.re3int +.re3o2b +.re1oc +.re1oj +.re3orga +.re1unt +.retro1a +.su2d1a2fr +.su2d1a2me +.su2d1est +su4d3oes +.sur1a2me +.sur1est +.sur1oes +.tele1imp +.tele1obj +.tra2s1a +.tra2s1o +.tra2s2oñ +.tran2s1alp +.tran2s1and +.tran2s1atl +.tran2s1oce +.tran2s1ur +.tri1ó2x +% pos (impedir) = +% tri = (faltan ex) +% uni = (faltan excep) +%conjugar ir +% /miriá/ +% des3ojar/VX +% desistir dejar +% desoír/QWY +% des3escombrar/VX +% desenvoltu evitar +% desenvolver +% de3senlace % evitar +% desempeñar % evitar
\ No newline at end of file diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb index 9e416fb0e05..61e88d89917 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb @@ -20,7 +20,7 @@ # open file for writing the patterns # $file = File.new("hyph-eu.tex", "w") # in TDS -$file = File.new("../../../../../tex/generic/hyph-utf8/patterns/hyph-eu.tex", "w") +$file = File.new("../../../../../tex/generic/hyph-utf8/patterns/tex/hyph-eu.tex", "w") # write comments into the file def add_comment(str) 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 9f173c0f05a..6154587b019 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README @@ -1,24 +1,25 @@ This directory contains seven files + README, licensed all but one under lppl 1.3: glpatter-utf8.tex: - The source file, version 2.3a. When processed under the program - mkpatter ---by typing 'initex glpatter-utf8.tex' (without the quotes) - on the command line, provided you have the utility - mkpattern installed--- it generates the file hyph-gl.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 aditional patterns other - than the ones in glpatter.tex. It is \input by glpatter.tex. + 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 very welcome. +The files for specific patterns are very incomplete and feedback is welcome. ---Javier A. +--Javier A. Mgica diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex index b565484f2e9..16126bbbcc5 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex @@ -1,16 +1,16 @@ -% This is the file glpatter.tex, version 2.3a +% This is the file glpatter-utf8.tex, version 2.4 % It is the source file for the Galician patterns -% -% (c) Javier A. Múgica; 2006, 2007, 2008 +% +% (c) Javier A. Múgica; 2006, 2007, 2008, 2010 % License: LPPL version 1.3 -% +% % LPPL maintenance status: maintained % Current Maintainer: Javier A. Múgica % % % The patterns follows approximately the scheme developed by Javier Bezos for esphyph.tex % In order to generate the patterns just type -% tex --ini --8bit glpatter-utf8.tex +% tex -ini -8bit glpatter-utf8.tex % % For bug reports and comments: % @@ -19,11 +19,6 @@ \filename{hyph-gl.tex} \tracingexceptions=1 -%The following is just a definition that will not be used. (See 25 lines below) -\begin{code} - \def\Ti{\encodingreplacements{á é í ó ú ñ ü ï}{^^e1 ^^e9 ^^ed ^^f3 ^^fa ^^f1 ^^fc ^^ef}} -\end{code} - &Va={a e o} &Vp={i u} &Vi={&Va u} @@ -33,39 +28,35 @@ &Vai={a i} &Vvac={á é í} &L={l r} -%ñ non se inclúe nos seguintes grupos -&C-={b c d f g h k m n p q s t v w x z} %Consoantes excepto as líquidas -&C={&C- l r} -&Cl={b c d f g k p t v} %As que van unidas á líquida, agás r e l -&C!l={m n q s x y z h}%As que van separadas da líquida, agás l e r -&G={b c d l m n r s t x}%Consoante inicial de certos grupos pouco frecuentes +% ñ non se inclúe nos seguintes grupos +&C={b c d f g h k l m n p r s t v x z} % Consoantes habituais +&Cl={b c d f g k p t v} % As que van unidas á líquida, agás r e l +&G={b c d l m n r s t x} % Posibles consoante precedente a certos grupos pouco frecuentes \templatedef{prefixos}{#1&{V}2} -\templatedef{3a_ppi}{#2u3 \newline} %3a. persoa do perfecto de indicativo, rematadas en -ou, -eu, -iu. - %O confilcto cun prefixo máis habitual é na primeira conxugación. +\templatedef{3a_ppi}{#2u3 \newline} % 3a. persoa do perfecto de indicativo, rematadas en -ou, -eu, -iu. + % O confilcto cun prefixo máis habitual é na primeira conxugación. % -%Uncomment the %\Ti line if you want T1 paterns, and the %\letters line if you want those characters -%to be catcoded as letters and the correspoding caplital ones to be assigned the right \lcode. -%In that case you will need an utf-8 engine to process this file (luatex or xetex) or, better, use the -%single-byte encoded version of this fie: glpatter.tex. +% Uncomment the %\letters line if you want those characters to be catcode as letters +% and the correspoding caplital ones to be assigned the right \lcode. In that case an utf-8 +% engine (luatex or xetex) to process this file is mandatory. % -%\Ti -%\letters{á é í ó ú ñ ü ï} +% \letters{á é í ó ú ñ ü ï} -%The commented lines that follow will be placed in the generated file, -%and do not apply to this file. +% The commented lines that follow will be placed in the generated file, +% and do not apply to this file. \expandafter\let\expandafter\lee\csname ~~lee\endcsname \keepcomments -% This is the file hyph-gl.tex, version 2.3a-utf8 +% This is the file hyph-gl.tex, version 2.4 % Hyphenation patterns for Galician, written in the utf8 encoding. % -% Generated with the mkpattern utility (v. 1.1), on 2008/06/22. +% Generated with the mkpattern utility (v. 1.2), on 2010/04/23 % The original source file were glpatter-utf8.tex % This is a generated file % -% (c) Javier A. Múgica; 2006, 2007, 2008 +% (c) Javier A. Múgica; 2006, 2007, 2008, 2010 % License: LPPL version 1.3 -% +% % LPPL maintenance status: maintained % Current Maintainer: Javier A. Múgica % @@ -85,41 +76,37 @@ a1a e1e o1o zo2o a1á e1é o1ó 2&{Va}&{Vp}. &{Vi}1i&{Va+} 2i&{Va+}. \newline -\exceptions{2ch 2gh 2kh}{} -\exceptions{t2l 2tl.}{} 1ñ -1&{C} -2&{C}&{C-} -c4h 2ch. 2g2h 2k2h \newline +1&{C}&{V} +1qu2 1c2h 2ch. 1g2h 2gh. 2k2h \newline % gh é normalmente usado para representar a gheada \newline -&{Cl}2&L 2&{Cl}&L. -2&{C!l}&L +\exceptions{1t2l 2tl.}{2t2l,} +1&{Cl}2&L 2&{Cl}&L. -2t2l \newline -2lr l4l 2ll. -2rl r2r 2rr. +1l4l 2ll. 1r2r 2rr. -\template{2&G3#} +\template{&G1#} p2t c2t c2n p2s m2n g2n f2t p2n c2z t2s \end{template} -san4c5t plan4c5t +san2c3t plan2c3t -\template{4#.} +\template{2#.} pt ct cn ps mn gn ft pn cz ts \end{template} -un4ha 2non. 3mente. o2hib alde2h \newline +un2ha 2non. 3mente. o2hib alde2h \newline \newline -%palabras malsonates +% palabras malsonates 4caca4 4cago4 4caga4 4cagas. 4puta4 4puto4 4meo. 4mea. \newline 4meable. 4meables. 4peido4 -\exceptions{.pre1á2 .su2b1i2 .su2b1í2}{} %If duplicate patterns were simply added... -\exceptions{.pre2á}{.pre2á2} %This is error prone. I think that writting -\exceptions{.sub2i .sub2í}{.su2b2i2,.su2b2í2}%all the exceptions here together is the best that can be done. -\begin{prefixos} %Prefixos -acto afro aero anfi anglo .ante .anti .arqui auto -biblio bio cardio cefalo ciclo cito contra cripto cromo crono +\exceptions{.co1á2}{} +\exceptions{.pre1á2 .su2b1i2 .su2b1í2}{} % If duplicate patterns were simply added... +\exceptions{.pre2á}{.pre2á2} % This is error prone. I think that writting +\exceptions{.sub2i .sub2í}{.su2b2i2,.su2b2í2} % all the exceptions here together is the best that can be done. +\begin{prefixos} % Prefixos +acto afro aero anfi anglo .ante .anti .arqui auto biblio bio +cardio cefalo ciclo cito .co contra cripto cromo crono deca .deza dinamo ecano eco electro endo ento entre euco euro extra fono foto franco gastro xeo hecto helio hemato hemi hexa hidro hipe2r histo homeo homo @@ -127,26 +114,24 @@ ibero icono .in .indo infra .inte2r intra .iso kilo macro magneto maxi mega megalo melano micro mili mini multi miria mono .nano necro .neo norte octo octa omni paleo para penta piezo pluri poli .pos2t .pre -.pro proto pseudo radio retro sobre semi -socio .su2b super supra .tele termo tetra topo +.pro proto pseudo radio .re retro sobre semi +socio .su2b supe2r supra .tele termo tetra topo .tri tropo ultra xeno \end{prefixos} +\template{#3r} % prefixos rematados en r +hiper .inter super +\end{template} + \newline ti2o3qu ti2o3co bi1u2ní o2i3de o2i3dal -deca2e3ment 2al. 2a2is. -pe3r2e3mia -hiper3r \newline -famili2a familia3r -mini2a3tur -para2u3gas -paraí3so +pe3r2e3mia \newline \begin{3a_ppi} -\put{%Terceiras persoas do pasado perfecto}\newline +\put{% Terceiras persoas do pasado perfecto}\newline libero atopo enaxeno \end{3a_ppi} @@ -155,18 +140,15 @@ libero atopo enaxeno 2i3co. 2i3cos. 2i3ca. 2i3cas. \newline \newline -\put{%O prefixo co} -\exceptions{.co1á2}{} -.co1&V2 - -%Pode non ser prefixo (expecto os derivados de coar) +\put{% Excepcións ó prefixo co} +% Pode non ser prefixo (expecto os derivados de coar) \template{.co2# \newline} -\put{%Formas do verbo coar con pronomes enclíticos}\newline ar á2 abá +\put{% Formas do verbo coar con pronomes enclíticos}\newline ar á2 abá acerv andro ano añar año art etan enci erci inci ira iro ita \end{template} -%Non é prefixo (os que non son da forma &V3 non necesitan ir un por un) -\template{co2# \newline} %Non é necesario coia, coiote +% Non é prefixo (os que non son da forma &V3 non necesitan ir un por un) +\template{co2# \newline} % Non é necesario coia, coiote a3gul á3gul a3la. a3las. a3lescen a3lición. a3licions. a3na. a3nas. antriñ a3ñadeir a3tí. a3tís. e3ficien e3lernos. e3llo. e3lla. e3llos. e3llas. e3lleir enll enxía e3sita. e3sitas. e3táne e3vo. e3va. e3vos. e3vas. @@ -176,19 +158,21 @@ i3tel i3tío. i3tus. u3c u3lomb u3try u3qui u3rel u3sa. u3sas. u3so. u3sos. u3selo u3tad u3to. u3tos. u3vini u3z \end{template} +deca2e3ment + \newline -\put{%O prefixo des} +\put{% O prefixo des} .de2s1&{V}2 3se. 3s2es. 3sa. 3s2as. de3s2outr 3s2emos. 3s2edes. 3s2en. \exceptions{de3s2esper}{de3s2esper de4s3esperanz} -\template{de3s2# \newline} %Prefixos .de (máis ou menos) +\template{de3s2# \newline} % Prefixos .de (máis ou menos) a3crali a3guisa a3lini a3ngr a3ñ a3rrollis astr a3zo e3c e3que e3guid e3la ensib e3ñ ert ért esper e3pér e3x é3x i3der ign ígn i3nenc ingr iste isti o3lac o3lad old o3lidari uetud sulf \end{template} -\template{.des2# \newline} %Prefixos dubidosos ou afastados da orixe etimolóxica. Non se inclúen os que por ser moi breves poderían coincidir con prefixos .des formados ad hoc, xa que impedirían a división de palabras comúns (desecar, deselar). +\template{.des2# \newline} % Prefixos dubidosos ou que sa non se notan. Non se inclúen os que por ser moi breves poderían coincidir con prefixos .des formados ad hoc, xa que impedirían a división de palabras comúns (desecar, deselar). abor afia afía afío air emboc embóc empeñ empéñ enlac enlaz enlác enláz envol envól idia ora \end{template} @@ -196,88 +180,128 @@ envol envól idia ora \keepcomments \newline -%Excepcións ó prefixo in +% Excepcións ó prefixo in \template{.in2# \newline} -a3misib. a3mov a3ne. a3nic a3nid á3nime antes. au e3dia é3dit e3fab e3narr +a3misib. a3mov a3ne. a3nic a3nid á3nime antes. au e3dia é3dit e3fab e3narr epc ept erc ert erm erv e3siv e3xora i3ci i3cu i3mig i3miza i3qui -o3cen o3cui o3cuo o3cul ó3cul o3pia. o3sili o3sit o3tróp o3trop uit u3lase u3lina +o3cen o3cui o3cuo o3cul ó3cul o3pia. o3sili o3sit o3tróp o3trop uit u3lase u3lina unda u3sita ú3til \end{template} in2o4cular \newline \newline -%Excepcións ó prefixo inter -.inter3r +% Excepcións ó prefixo inter \template{.inte3r2#} és. e3sa é3sa e3sá e3so é3so e3só ior i3no. i3nos. i3na. i3nas. i3nid \end{template} \newline -%Os prefixos mal e ben +% Os prefixos mal e ben \exceptions{.be2n1e2 .be2n1é2 .ma2l1e2 .ma2l1é2}{.be2ne2, ,.ma2le2, } \halfcomments .be2n1&{V}2 -\template{be3n2# \newline} %Non é prefixo (ou non se nota) -ign i3merí i3nés i3nes i3toíta +\template{be3n2# \newline} % Non é prefixo (ou non se nota) +ign i3merí i3nés i3nes i3toíta \end{template} \newline .ma2l1&{V}2 -\template{.mal2# \newline} %Pode non ser prefixo +\template{.mal2# \newline} % Pode non ser prefixo abar abár aco acó armad ogr ura axa \end{template} -\template{ma3l2# \newline} %Non é prefixo. Non é neceario malos, malas +\template{ma3l2# \newline} % Non é prefixo. Non é neceario malos, malas a3cía a3citan a3gueñ aio aia andrín andrin a3quita ar. a3res. a3ria. a3to. a3tos. a3ta. a3tas. a3tión aui eabl eabil eico eolar e3ta. e3tas. e3tín e3teiro eza ia. ian i3cia i3cios ign i3kita inke ó3fago ó3nic o3nato o3nilue \end{template} ma4l3ianq -\template{.mal1# \newline} %É prefixo e comenza por e +\template{.mal1# \newline} % É prefixo e comenza por e educ encar ensin entend \end{template} \newline -\put{%Excepcións ó prefixo poli} +\put{% Excepcións ó prefixo mili} +famili2a familia3r +\template{mili#} +2a3rio 2a3ria +\end{template} + +mini2a3tur + +\newline +\put{% Excepcións ó prefixo para} +\template{para2#} +u3gas í3so +\end{template} + +\newline +\put{% Excepcións ó prefixo poli} \template{poli2# \newline} u3r o3me arq árq éste andr antea \end{template} expoli2 \newline -\put{%Excepcións ó prefixo post} -\template{pos3t2# \newline} +\put{% Excepcións ó prefixo post} +\template{.pos3t2# \newline} a. as. al. ais. a3llo e. es. ear. e3la. e3las. er. erg e3rid e3rior i3go i3la -illón ín. i3te. i3zo. i3zos. i3za. i3zas. os. oiro ó3ni u3la u3lo u3le u3ra. u3ras. +illón ín. i3te. i3zo. i3zos. i3za. i3zas. o. os. oiro ó3ni u3la u3lo u3le u3ra. u3ras. \end{template} \newline -\put{%Excepcións ó prefixo pre} -\template{.pre2# \newline} %Poden non ser prefixos -amar \put{%Formas do verbo prear con pronomes enclíticos}\newline ar á abá +\put{% Excepcións ó prefixo pre} +\template{.pre2# \newline} % Poden non ser prefixos +amar \put{% Formas do verbo prear con pronomes enclíticos}\newline ar á abá \end{template} -\template{pre2# \newline} %Non son prefixos +\template{pre2# \newline} % Non son prefixos as. a3da. a3das. á2 abá i3t o3cup o3cúp \end{template} \newline -\put{%Excepcións ó prefixo pro} -\template{pro2# \newline} %Non son prefixos. Non é necesario proer +\put{% Excepcións ó prefixo pro} +\template{pro2# \newline} % Non son prefixos. Non é necesario proer e3za í3do ust \end{template} \newline -\exceptions{.re2e2 .re2é2}{.ree2,.reé2} -\put{%O prefixo re} %Faltan excepcións -.re2&{V}2 +\put{% Excepcións ó prefixo re} % Faltan excepcións +\template{.re2#} +al a3liz a3lidade in i3no. i3nos i3nante iter \newline +i3xa os. as. u3ma ú3ma ún uni +\end{template} + +\put{% Verbo reunir} +% No é tan problemáticos coma subir +\template{re2u3n#} +ión. ións. ir írmo íren \newline % ir inclúe varias formas. Penso que re3u4nirr no paga a pena +ido. idos. ida. idas. ind \newline +o. es. e. imos. ímo en. \newline % ides. incuído en ide, enbaixo +ía i3amos. i3ades. \newline +ín. iches. iu. istes. íst iron. \newline +a. as. amos. ades. an. \newline +ise íse \newline +ide íde ámo áde +\end{template} + +\put{% Verbo reinar} +% No é tan problemáticos coma subir +\template{re2i3n#} +ar ado. ados. and \newline +a. as. amos. ades. an. \newline % ides. incuído en ide, enbaixo +aba. abas. abamos. ábamos. abades. ábades. \newline % hay moitas palabras que comenzan por inaba +ei. aches. ou. astes. aron. \newline +e. es. emos. edes. en. \newline +ase. ases. asemo. asedes. áse asen. \newline % idem., inase +ade. +\end{template} - \newline -\put{%O prefixo sub: l, r e excepcións}\newline +\put{% O prefixo sub: l, r e excepcións}\newline .su2b3l .su2b3r -\template{.sub2# \newline} %Poden non ser prefixos -\put{%Formas do verbo subir con pronomes enclíticos}\newline i í +\template{.sub2# \newline} % Poden non ser prefixos +\put{% Formas do verbo subir con pronomes enclíticos}\newline i í eriz orna \end{template} \newline @@ -287,7 +311,7 @@ sub3índic sub3indic sub3indiz lev lim \end{template} -\template{su3b2# \newline} %Non son prefixos +\template{su3b2# \newline} % Non son prefixos e3la. e3las. é3rico e3rina. e3rinas. eroso iote ulado orno. ornos. urbio \end{template} \template{su3b4# \newline} @@ -295,55 +319,56 @@ liminar repción reptici \end{template} \newline -\put{%Excepcións ó prefixo tri} -\template{tri2# \newline} %Non son prefixos (ou non se nota) -a3ga. a3gas. al. a3les. angul á3sico. estin %(De Trieste) +\put{% Excepcións ó prefixo tri} +\template{tri2# \newline} % Non son prefixos (ou non se nota) +a3ga. a3gas. al. a3les. angul á3sico. estin % (De Trieste) unf unvir \end{template} \newline -\put{%Excepcións a varios prefixos que son terminacións verbais} -%As combinacións con pronomes enclíticos (son centos) -%deberanse evitar nos patróns de cada prefixo cando sexa necesario -%Inclúense as combinacións máis habituais +\put{% Excepcións a varios prefixos que son terminacións verbais}\newline +\put{% Inclúense as variantes de acentuación abamos/ábamos, etc.} +% As combinacións con pronomes enclíticos (son centos) +% deberanse evitar nos patróns de cada prefixo cando sexa necesario +% Inclúense as combinacións máis habituais \template{2&{Vai}#.} -3do 3da 3dos 3das ndo r %inf. xer. part. +3do 3da 3dos 3das ndo r % inf. xer. part. \end{template} \template{2&{Vv}#.} -3res rmos rdes 3ren \newline %inf. conx. -rme rte rlle rnos rvos rlles %inf. con pron. indir. +3res rmos rdes 3ren \newline % inf. conx. +rme rte rlle rnos rvos rlles % inf. con pron. indir. \end{template} \template{2&{Vv}3#.} -dor dora dores doiro doiros doira doiras deiro deiros deira deiras %subst. deriv. -lo los la las %inf. con pron. dir. -rei rás rá remos redes rán \newline %futuro -ría rías ri1amos ri1ades rían \newline %cond. -de %imp. +dor dora dores doiro doiros doira doiras deiro deiros deira deiras % subst. deriv. +lo los la las % inf. con pron. dir. +rei rás rá remos redes rán \newline % futuro +ría rías ri1amos ríamos ri1ades ríades rían \newline % cond. +de % imp. \end{template} \template{2&{Vvac}3#.} -deo dea deos deas %imp. con pron. dir. +deo dea deos deas % imp. con pron. dir. \end{template} \template{2#.} -%coar, inar, entrenar, prear, superar +% coar, inar, entrenar, prear, superar as a3mos a3des an \newline -a3ba a3bas a3bamos a3bades a3ban \newline +a3ba a3bas a3bamos á3bamos a3bades á3bades a3ban \newline a3ches astes a3ron \newline es e3mos e3des en \newline a3se a3ses á3semos á3sedes a3sen \newline \end{template} -%pero permitimos a ruptura para coar, prear, voar, cear, capear... -%cando o "a" ou "e" temático é tónico (ou casi). +% pero permitimos a ruptura para coar, prear, voar, cear, capear... +% cando o "a" ou "e" temático é tónico (ou casi). \template{o3#.} ar ado ada ados adas ando \newline ares armos ardes aren \newline arme arte arlle arnos arvos arlles \newline -alo alos ala alas \newline %incúe algunhas outras (coala) +alo alos ala alas \newline % incúe algunhas outras (coala) ade ádeo ádea ádeos ádeas \newline as amos ades an \newline -aba abas abamos abades aban \newline +aba abas abamos ábamos abades ábades aban \newline aches astes aron \newline es emos edes en \newline ase ases ásemos ásedes asen \newline @@ -352,45 +377,63 @@ ase ases ásemos ásedes asen \newline ar ado ada ados adas ando \newline ares armos ardes aren \newline arme arte arlle arnos arvos arlles \newline -alo alos ala alas \newline %incúe algunhas outras (coala) +alo alos ala alas \newline % incúe algunhas outras (coala) ade ádeo ádea ádeos ádeas \newline as amos ades an \newline -aba abas abamos abades aban \newline +aba abas abamos ábamos abades ábades aban \newline aches astes aron \newline es emos edes en \newline ase ases ásemos ásedes asen \newline \end{template} \template{2#.} -%subir +% subir i3mos i3des \newline -ía í3as í3an \newline %2iamos, 2iades estropearía moitos verbos (ca-ia-mos... ) +ía ías íamos íades ían \newline % 2iamos, 2iades estropearía moitos verbos (ca-ia-mos... ) ... ín i3ches iu istes i3ron \newline % O pres. subx. coincide con pres. ind. da 1ª i3se i3ses í3semos í3sedes i3sen -%contraer, decaer, extraer -%Pres. subx. xa se divide ben +% contraer, decaer, extraer +% Pres. subx. xa se divide ben \end{template} \newline í3do í3da í3dos í3das -%Conxugación completa do verbo subir +% Conxugación completa do verbo subir \template{.su3b#.} ir indo ido ida idos idas \newline ires irmos irdes iren \newline o es e imos ides en \newline -ía ías 2i3amos 2i3ades ían \newline %por eso incluímolos só aquí. +ía ías 2i3amos íamos 2i3ades íades ían \newline % ... por eso incluímolos só aquí. ín iches iu istes iron \newline irei irás irá iremos iredes irán \newline -iría irías iriamos iriades irían \newline +iría irías iriamos iríamos iriades iríades irían \newline a as amos ades an \newline ise ises ísemos ísedes isen \newline -ide ídeo ídea ídeas +ide ídeo ídeos ídea ídeas \newline +ador adora adores adoras % posibles derivados \end{template} -%para verbos rematados en -aer, permitimos a división -%cando a vocal temática tónica e aberta e, salvo inf., -%non é a última sílaba. +% Conxugación completa do verbo superar +\template{.supe3r#.} +ar ando ado ada ados adas \newline +ares armos ardes aren \newline +a as amos ades an \newline +aba abas abamos ábamos abades ábades aban \newline +ei aches ou astes aron \newline +arei arás ará eremos eredes arán \newline +aría arías ariamos aríamos ariades aríades arían \newline +e es emos edes en \newline +ase ases ásemos ásedes asen \newline +ade ádeo ádeos ádea ádeas \newline +ador adora adores adoras ación % derivados +\end{template} + +supe3r2ior supe3r2a3ble supe3r2a3bilidade + +% para verbos rematados en -aer, permitimos a división +% cando a vocal temática tónica e aberta e, salvo inf., +% non é a última sílaba. \template{a3#.} er endo \newline eres ermos erdes eren \newline @@ -398,13 +441,13 @@ erme erte erlle ernos ervos erlles \newline elo elos ela elas \newline ede édeo édea édeos édeas \newline emos edes eron \newline -ese eses esemos esedes esen +ese eses esemos ésemos esedes ésedes esen \end{template} -%par-ti-a-mos, di-ci-amos, fa-ci-amos, etc., pero aso-cia-mos, etc. +% par-ti-a-mos, di-ci-amos, fa-ci-amos, etc., pero aso-cia-mos, etc. -%The new programs allow to input patterns at run time, so including -%the extras in the format is not right. -%\mkinput{glhyextr.tex} +% The new programs allow to input patterns at run time, so including +% the extras in the format is not right. +% \mkinput{glhyextr.tex} \end{pseudopatterns} \end{} diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/hy/generate_patterns_hy.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages/hy/generate_patterns_hy.rb new file mode 100755 index 00000000000..b2431bcf6b4 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/hy/generate_patterns_hy.rb @@ -0,0 +1,69 @@ +#!/usr/bin/env ruby +# +# This script generates TeX hyphenation patterns for Armenian +# +# Rules written by Sahak Petrosyan <sahak at mit.edu> (author) +# +# These are just primitive rules that says that if there is a +# combination like <vowel><consonant><vowel>, then it should hyphenate +# like this: <vowel> - <consonant><vowel>. +# +# There are more rules to implement +# +# Script written by Mojca Miklavec <mojca.miklavec.lists at gmail.com> +# (who is not the author of patterns) +# +$file = File.new("../../../../../tex/generic/hyph-utf8/patterns/tex/hyph-hy.tex", "w") + +# write comments into the file +def add_comment(str) + $file.puts "% " + str.gsub(/\n/, "\n% ").gsub(/% \n/, "%\n") +end + +vowels=%w{ա ե է ը ի ո օ} +consonants=%w{բ գ դ զ թ ժ լ խ ծ կ հ ձ ղ ճ մ յ ն շ չ պ ջ ռ ս վ տ ր ց փ ք} + +add_comment( +"Hyphenation patterns for Armenian. + +Written by Sahak Petrosyan <sahak at mit.edu> + for Hyphenator.js (http://code.google.com/p/hyphenator/) + and later adapted for TeX + +Licence: LGPL +Version: May 2010 + +These are just primitive rules that hyphenate combinations like +<vowel> - <consonant><vowel>. + +File auto-generated by a script (see source/generic/hyph-utf8/languages/hy) + +Vowels: #{vowels.join(" ")} +Consonants: #{consonants.join(" ")} + +Some of the patterns below represent combinations that never +appear in Armenian, but they would be hyphenated according to the rules. +") + +$file.puts '\patterns{' + +add_comment( +"և-<vowel>") +vowels.each do |vowel| + $file.puts "և1#{vowel}" +end + +add_comment( +"<vowel>-<consonant><vowel>") +vowels.each do |v1| + consonants.each do |c| + patterns = [] + vowels.each do |v2| + patterns.push "#{v1}1#{c}#{v2}" + end + $file.puts patterns.join(" ") + end + $file.puts "%" +end + +$file.puts "}" diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/tk/generate_patterns_tk.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages/tk/generate_patterns_tk.rb index 072ea34de52..9e6b3d95581 100755 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/tk/generate_patterns_tk.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/tk/generate_patterns_tk.rb @@ -7,7 +7,7 @@ # open file for writing the patterns # $tr = File.new("hyph-tk.tex", "w") # in TDS -$tr = File.new("../../../../../tex/generic/hyph-utf8/patterns/hyph-tk.tex", "w") +$tr = File.new("../../../../../tex/generic/hyph-utf8/patterns/tex/hyph-tk.tex", "w") # write comments into the file def add_comment(str) diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb index f387c18eaa6..f89440ae17a 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb @@ -30,7 +30,7 @@ # open file for writing the patterns $tr = File.new("hyph-tr.tex", "w") # in TDS -$tr = File.new("../../../../../tex/generic/hyph-utf8/patterns/hyph-tr.tex", "w") +$tr = File.new("../../../../../tex/generic/hyph-utf8/patterns/tex/hyph-tr.tex", "w") # write comments into the file def add_comment(str) |