# File lib/math_ml/latex.rb, line 275
                        def parse_newenvironment
                                case
                                when @scanner.scan_block
                                        env = @scanner[1]
                                when @scanner.scan_command
                                        raise ParseError.new
                                when @scanner.scan(/./)
                                        env = @scanner.matched
                                end
                                raise parse_error("Syntax error.", env[/\A.*?(\\.*\z)/, 1], @scanner.matched) if env=~/\\/

                                optnum = scan_num_of_parameter
                                opt = @scanner.scan_option ? @scanner[1] : nil

                                b = @scanner.scan_block ? @scanner[1] : @scanner.scan_any
                                raise parse_error("Need begin block.") unless b
                                check_parameter_numbers(b, optnum, @scanner.matched)
                                e = @scanner.scan_block ? @scanner[1] : @scanner.scan_any
                                raise parse_error("Need end block.") unless e
                                check_parameter_numbers(e, optnum, @scanner.matched)

                                optnum -= 1 if opt
                                @environments[env] = Environment.new(optnum, b, e, opt)
                        end