aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Readers/LaTeX/Macro.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Readers/LaTeX/Macro.hs')
-rw-r--r--src/Text/Pandoc/Readers/LaTeX/Macro.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX/Macro.hs b/src/Text/Pandoc/Readers/LaTeX/Macro.hs
index 5709cbb8c..bd7979ef3 100644
--- a/src/Text/Pandoc/Readers/LaTeX/Macro.hs
+++ b/src/Text/Pandoc/Readers/LaTeX/Macro.hs
@@ -25,8 +25,8 @@ macroDef constructor = do
guardDisabled Ext_latex_macros)
<|> return mempty
where commandDef = do
- nameMacroPairs <- newcommand <|> letmacro <|>
- edefmacro <|> defmacro <|> newif
+ nameMacroPairs <- newcommand <|>
+ checkGlobal (letmacro <|> edefmacro <|> defmacro <|> newif)
guardDisabled Ext_latex_macros <|>
mapM_ insertMacro nameMacroPairs
environmentDef = do
@@ -77,6 +77,14 @@ letmacro = do
Macro GroupScope ExpandWhenDefined [] Nothing [target])]
_ -> pure [(name, Macro GroupScope ExpandWhenDefined [] Nothing [target])]
+checkGlobal :: PandocMonad m => LP m [(Text, Macro)] -> LP m [(Text, Macro)]
+checkGlobal p =
+ (do controlSeq "global"
+ ms <- p
+ return $ map (\(n, Macro _ expand arg optarg contents) ->
+ (n, Macro GlobalScope expand arg optarg contents)) ms)
+ <|> p
+
edefmacro :: PandocMonad m => LP m [(Text, Macro)]
edefmacro = do
scope <- (GroupScope <$ controlSeq "edef")