Module MathML::LaTeX::BuiltinCommands
In: lib/math_ml/latex.rb

Methods

Constants

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'}

Public Class methods

[Source]

     # 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

Public Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/math_ml/latex.rb, line 734
734:                         def cmd_underbrace_etc
735:                                 com = @scanner[1]
736:                                 Under.new(parse_any, Operator.new << entitize(UNDERS[com]))
737:                         end

[Validate]