From 3679d8d0bd0969d08142a2f6eb40b3a4bd0522d4 Mon Sep 17 00:00:00 2001 From: John MacFarlane <jgm@berkeley.edu> Date: Fri, 22 Dec 2017 16:57:52 -0800 Subject: [PATCH] LaTeX reader: use applyMacros in rawLaTeXBlock, rawLaTeXInline. --- src/Text/Pandoc/Readers/LaTeX.hs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index a43f3d572..5299b964f 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -270,13 +270,16 @@ rawLaTeXBlock :: (PandocMonad m, HasMacros s, HasReaderOptions s) => ParserT String s m String rawLaTeXBlock = do lookAhead (try (char '\\' >> letter)) - snd <$> rawLaTeXParser (environment <|> macroDef <|> blockCommand) + -- we don't want to apply newly defined latex macros to their own + -- definitions: + (snd <$> rawLaTeXParser macroDef) <|> + ((snd <$> rawLaTeXParser (environment <|> blockCommand)) >>= applyMacros) rawLaTeXInline :: (PandocMonad m, HasMacros s, HasReaderOptions s) => ParserT String s m String rawLaTeXInline = do lookAhead (try (char '\\' >> letter) <|> char '$') - snd <$> rawLaTeXParser (inlineEnvironment <|> inlineCommand') + rawLaTeXParser (inlineEnvironment <|> inlineCommand') >>= applyMacros . snd inlineCommand :: PandocMonad m => ParserT String ParserState m Inlines inlineCommand = do