aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolay Yakimov <root@livid.pp.ru>2015-03-29 07:37:33 +0300
committerNikolay Yakimov <root@livid.pp.ru>2015-03-29 08:02:18 +0300
commit69d5085c112ccd2a136b08895e268d43f9f2067f (patch)
treecb3627d1fd6f19fce7899560ee2415b640eceee4
parent27078985d54111ad5b674635dd3adc5ac5f86744 (diff)
downloadpandoc-69d5085c112ccd2a136b08895e268d43f9f2067f.tar.gz
Docx Writer: Add a style to figure images
Figures with empty captions use style "Figure" Figures with nonempty captions use style "Figure with Caption", which is based on "Figure", and additionally has keepNext set.
-rw-r--r--data/docx/word/styles.xml11
-rw-r--r--src/Text/Pandoc/Writers/Docx.hs5
2 files changed, 16 insertions, 0 deletions
diff --git a/data/docx/word/styles.xml b/data/docx/word/styles.xml
index 0de21bd4c..3b3b142b4 100644
--- a/data/docx/word/styles.xml
+++ b/data/docx/word/styles.xml
@@ -313,6 +313,17 @@
<w:name w:val="Image Caption" />
<w:basedOn w:val="Caption" />
</w:style>
+ <w:style w:type="paragraph" w:customStyle="1" w:styleId="Figure">
+ <w:name w:val="Figure" />
+ <w:basedOn w:val="Normal" />
+ </w:style>
+ <w:style w:type="paragraph" w:customStyle="1" w:styleId="FigureWithCaption">
+ <w:name w:val="Figure with Caption" />
+ <w:basedOn w:val="Figure" />
+ <w:pPr>
+ <w:keepNext />
+ </w:pPr>
+ </w:style>
<w:style w:type="character" w:customStyle="1" w:styleId="BodyTextChar">
<w:name w:val="Body Text Char" />
<w:basedOn w:val="DefaultParagraphFont" />
diff --git a/src/Text/Pandoc/Writers/Docx.hs b/src/Text/Pandoc/Writers/Docx.hs
index 81369e278..3c32434e7 100644
--- a/src/Text/Pandoc/Writers/Docx.hs
+++ b/src/Text/Pandoc/Writers/Docx.hs
@@ -673,7 +673,12 @@ blockToOpenXML opts (Plain lst) = withParaProp (pCustomStyle "Compact")
-- title beginning with fig: indicates that the image is a figure
blockToOpenXML opts (Para [Image alt (src,'f':'i':'g':':':tit)]) = do
setFirstPara
+ pushParaProp $ pCustomStyle $
+ if null alt
+ then "Figure"
+ else "FigureWithCaption"
paraProps <- getParaProps False
+ popParaProp
contents <- inlinesToOpenXML opts [Image alt (src,tit)]
captionNode <- withParaProp (pCustomStyle "ImageCaption")
$ blockToOpenXML opts (Para alt)