diff options
-rw-r--r-- | src/Text/Pandoc/Readers/LaTeX.hs | 15 | ||||
-rw-r--r-- | test/command/4624.md | 30 |
2 files changed, 44 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Readers/LaTeX.hs b/src/Text/Pandoc/Readers/LaTeX.hs index 8a8b7dfb6..17d1c4bc9 100644 --- a/src/Text/Pandoc/Readers/LaTeX.hs +++ b/src/Text/Pandoc/Readers/LaTeX.hs @@ -2145,7 +2145,20 @@ verbEnv name = withVerbatimMode $ do skipopts optional blankline res <- manyTill anyTok (end_ name) - return $ stripTrailingNewlines $ toksToString res + return $ T.unpack + $ stripTrailingNewline + $ untokenize + $ res + +-- Strip single final newline and any spaces following it. +-- Input is unchanged if it doesn't end with newline + +-- optional spaces. +stripTrailingNewline :: Text -> Text +stripTrailingNewline t = + let (b, e) = T.breakOnEnd "\n" t + in if T.all (== ' ') e + then T.dropEnd 1 b + else t fancyverbEnv :: PandocMonad m => Text -> LP m Blocks fancyverbEnv name = do diff --git a/test/command/4624.md b/test/command/4624.md new file mode 100644 index 000000000..f9aa45596 --- /dev/null +++ b/test/command/4624.md @@ -0,0 +1,30 @@ +``` +% pandoc -f latex -t native +\begin{Verbatim}[key1=value1] +code1 + +\end{Verbatim} + + +\begin{lstlisting}[key2=value2] +code2 + +\end{lstlisting} + +\begin{verbatim} +code3 +\end{verbatim} + +\begin{verbatim} +code4 + \end{verbatim} + +\begin{verbatim} +code5\end{verbatim} +^D +[CodeBlock ("",[],[("key1","value1")]) "code1\n" +,CodeBlock ("",[],[("key2","value2")]) "code2\n " +,CodeBlock ("",[],[]) "code3" +,CodeBlock ("",[],[]) "code4" +,CodeBlock ("",[],[]) "code5"] +``` |