summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Text/Pandoc/Readers/LaTeX.hs18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs
index 8745437a4..cc69786cf 100644
--- a/src/Text/Pandoc/Readers/LaTeX.hs
+++ b/src/Text/Pandoc/Readers/LaTeX.hs
@@ -938,12 +938,20 @@ inlineEnvironment = try $ do
rawEnv :: PandocMonad m => String -> LP m Blocks
rawEnv name = do
exts <- getOption readerExtensions
+ let parseRaw = extensionEnabled Ext_raw_tex exts
rawOptions <- mconcat <$> many rawopt
- let addBegin x = "\\begin{" ++ name ++ "}" ++ rawOptions ++ x
- if extensionEnabled Ext_raw_tex exts
- then (rawBlock "latex" . addBegin) <$>
- (withRaw (env name blocks) >>= applyMacros' . snd)
- else env name blocks
+ let beginCommand = "\\begin{" ++ name ++ "}" ++ rawOptions
+ unless parseRaw $ do
+ pos1 <- getPosition
+ warningWithPos pos1 $ "Skipped " ++ beginCommand
+ (bs, raw) <- withRaw $ env name blocks
+ raw' <- applyMacros' raw
+ if parseRaw
+ then return $ rawBlock "latex" $ beginCommand ++ raw'
+ else do
+ pos2 <- getPosition
+ warningWithPos pos2 $ "Skipped \\end{" ++ name ++ "}"
+ return bs
----