git.iko.soy/typeable/pandoc
on master help sign in
LaTeX writer: escape option values in lstlistings environment.

Closes #6742.

commita55fb5f29d3772981adfc494c2597f0a1b8bdb64 authorJohn MacFarlane <jgm@berkeley.edu> dateTue 13 Oct 2020, 20:53 (6 years ago) parent229e763
1 file changed+2−1
src/Text/Pandoc/Writers/LaTeX.hs+2−1
src/Text/Pandoc/Writers/LaTeX.hs+2−1
@@ -635,6 +635,7 @@ blockToLaTeX (CodeBlock (identifier,classes,keyvalAttr) str) = do
635635 let listingsCodeBlock = do
636636 st <- get
637637 ref <- toLabel identifier
638+ let esc = escapeStringUsing (backslashEscapes "\\{}%~_&#^")
638639 let params = if writerListings (stOptions st)
639640 then (case getListingsLanguage classes of
640641 Just l -> [ "language=" <> mbBraced l ]
@@ -644,7 +645,7 @@ blockToLaTeX (CodeBlock (identifier,classes,keyvalAttr) str) = do
644645 || "number-lines" `elem` classes ] ++
645646 [ (if key == "startFrom"
646647 then "firstnumber"
647− else key) <> "=" <> mbBraced attr |
648+ else key) <> "=" <> mbBraced (esc attr) |
648649 (key,attr) <- keyvalAttr,
649650 key `notElem` ["exports", "tangle", "results"]
650651 -- see #4889