diff options
author | Norbert Preining <preining@logic.at> | 2012-04-24 00:13:14 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2012-04-24 00:13:14 +0000 |
commit | 8f29bdce0bdd08ec81df555e98692d1f288c3289 (patch) | |
tree | c4f9a6b00a587f635e55fc4068c1961780c90591 /Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb | |
parent | 74e624196144ae218a63a4c35672fc7a0e7b18dc (diff) |
new package luatexja (24apr)
adapt ctan2tds to deal with it
git-svn-id: svn://tug.org/texlive/trunk@26115 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb')
-rw-r--r-- | Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb b/Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb new file mode 100644 index 00000000000..21f6e7728ce --- /dev/null +++ b/Master/texmf-dist/source/luatex/luatexja/tool/chars2defcharrange.rb @@ -0,0 +1,51 @@ +#! /usr/bin/ruby +# -*- coding: utf-8 -*- + +# The following script converts a set of chars except "\s", as Ruby defines, +# to the character range definition of LuaTeX-ja. + +# USAGE: ruby __FILE__ ifile rangeNo [> ofile] + +# Example (in Japanese) +# 教育漢字リスト (http://www.aozora.gr.jp/kanji_table/kyouiku_list.zip) +# に対して適用したいとき. +# 1. kyoikukanji.txt に対して,コメント部分の先頭に # をつける編集を加える; +# 2. ruby chars2defcharrange.rb kyoikukanji.txt 210 > kyoikukanjiChars.tex +# を実行する. + +def print_usage() + print "USAGE: ruby ", __FILE__, "ifile rangeNo [> ofile]\n" +end + +if __FILE__ == $0 + # コマンドライン引数の処理 + if ARGV.length < 2 + print_usage() + exit + end + ifile = ARGV[0] + rangeNo = ARGV[1] + + # 対象文字列の作成 + string = "" + open(ifile, "r").each_line{|line| + if line =~ /#/ + line = $` + end + line.gsub!(/\s/){} + string += line + } + + # 10 進 unicode code point 配列に変換 + decs = string.unpack("U*") + + # print + print "\defcharrange{", rangeNo, "}{" + decs.each_with_index{|code, index| + if index != 0 + print "," + end + print "\"", code.to_s(16) + } + print "}\n" +end |