From e014abd54bc5f8a677ebe892cf497bf2732980c6 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sun, 29 Jun 2008 17:44:16 +0000 Subject: update hyph-utf8 from CTAN git-svn-id: svn://tug.org/texlive/trunk@9089 c570f23f-e606-0410-a88d-b1316a301751 --- .../generic/hyph-utf8/data/encodings/il2.dat | 128 +++++++ .../generic/hyph-utf8/generate-converters.rb | 2 +- .../generic/hyph-utf8/generate-pattern-loaders.rb | 30 +- .../source/generic/hyph-utf8/generate-tl-files.rb | 22 +- .../source/generic/hyph-utf8/languages.rb | 27 +- .../hyph-utf8/languages/eu/generate_patterns_eu.rb | 137 +++++++ .../source/generic/hyph-utf8/languages/gl/README | 24 ++ .../generic/hyph-utf8/languages/gl/glhybiox.tex | 25 ++ .../generic/hyph-utf8/languages/gl/glhyextr.tex | 7 + .../generic/hyph-utf8/languages/gl/glhymed.tex | 19 + .../generic/hyph-utf8/languages/gl/glhyquim.tex | 19 + .../generic/hyph-utf8/languages/gl/glhytec.tex | 19 + .../generic/hyph-utf8/languages/gl/glhyxeog.tex | 25 ++ .../hyph-utf8/languages/gl/glpatter-utf8.tex | 410 +++++++++++++++++++++ .../source/generic/hyph-utf8/languages/tr/README | 61 +++ .../hyph-utf8/languages/tr/generate_patterns_tr.rb | 113 ++++++ 16 files changed, 1054 insertions(+), 14 deletions(-) create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/data/encodings/il2.dat create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhybiox.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyextr.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhymed.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyquim.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhytec.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyxeog.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/tr/README create mode 100644 Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb (limited to 'Master/texmf-dist/source/generic') diff --git a/Master/texmf-dist/source/generic/hyph-utf8/data/encodings/il2.dat b/Master/texmf-dist/source/generic/hyph-utf8/data/encodings/il2.dat new file mode 100644 index 00000000000..421230ecc3c --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/data/encodings/il2.dat @@ -0,0 +1,128 @@ +0x80 U+0080 +0x81 U+0081 +0x82 U+0082 +0x83 U+0083 +0x84 U+0084 +0x85 U+0085 +0x86 U+0086 +0x87 U+0087 +0x88 U+0088 +0x89 U+0089 +0x8A U+008A +0x8B U+008B +0x8C U+008C +0x8D U+008D +0x8E U+008E +0x8F U+008F +0x90 U+0090 +0x91 U+0091 +0x92 U+0092 +0x93 U+0093 +0x94 U+0094 +0x95 U+0095 +0x96 U+0096 +0x97 U+0097 +0x98 U+0098 +0x99 U+0099 +0x9A U+009A +0x9B U+009B +0x9C U+009C +0x9D U+009D +0x9E U+009E +0x9F U+009F +0xA0 U+00A0 +0xA1 U+0104 Aogonek +0xA2 U+02D8 breve +0xA3 U+0141 Lslash +0xA4 U+00A4 currency +0xA5 U+013D Lcaron +0xA6 U+015A Sacute +0xA7 U+00A7 section +0xA8 U+00A8 dieresis +0xA9 U+0160 Scaron +0xAA U+015E Scedilla +0xAB U+0164 Tcaron +0xAC U+0179 Zacute +0xAD U+00AD +0xAE U+017D Zcaron +0xAF U+017B Zdotaccent +0xB0 U+00B0 degree +0xB1 U+0105 1 aogonek +0xB2 U+02DB ogonek +0xB3 U+0142 1 lslash +0xB4 U+00B4 acute +0xB5 U+013E 1 lcaron +0xB6 U+015B 1 sacute +0xB7 U+02C7 caron +0xB8 U+00B8 cedilla +0xB9 U+0161 1 scaron +0xBA U+015F 1 scedilla +0xBB U+0165 1 tcaron +0xBC U+017A 1 zacute +0xBD U+02DD hungarumlaut +0xBE U+017E 1 zcaron +0xBF U+017C 1 zdotaccent +0xC0 U+0154 Racute +0xC1 U+00C1 Aacute +0xC2 U+00C2 Acircumflex +0xC3 U+0102 Abreve +0xC4 U+00C4 Adieresis +0xC5 U+0139 Lacute +0xC6 U+0106 Cacute +0xC7 U+00C7 Ccedilla +0xC8 U+010C Ccaron +0xC9 U+00C9 Eacute +0xCA U+0118 Eogonek +0xCB U+00CB Edieresis +0xCC U+011A Ecaron +0xCD U+00CD Iacute +0xCE U+00CE Icircumflex +0xCF U+010E Dcaron +0xD0 U+0110 Dcroat +0xD1 U+0143 Nacute +0xD2 U+0147 Ncaron +0xD3 U+00D3 Oacute +0xD4 U+00D4 Ocircumflex +0xD5 U+0150 Ohungarumlaut +0xD6 U+00D6 Odieresis +0xD7 U+00D7 multiply +0xD8 U+0158 Rcaron +0xD9 U+016E Uring +0xDA U+00DA Uacute +0xDB U+0170 Uhungarumlaut +0xDC U+00DC Udieresis +0xDD U+00DD Yacute +0xDE U+0162 Tcommaaccent +0xDF U+00DF 1 germandbls +0xE0 U+0155 1 racute +0xE1 U+00E1 1 aacute +0xE2 U+00E2 1 acircumflex +0xE3 U+0103 1 abreve +0xE4 U+00E4 1 adieresis +0xE5 U+013A 1 lacute +0xE6 U+0107 1 cacute +0xE7 U+00E7 1 ccedilla +0xE8 U+010D 1 ccaron +0xE9 U+00E9 1 eacute +0xEA U+0119 1 eogonek +0xEB U+00EB 1 edieresis +0xEC U+011B 1 ecaron +0xED U+00ED 1 iacute +0xEE U+00EE 1 icircumflex +0xEF U+010F 1 dcaron +0xF0 U+0111 1 dcroat +0xF1 U+0144 1 nacute +0xF2 U+0148 1 ncaron +0xF3 U+00F3 1 oacute +0xF4 U+00F4 1 ocircumflex +0xF5 U+0151 1 ohungarumlaut +0xF6 U+00F6 1 odieresis +0xF7 U+00F7 divide +0xF8 U+0159 1 rcaron +0xF9 U+016F 1 uring +0xFA U+00FA 1 uacute +0xFB U+0171 1 uhungarumlaut +0xFC U+00FC 1 udieresis +0xFD U+00FD 1 yacute +0xFE U+0163 1 tcommaaccent +0xFF U+02D9 dotaccent diff --git a/Master/texmf-dist/source/generic/hyph-utf8/generate-converters.rb b/Master/texmf-dist/source/generic/hyph-utf8/generate-converters.rb index 9fd0066153d..0449a12bc7c 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/generate-converters.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/generate-converters.rb @@ -1,7 +1,7 @@ #!/usr/bin/env ruby $encoding_data_dir = "data/encodings" -$encodings = ["ec", "qx", "t2a", "lmc", "il3"] +$encodings = ["ec", "qx", "t2a", "lmc", "il2", "il3"] $output_data_dir = "../../../tex/generic/hyph-utf8/conversions" 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 f00a19d3e68..d92627cf2fc 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 @@ -63,17 +63,36 @@ languages.each do |language| file.puts("\\lccode`\\-=`\\-") end - if language.encoding == "ascii" then + # some special cases firs + # + # some languages (sanskrit) are useless in 8-bit engines; we only want to load them for UTF engines + # TODO - maybe consider doing something similar for ibycus + if language.code == 'sa' 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') + file.puts(" \\input hyph-#{language.code}.tex") + file.puts('\else') + file.puts(" \\message{No #{language.message}}") + 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('% ASCII patterns - no additional support is needed') + # for UK English we simply load the old file without bothering about renaming it if language.use_old_patterns then file.puts("\\input #{language.filename_old_patterns}") + # for the rest we load the new file else file.puts("\\message{ASCII #{language.message}}") file.puts("\\input hyph-#{language.code}.tex") end + # when lanugage uses old patterns for 8-bit engines, load two different patterns rather than using the converter elsif language.use_old_patterns then file.puts(text_if_native_utf) file.puts(" \\message{UTF-8 #{language.message}}") + # some catcodes for XeTeX if language.code == 'grc' or language.code.slice(0,2) == 'el' then file.puts(" \\lccode`'=`'\\lccode`’=`’\\lccode`ʼ=`ʼ\\lccode`᾽=`᾽\\lccode`᾿=`᾿") end @@ -94,11 +113,18 @@ languages.each do |language| file.puts(" \\message{UTF-8 #{language.message}}") file.puts('\else') file.puts(" \\message{#{language.encoding.upcase} #{language.message}}") + # a hack for OT1 encoding in three languages + if language.code == 'da' or language.code == 'fr' or language.code == 'la' then + file.puts(" % A hack to support both EC and OT1 encoding in 8-bit engines.") + file.puts(" % Kept for backward compatibility only, though we would prefer to drop it.") + file.puts(" % OT1 encoding is close-to-useless for proper hyphenation.") + file.puts(" \\input spechyph-ot1-#{language.code}.tex") + end file.puts(" \\input conv-utf8-#{language.encoding}.tex") file.puts('\fi') if language.code == 'sr-latn' then file.puts("% Load Serbo-Croatian patterns") - file.puts("\\input hyph-hbs.tex") + file.puts("\\input hyph-sh-latn.tex") else file.puts("\\input hyph-#{language.code}.tex") end 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 e4ba9c4e7ed..840f8def875 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 @@ -64,12 +64,15 @@ end #--------# # TLPSRC # #--------# -$file_tlpsrc = File.open("#{$path_language_dat}/language.tlpsrc", 'w') language_groups.sort.each do |language_name,language_list| + $file_tlpsrc = File.open("#{$path_tlpsrc}/hyphen-#{language_name}.tlpsrc", 'w') $file_tlpsrc.puts "name hyphen-#{language_name}" $file_tlpsrc.puts "category TLCore" + if language_name == "russian" then + $file_tlpsrc.puts "depend ruhyphen" + end language_list.each do |language| name = " name=#{language.name}" @@ -99,11 +102,22 @@ language_groups.sort.each do |language_name,language_list| end $file_tlpsrc.puts "execute AddHyphen#{name}#{synonyms}#{hyphenmins}#{file}" - end - $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}" + end + end + if language_name == "greek" then + $file_tlpsrc.puts "runpattern f texmf/doc/generic/elhyphen/*" + elsif language_name == "german" then + $file_tlpsrc.puts "runpattern f texmf/tex/generic/hyphen/dehyphtex.tex" + $file_tlpsrc.puts "runpattern f texmf/tex/generic/hyphen/ghyphen.README" + elsif language_name == "hungarian" then + $file_tlpsrc.puts "docpattern f texmf/doc/generic/huhyphen/*" + end + $file_tlpsrc.close end -$file_tlpsrc.close #--------------# # language.dat # diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages.rb b/Master/texmf-dist/source/generic/hyph-utf8/languages.rb index ebd0e32cc2c..e72555f2fa4 100644 --- a/Master/texmf-dist/source/generic/hyph-utf8/languages.rb +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages.rb @@ -95,7 +95,7 @@ class Languages < Hash # danish dkhyph.tex { "use_new_loader" => true, - "use_old_patterns" => true, + "use_old_patterns" => false, "use_old_patterns_comment" => "Old patterns support both EC & OT1 encodings at the same time.", "filename_old_patterns" => "dkhyph.tex", "filename_old_patterns_other" => ["dkcommon.tex", "dkspecial.tex"], @@ -143,7 +143,7 @@ class Languages < Hash # =francais { "use_new_loader" => true, - "use_old_patterns" => true, + "use_old_patterns" => false, "use_old_patterns_comment" => "Old patterns support both EC & OT1 encodings at the same time.", "filename_old_patterns" => "frhyph.tex", # "filename_xu_loader" => "xu-frhyph.tex", @@ -249,7 +249,7 @@ class Languages < Hash "name" => "basque", "synonyms" => [], "hyphenmin" => [2,2], # babel - "encoding" => "ascii", + "encoding" => "ec", "exceptions" => false, "message" => "Basque Hyphenation Patterns", }, @@ -410,10 +410,10 @@ class Languages < Hash # latin xu-lahyph.tex { "use_new_loader" => true, - "use_old_patterns" => true, + "use_old_patterns" => false, "use_old_patterns_comment" => "Old patterns support both EC & OT1 encodings at the same time.", "filename_old_patterns" => "lahyph.tex", - "filename_xu_loader" => "xu-lahyph.tex", +# "filename_xu_loader" => "xu-lahyph.tex", "code" => "la", "name" => "latin", "synonyms" => [], @@ -451,7 +451,8 @@ class Languages < Hash "code" => "pl", "name" => "polish", "synonyms" => [], - "hyphenmin" => [1,1], + #{}"hyphenmin" => [1,1], + "hyphenmin" => [2,2], "encoding" => "qx", "exceptions" => true, "message" => "Polish Hyphenation Patterns", @@ -674,7 +675,7 @@ class Languages < Hash "use_new_loader" => true, "use_old_patterns" => true, "use_old_patterns_comment" => "Old patterns work in a different way, one-to-one conversion from UTF-8 is not possible.", - "filename_old_patterns" => "grmhyph5.tex", + "filename_old_patterns" => "grahyph5.tex", "filename_xu_loader" => "xu-grahyph4.tex", # TODO: beware! "code" => "grc", "name" => "ancientgreek", @@ -736,6 +737,18 @@ class Languages < Hash "exceptions" => false, "message" => "Ukrainian Hyphenation Patterns", }, +# sanskrit +{ + "use_new_loader" => true, + "use_old_patterns" => false, + "code" => "sa", + "name" => "sanskrit", + "synonyms" => [], + "hyphenmin" => [1,5], # polyglosia + "encoding" => nil, + "exceptions" => false, + "message" => "Sanskrit Hyphenation Patterns (v0.2, 2008/1/3)", +}, # norsk xu-nohyphbx.tex { "use_new_loader" => true, 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 new file mode 100644 index 00000000000..9e416fb0e05 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb @@ -0,0 +1,137 @@ +#!/usr/bin/env ruby +# +# First version: 97/02/20 +# +# This script generates TeX hyphenation patterns for Basque +# and was written by (c) Juan M. Aguirregabiria, 1997 +# based on the shyphen.sh file by Julio Sanchez, which +# generates the hyphenation patterns for Spanish +# The copyright notice below applies to this script as well, +# read it before using this software. +# +# Rewritten into ruby by Mojca Miklavec +# in June 2008. Modifications: +# - added support for Unicode +# - dropped support for every other "encoding" +# - added ñ by default +# - removed part of copyright that was not relevant any more +# (actually, nothing here resembles the work for Spanish patterns in any way any more) +# +# 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") + +# write comments into the file +def add_comment(str) + $file.puts "% " + str.gsub(/\n/, "\n% ").gsub(/% \n/, "%\n") +end + +# h is not here. +consonants=%w{b c d f g j k l m n ñ p q r s t v w x y z} +# Open vowels: a e o +vop=%w{a e o} +# Closed vowels: i u +vcl=%w{i u} +# +# In June 2008 the following conversation took place. +# In case that anyone figures out how the situation might be improved ... +# +# Mojca: +# Why do you need open and closed vewels separately? +# Juan: +# Open and closed vowels are very different from the point of view of +# hyphenation in Basque (and Spanish): +# you may write "...e-o...", but not "...u-i..." +# Mojca: +# But the script generates the same patterns for both sets of vowels. +# Juan: +# After eleven years I don't remember *anything* about all this. Maybe I +# intended to make a difference between open and closed vowels and then +# thought it would be safer to avoid all breaking between vowels, because in +# some cases a rule I don't remember now prevents some of them. Maybe some +# legal breaks are ignored with current patterns, but a least I have never +# seen an illegal hyphen and never get a report of such a break. +# +# I guess a couple of extra lines in the script don't hurt and maybe some day +# someone will use the difference to allow more breaks. +# +vowels=[].concat(vop).concat(vcl) +# Groups that cannot be broken. +legal=%w{ll rr ts tx tz bl br dr fl fr gl gr kl kr pl pr tr} +# echo -n Usage: `basename $0` +add_comment( +"Hyphenation patterns for Basque. + +This file has first been written by Juan M. Aguirregabiria +(juanmari.aguirregabiria@ehu.es) on February 1997 based on the +shyphen.sh script that generates the Spanish patterns as compiled +by Julio Sanchez (jsanchez@gmv.es) on September 1991. + +In June 2008 the generating script has been rewritten into ruby and +adapted for native UTF-8 TeX engines. Patterns became part of hyph-utf8 +package and were renamed from bahyph.tex into hyph-eu.tex. +Functionality should not change apart from adding ñ by default. + +The original Copyright followed and applied also to precessor of this file +whose last version will be always available by anonymous ftp +from tp.lc.ehu.es or by poynting your Web browser to + http://tp.lc.ehu.es/jma/basque.html + +For more information about the new UTF-8 hyphenation patterns and +links to this file see + http://www.tug.org/tex-hyphen/ + + COPYRIGHT NOTICE + +These patterns and the generating script are Copyright (c) JMA 1997, 2008 +These patterns are made public in the hope that they will benefit others. +You can use this software for any purpose. +However, this is given for free and WITHOUT ANY WARRANTY. + +You are kindly requested to send any changes to the author. +If you change the generating script, you must include code +in it such that any output is clearly labeled as generated +by a modified script. + + END OF COPYRIGHT NOTICE + +Open vowels: #{vop.join(" ")} +Closed vowels: #{vcl.join(" ")} +Consonants: #{consonants.join(" ")} + +Some of the patterns below represent combinations that never +happen in Basque. Would they happen, they would be hyphenated +according to the rules. +") + +$file.puts '\patterns{' + +add_comment( +"Rule SR1 +Vowels are kept together by the defaults +Rule SR2 +Attach vowel groups to left consonant") +consonants.each do |consonant| + patterns = [] + vowels.each do |vowel| + patterns.push "1#{consonant}#{vowel}" + end + $file.puts patterns.join(" ") +end + +add_comment( +"Rule SR3 +Build legal consonant groups, leave other consonants bound to +the previous group. This overrides part of the SR2 pattern group.") +legal.each do |pair| + patterns = [] + vowels.each do |vowel| + patterns.push "1#{pair[0,1]}2#{pair[1,1]}#{vowel}" + end + $file.puts patterns.join(" ") +end + +add_comment("We now avoid some problematic breaks.") +$file.puts "su2b2r su2b2l" +$file.puts "}" diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README new file mode 100644 index 00000000000..9f173c0f05a --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README @@ -0,0 +1,24 @@ +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. + +(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. + +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. + +--Javier A. diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhybiox.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhybiox.tex new file mode 100644 index 00000000000..461751ecc88 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhybiox.tex @@ -0,0 +1,25 @@ +% This is the file glhybiox.tex. +% This is a subset of the galician hyphenation patterns. +% (c) Javier A. Múgica, 2007 +% License: LPPL version 1.3 +% +% LPPL maintenance status: maintained +% Current Maintainer: Javier A. Múgica +% +% Prefixos para xeoloxía e bioloxía. +% Esta lista está aínda moi incompleta. Para aportar +% novos prefixos ou para calquera outra suxerencia, +% contactar en javier @ digi21.eu. + +%Os prefixos comentados xa están na lista principal en glpatter.tex +\begin{prefixos} +%paleo termo +ciano crio halo .lito +.oro .uro +\end{prefixos} + +.crio2u .malcrio2u +\begin{3a_ppi} +inhalo +\end{3a_ppi} +\endinput diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyextr.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyextr.tex new file mode 100644 index 00000000000..37ad86c0b9e --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyextr.tex @@ -0,0 +1,7 @@ +%glhyextr.tex. This file is in the public domain +%\mkinput{glhyquim.tex} +%\mkinput{glhymed.tex} +%\mkinput{glhybiox.tex} +%\mkinput{glhyxeog.tex} +%\mkinput{glhytec.tex} +\endinput \ No newline at end of file diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhymed.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhymed.tex new file mode 100644 index 00000000000..cd3d6a49976 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhymed.tex @@ -0,0 +1,19 @@ +% This is the file glhymed.tex. +% This is a subset of the galician hyphenation patterns. +% (c) Javier A. Múgica, 2007 +% License: LPPL version 1.3 +% +% LPPL maintenance status: maintained +% Current Maintainer: Javier A. Múgica +% +% Prefixos para mediciña. +% Esta lista está aínda moi incompleta. Para aportar +% novos prefixos ou para calquera outra suxerencia, +% contactar en javier @ digi21.eu. + +%Os prefixos comentados xa están na lista principal en glpatter.tex +\begin{prefixos} +%cardio hemato +oftalmo pleuro oligo +\end{prefixos} +\endinput diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyquim.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyquim.tex new file mode 100644 index 00000000000..573bed5cd6c --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyquim.tex @@ -0,0 +1,19 @@ +% This is the file glhyquim.tex. +% This is a subset of the galician hyphenation patterns. +% (c) Javier A. Múgica, 2007 +% License: LPPL version 1.3 +% +% LPPL maintenance status: maintained +% Current Maintainer: Javier A. Múgica +% +% Prefixos para química. +% Esta lista está aínda moi incompleta. Para aportar +% novos prefixos ou para calquera outra suxerencia, +% contactar en javier @ digi21.eu. + +%Os prefixos comentados xa están na lista principal en glpatter.tex +\begin{prefixos} +%hidro +cloro fluoro gluco lacto lipo +\end{prefixos} +\endinput diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhytec.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhytec.tex new file mode 100644 index 00000000000..f36a7007a9c --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhytec.tex @@ -0,0 +1,19 @@ +% This is the file glhytec.tex. +% This is a subset of the galician hyphenation patterns. +% (c) Javier A. Múgica, 2007 +% License: LPPL version 1.3 +% +% LPPL maintenance status: maintained +% Current Maintainer: Javier A. Múgica +% +% Prefixos para términos técnicos. +% Esta lista está aínda moi incompleta. Para aportar +% novos prefixos ou para calquera outra suxerencia, +% contactar en javier @ digi21.eu. + +%Os prefixos comentados xa están na lista principal en glpatter.tex +\begin{prefixos} +%hidro termo electro magneto +alumino metalo piezo +\end{prefixos} +\endinput diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyxeog.tex b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyxeog.tex new file mode 100644 index 00000000000..c5105af19cb --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyxeog.tex @@ -0,0 +1,25 @@ +% This is the file glhyxeog.tex. +% This is a subset of the galician hyphenation patterns. +% (c) Javier A. Múgica, 2007 +% License: LPPL version 1.3 +% +% LPPL maintenance status: maintained +% Current Maintainer: Javier A. Múgica +% +% Prefixos para xeografía. +% Esta lista está aínda moi incompleta. Para aportar +% novos prefixos ou para calquera outra suxerencia, +% contactar en javier @ digi21.eu. + +%Os prefixos comentados xa están na lista principal en glpatter.tex +\begin{prefixos} +%anglo franco ibero .indo +alto baixo +greco italo xermano .sino .uralo +\end{prefixos} + +\exceptions{.baixo2u3}{.baixo2u} +\begin{3a_ppi} +asalto .baixo .rebaixo +\end{3a_ppi} +\endinput 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 new file mode 100644 index 00000000000..b565484f2e9 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex @@ -0,0 +1,410 @@ +% This is the file glpatter.tex, version 2.3a +% It is the source file for the Galician patterns +% +% (c) Javier A. Múgica; 2006, 2007, 2008 +% 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 +% +% For bug reports and comments: +% +% Javier Múgica, javier at digi21.eu +\input mkpatter.tex +\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} +&Va+={&Va á} +&V={a e i o u á é í ó ú} +&Vv={a e i} +&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 + +\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. +% +%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. +% +%\Ti +%\letters{á é í ó ú ñ ü ï} + +%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 +% Hyphenation patterns for Galician, written in the utf8 encoding. +% +% Generated with the mkpattern utility (v. 1.1), on 2008/06/22. +% The original source file were glpatter-utf8.tex +% This is a generated file +% +% (c) Javier A. Múgica; 2006, 2007, 2008 +% License: LPPL version 1.3 +% +% LPPL maintenance status: maintained +% Current Maintainer: Javier A. Múgica +% +% For bug reports and comments: +% +% Javier Múgica, javier at digi21.eu +\let\lee\relax +\halfcomments +\iwrite{%} +\iwrite{% Note that there is no 'j' nor 'y' in Galician} +\nocomments + +\begin{pseudopatterns} + +3ï3a \newline +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 +\newline +&{Cl}2&L 2&{Cl}&L. +2&{C!l}&L + +2t2l \newline +2lr l4l 2ll. +2rl r2r 2rr. + +\template{2&G3#} +p2t c2t c2n p2s m2n g2n f2t p2n c2z t2s +\end{template} +san4c5t plan4c5t + +\template{4#.} +pt ct cn ps mn gn ft pn cz ts +\end{template} + +un4ha 2non. 3mente. o2hib alde2h \newline +\newline +%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 +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 +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 +.tri tropo ultra xeno +\end{prefixos} + +\newline +ti2o3qu ti2o3co +bi1u2ní +o2i3de o2i3dal +deca2e3ment +2al. 2a2is. +pe3r2e3mia +hiper3r \newline +famili2a familia3r +mini2a3tur +para2u3gas +paraí3so + +\begin{3a_ppi} +\put{%Terceiras persoas do pasado perfecto}\newline +libero atopo enaxeno +\end{3a_ppi} + +\newline +2os. 2o3so. 2o3sos. 2o3sa. 2o3sas. 2o3samente. \newline +2i3co. 2i3cos. 2i3ca. 2i3cas. \newline + +\newline +\put{%O prefixo co} +\exceptions{.co1á2}{} +.co1&V2 + +%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á +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 +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. +i3dado iei imbra imbrá intreau. í3ña i3ña i3ñei i3pú. i3pús. +i3ra. i3ras. i3raza i3ro. i3ros. i3ta. i3tas. i3tado. i3to. i3tos. +i3tel i3tío. i3tus. u3c u3lomb u3try u3qui u3rel +u3sa. u3sas. u3so. u3sos. u3selo u3tad u3to. u3tos. u3vini u3z +\end{template} + +\newline +\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) +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). +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} + +\keepcomments + +\newline +%Excepcións ó prefixo in +\template{.in2# \newline} +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 +unda u3sita ú3til +\end{template} +in2o4cular \newline + +\newline +%Excepcións ó prefixo inter +.inter3r +\template{.inte3r2#} +és. e3sa é3sa e3sá e3so é3so e3só ior i3no. i3nos. i3na. i3nas. i3nid +\end{template} + +\newline +%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 +\end{template} + +\newline +.ma2l1&{V}2 +\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 +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 +educ encar ensin entend +\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} +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. +\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á +\end{template} +\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 +e3za í3do ust +\end{template} + +\newline +\exceptions{.re2e2 .re2é2}{.ree2,.reé2} +\put{%O prefixo re} %Faltan excepcións +.re2&{V}2 + + +\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 í +eriz orna +\end{template} +\newline +sub3índic sub3indic sub3indiz + +\template{.sub4# \newline} +lev lim +\end{template} + +\template{su3b2# \newline} %Non son prefixos +e3la. e3las. é3rico e3rina. e3rinas. eroso iote ulado orno. ornos. urbio +\end{template} +\template{su3b4# \newline} +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) +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 +\template{2&{Vai}#.} +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. +\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. +\end{template} +\template{2&{Vvac}3#.} +deo dea deos deas %imp. con pron. dir. +\end{template} + +\template{2#.} +%coar, inar, entrenar, prear, superar +as a3mos a3des an \newline +a3ba a3bas a3bamos a3bades 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). +\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) +ade ádeo ádea ádeos ádeas \newline +as amos ades an \newline +aba abas abamos abades aban \newline +aches astes aron \newline +es emos edes en \newline +ase ases ásemos ásedes asen \newline +\end{template} +\template{e3#.} +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) +ade ádeo ádea ádeos ádeas \newline +as amos ades an \newline +aba abas abamos abades aban \newline +aches astes aron \newline +es emos edes en \newline +ase ases ásemos ásedes asen \newline +\end{template} + +\template{2#.} +%subir +i3mos i3des \newline +ía í3as í3an \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 +\end{template} +\newline +í3do í3da í3dos í3das + +%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í. +ín iches iu istes iron \newline +irei irás irá iremos iredes irán \newline +iría irías iriamos iriades irían \newline +a as amos ades an \newline +ise ises ísemos ísedes isen \newline +ide ídeo ídea ídeas +\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. +\template{a3#.} +er endo \newline +eres ermos erdes eren \newline +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 +\end{template} + +%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} +\end{pseudopatterns} +\end{} diff --git a/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/README b/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/README new file mode 100644 index 00000000000..0472932348e --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/README @@ -0,0 +1,61 @@ + +See: +- http://www.ctan.org/tex-archive/language/turkish/hyphen/turk_hyf.c +- http://www.tug.org/TUGboat/Articles/tb09-1/tb20mackay.pdf + +------- +Original encoding: + +a +a= â +e +i ı +i= î +i: i +o +o= ô +o: ö +u +u: ü + +------- + +character / UTF-8 letter / EC code / Unicode / Unicode name + +@ -- arabic hamza +# -- ayn +b +c +c: ç E7 U+00E7 LATIN SMALL LETTER C WITH CEDILLA +d +d! ḍ -- U+1E0D LATIN SMALL LETTER D WITH DOT BELOW +d= ḏ -- U+1E0F LATIN SMALL LETTER D WITH LINE BELOW +f +g +g= ğ A7 U+011F LATIN SMALL LETTER G WITH BREVE +g: ġ -- U+0121 LATIN SMALL LETTER G WITH DOT ABOVE +h +h! ḥ -- U+1E25 LATIN SMALL LETTER H WITH DOT BELOW +h= ẖ -- U+1E96 LATIN SMALL LETTER H WITH LINE BELOW +j +k +k! ḳ -- U+1E33 LATIN SMALL LETTER K WITH DOT BELOW +l +m +n +n= ñ F1 U+00F1 LATIN SMALL LETTER N WITH TILDE +p +r +s +s! ṣ -- U+1E63 LATIN SMALL LETTER S WITH DOT BELOW +s= -- s with line below - not even in unicode +s: ş B3 U+015F LATIN SMALL LETTER S WITH CEDILLA +t +t! ṭ -- U+1E6D LATIN SMALL LETTER T WITH DOT BELOW +t= ṯ -- U+1E6F LATIN SMALL LETTER T WITH LINE BELOW +v +y +z +z! ẓ -- U+1E93 LATIN SMALL LETTER Z WITH DOT BELOW +z= ẕ -- U+1E95 LATIN SMALL LETTER Z WITH LINE BELOW +z: ż BB U+017C LATIN SMALL LETTER Z WITH DOT ABOVE 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 new file mode 100644 index 00000000000..f387c18eaa6 --- /dev/null +++ b/Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb @@ -0,0 +1,113 @@ +#!/usr/bin/env ruby +# +# This script generates hyphenation patterns for modern Turkish +# +# "Algorithm" originally developed by: +# +# /**************************************************************************** +# * * +# * turk_hyf.c -- a program to produce PatGen-like hyphenation * +# * patterns for the Turkish Language. * +# * * +# * Copyright 1987, by Pierre A. MacKay. * +# * * +# * Humanities and Arts Computing Center * +# * Mail-Stop DW-10 * +# * University of Washington * +# * Seattle, Washington 98105 * +# * * +# ****************************************************************************/ +# +# Script written in June 2008 by Mojca Miklavec +# as part of "Unicode Hyphenation Patterns" project +# +# Thanks to previous work, modifications and suggestions by: +# - H. Turgut Uyar +# - S. Ekin Kocabas + +# TODO: add a function to generate patterns for Ottoman Turkish + +# 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") + +# write comments into the file +def add_comment(str) + $tr.puts "% " + str.gsub(/\n/, "\n% ").gsub(/% \n/, "%\n") +end + +# The patterns (and algorithm for generating them) were first meant +# for supporting Ottoman Turkish, but adapted for modern Turkish later. +# Turkish alphabet includes some special vowels (ıiöü) and consonants (çğş), +# but the patterns also support another three vowels (âîû): +# - a with circumflex is a necessity, it must be supported +# - ı and u with circumflex could be there, not as pressing as "a" but still +# Some letters such as z, k, s or t represent multiple letters in the old +# alphabet, so some transcriptions from Ottoman to Turkish use some accents on +# these for phonetic reasons, but there is no need to support them. +# +# Comment posted by: H. Turgut Uyar + +# define a class of vowels and consonants +vowels = %w{a â e ı i î o ö u ü û} +consonants = %w{b c ç d f g ğ h j k l m n p r s ş t v y z} + +# start the file +add_comment( + "hyph-tr.tex\n\n" + + "File auto-generated from generate_patterns_tr.rb that is part of hyph-utf8\n\n" + + "Licence:\n" + + "- Free enough for Debian & TeX Live or any other distributor\n" + + "- If you are reading this and have some suggestion about what to put here, please advise\n" + + "- I (Mojca) would prefer to say 'public domain', but don't know what it means for the original authors\n\n" + + "Credits:\n" + + "- algorithm developed by P. A. MacKay for the Ottoman Texts Project in 1987\n" + + "- rules adapted for modern Turkish by H. Turgut Uyar \n" + + "- initiative to improve Turkish patterns by S. Ekin Kocabas \n" + + "- script written by Mojca Miklavec in June 2008\n\n" + + "Modifications:\n" + + "- adapted for the use on modern UTF-8 TeX engines\n" + + "- UTF-8 patterns are used\n" + + "- only letters for Modern Turkish + âîû (the first one often needed, the other two don't hurt)\n" + + "- if needed, support for Ottoman Turkish might be provided separately under 'ota' (not 'tr')\n\n" + + "Notes:\n" + + "- you need to use loadhyph-tr.tex, please do not try to put \\catcode-s & \\lccode-s here\n" +) +$tr.puts '\patterns{' + +# rules for hyphenation +add_comment("prohibit hyphen before vowels, allow after") +vowels.each do |vowel| + $tr.puts "2#{vowel}1" +end + +add_comment("allow hyphen either side of consonants") +consonants.each do |cons| + $tr.puts "1#{cons}1" +end + +add_comment("prevent e-cek at end of word") +$tr.puts "2e2cek." + +add_comment("prohibit hyphen before pair of consonants\nmany pairs generated here are impossible anyway") +consonants.each do |c1| + consonants.each do |c2| + $tr.puts "2#{c1}#{c2}" + end +end + +add_comment("allow hyphen between vowels, but not after second vowel of pair\nseveral phonetically impossible pairs here") +vowels.each do |v1| + vowels.each do |v2| + $tr.puts "#{v1}3#{v2}2" + end +end + +add_comment("a couple of consonant-clusters") +$tr.puts 'tu4r4k' +$tr.puts 'm1t4rak' + +# end the file +$tr.puts '}' +$tr.close -- cgit v1.2.3