@@ -1222,19 +1222,21 @@ main = do
1222 | src `elem` paths = Image lab (dir ++ "/" ++ src, tit)
1222 | src `elem` paths = Image lab (dir ++ "/" ++ src, tit)
1223 adjustImagePath _ _ x = x
1223 adjustImagePath _ _ x = x
1225+ (doc, writerOptions') <-
1225− doc <- case reader of
1226+ case reader of
1226− StringReader r->
1227+ StringReader r-> do
1227− readSources sources >>=
1228+ inp <- readSources sources >>=
1228− handleIncludes' . convertTabs . intercalate "\n" >>=
1229+ handleIncludes' . convertTabs . intercalate "\n"
1229− r readerOpts
1230+ d <- r readerOpts inp
1231+ return (d, writerOptions)
1230 ByteStringReader r -> do
1232 ByteStringReader r -> do
1231 (d, media) <- readFiles sources >>= r readerOpts
1233 (d, media) <- readFiles sources >>= r readerOpts
1232 case mbExtractMedia of
1234 case mbExtractMedia of
1233 Just dir | not (M.null media) -> do
1235 Just dir | not (M.null media) -> do
1234 mapM_ (writeMedia dir) $ M.toList media
1236 mapM_ (writeMedia dir) $ M.toList media
1235− return $ walk (adjustImagePath dir (M.keys media)) d
1237+ let d' = walk (adjustImagePath dir (M.keys media)) d
1238+ return (d', writerOptions{ writerMediaBag = media })
1236− _ -> return d
1239+ _ -> return (d, writerOptions)
1239 let doc0 = M.foldWithKey setMeta doc metadata
1241 let doc0 = M.foldWithKey setMeta doc metadata
1240 let doc1 = foldr ($) doc0 transforms
1242 let doc1 = foldr ($) doc0 transforms
@@ -1248,8 +1250,8 @@ main = do
1248 writerFn f = UTF8.writeFile f
1250 writerFn f = UTF8.writeFile f
1250 case writer of
1252 case writer of
1251− IOStringWriter f -> f writerOptions doc2 >>= writerFn outputFile
1253+ IOStringWriter f -> f writerOptions' doc2 >>= writerFn outputFile
1252− IOByteStringWriter f -> f writerOptions doc2 >>= writeBinary
1254+ IOByteStringWriter f -> f writerOptions' doc2 >>= writeBinary
1253 PureStringWriter f
1255 PureStringWriter f
1254 | pdfOutput -> do
1256 | pdfOutput -> do
1255 -- make sure writer is latex or beamer
1257 -- make sure writer is latex or beamer
@@ -1263,14 +1265,14 @@ main = do
1263 err 41 $ latexEngine ++ " not found. " ++
1265 err 41 $ latexEngine ++ " not found. " ++
1264 latexEngine ++ " is needed for pdf output."
1266 latexEngine ++ " is needed for pdf output."
1266− res <- makePDF latexEngine f writerOptions doc2
1268+ res <- makePDF latexEngine f writerOptions' doc2
1267 case res of
1269 case res of
1268 Right pdf -> writeBinary pdf
1270 Right pdf -> writeBinary pdf
1269 Left err' -> do
1271 Left err' -> do
1270 B.hPutStr stderr $ err'
1272 B.hPutStr stderr $ err'
1271 B.hPut stderr $ B.pack [10]
1273 B.hPut stderr $ B.pack [10]
1272 err 43 "Error producing PDF from TeX source"
1274 err 43 "Error producing PDF from TeX source"
1273− | otherwise -> selfcontain (f writerOptions doc2 ++
1275+ | otherwise -> selfcontain (f writerOptions' doc2 ++
1274 ['\n' | not standalone'])
1276 ['\n' | not standalone'])
1275 >>= writerFn outputFile . handleEntities
1277 >>= writerFn outputFile . handleEntities
1276 where htmlFormat = writerName' `elem`
1278 where htmlFormat = writerName' `elem`