@@ -35,6 +35,7 @@ module Text.Pandoc.Readers.LaTeX ( readLaTeX,
37import Text.Pandoc.Definition
37import Text.Pandoc.Definition
38+import Text.Pandoc.Generic
38import Text.Pandoc.Shared
39import Text.Pandoc.Shared
39import Text.Pandoc.Options
40import Text.Pandoc.Options
40import Text.Pandoc.Biblio (processBiblio)
41import Text.Pandoc.Biblio (processBiblio)
@@ -48,7 +49,7 @@ import Control.Applicative
48import Data.Monoid
49import Data.Monoid
49import System.Environment (getEnv)
50import System.Environment (getEnv)
50import System.FilePath (replaceExtension, (</>))
51import System.FilePath (replaceExtension, (</>))
51−import Data.List (intercalate)
52+import Data.List (intercalate, intersperse)
52import qualified Data.Map as M
53import qualified Data.Map as M
53import qualified Control.Exception as E
54import qualified Control.Exception as E
54import System.FilePath (takeExtension, addExtension)
55import System.FilePath (takeExtension, addExtension)
@@ -776,13 +777,21 @@ keyval = try $ do
776keyvals :: LP [(String, String)]
777keyvals :: LP [(String, String)]
777keyvals = try $ char '[' *> manyTill keyval (char ']')
778keyvals = try $ char '[' *> manyTill keyval (char ']')
780+alltt :: String -> LP Blocks
781+alltt t = bottomUp strToCode <$> parseFromString blocks
782+ (substitute " " "\\ " $ substitute "%" "\\%" $
783+ concat $ intersperse "\\\\\n" $ lines t)
784+ where strToCode (Str s) = Code nullAttr s
779verbatimEnv :: LP (String, String)
787verbatimEnv :: LP (String, String)
780verbatimEnv = do
788verbatimEnv = do
781 (_,r) <- withRaw $ do
789 (_,r) <- withRaw $ do
782 controlSeq "begin"
790 controlSeq "begin"
783 name <- braced
791 name <- braced
784 guard $ name == "verbatim" || name == "Verbatim" ||
792 guard $ name == "verbatim" || name == "Verbatim" ||
785− name == "lstlisting" || name == "minted"
793+ name == "lstlisting" || name == "minted" ||
786 verbEnv name
795 verbEnv name
787 rest <- getInput
796 rest <- getInput
788 return (r,rest)
797 return (r,rest)
@@ -808,6 +817,7 @@ environments = M.fromList
808 , ("itemize", bulletList <$> listenv "itemize" (many item))
817 , ("itemize", bulletList <$> listenv "itemize" (many item))
809 , ("description", definitionList <$> listenv "description" (many descItem))
818 , ("description", definitionList <$> listenv "description" (many descItem))
810 , ("enumerate", ordered_list)
819 , ("enumerate", ordered_list)
820+ , ("alltt", alltt =<< verbEnv "alltt")
811 , ("code", guardEnabled Ext_literate_haskell *>
821 , ("code", guardEnabled Ext_literate_haskell *>
812 (codeBlockWith ("",["sourceCode","literate","haskell"],[]) <$>
822 (codeBlockWith ("",["sourceCode","literate","haskell"],[]) <$>
813 verbEnv "code"))
823 verbEnv "code"))