class Latex
Public Class Methods
new(output)
click to toggle source
# File lib/latex2hiki/latex2hiki.rb, line 10 def initialize(output) @text = NKF.nkf("-w",output) @text.gsub!(/\r\n?/,'\n') @text.gsub!(/\\%/,'%') @text.gsub!("。",".") @text.gsub!("、",",") end
Public Instance Methods
strip_document()
click to toggle source
# File lib/latex2hiki/latex2hiki.rb, line 38 def strip_document is_document = false is_include_document = false output = '' @text.each_line{|line| case line when /\\begin\{document\}/ is_document = true is_include_document = true when /\\end\{document\}/ is_document = false else if is_document==true then output << line end end } if is_include_document==true then @text = output end end
strip_hiki()
click to toggle source
# File lib/latex2hiki/latex2hiki.rb, line 18 def strip_hiki ifHIKI = true output = '' @text.each_line {|line1| case line1 when /\\ifHIKI/ ifHIKI = true when /\\else/ ifHIKI = false when /\\fi/ ifHIKI = true else if ifHIKI==true then output << line1 end end } @text = output end
to_hiki()
click to toggle source
# File lib/latex2hiki/latex2hiki.rb, line 60 def to_hiki roman_num=["","i)","ii)","iii)","iv)","v)","vi)","vii)","viii)","ix)","x)"] alpha_num=["","a)","b)","c)","d)","e)","f)","g)","h)","i)","j)"] strip_document() strip_hiki() output='' item_number=Array.new(3,1) is_enumerate=0 is_quote_eq, is_quote, is_itemize, is_table = false, false, false, false @text.each_line {|nline| line=nline.gsub(/\\verb\|(.+?)\|/){|matched| $&[6..-2] } line.gsub!(/\\fbox\{(.+?)\}/,"[ XXX ]") line.gsub!(/\\displaystyle/,'') case line when /\\label\{(.*)\}/ when /\\section\{(.*)\}/ output << "\n!#{$1} \n" when /\\section\*\{(.*)\}/ output << "\n!#{$1} \n" when /\\subsection\{(.*)\}/ output << "\n!!#{$1} \n" when /\\subsubsection\{(.*)\}/ output << "\n!!!#{$1} \n" when /\\paragraph\{(.*)\}/ output << "\n!!!!#{$1} \n" when /\\item\[(.*)\](.*)/ output << ":"+$1+":"+$2.chomp+"\n" when /\\item(.*)/ if is_enumerate==1 then output << "# "+$1.chomp+"\n" elsif is_enumerate==2 then output << "# "+$1.chomp+"\n" elsif is_enumerate==3 then output << "# "+$1.chomp+"\n" elsif is_itemize then output << "* "+$1+"\n" end when /\\begin\{MapleInput\}/ output << "<<<maple\n" when /\\end\{MapleInput\}/ output << ">>>\n" when /\\begin\{MapleError\}/ output << "<<<maple\n" when /\\end\{MapleError\}/ output << ">>>\n" when /\\begin\{quote\}/ is_quote = true when /\\end\{quote\}/ is_quote = false when /\\begin\{description\}/ when /\\end\{description\}/ when /\\begin\{verbatim\}/ output << "<<<\n" when /\\end\{verbatim\}/ output << ">>>\n" when /\\begin\{enumerate\}/ is_enumerate += 1 when /\\begin\{itemize\}/ is_itemize = true when /\\end\{enumerate\}/ item_number[is_enumerate]=1 is_enumerate -= 1 when /\\end\{itemize\}/ is_itemize = false when /\\begin\{MapleOutput\}/,/\\begin\{MapleOutputGather\}/,/\\begin\{gather\}/ then output << "\$\$\n" is_quote_eq = true when /\\end\{MapleOutput\}/,/\\end\{MapleOutputGather\}/,/\\end\{gather\}/ then output << "\$\$\n" is_quote_eq = false when /\\notag/ then output << $`+"\n" when /\\MaplePlot\{(.*)\}\{(.*)\}/ target=File::basename($2,".eps")+".png" output << "||{{attach_view(#{target},#{$target_dir})}}||\n" when /\\begin\{tabular\}/ is_table = true when /\\end\{tabular\}/ is_table = false when /\\begin\{table\}/ when /\\end\{table\}/ when /\\begin\{center\}/ when /\\end\{center\}/ when /\\caption\{(.*)\}/ # output << "'''"+$1+"'''\n" output << "!!!caption:"+$1+"\n" when /\\begin\{equation\*\}/ is_quote_eq = true if is_quote then output << "\"\"\$\$\n" else output << "\$\$\n" end when /\\end\{equation\*\}/ is_quote_eq = false output << "\$\$\n" when /\\begin\{equation\}/ is_quote_eq = true if is_quote then output << "\"\"\$\$\n" else output << "\$\$\n" end when /\\end\{equation\}/ is_quote_eq = false output << "\$\$\n" when /\\pagebreak/ when /\\begin\{(.+)\}/ if is_quote_eq then output << line.lstrip end when /\\end\{(.+)\}/ if is_quote_eq then output << line.lstrip end else if is_table then next if ((line==nil) or (line=~/^\\hline/)) line.gsub!(/\&/,"||") line.gsub!(/\\\\/,"") line.gsub!(/\\hline/,"") output << "||"+line elsif is_quote then if is_quote_eq then output << line.lstrip else output << "\"\""+line end else if is_quote_eq then output << line.lstrip else output << line end end end } return output end