diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 4179f4550..d1262867c 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -1494,9 +1494,11 @@ parseTableRow :: PandocMonad m -> [String] -- ^ suffixes -> LP m [Blocks] parseTableRow cols prefixes suffixes = try $ do - let tableCellRaw = many (notFollowedBy - (amp <|> lbreak <|> - (() <$ try (string "\\end"))) >> anyChar) + let tableCellRaw = concat <$> many + (do notFollowedBy (amp <|> lbreak <|> (() <$ try (string "\\end"))) + many1 (noneOf "&%\n\r\\") + <|> try (string "\\&") + <|> count 1 anyChar) let minipage = try $ controlSeq "begin" *> string "{minipage}" *> env "minipage" (skipopts *> spaces' *> optional braced *> spaces' *> blocks) diff --git a/test/command/3708.md b/test/command/3708.md new file mode 100644 index 000000000..2cbc82c25 --- /dev/null +++ b/test/command/3708.md @@ -0,0 +1,15 @@ +``` +% pandoc -f latex -t native +\begin{tabular}{cc} + A & B\&1 \\ + C & D +\end{tabular} +^D +[Table [] [AlignCenter,AlignCenter] [0.0,0.0] + [[] + ,[]] + [[[Plain [Str "A"]] + ,[Plain [Str "B&1"]]] + ,[[Plain [Str "C"]] + ,[Plain [Str "D"]]]]] +```