1 # -*- coding: utf-8 -*-
6 require File.join(File.dirname(__FILE__), 'lib', 'sw_seals')
7 require File.join(File.dirname(__FILE__), 'lib', 'unicode')
8 require File.join(File.dirname(__FILE__), 'lib', 'tex_commands')
10 SOURCE_DIR = File.join(File.dirname(__FILE__), '..', 'yml', 'daxu')
11 TEMPLATE = File.join(File.dirname(__FILE__), 'lib', 'missing.rtex')
12 TARGET = File.join(File.dirname(__FILE__), 'missing.tex')
13 WORDINFO = "%04i「%s」(%s)"
17 def_erb_method('render()', TEMPLATE)
25 @unicode = UnicodeUtility.new
26 @sw_seals = SWSeals.new
27 @tex_commands = TeXCommands.new
30 chapter = File.basename(path)[0,4]
31 push_wordinfo(sprintf("\\subsubsection*{%s}", chapter))
32 YAML::parse_documents(File.open(path)) do |syck|
34 doc.each do |wordinfo|
35 check_wordinfo(wordinfo)
39 def check_wordinfo(wordinfo)
44 unless id == @previous_id + 1 then
46 line1 = sprintf("%i>~%i頁:~", @count, daxu)
47 line2 = sprintf(WORDINFO, @previous_id, @previous_wd, @previous_sw)
48 line3 = sprintf("-" + WORDINFO + "\\hspace{2em}", id, wd, sw)
50 mssw = sprintf("%s", @previous_sw).to_i(16) if @previous_sw
51 (@previous_id+1 .. id-1).each do |msid|
54 (mswd, mssw2) = @sw_seals.next_main(mssw)
55 missing += sprintf("%s(%X)\\hspace{1em}", mswd, mssw2)
58 push_wordinfo(line1 + line2 + line3 + missing)
65 def push_wordinfo(info)
66 einfo = @tex_commands.insert_extensions(info)
71 checker = SealChecker.new
72 Dir.foreach(SOURCE_DIR) do |filename|
73 if filename =~ /^.*\.yml$/ then
74 # if filename =~ /^sw01.yml$/ then
75 printf("\n> %s\n", filename)
76 checker.check(File.join(SOURCE_DIR, filename))
79 out = File.open(File.join(TARGET), "w")
80 out.print checker.render()