summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2017-03-10 09:46:32 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2017-03-10 09:46:32 +0100
commitc46febaaeef1c203f5bbb88d845ad5554622f609 (patch)
tree18654f772bb8d50d4b9345031b3076e90340ac65 /src
parenta088d67f0d7212c96f5b59c568f0fc61a1106be4 (diff)
Expand \newenvironment macros.
Closes #987. Depends on still unreleased texmath 0.9.3.
Diffstat (limited to 'src')
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 48266f894..7018d2ce3 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -971,17 +971,19 @@ rawEnv name = do
let parseRaw = extensionEnabled Ext_raw_tex exts
rawOptions <- mconcat <$> many rawopt
let beginCommand = "\\begin{" ++ name ++ "}" ++ rawOptions
- unless parseRaw $ do
- pos1 <- getPosition
- report $ SkippedContent beginCommand pos1
+ pos1 <- getPosition
(bs, raw) <- withRaw $ env name blocks
- raw' <- applyMacros' raw
- if parseRaw
- then return $ rawBlock "latex" $ beginCommand ++ raw'
- else do
- pos2 <- getPosition
- report $ SkippedContent ("\\end{" ++ name ++ "}") pos2
- return bs
+ raw' <- applyMacros' $ beginCommand ++ raw
+ if raw' /= beginCommand ++ raw
+ then parseFromString blocks raw'
+ else if parseRaw
+ then return $ rawBlock "latex" $ beginCommand ++ raw'
+ else do
+ unless parseRaw $ do
+ report $ SkippedContent beginCommand pos1
+ pos2 <- getPosition
+ report $ SkippedContent ("\\end{" ++ name ++ "}") pos2
+ return bs
----