aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers/LaTeX.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Text/Pandoc/Writers/LaTeX.hs')
-rw-r--r--src/Text/Pandoc/Writers/LaTeX.hs16
1 files changed, 14 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs
index f9bee886e..7441152a6 100644
--- a/src/Text/Pandoc/Writers/LaTeX.hs
+++ b/src/Text/Pandoc/Writers/LaTeX.hs
@@ -924,8 +924,20 @@ listItemToLaTeX lst
-- this will keep the typesetter from throwing an error.
| (Header{} :_) <- lst =
blockListToLaTeX lst >>= return . (text "\\item ~" $$) . nest 2
- | otherwise = blockListToLaTeX lst >>= return . (text "\\item" $$) .
- nest 2
+ | Plain (Str "☐":Space:is) : bs <- lst = taskListItem False is bs
+ | Plain (Str "☒":Space:is) : bs <- lst = taskListItem True is bs
+ | Para (Str "☐":Space:is) : bs <- lst = taskListItem False is bs
+ | Para (Str "☒":Space:is) : bs <- lst = taskListItem True is bs
+ | otherwise = blockListToLaTeX lst >>= return . (text "\\item" $$) . nest 2
+ where
+ taskListItem checked is bs = do
+ let checkbox = if checked
+ then "$\\boxtimes$"
+ else "$\\square$"
+ isContents <- inlineListToLaTeX is
+ bsContents <- blockListToLaTeX bs
+ return $ "\\item" <> brackets checkbox
+ $$ nest 2 (isContents $+$ bsContents)
defListItemToLaTeX :: PandocMonad m => ([Inline], [[Block]]) -> LW m Doc
defListItemToLaTeX (term, defs) = do