@@ -813,6 +813,15 @@ main = do
813 then defaultWriterName outputFile
813 then defaultWriterName outputFile
814 else writerName
814 else writerName
816+ when (writerName' == "pdf") $ do
817+ -- check for latex program
818+ mbLatex <- findExecutable latexProgram
821+ latexProgram ++ " not found. " ++
822+ latexProgram ++ " is needed for pdf output."
816 reader <- case (lookup readerName' readers) of
825 reader <- case (lookup readerName' readers) of
817 Just r -> return r
826 Just r -> return r
818 Nothing -> err 7 ("Unknown reader: " ++ readerName')
827 Nothing -> err 7 ("Unknown reader: " ++ readerName')
@@ -976,16 +985,10 @@ main = do
976 | writerName' == "docx" ->
985 | writerName' == "docx" ->
977 writeDocx referenceDocx writerOptions doc2 >>= writeBinary
986 writeDocx referenceDocx writerOptions doc2 >>= writeBinary
978 | writerName' == "pdf" ->
987 | writerName' == "pdf" ->
979− do -- first check to make sure we have latex
980− mbLatex <- findExecutable latexProgram
983− latexProgram ++ " not found" -- TODO improve
985− res <- tex2pdf pgm $ writeLaTeX writerOptions doc2
988+ do res <- tex2pdf latexProgram $ writeLaTeX writerOptions doc2
986− case res of
989+ case res of
987− Right pdf -> writeBinary pdf
990+ Right pdf -> writeBinary pdf
988− Left err' -> err 43 $ toString err'
991+ Left err' -> err 43 $ toString err'
989 | otherwise -> err 9 ("Unknown writer: " ++ writerName')
992 | otherwise -> err 9 ("Unknown writer: " ++ writerName')
990 where writeBinary = B.writeFile (encodeString outputFile)
993 where writeBinary = B.writeFile (encodeString outputFile)
991 Just r -> writerFn outputFile =<< postProcess result
994 Just r -> writerFn outputFile =<< postProcess result