diff options
author | John MacFarlane <jgm@berkeley.edu> | 2019-06-10 15:02:48 -0700 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2019-06-10 15:02:48 -0700 |
commit | 3febd81cbcadf7d36fd4686a5d323b31c44adf3a (patch) | |
tree | 21c5f5dc94417fafefbcbb31e633f4d29037f800 /src/Text | |
parent | 59529e408b87274fb8e0375fa198a6636cb67a11 (diff) | |
download | pandoc-3febd81cbcadf7d36fd4686a5d323b31c44adf3a.tar.gz |
LaTeX writer: Use mbox to get proper behavior inside `\sout`.
Closes #5529.
Diffstat (limited to 'src/Text')
-rw-r--r-- | src/Text/Pandoc/Writers/LaTeX.hs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 467ef304a..9933c6d36 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -1131,7 +1131,9 @@ inlineToLaTeX (Strong lst) = inlineToLaTeX (Strikeout lst) = do -- we need to protect VERB in an mbox or we get an error -- see #1294 - contents <- inlineListToLaTeX $ protectCode lst + -- with regular texttt we don't get an error, but we get + -- incorrect results if there is a space, see #5529 + contents <- inlineListToLaTeX $ walk (concatMap protectCode) lst modify $ \s -> s{ stStrikeout = True } return $ inCmd "sout" contents inlineToLaTeX (Superscript lst) = @@ -1336,12 +1338,10 @@ handleMathComment s = '%':_ -> s ++ "\n" _ -> s -protectCode :: [Inline] -> [Inline] -protectCode [] = [] -protectCode (x@(Code ("",[],[]) _) : xs) = x : protectCode xs -protectCode (x@(Code _ _) : xs) = ltx "\\mbox{" : x : ltx "}" : xs +protectCode :: Inline -> [Inline] +protectCode x@(Code _ _) = [ltx "\\mbox{" , x , ltx "}"] where ltx = RawInline (Format "latex") -protectCode (x : xs) = x : protectCode xs +protectCode x = [x] setEmptyLine :: PandocMonad m => Bool -> LW m () setEmptyLine b = modify $ \st -> st{ stEmptyLine = b } |