module MathML::LaTeX::BuiltinCommands

Constants

OVERS
UNDERS

Public Class Methods

new() click to toggle source
Calls superclass method
    # File lib/math_ml/latex.rb
724 def initialize
725   add_commands('\\' => :backslash)
726   add_commands('entity', 'stackrel', 'frac', 'sqrt', 'mbox')
727   add_multi_command(:hat_etc, *OVERS.keys)
728   add_multi_command(:underbrace_etc, *UNDERS.keys)
729   add_multi_command(:quad_etc, ' ', 'quad', 'qquad', ',', ':', ';', '!')
730   add_multi_command(:it_etc, 'it', 'rm', 'bf')
731   add_multi_command(:mathit_etc, 'mathit', 'mathrm', 'mathbf', 'bm', 'mathbb', 'mathscr', 'mathfrak')
732   add_sym_cmd(Builtin::Symbol::MAP)
733   add_delimiter(Builtin::Symbol::DELIMITERS)
734 
735   super
736 end

Public Instance Methods

cmd_backslash() click to toggle source
    # File lib/math_ml/latex.rb
738 def cmd_backslash
739   @ds ? nil : XMLElement.new('br', 'xmlns' => 'http://www.w3.org/1999/xhtml')
740 end
cmd_entity() click to toggle source
    # File lib/math_ml/latex.rb
752 def cmd_entity
753   param = @scanner.scan_block ? @scanner[1] : @scanner.scan(/./)
754   raise ParseError, 'Need parameter.' unless param
755 
756   unless @unsecure_entity || @entities[param]
757     param = @scanner.matched[/\A\{#{RE::SPACE}*(.*\})\z/, 1] if @scanner.matched =~ RE::BLOCK
758     @scanner.pos = @scanner.pos - param.size
759     raise ParseError, 'Unregistered entity.'
760   end
761   Operator.new << entitize(param)
762 end
cmd_frac() click to toggle source
    # File lib/math_ml/latex.rb
820 def cmd_frac
821   n = parse_any
822   d = parse_any
823   Frac.new(n, d)
824 end
cmd_hat_etc() click to toggle source
    # File lib/math_ml/latex.rb
742 def cmd_hat_etc
743   com = @scanner[1]
744   Over.new(parse_any, Operator.new << entitize(OVERS[com]))
745 end
cmd_it_etc() click to toggle source
    # File lib/math_ml/latex.rb
789 def cmd_it_etc
790   case @scanner[1]
791   when 'it'
792     @font = Font::NORMAL
793   when 'rm'
794     @font = Font::ROMAN
795   when 'bf'
796     @font = Font::BOLD
797   end
798   nil
799 end
cmd_mathit_etc() click to toggle source
    # File lib/math_ml/latex.rb
801 def cmd_mathit_etc
802   case @scanner[1]
803   when 'mathit'
804     parse_mathfont(Font::NORMAL)
805   when 'mathrm'
806     parse_mathfont(Font::ROMAN)
807   when 'mathbf'
808     parse_mathfont(Font::BOLD)
809   when 'bm'
810     parse_mathfont(Font::BOLD_ITALIC)
811   when 'mathbb'
812     parse_mathfont(Font::BLACKBOLD)
813   when 'mathscr'
814     parse_mathfont(Font::SCRIPT)
815   when 'mathfrak'
816     parse_mathfont(Font::FRAKTUR)
817   end
818 end
cmd_mbox() click to toggle source
    # File lib/math_ml/latex.rb
837 def cmd_mbox
838   @scanner.scan_any
839   Text.new << (@scanner.matched =~ RE::BLOCK ? @scanner[1] : @scanner.matched)
840 end
cmd_quad_etc() click to toggle source
    # File lib/math_ml/latex.rb
770 def cmd_quad_etc
771   case @scanner[1]
772   when ' '
773     Space.new('1em')
774   when 'quad'
775     Space.new('1em')
776   when 'qquad'
777     Space.new('2em')
778   when ','
779     Space.new('0.167em')
780   when ':'
781     Space.new('0.222em')
782   when ';'
783     Space.new('0.278em')
784   when '!'
785     Space.new('-0.167em')
786   end
787 end
cmd_sqrt() click to toggle source
    # File lib/math_ml/latex.rb
826 def cmd_sqrt
827   if @scanner.scan_option
828     i = parse_into(@scanner[1], [])
829     i = i.size == 1 ? i[0] : (Row.new << i)
830     b = parse_any
831     Root.new(i, b)
832   else
833     Sqrt.new << parse_any
834   end
835 end
cmd_stackrel() click to toggle source
    # File lib/math_ml/latex.rb
764 def cmd_stackrel
765   o = parse_any
766   b = parse_any
767   Over.new(b, o)
768 end
cmd_underbrace_etc() click to toggle source
    # File lib/math_ml/latex.rb
747 def cmd_underbrace_etc
748   com = @scanner[1]
749   Under.new(parse_any, Operator.new << entitize(UNDERS[com]))
750 end