diff options
author | John MacFarlane <jgm@berkeley.edu> | 2013-11-23 14:41:22 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2013-11-23 14:41:22 -0800 |
commit | b82ef0e29a652b7e1629b6e2e5f56140ed08e633 (patch) | |
tree | a8acd76ec76cb324ddced7fa34959de537e13430 | |
parent | c1ff65e5ef0b5b8d78149cf666cda1de4a0e4fdb (diff) | |
download | pandoc-b82ef0e29a652b7e1629b6e2e5f56140ed08e633.tar.gz |
LaTeX writer: Handle csl flipflopping spans (csl-no-emph, etc.)
-rw-r--r-- | src/Text/Pandoc/Writers/LaTeX.hs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index 7ff64cf74..f3cbcf19f 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -602,7 +602,16 @@ isQuoted _ = False -- | Convert inline element to LaTeX inlineToLaTeX :: Inline -- ^ Inline to convert -> State WriterState Doc -inlineToLaTeX (Span _ ils) = inlineListToLaTeX ils >>= return . braces +inlineToLaTeX (Span (_,classes,_) ils) = do + let noEmph = "csl-no-emph" `elem` classes + let noStrong = "csl-no-strong" `elem` classes + let noSmallCaps = "csl-no-smallcaps" `elem` classes + ((if noEmph then inCmd "textup" else id) . + (if noStrong then inCmd "textnormal" else id) . + (if noSmallCaps then inCmd "textnormal" else id) . + (if not (noEmph || noStrong || noSmallCaps) + then braces + else id)) `fmap` inlineListToLaTeX ils inlineToLaTeX (Emph lst) = inlineListToLaTeX lst >>= return . inCmd "emph" inlineToLaTeX (Strong lst) = |