@@ -60,7 +60,7 @@ writeLaTeX options document =
6060pandocToLaTeX :: WriterOptions -> Pandoc -> State WriterState Doc
6161pandocToLaTeX options (Pandoc meta blocks) = do
6262 main <- blockListToLaTeX blocks
63− head <- if writerStandalone options
63+ head' <- if writerStandalone options
6464 then latexHeader options meta
6565 else return empty
6666 let before = if null (writerIncludeBefore options)
@@ -76,7 +76,7 @@ pandocToLaTeX options (Pandoc meta blocks) = do
7676 let foot = if writerStandalone options
7777 then text "\\end{document}"
7878 else empty
79− return $ head $$ toc $$ body $$ foot
79+ return $ head' $$ toc $$ body $$ foot
8080
8181-- | Insert bibliographic information into LaTeX header.
8282latexHeader :: WriterOptions -- ^ Options, including LaTeX header
@@ -155,7 +155,7 @@ blockToLaTeX (CodeBlock _ str) = do
155155 else return "verbatim"
156156 return $ text ("\\begin{" ++ env ++ "}\n") <> text str <>
157157 text ("\n\\end{" ++ env ++ "}")
158−blockToLaTeX (RawHtml str) = return empty
158+blockToLaTeX (RawHtml _) = return empty
159159blockToLaTeX (BulletList lst) = do
160160 items <- mapM listItemToLaTeX lst
161161 return $ text "\\begin{itemize}" $$ vcat items $$ text "\\end{itemize}"
@@ -164,7 +164,7 @@ blockToLaTeX (OrderedList (start, numstyle, numdelim) lst) = do
164164 let oldlevel = stOLLevel st
165165 put $ st {stOLLevel = oldlevel + 1}
166166 items <- mapM listItemToLaTeX lst
167− modify (\st -> st {stOLLevel = oldlevel})
167+ modify (\s -> s {stOLLevel = oldlevel})
168168 exemplar <- if numstyle /= DefaultStyle || numdelim /= DefaultDelim
169169 then do addToHeader "\\usepackage{enumerate}"
170170 return $ char '[' <>
@@ -218,15 +218,19 @@ blockToLaTeX (Table caption aligns widths heads rows) = do
218218 else text "\\begin{table}[h]" $$ centered tableBody $$
219219 inCmd "caption" captionText $$ text "\\end{table}\n"
220220
221+blockListToLaTeX :: [Block] -> State WriterState Doc
221222blockListToLaTeX lst = mapM blockToLaTeX lst >>= return . vcat
222223
224+tableRowToLaTeX :: [[Block]] -> State WriterState Doc
223225tableRowToLaTeX cols = mapM blockListToLaTeX cols >>=
224226 return . ($$ text "\\\\") . foldl (\row item -> row $$
225227 (if isEmpty row then empty else text " & ") <> item) empty
226228
229+listItemToLaTeX :: [Block] -> State WriterState Doc
227230listItemToLaTeX lst = blockListToLaTeX lst >>= return . (text "\\item " $$) .
228231 (nest 2)
229232
233+defListItemToLaTeX :: ([Inline], [Block]) -> State WriterState Doc
230234defListItemToLaTeX (term, def) = do
231235 term' <- inlineListToLaTeX $ deVerb term
232236 def' <- blockListToLaTeX def
@@ -293,7 +297,7 @@ inlineToLaTeX Ellipses = return $ text "\\ldots{}"
293297inlineToLaTeX (Str str) = return $ text $ stringToLaTeX str
294298inlineToLaTeX (Math str) = return $ char '$' <> text str <> char '$'
295299inlineToLaTeX (TeX str) = return $ text str
296−inlineToLaTeX (HtmlInline str) = return empty
300+inlineToLaTeX (HtmlInline _) = return empty
297301inlineToLaTeX (LineBreak) = return $ text "\\\\"
298302inlineToLaTeX Space = return $ char ' '
299303inlineToLaTeX (Link txt (src, _)) = do
@@ -305,14 +309,14 @@ inlineToLaTeX (Link txt (src, _)) = do
305309 _ -> do contents <- inlineListToLaTeX $ deVerb txt
306310 return $ text ("\\href{" ++ src ++ "}{") <> contents <>
307311 char '}'
308−inlineToLaTeX (Image alternate (source, tit)) = do
312+inlineToLaTeX (Image _ (source, _)) = do
309313 addToHeader "\\usepackage{graphicx}"
310314 return $ text $ "\\includegraphics{" ++ source ++ "}"
311315inlineToLaTeX (Note contents) = do
312316 st <- get
313317 put (st {stInNote = True})
314318 contents' <- blockListToLaTeX contents
315− modify (\st -> st {stInNote = False})
319+ modify (\s -> s {stInNote = False})
316320 let rawnote = stripTrailingNewlines $ render contents'
317321 -- note: a \n before } is needed when note ends with a Verbatim environment
318322 let optNewline = "\\end{Verbatim}" `isSuffixOf` rawnote