@@ -1521,6 +1521,7 @@ defmacro = try $
1521 Tok _ (CtrlSeq name) _ <- anyControlSeq
1521 Tok _ (CtrlSeq name) _ <- anyControlSeq
1522 argspecs <- many (argspecArg <|> argspecPattern)
1522 argspecs <- many (argspecArg <|> argspecPattern)
1523 contents <- bracedOrToken
1523 contents <- bracedOrToken
1524+ doMacros -- after all this verbatim mode
1524 return (name, Macro ExpandWhenUsed argspecs Nothing contents)
1525 return (name, Macro ExpandWhenUsed argspecs Nothing contents)
1526argspecArg :: PandocMonad m => LP m ArgSpec
1527argspecArg :: PandocMonad m => LP m ArgSpec
@@ -1541,23 +1542,25 @@ newcommand = do
1541 controlSeq "renewcommand" <|>
1542 controlSeq "renewcommand" <|>
1542 controlSeq "providecommand" <|>
1543 controlSeq "providecommand" <|>
1543 controlSeq "DeclareRobustCommand"
1544 controlSeq "DeclareRobustCommand"
1545+ withVerbatimMode $ do
1544− Tok _ (CtrlSeq name) txt <- withVerbatimMode $ do
1546+ Tok _ (CtrlSeq name) txt <- do
1545− optional (symbol '*')
1547+ optional (symbol '*')
1546− anyControlSeq <|>
1548+ anyControlSeq <|>
1547− (symbol '{' *> spaces *> anyControlSeq <* spaces <* symbol '}')
1549+ (symbol '{' *> spaces *> anyControlSeq <* spaces <* symbol '}')
1549− numargs <- option 0 $ try bracketedNum
1551+ numargs <- option 0 $ try bracketedNum
1550− let argspecs = map (\i -> ArgNum i) [1..numargs]
1552+ let argspecs = map (\i -> ArgNum i) [1..numargs]
1552− optarg <- option Nothing $ Just <$> try bracketedToks
1554+ optarg <- option Nothing $ Just <$> try bracketedToks
1554− contents <- withVerbatimMode bracedOrToken
1556+ contents <- bracedOrToken
1555− when (mtype == "newcommand") $ do
1557+ when (mtype == "newcommand") $ do
1556− macros <- sMacros <$> getState
1558+ macros <- sMacros <$> getState
1557− case M.lookup name macros of
1559+ case M.lookup name macros of
1558− Just _ -> report $ MacroAlreadyDefined (T.unpack txt) pos
1560+ Just _ -> report $ MacroAlreadyDefined (T.unpack txt) pos
1559− Nothing -> return ()
1561+ Nothing -> return ()
1562+ doMacros -- after all this verbatim mode
1560− return (name, Macro ExpandWhenUsed argspecs optarg contents)
1563+ return (name, Macro ExpandWhenUsed argspecs optarg contents)
1562newenvironment :: PandocMonad m => LP m (Text, Macro, Macro)
1565newenvironment :: PandocMonad m => LP m (Text, Macro, Macro)
1563newenvironment = do
1566newenvironment = do