git.iko.soy/typeable/pandoc
on master help sign in
LaTeX reader: minor improvements.

+ parse '{}', if present, after \textless, \textgreater, \textbar, \textbackslash, \ldots. + Parse unescaped special characters verbatim rather than changing them to spaces. This way arguments of unknown commands will appear in braces. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1424 788f1e2b-df1e-0410-8736-df70ead52e1b

commitb422711451fb6520e9a23caee973bf2f36c237c6 authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateSat 6 Sep 2008, 20:45 (18 years ago) parentae30b5a
2 files changed+10−8
Text/Pandoc/Readers/LaTeX.hs+9−7 tests/latex-reader.native+1−1
Text/Pandoc/Readers/LaTeX.hs+9−7
@@ -412,6 +412,7 @@ unknownCommand = try $ do
412412 char '\\'
413413 letter
414414 many (letter <|> digit)
415+ optional (try $ string "{}")
415416 spaces
416417 return Null
417418
@@ -542,15 +543,15 @@ escapedChar = do
542543 result <- escaped (oneOf " $%&_#{}\n")
543544 return $ if result == Str "\n" then Str " " else result
544545
545−-- treat nonescaped special characters as spaces
546+-- nonescaped special characters
546547unescapedChar :: GenParser Char st Inline
547−unescapedChar = oneOf "`$^&_#{}|<>" >> return Space
548+unescapedChar = oneOf "`$^&_#{}|<>" >>= return . (\c -> Str [c])
548549
549550specialChar :: GenParser Char st Inline
550551specialChar = choice [ backslash, tilde, caret, bar, lt, gt, doubleQuote ]
551552
552553backslash :: GenParser Char st Inline
553−backslash = try (string "\\textbackslash") >> return (Str "\\")
554+backslash = try (string "\\textbackslash") >> optional (try $ string "{}") >> return (Str "\\")
554555
555556tilde :: GenParser Char st Inline
556557tilde = try (string "\\ensuremath{\\sim}") >> return (Str "~")
@@ -559,13 +560,13 @@ caret :: GenParser Char st Inline
559560caret = try (string "\\^{}") >> return (Str "^")
560561
561562bar :: GenParser Char st Inline
562−bar = try (string "\\textbar") >> return (Str "\\")
563+bar = try (string "\\textbar") >> optional (try $ string "{}") >> return (Str "\\")
563564
564565lt :: GenParser Char st Inline
565−lt = try (string "\\textless") >> return (Str "<")
566+lt = try (string "\\textless") >> optional (try $ string "{}") >> return (Str "<")
566567
567568gt :: GenParser Char st Inline
568−gt = try (string "\\textgreater") >> return (Str ">")
569+gt = try (string "\\textgreater") >> optional (try $ string "{}") >> return (Str ">")
569570
570571doubleQuote :: GenParser Char st Inline
571572doubleQuote = char '"' >> return (Str "\"")
@@ -631,7 +632,7 @@ doubleQuoteEnd :: CharParser st String
631632doubleQuoteEnd = try $ string "''"
632633
633634ellipses :: GenParser Char st Inline
634−ellipses = try $ string "\\ldots" >> optional (try (string "{}")) >>
635+ellipses = try $ string "\\ldots" >> optional (try $ string "{}") >>
635636 return Ellipses
636637
637638enDash :: GenParser Char st Inline
@@ -756,4 +757,5 @@ rawLaTeXInline = try $ do
756757 char '\\'
757758 letter
758759 many (letter <|> digit)
760+ optional (try $ string "{}")
759761 return $ Str ""
tests/latex-reader.native+1−1
@@ -303,7 +303,7 @@ Pandoc (Meta [Str "Pandoc",Space,Str "Test",Space,Str "Suite"] ["John MacFarlane
303303, Para [Str "4",Space,Str "<",Space,Str "5."]
304304, Para [Str "6",Space,Str ">",Space,Str "5."]
305305, Para [Str "Backslash:",Space,Str "\\"]
306−, Para [Str "Backtick:"]
306+, Para [Str "Backtick:",Space,Str "`"]
307307, Para [Str "Asterisk:",Space,Str "*"]
308308, Para [Str "Underscore:",Space,Str "_"]
309309, Para [Str "Left",Space,Str "brace:",Space,Str "{"]