Stop escaping | in LaTeX math.

This caused problems with array environments.  Closes #891.
This commit is contained in:
John MacFarlane 2013-06-26 20:54:31 -07:00
parent f939dbdcc5
commit 79a4ea03e2
3 changed files with 4 additions and 11 deletions

View file

@ -212,13 +212,6 @@ stringToLaTeX isUrl (x:xs) = do
'\x2013' | ligatures -> "--" ++ rest
_ -> x : rest
-- This is needed because | in math mode interacts badly with
-- highlighting-kate, which redefines | as a short verb command.
escapeMath :: String -> String
escapeMath ('|':xs) = "\\vert " ++ escapeMath xs
escapeMath (x:xs) = x : escapeMath xs
escapeMath [] = ""
-- | Puts contents into LaTeX command.
inCmd :: String -> Doc -> Doc
inCmd cmd contents = char '\\' <> text cmd <> braces contents
@ -622,9 +615,9 @@ inlineToLaTeX (Quoted qt lst) = do
else char '\x2018' <> inner <> char '\x2019'
inlineToLaTeX (Str str) = liftM text $ stringToLaTeX False str
inlineToLaTeX (Math InlineMath str) =
return $ char '$' <> text (escapeMath str) <> char '$'
return $ char '$' <> text str <> char '$'
inlineToLaTeX (Math DisplayMath str) =
return $ "\\[" <> text (escapeMath str) <> "\\]"
return $ "\\[" <> text str <> "\\]"
inlineToLaTeX (RawInline "latex" str) = return $ text str
inlineToLaTeX (RawInline "tex" str) = return $ text str
inlineToLaTeX (RawInline _ _) = return empty

View file

@ -34,6 +34,6 @@ tests = [ testGroup "code blocks"
]
, testGroup "math"
[ "escape |" =: para (math "\\sigma|_{\\{x\\}}") =?>
"$\\sigma\\vert _{\\{x\\}}$"
"$\\sigma|_{\\{x\\}}$"
]
]

View file

@ -23,7 +23,7 @@
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\DefineShortVerb[commandchars=\\\{\}]{\|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}