From 8ce4b2fb62ffa6d9893f9fa54d5fd0016bcdfc5b Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Sat, 14 Jul 2007 17:59:06 +0000 Subject: Simplified special character escaping code in LaTeX writer. git-svn-id: https://pandoc.googlecode.com/svn/trunk@705 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/Writers/LaTeX.hs | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src/Text/Pandoc/Writers') diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 230e75414..c16a80fac 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -77,21 +77,27 @@ latexHeader options (Meta title authors date) = -- escape things as needed for LaTeX -escapeBrackets = backslashEscape "{}" -escapeSpecial = backslashEscape "$%&~_#" - -escapeBackslash = substitute "\\" "\\textbackslash{}" -fixBackslash = substitute "\\textbackslash\\{\\}" "\\textbackslash{}" -escapeHat = substitute "^" "\\^{}" -escapeBar = substitute "|" "\\textbar{}" -escapeLt = substitute "<" "\\textless{}" -escapeGt = substitute ">" "\\textgreater{}" +escapeCharForLaTeX :: Char -> String +escapeCharForLaTeX ch = + case ch of + '\\' -> "\\textbackslash{}" + '{' -> "\\{" + '}' -> "\\}" + '$' -> "\\$" + '%' -> "\\%" + '&' -> "\\&" + '~' -> "\\~" + '_' -> "\\_" + '#' -> "\\#" + '^' -> "\\^{}" + '|' -> "\\textbar{}" + '<' -> "\\textless{}" + '>' -> "\\textgreater{}" + x -> [x] -- | Escape string for LaTeX stringToLaTeX :: String -> String -stringToLaTeX = escapeGt . escapeLt . escapeBar . escapeHat . - escapeSpecial . fixBackslash . escapeBrackets . - escapeBackslash +stringToLaTeX = concatMap escapeCharForLaTeX -- | Remove all code elements from list of inline elements -- (because it's illegal to have a \\verb inside a command argument) -- cgit v1.2.3