From cafb8b7371c5d4de4cc2fa3a4f40ea6b8053a9ba Mon Sep 17 00:00:00 2001 From: Igor Pashev Date: Tue, 9 Jun 2020 23:17:31 +0200 Subject: Allow multicols env in LaTeX reader The multicols environment has a mandatory argument - number of columns. It is incorrectly parsed as plain string. Wrap multicols content into nested divs. Signed-off-by: Igor Pashev --- src/Text/Pandoc/Readers/LaTeX.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/Text') diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 2a9bff746..de01708f2 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -1642,6 +1642,7 @@ environments = M.fromList , ("abstract", mempty <$ (env "abstract" blocks >>= addMeta "abstract")) , ("sloppypar", env "sloppypar" blocks) , ("letter", env "letter" letterContents) + , ("multicols", env "multicols" multicols) , ("minipage", env "minipage" $ skipopts *> spaces *> optional braced *> spaces *> blocks) , ("figure", env "figure" $ skipopts *> figure) @@ -1903,6 +1904,18 @@ letterContents = do _ -> mempty return $ addr <> bs -- sig added by \closing +multicols :: PandocMonad m => LP m Blocks +multicols = do + spaces + n <- fromMaybe 1 . safeRead . untokenize <$> braced + spaces + bs <- blocks + return $ divWith ("", ["columns"], []) $ cols n bs + where + cols :: Int -> Blocks -> Blocks + cols n = foldr1 (.) (replicate n $ divWith ("", ["column"], [])) + + figure :: PandocMonad m => LP m Blocks figure = try $ do resetCaption -- cgit v1.2.3