# File lib/math_ml/latex.rb, line 1055
                        def env_matrix
                                t = Table.new
                                hlines = Array.new
                                hlined = false
                                row_parsed = false
                                until @scanner.peek_command=="end"
                                        raise ParseError.new('Matching \end not exist.') if @scanner.eos?
                                        if @scanner.peek_command=="hline"
                                                @scanner.scan_command
                                                t << Tr.new unless row_parsed
                                                hlines << Line::SOLID
                                                row_parsed = false
                                                hlined = true
                                        else
                                                hlines << Line::NONE if row_parsed
                                                t << (r = Tr.new)
                                                r << (td=Td.new)
                                                until @scanner.check(RE::WBSLASH) || @scanner.peek_command=="end" || @scanner.eos?
                                                        push_container(td) do |e|
                                                                e << parse_to_element(true) until @scanner.peek_command=="end" || @scanner.check(/(&|\\\\)/) || @scanner.eos?
                                                        end
                                                        r << (td=Td.new) if @scanner.scan(/&/)
                                                end
                                                @scanner.scan(RE::WBSLASH)
                                                row_parsed = true
                                                hlined = false
                                        end
                                end
                                t.hlines = hlines

                                t << Tr.new if hlined

                                raise ParseError.new("Need \\end{array}.") unless @scanner.peek_command=="end"
                                @scanner.scan_command
                                raise ParseError.new("Environment mismatched.") unless @scanner.check_block && @scanner[1]=="matrix"
                                @scanner.scan_block
                                t
                        end