LaTeX reader: handle interior $ characters in math.

e.g. `$$\hbox{$i$}$$`.

Partially addresses #2743.
This commit is contained in:
John MacFarlane 2016-02-28 11:14:03 -08:00
parent ea70495fac
commit 7c6a3c0f69

View file

@ -166,10 +166,18 @@ mathInline :: LP String -> LP Inlines
mathInline p = math <$> (try p >>= applyMacros') mathInline p = math <$> (try p >>= applyMacros')
mathChars :: LP String mathChars :: LP String
mathChars = (concat <$>) $ mathChars =
many $ concat <$> many (escapedChar
many1 (satisfy (\c -> c /= '$' && c /='\\')) <|> (snd <$> withRaw braced)
<|> (\c -> ['\\',c]) <$> try (char '\\' *> anyChar) <|> many1 (satisfy isOrdChar))
where escapedChar = try $ do char '\\'
c <- anyChar
return ['\\',c]
isOrdChar '$' = False
isOrdChar '{' = False
isOrdChar '}' = False
isOrdChar '\\' = False
isOrdChar _ = True
quoted' :: (Inlines -> Inlines) -> LP String -> LP () -> LP Inlines quoted' :: (Inlines -> Inlines) -> LP String -> LP () -> LP Inlines
quoted' f starter ender = do quoted' f starter ender = do