git.iko.soy/typeable/pandoc
on master help sign in
LaTeX writer: escape option values in lstlistings environment.
a55fb5fJohn MacFarlane
src/Text/Pandoc/Writers/LaTeX.hs+2−1
@@ -635,6 +635,7 @@ blockToLaTeX (CodeBlock (identifier,classes,keyvalAttr) str) = do
635 let listingsCodeBlock = do
635 let listingsCodeBlock = do
636 st <- get
636 st <- get
637 ref <- toLabel identifier
637 ref <- toLabel identifier
638+ let esc = escapeStringUsing (backslashEscapes "\\{}%~_&#^")
638 let params = if writerListings (stOptions st)
639 let params = if writerListings (stOptions st)
639 then (case getListingsLanguage classes of
640 then (case getListingsLanguage classes of
640 Just l -> [ "language=" <> mbBraced l ]
641 Just l -> [ "language=" <> mbBraced l ]
@@ -644,7 +645,7 @@ blockToLaTeX (CodeBlock (identifier,classes,keyvalAttr) str) = do
644 || "number-lines" `elem` classes ] ++
645 || "number-lines" `elem` classes ] ++
645 [ (if key == "startFrom"
646 [ (if key == "startFrom"
646 then "firstnumber"
647 then "firstnumber"
647− else key) <> "=" <> mbBraced attr |
648+ else key) <> "=" <> mbBraced (esc attr) |
648 (key,attr) <- keyvalAttr,
649 (key,attr) <- keyvalAttr,
649 key `notElem` ["exports", "tangle", "results"]
650 key `notElem` ["exports", "tangle", "results"]
650 -- see #4889
651 -- see #4889