aboutsummaryrefslogtreecommitdiff
path: root/src/Text/Pandoc/Writers
diff options
context:
space:
mode:
authorNils Carlson <pyssling@ludd.ltu.se>2018-10-03 21:21:46 +0000
committerJohn MacFarlane <jgm@berkeley.edu>2018-10-03 14:21:46 -0700
commitecd4d5b8d8cfda6a2cd8d8fb631e0d7c79bee363 (patch)
tree9384aadc6a79594ba06fb6216fbca64062d177d7 /src/Text/Pandoc/Writers
parent05d52eb9bbaf6faf2ce52947e916a82d7f29275e (diff)
downloadpandoc-ecd4d5b8d8cfda6a2cd8d8fb631e0d7c79bee363.tar.gz
OpenDocument writer: Implement figure numbering in captions (#4944)
Figure captions are now numbered 1, 2, 3, ... The format in the caption is "Figure 1: <caption>" and so on. This is necessary in order for libreoffice to generate an Illustration Index (Table of Figures) for included figures.
Diffstat (limited to 'src/Text/Pandoc/Writers')
-rw-r--r--src/Text/Pandoc/Writers/OpenDocument.hs14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/Text/Pandoc/Writers/OpenDocument.hs b/src/Text/Pandoc/Writers/OpenDocument.hs
index cb29e390a..cd907bbea 100644
--- a/src/Text/Pandoc/Writers/OpenDocument.hs
+++ b/src/Text/Pandoc/Writers/OpenDocument.hs
@@ -411,10 +411,22 @@ blockToOpenDocument o bs
figure attr caption source title | null caption =
withParagraphStyle o "Figure" [Para [Image attr caption (source,title)]]
| otherwise = do
+ id' <- gets stImageId
imageDoc <- withParagraphStyle o "FigureWithCaption" [Para [Image attr caption (source,title)]]
- captionDoc <- withParagraphStyle o "FigureCaption" [Para caption]
+ captionDoc <- numberedFigureCaption id' <$> inlinesToOpenDocument o caption
return $ imageDoc $$ captionDoc
+numberedFigureCaption :: Int -> Doc -> Doc
+numberedFigureCaption num caption =
+ let t = text "Figure "
+ r = num - 1
+ s = inTags False "text:sequence" [ ("text:ref-name", "refIllustration" ++ show r),
+ ("text:name", "Illustration"),
+ ("text:formula", "ooow:Illustration+1"),
+ ("style:num-format", "1") ] $ text $ show num
+ c = text ": "
+ in inParagraphTagsWithStyle "FigureCaption" $ hcat [ t, s, c, caption ]
+
colHeadsToOpenDocument :: PandocMonad m
=> WriterOptions -> [String] -> [[Block]]
-> OD m Doc