Module | MathML::LaTeX::BuiltinCommands |
In: |
lib/math_ml/latex.rb
|
OVERS | = | {'hat'=>'circ', 'breve'=>'smile', 'grave'=>'grave', 'acute'=>'acute', 'dot'=>'sdot', 'ddot'=>'nldr', 'tilde'=>'tilde', 'bar'=>'macr', 'vec'=>'rightarrow', 'check'=>'vee', 'widehat'=>'circ', 'overline'=>'macr', 'widetilde'=>'tilde', 'overbrace'=>'OverBrace'} |
UNDERS | = | {'underbrace'=>'UnderBrace', 'underline'=>'macr'} |
# File lib/math_ml/latex.rb, line 711 711: def initialize 712: add_commands("\\"=>:backslash) 713: add_commands("entity", "stackrel", "frac", "sqrt", "mbox") 714: add_multi_command(:hat_etc, 'hat', 'breve', 'grave', 'acute', 'dot', 'ddot', 'tilde', 'bar', 'vec', 'check', 'widehat', 'overline', 'widetilde', 'overbrace') 715: add_multi_command(:underbrace_etc, 'underbrace', 'underline') 716: add_multi_command(:quad_etc, " ", "quad", "qquad", ",", ":", ";", "!") 717: add_multi_command(:it_etc, "it", "rm", "bf") 718: add_multi_command(:mathit_etc, "mathit", "mathrm", "mathbf", "bm", "mathbb", "mathscr", "mathfrak") 719: add_sym_cmd(Builtin::Symbol::MAP) 720: add_delimiter(Builtin::Symbol::DELIMITERS) 721: 722: super 723: end
# File lib/math_ml/latex.rb, line 725 725: def cmd_backslash 726: @ds ? nil : XMLElement.new("br", "xmlns"=>"http://www.w3.org/1999/xhtml") 727: end
# File lib/math_ml/latex.rb, line 739 739: def cmd_entity 740: param = @scanner.scan_block ? @scanner[1] : @scanner.scan(/./) 741: raise ParseError.new("Need parameter.") unless param 742: unless @unsecure_entity || @entities[param] 743: param =@scanner.matched[/\A\{#{RE::SPACE}*(.*\})\z/, 1] if @scanner.matched=~RE::BLOCK 744: @scanner.pos = @scanner.pos-(param.size) 745: raise ParseError.new("Unregistered entity.") 746: end 747: Operator.new << entitize(param) 748: end
# File lib/math_ml/latex.rb, line 805 805: def cmd_frac 806: n = parse_any; d = parse_any 807: Frac.new(n, d) 808: end
# File lib/math_ml/latex.rb, line 729 729: def cmd_hat_etc 730: com = @scanner[1] 731: Over.new(parse_any, Operator.new << entitize(OVERS[com])) 732: end
# File lib/math_ml/latex.rb, line 774 774: def cmd_it_etc 775: case @scanner[1] 776: when 'it' 777: @font = Font::NORMAL 778: when 'rm' 779: @font = Font::ROMAN 780: when 'bf' 781: @font = Font::BOLD 782: end 783: nil 784: end
# File lib/math_ml/latex.rb, line 786 786: def cmd_mathit_etc 787: case @scanner[1] 788: when 'mathit' 789: parse_mathfont(Font::NORMAL) 790: when 'mathrm' 791: parse_mathfont(Font::ROMAN) 792: when 'mathbf' 793: parse_mathfont(Font::BOLD) 794: when 'bm' 795: parse_mathfont(Font::BOLD_ITALIC) 796: when 'mathbb' 797: parse_mathfont(Font::BLACKBOLD) 798: when 'mathscr' 799: parse_mathfont(Font::SCRIPT) 800: when 'mathfrak' 801: parse_mathfont(Font::FRAKTUR) 802: end 803: end
# File lib/math_ml/latex.rb, line 821 821: def cmd_mbox 822: @scanner.scan_any 823: Text.new << (@scanner.matched =~ RE::BLOCK ? @scanner[1] : @scanner.matched) 824: end
# File lib/math_ml/latex.rb, line 755 755: def cmd_quad_etc 756: case @scanner[1] 757: when ' ' 758: Space.new("1em") 759: when 'quad' 760: Space.new("1em") 761: when 'qquad' 762: Space.new("2em") 763: when ',' 764: Space.new("0.167em") 765: when ':' 766: Space.new("0.222em") 767: when ';' 768: Space.new("0.278em") 769: when '!' 770: Space.new("-0.167em") 771: end 772: end
# File lib/math_ml/latex.rb, line 810 810: def cmd_sqrt 811: if @scanner.scan_option 812: i = parse_into(@scanner[1], Array.new) 813: i = i.size==1 ? i[0] : (Row.new << i) 814: b = parse_any 815: Root.new(i, b) 816: else 817: Sqrt.new << parse_any 818: end 819: end
# File lib/math_ml/latex.rb, line 750 750: def cmd_stackrel 751: o = parse_any; b = parse_any 752: Over.new(b, o) 753: end