lib/review/latexutils.rb in review-2.0.0.beta1 vs lib/review/latexutils.rb in review-2.0.0
- old
+ new
@@ -1,10 +1,9 @@
# encoding: utf-8
#
-# $Id: latexutils.rb 2204 2006-03-18 06:10:26Z aamine $
-#
# Copyright (c) 2002-2006 Minero Aoki
+# Copyright (c) 2006-2016 Minero Aoki, Kenshi Muto and Masayoshi Takahashi
#
# This program is free software.
# You can distribute or modify this program under the terms of
# the GNU LGPL, Lesser General Public License version 2.1.
# For details of the GNU LGPL, see the file "COPYING".
@@ -14,66 +13,74 @@
module ReVIEW
module LaTeXUtils
- METACHARS = {
- '#' => '\#',
- "$" => '\textdollar{}',
- '%' => '\%',
- '&' => '\&',
- '{' => '\{',
- '}' => '\}',
- '_' => '\textunderscore{}',
- '^' => '\textasciicircum{}',
- '~' => '\textasciitilde{}',
- '|' => '\textbar{}',
- '<' => '\textless{}',
- '>' => '\textgreater{}',
- "\\" => '\reviewbackslash{}',
- "-" => '{-}',
+ def initialize_metachars(texcommand)
+ @metachars = {
+ '#' => '\#',
+ "$" => '\textdollar{}',
+ '%' => '\%',
+ '&' => '\&',
+ '{' => '\{',
+ '}' => '\}',
+ '_' => '\textunderscore{}',
+ '^' => '\textasciicircum{}',
+ '~' => '\textasciitilde{}',
+ '|' => '\textbar{}',
+ '<' => '\textless{}',
+ '>' => '\textgreater{}',
+ "\\" => '\reviewbackslash{}',
+ "-" => '{-}'
+ }
- '⓪' => '\UTF{24EA}',
- '①' => '\UTF{2460}',
- '②' => '\UTF{2461}',
- '③' => '\UTF{2462}',
- '④' => '\UTF{2463}',
- '⑤' => '\UTF{2464}',
- '⑥' => '\UTF{2465}',
- '⑦' => '\UTF{2466}',
- '⑧' => '\UTF{2467}',
- '⑨' => '\UTF{2468}',
- '⑩' => '\UTF{2469}',
- '⑪' => '\UTF{246A}',
- '⑫' => '\UTF{246B}',
- '⑬' => '\UTF{246C}',
- '⑭' => '\UTF{246D}',
- '⑮' => '\UTF{246E}',
- '⑯' => '\UTF{246F}',
- }
+ if File.basename(texcommand, ".*") == "platex"
+ @metachars.merge!({
+ '⓪' => '\UTF{24EA}',
+ '①' => '\UTF{2460}',
+ '②' => '\UTF{2461}',
+ '③' => '\UTF{2462}',
+ '④' => '\UTF{2463}',
+ '⑤' => '\UTF{2464}',
+ '⑥' => '\UTF{2465}',
+ '⑦' => '\UTF{2466}',
+ '⑧' => '\UTF{2467}',
+ '⑨' => '\UTF{2468}',
+ '⑩' => '\UTF{2469}',
+ '⑪' => '\UTF{246A}',
+ '⑫' => '\UTF{246B}',
+ '⑬' => '\UTF{246C}',
+ '⑭' => '\UTF{246D}',
+ '⑮' => '\UTF{246E}',
+ '⑯' => '\UTF{246F}'
+ })
- kanalist = %w{。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚}
- kanalist.each do |char|
- char_jisx0208 = NKF::nkf('-WwX',char)
- METACHARS[char] = "\\aj半角{#{char_jisx0208}}"
- end
+ kanalist = %w{。 「 」 、 ・ ヲ ァ ィ ゥ ェ ォ ャ ュ ョ ッ ー ア イ ウ エ
+ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ
+ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン ゙ ゚}
+ kanalist.each do |char|
+ char_jisx0208 = NKF::nkf('-WwX',char)
+ @metachars[char] = "\\aj半角{#{char_jisx0208}}"
+ end
+ end
- METACHARS_RE = /[#{Regexp.escape(METACHARS.keys.join(''))}]/u
+ @metachars_re = /[#{Regexp.escape(@metachars.keys.join(''))}]/u
- METACHARS_INVERT = METACHARS.invert
+ @metachars_invert = @metachars.invert
+ end
def escape_latex(str)
- str.gsub(METACHARS_RE) {|s|
- METACHARS[s] or raise "unknown trans char: #{s}"
+ str.gsub(@metachars_re) {|s|
+ @metachars[s] or raise "unknown trans char: #{s}"
}
end
alias_method :escape, :escape_latex
def unescape_latex(str)
- metachars_invert_re = Regexp.new(METACHARS_INVERT.keys.collect{|key| Regexp.escape(key)}.join('|'))
+ metachars_invert_re = Regexp.new(@metachars_invert.keys.collect{|key| Regexp.escape(key)}.join('|'))
str.gsub(metachars_invert_re) {|s|
- METACHARS_INVERT[s] or raise "unknown trans char: #{s}"
+ @metachars_invert[s] or raise "unknown trans char: #{s}"
}
end
alias_method :unescape, :unescape_latex