@@ -47,7 +47,7 @@ readLaTeX :: ParserState -- ^ Parser state, including options for parser
47readLaTeX = readWith parseLaTeX
47readLaTeX = readWith parseLaTeX
49-- characters with special meaning
49-- characters with special meaning
50−specialChars = "\\$%&^&_~#{}\n \t|<>'\"-"
50+specialChars = "\\$%^&_~#{}\n \t|<>'\"-"
53-- utility functions
53-- utility functions
@@ -507,12 +507,19 @@ lt = try (string "\\textless") >> return (Str "<")
508gt = try (string "\\textgreater") >> return (Str ">")
508gt = try (string "\\textgreater") >> return (Str ">")
510+code = code1 <|> code2
510−code = try $ do
512+code1 = try $ do
511 string "\\verb"
513 string "\\verb"
512 marker <- anyChar
514 marker <- anyChar
513 result <- manyTill anyChar (char marker)
515 result <- manyTill anyChar (char marker)
514 return $ Code $ removeLeadingTrailingSpace result
516 return $ Code $ removeLeadingTrailingSpace result
520+ result <- manyTill (noneOf "\\\n~$%^&{}") (char '}')
521+ return $ Code result
516emph = try $ oneOfStrings [ "\\emph{", "\\textit{" ] >>
523emph = try $ oneOfStrings [ "\\emph{", "\\textit{" ] >>
517 manyTill inline (char '}') >>= return . Emph
524 manyTill inline (char '}') >>= return . Emph