summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/hyph-utf8
diff options
context:
space:
mode:
authorNorbert Preining <preining@logic.at>2008-06-29 17:44:16 +0000
committerNorbert Preining <preining@logic.at>2008-06-29 17:44:16 +0000
commite014abd54bc5f8a677ebe892cf497bf2732980c6 (patch)
tree539975c12518b258de161da9087bb4dcf782c58a /Master/texmf-dist/source/generic/hyph-utf8
parent109c459d5f198cb33b9e965f4ae593f3bb7e74a9 (diff)
update hyph-utf8 from CTAN
git-svn-id: svn://tug.org/texlive/trunk@9089 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic/hyph-utf8')
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/data/encodings/il2.dat128
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/generate-converters.rb2
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/generate-pattern-loaders.rb30
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/generate-tl-files.rb22
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages.rb27
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/eu/generate_patterns_eu.rb137
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/README24
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhybiox.tex25
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyextr.tex7
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhymed.tex19
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyquim.tex19
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhytec.tex19
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glhyxeog.tex25
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/gl/glpatter-utf8.tex410
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/tr/README61
-rw-r--r--Master/texmf-dist/source/generic/hyph-utf8/languages/tr/generate_patterns_tr.rb113
16 files changed, 1054 insertions, 14 deletions
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 <mojca.miklavec[.lists] at gmail.com>
+# 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 <uyar at itu.edu.tr>
+# - S. Ekin Kocabas <kocabas at stanford.edu>
+
+# 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 <uyar at itu.edu.tr>
+
+# 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 <uyar at itu.edu.tr>\n" +
+ "- initiative to improve Turkish patterns by S. Ekin Kocabas <kocabas at stanford.edu>\n" +
+ "- script written by Mojca Miklavec <mojca.miklavec.lists at gmail.com> 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