| 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