summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb
diff options
context:
space:
mode:
authorMojca Miklavec <mojca.miklavec@gmail.com>2010-06-01 01:39:02 +0000
committerMojca Miklavec <mojca.miklavec@gmail.com>2010-06-01 01:39:02 +0000
commit3a5cf8de164c5d0f1fdb01999af33d77f59d526f (patch)
tree1e1c013154793e9a74852ded1537869e3cfabbb0 /Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb
parent3205d02db781aec158019161797c2a156ceb0b34 (diff)
update of hyph-utf8: add the forgotten ru and uk extra patterns, remove OT1 support from Latin, updates in luatex sources and docs, removed collaboration files
git-svn-id: svn://tug.org/texlive/trunk@18661 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb')
-rwxr-xr-xMaster/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb108
1 files changed, 108 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb b/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb
new file mode 100755
index 00000000000..08a77340d8b
--- /dev/null
+++ b/Master/texmf-dist/source/generic/hyph-utf8/generate-ptex-patterns.rb
@@ -0,0 +1,108 @@
+#!/usr/bin/env ruby
+
+require 'hyph-utf8'
+
+# this file generates patterns for pTeX out of the plain ones
+
+# use 'gem install unicode' if unicode is missing on your computer
+# require 'jcode'
+# require 'rubygems'
+# require 'unicode'
+
+load 'languages.rb'
+
+$path_root=File.expand_path("../../..")
+$path_ptex="#{$path_root}/tex/generic/hyph-utf8/patterns/ptex"
+
+# load encodings
+encodings_list = ["ascii", "ec", "qx", "t2a", "lmc", "il2", "il3", "l7x"]
+encodings = Hash.new
+encodings_list.each do |encoding_name|
+ encodings[encoding_name] = Encoding.new(encoding_name)
+end
+
+$l = Languages.new
+
+# TODO: should be singleton
+languages = $l.list.sort{|a,b| a.name <=> b.name}
+
+language_codes = Hash.new
+languages.each do |language|
+ language_codes[language.code] = language.code
+end
+language_codes['mn-cyrl-x-lmc'] = nil
+# language_codes['sh-latn'] = 'sr-latn'
+language_codes['sh-cyrl'] = nil
+
+# e = Encoding.new("ec")
+# puts e.convert_string_to_escaped_characters("moja čaša")
+#
+# return
+
+languages.sort{|x,y| x.code <=> y.code }.each do |language|
+ encoding = nil
+ if language.use_new_loader then
+ if language.encoding == nil or language_codes[language.code] == nil
+ include_language = false
+ puts "(skipping #{language.code} # encoding)"
+ elsif language.encoding == 'ascii'
+ include_language = false
+ puts "(skipping #{language.code} # ascii)"
+ else
+ include_language = true
+ encoding = encodings[language.encoding]
+ end
+ else
+ include_language = false
+ puts "(skipping #{language.code} # loader)"
+ end
+
+ code = language_codes[language.code]
+
+ if include_language
+ puts ">> generating #{code} (#{language.name})"
+ file_ptex = File.open("#{$path_ptex}/phyph-#{code}.tex", "w")
+
+ patterns = language.get_patterns
+ exceptions = language.get_exceptions
+
+ if code == 'nn' or code == 'nb'
+ patterns = $l['no'].get_patterns
+ end
+
+ if language.encoding != 'ascii' then
+ patterns = encoding.convert_to_escaped_characters(patterns)
+ exceptions = encoding.convert_to_escaped_characters(exceptions)
+ end
+
+ file_ptex.puts("% pTeX-friendly hyphenation patterns")
+ file_ptex.puts("%")
+ file_ptex.puts("% language: #{language.name} (#{language.code})")
+ file_ptex.puts("% encoding: #{language.encoding}")
+ file_ptex.puts("%")
+ file_ptex.puts("% This file has been auto-generated from hyph-#{language.code}.tex")
+ file_ptex.puts("% with a script [texmf]/scripts/generic/hyph-utf8/generate-ptex-patterns.rb")
+ file_ptex.puts("% See the original file for details about author, licence etc.")
+ file_ptex.puts("%")
+
+ if patterns.length > 0 then
+ # file_ptex.puts("\\patterns{\n#{encoding.convert_to_escaped_characters(patterns.join("\n"))}\n}")
+ file_ptex.puts("\\patterns{\n#{patterns.join("\n")}\n}")
+ end
+ if exceptions.length > 0 then
+ # file_ptex.puts("\\hyphenation{\n#{encoding.convert_to_escaped_characters(exceptions.join("\n"))}\n}")
+ file_ptex.puts("\\hyphenation{\n#{exceptions.join("\n")}\n}")
+ end
+
+
+ # # patterns
+ # patterns.each do |pattern|
+ # $file_pat.puts pattern.gsub(/'/,"’")
+ # end
+ # # exceptions
+ # if exceptions != ""
+ # $file_hyp.puts exceptions
+ # end
+ file_ptex.close
+ end
+end