aboutsummaryrefslogtreecommitdiff
path: root/test/pptx
diff options
context:
space:
mode:
authorEmily Bourke <undergroundquizscene@protonmail.com>2021-08-19 15:53:21 +0100
committerJohn MacFarlane <jgm@berkeley.edu>2021-09-01 07:16:17 -0700
commitb82a01b6883c1f6a9ce5d3edd80d5a2453ecef9e (patch)
tree223aaee72e5f53c5abc8b3a04e31b18577dec5a5 /test/pptx
parent8dbea4909211ef7b2acc677288be7c5f10cbb40e (diff)
downloadpandoc-b82a01b6883c1f6a9ce5d3edd80d5a2453ecef9e.tar.gz
pptx: Add support for more layouts
Until now, the pptx writer only supported four slide layouts: “Title Slide” (used for the automatically generated metadata slide), “Section Header” (used for headings above the slide level), “Two Column” (used when there’s a columns div containing at least two column divs), and “Title and Content” (used for all other slides). This commit adds support for three more layouts: Comparison, Content with Caption, and Blank. - Support “Comparison” slide layout This layout is used when a slide contains at least two columns, at least one of which contains some text followed by some non-text (e.g. an image or table). The text in each column is inserted into the “body” placeholder for that column, and the non-text is inserted into the ObjType placeholder. Any extra content after the non-text is overlaid on top of the preceding content, rather than dropping it completely (as currently happens for the two-column layout). + Accept straightforward test changes Adding the new layout means the “-deleted-layouts” tests have an additional layout added to the master and master rels. + Add new tests for the comparison layout + Add new tests to pandoc.cabal - Support “Content with Caption” slide layout This layout is used when a slide’s body contains some text, followed by non-text (e.g. and image or a table). Before now, in this case the image or table would break onto a new slide: to get that output again, users can add a horizontal rule before the image or table. + Accept straightforward tests The “-deleted-layouts” tests all have an extra layout and relationship in the master for the Content with Caption layout. + Accept remove-empty-slides test Empty slides are still removed, but the Content with Caption layout is now used. + Change slide-level-0/h1-h2-with-text description This test now triggers the content with caption layout, giving a different (but still correct) result. + Add new tests for the new layout + Add new tests to the cabal file - Support “Blank” slide layout This layout is used when a slide contains only blank content (e.g. non-breaking spaces). No content is inserted into any placeholders in the layout. Fixes #5097. + Accept straightforward test changes Blank layout now copied over from reference doc as well, when layouts have been deleted. + Add some new tests A slide should use the blank layout if: - It contains only speaker notes - It contains only an empty heading with a body of nbsps - It contains only a heading containing only nbsps - Change ContentType -> Placeholder This type was starting to have a constructor for each placeholder on each slide (e.g. `ComparisonUpperLeftContent`). I’ve changed it instead to identify a placeholder by type and index, as I think that’s clearer and less redundant. - Describe layout-choosing logic in manual
Diffstat (limited to 'test/pptx')
-rw-r--r--test/pptx/blanks/just-speaker-notes/deleted-layouts.pptxbin0 -> 35181 bytes
-rw-r--r--test/pptx/blanks/just-speaker-notes/input.native7
-rw-r--r--test/pptx/blanks/just-speaker-notes/moved-layouts.pptxbin0 -> 45873 bytes
-rw-r--r--test/pptx/blanks/just-speaker-notes/output.pptxbin0 -> 32304 bytes
-rw-r--r--test/pptx/blanks/just-speaker-notes/templated.pptxbin0 -> 45369 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-body/deleted-layouts.pptxbin0 -> 30444 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-body/input.native6
-rw-r--r--test/pptx/blanks/nbsp-in-body/moved-layouts.pptxbin0 -> 41131 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-body/output.pptxbin0 -> 27562 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-body/templated.pptxbin0 -> 40630 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-heading/deleted-layouts.pptxbin0 -> 30444 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-heading/input.native5
-rw-r--r--test/pptx/blanks/nbsp-in-heading/moved-layouts.pptxbin0 -> 41131 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-heading/output.pptxbin0 -> 27562 bytes
-rw-r--r--test/pptx/blanks/nbsp-in-heading/templated.pptxbin0 -> 40630 bytes
-rw-r--r--test/pptx/code-custom/deleted-layouts.pptxbin31033 -> 31069 bytes
-rw-r--r--test/pptx/code/deleted-layouts.pptxbin31032 -> 31068 bytes
-rw-r--r--test/pptx/comparison/both-columns/deleted-layouts.pptxbin0 -> 45804 bytes
-rw-r--r--test/pptx/comparison/both-columns/input.native23
-rw-r--r--test/pptx/comparison/both-columns/moved-layouts.pptxbin0 -> 56524 bytes
-rw-r--r--test/pptx/comparison/both-columns/output.pptxbin0 -> 42932 bytes
-rw-r--r--test/pptx/comparison/both-columns/templated.pptxbin0 -> 56025 bytes
-rw-r--r--test/pptx/comparison/extra-image/deleted-layouts.pptxbin0 -> 45833 bytes
-rw-r--r--test/pptx/comparison/extra-image/input.native24
-rw-r--r--test/pptx/comparison/extra-image/moved-layouts.pptxbin0 -> 56552 bytes
-rw-r--r--test/pptx/comparison/extra-image/output.pptxbin0 -> 42961 bytes
-rw-r--r--test/pptx/comparison/extra-image/templated.pptxbin0 -> 56053 bytes
-rw-r--r--test/pptx/comparison/extra-text/deleted-layouts.pptxbin0 -> 45804 bytes
-rw-r--r--test/pptx/comparison/extra-text/input.native23
-rw-r--r--test/pptx/comparison/extra-text/moved-layouts.pptxbin0 -> 56524 bytes
-rw-r--r--test/pptx/comparison/extra-text/output.pptxbin0 -> 42932 bytes
-rw-r--r--test/pptx/comparison/extra-text/templated.pptxbin0 -> 56025 bytes
-rw-r--r--test/pptx/comparison/non-text-first/deleted-layouts.pptxbin0 -> 45717 bytes
-rw-r--r--test/pptx/comparison/non-text-first/input.native21
-rw-r--r--test/pptx/comparison/non-text-first/moved-layouts.pptxbin0 -> 56417 bytes
-rw-r--r--test/pptx/comparison/non-text-first/output.pptxbin0 -> 42845 bytes
-rw-r--r--test/pptx/comparison/non-text-first/templated.pptxbin0 -> 55918 bytes
-rw-r--r--test/pptx/comparison/one-column/deleted-layouts.pptxbin0 -> 29136 bytes
-rw-r--r--test/pptx/comparison/one-column/input.native21
-rw-r--r--test/pptx/comparison/one-column/moved-layouts.pptxbin0 -> 39856 bytes
-rw-r--r--test/pptx/comparison/one-column/output.pptxbin0 -> 26258 bytes
-rw-r--r--test/pptx/comparison/one-column/templated.pptxbin0 -> 39357 bytes
-rw-r--r--test/pptx/content-with-caption/heading-text-image/deleted-layouts.pptxbin0 -> 45549 bytes
-rw-r--r--test/pptx/content-with-caption/heading-text-image/input.native3
-rw-r--r--test/pptx/content-with-caption/heading-text-image/moved-layouts.pptxbin0 -> 56248 bytes
-rw-r--r--test/pptx/content-with-caption/heading-text-image/output.pptxbin0 -> 42677 bytes
-rw-r--r--test/pptx/content-with-caption/heading-text-image/templated.pptxbin0 -> 55749 bytes
-rw-r--r--test/pptx/content-with-caption/image-text/deleted-layouts.pptxbin0 -> 46248 bytes
-rw-r--r--test/pptx/content-with-caption/image-text/input.native2
-rw-r--r--test/pptx/content-with-caption/image-text/moved-layouts.pptxbin0 -> 56934 bytes
-rw-r--r--test/pptx/content-with-caption/image-text/output.pptxbin0 -> 43374 bytes
-rw-r--r--test/pptx/content-with-caption/image-text/templated.pptxbin0 -> 56435 bytes
-rw-r--r--test/pptx/content-with-caption/text-image/deleted-layouts.pptxbin0 -> 45488 bytes
-rw-r--r--test/pptx/content-with-caption/text-image/input.native2
-rw-r--r--test/pptx/content-with-caption/text-image/moved-layouts.pptxbin0 -> 56188 bytes
-rw-r--r--test/pptx/content-with-caption/text-image/output.pptxbin0 -> 42616 bytes
-rw-r--r--test/pptx/content-with-caption/text-image/templated.pptxbin0 -> 55689 bytes
-rw-r--r--test/pptx/document-properties-short-desc/deleted-layouts.pptxbin29806 -> 29842 bytes
-rw-r--r--test/pptx/document-properties/deleted-layouts.pptxbin30210 -> 30246 bytes
-rw-r--r--test/pptx/endnotes-toc/deleted-layouts.pptxbin30596 -> 30632 bytes
-rw-r--r--test/pptx/endnotes/deleted-layouts.pptxbin29774 -> 29810 bytes
-rw-r--r--test/pptx/images/deleted-layouts.pptxbin47437 -> 47473 bytes
-rw-r--r--test/pptx/inline-formatting/deleted-layouts.pptxbin28966 -> 29002 bytes
-rw-r--r--test/pptx/lists/deleted-layouts.pptxbin29861 -> 29897 bytes
-rw-r--r--test/pptx/raw-ooxml/deleted-layouts.pptxbin29754 -> 29790 bytes
-rw-r--r--test/pptx/remove-empty-slides/deleted-layouts.pptxbin46867 -> 46218 bytes
-rw-r--r--test/pptx/remove-empty-slides/moved-layouts.pptxbin57656 -> 56903 bytes
-rw-r--r--test/pptx/remove-empty-slides/output.pptxbin44025 -> 43346 bytes
-rw-r--r--test/pptx/remove-empty-slides/templated.pptxbin57172 -> 56404 bytes
-rw-r--r--test/pptx/slide-breaks-slide-level-1/deleted-layouts.pptxbin30554 -> 30590 bytes
-rw-r--r--test/pptx/slide-breaks-toc/deleted-layouts.pptxbin32328 -> 32364 bytes
-rw-r--r--test/pptx/slide-breaks/deleted-layouts.pptxbin31378 -> 31414 bytes
-rw-r--r--test/pptx/slide-level-0/h1-h2-with-table/deleted-layouts.pptxbin29828 -> 29137 bytes
-rw-r--r--test/pptx/slide-level-0/h1-h2-with-table/moved-layouts.pptxbin40552 -> 39829 bytes
-rw-r--r--test/pptx/slide-level-0/h1-h2-with-table/output.pptxbin26985 -> 26259 bytes
-rw-r--r--test/pptx/slide-level-0/h1-h2-with-table/templated.pptxbin40052 -> 39330 bytes
-rw-r--r--test/pptx/slide-level-0/h1-with-image/deleted-layouts.pptxbin45433 -> 45469 bytes
-rw-r--r--test/pptx/slide-level-0/h1-with-table/deleted-layouts.pptxbin29008 -> 29044 bytes
-rw-r--r--test/pptx/slide-level-0/h2-with-image/deleted-layouts.pptxbin45433 -> 45469 bytes
-rw-r--r--test/pptx/speaker-notes-after-metadata/deleted-layouts.pptxbin34473 -> 34509 bytes
-rw-r--r--test/pptx/speaker-notes-afterheader/deleted-layouts.pptxbin33500 -> 33536 bytes
-rw-r--r--test/pptx/speaker-notes-afterseps/deleted-layouts.pptxbin54396 -> 54432 bytes
-rw-r--r--test/pptx/speaker-notes/deleted-layouts.pptxbin38203 -> 38239 bytes
-rw-r--r--test/pptx/start-numbering-at/deleted-layouts.pptxbin29837 -> 29873 bytes
-rw-r--r--test/pptx/tables/deleted-layouts.pptxbin30381 -> 30417 bytes
-rw-r--r--test/pptx/two-column/deleted-layouts.pptxbin28883 -> 28919 bytes
86 files changed, 137 insertions, 0 deletions
diff --git a/test/pptx/blanks/just-speaker-notes/deleted-layouts.pptx b/test/pptx/blanks/just-speaker-notes/deleted-layouts.pptx
new file mode 100644
index 000000000..82800a074
--- /dev/null
+++ b/test/pptx/blanks/just-speaker-notes/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/blanks/just-speaker-notes/input.native b/test/pptx/blanks/just-speaker-notes/input.native
new file mode 100644
index 000000000..d2e2cfbe2
--- /dev/null
+++ b/test/pptx/blanks/just-speaker-notes/input.native
@@ -0,0 +1,7 @@
+[Header 1 ("first-slide",[],[]) [Str "First",Space,Str "slide"]
+,Para [Str "Nothing",Space,Str "to",Space,Str "see",Space,Str "here"]
+,Header 1 ("section",[],[]) []
+,Div ("",["notes"],[])
+ [Para [Str "Some",Space,Str "notes",Space,Str "here:",Space,Str "this",Space,Str "first",Space,Str "slide",Space,Str "should",Space,Str "use",Space,Str "the",Space,Str "Blank",Space,Str "template"]]
+,Header 1 ("third-slide",[],[]) [Str "Third",Space,Str "slide"]
+,Para [Str "The",Space,Str "second",Space,Str "slide",Space,Str "should",Space,Str "be",Space,Str "blank"]]
diff --git a/test/pptx/blanks/just-speaker-notes/moved-layouts.pptx b/test/pptx/blanks/just-speaker-notes/moved-layouts.pptx
new file mode 100644
index 000000000..f5ef1d7bd
--- /dev/null
+++ b/test/pptx/blanks/just-speaker-notes/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/blanks/just-speaker-notes/output.pptx b/test/pptx/blanks/just-speaker-notes/output.pptx
new file mode 100644
index 000000000..59a643c3e
--- /dev/null
+++ b/test/pptx/blanks/just-speaker-notes/output.pptx
Binary files differ
diff --git a/test/pptx/blanks/just-speaker-notes/templated.pptx b/test/pptx/blanks/just-speaker-notes/templated.pptx
new file mode 100644
index 000000000..8cc7be75b
--- /dev/null
+++ b/test/pptx/blanks/just-speaker-notes/templated.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-body/deleted-layouts.pptx b/test/pptx/blanks/nbsp-in-body/deleted-layouts.pptx
new file mode 100644
index 000000000..98a1586df
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-body/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-body/input.native b/test/pptx/blanks/nbsp-in-body/input.native
new file mode 100644
index 000000000..56c105fb0
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-body/input.native
@@ -0,0 +1,6 @@
+[Header 1 ("first-slide",[],[]) [Str "First",Space,Str "slide"]
+,Para [Str "Uninteresting,",Space,Str "normal"]
+,Header 1 ("section",[],[]) []
+,Para [Str "\160"]
+,Header 1 ("third-slide",[],[]) [Str "Third",Space,Str "slide"]
+,Para [Str "Was",Space,Str "the",Space,Str "previous",Space,Str "one",Space,Str "blank?"]]
diff --git a/test/pptx/blanks/nbsp-in-body/moved-layouts.pptx b/test/pptx/blanks/nbsp-in-body/moved-layouts.pptx
new file mode 100644
index 000000000..fca99b672
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-body/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-body/output.pptx b/test/pptx/blanks/nbsp-in-body/output.pptx
new file mode 100644
index 000000000..ed5c77e05
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-body/output.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-body/templated.pptx b/test/pptx/blanks/nbsp-in-body/templated.pptx
new file mode 100644
index 000000000..4104f6230
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-body/templated.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-heading/deleted-layouts.pptx b/test/pptx/blanks/nbsp-in-heading/deleted-layouts.pptx
new file mode 100644
index 000000000..98a1586df
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-heading/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-heading/input.native b/test/pptx/blanks/nbsp-in-heading/input.native
new file mode 100644
index 000000000..a5c7fc1ca
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-heading/input.native
@@ -0,0 +1,5 @@
+[Header 1 ("first-slide",[],[]) [Str "First",Space,Str "slide"]
+,Para [Str "Uninteresting,",Space,Str "normal"]
+,Header 1 ("section",[],[]) [Str "\160"]
+,Header 1 ("third-slide",[],[]) [Str "Third",Space,Str "slide"]
+,Para [Str "Was",Space,Str "the",Space,Str "previous",Space,Str "one",Space,Str "blank?"]]
diff --git a/test/pptx/blanks/nbsp-in-heading/moved-layouts.pptx b/test/pptx/blanks/nbsp-in-heading/moved-layouts.pptx
new file mode 100644
index 000000000..fca99b672
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-heading/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-heading/output.pptx b/test/pptx/blanks/nbsp-in-heading/output.pptx
new file mode 100644
index 000000000..ed5c77e05
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-heading/output.pptx
Binary files differ
diff --git a/test/pptx/blanks/nbsp-in-heading/templated.pptx b/test/pptx/blanks/nbsp-in-heading/templated.pptx
new file mode 100644
index 000000000..4104f6230
--- /dev/null
+++ b/test/pptx/blanks/nbsp-in-heading/templated.pptx
Binary files differ
diff --git a/test/pptx/code-custom/deleted-layouts.pptx b/test/pptx/code-custom/deleted-layouts.pptx
index 9282e6354..fdcc7ce1d 100644
--- a/test/pptx/code-custom/deleted-layouts.pptx
+++ b/test/pptx/code-custom/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/code/deleted-layouts.pptx b/test/pptx/code/deleted-layouts.pptx
index 0f503f553..c7f78ac40 100644
--- a/test/pptx/code/deleted-layouts.pptx
+++ b/test/pptx/code/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/both-columns/deleted-layouts.pptx b/test/pptx/comparison/both-columns/deleted-layouts.pptx
new file mode 100644
index 000000000..6a5affdbf
--- /dev/null
+++ b/test/pptx/comparison/both-columns/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/both-columns/input.native b/test/pptx/comparison/both-columns/input.native
new file mode 100644
index 000000000..2557880d4
--- /dev/null
+++ b/test/pptx/comparison/both-columns/input.native
@@ -0,0 +1,23 @@
+[Header 1 ("a-slide",[],[]) [Str "A",Space,Str "slide"]
+,Div ("",["columns"],[])
+ [Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Table ("",[],[]) (Caption Nothing
+ [])
+ [(AlignDefault,ColWidth 0.125)
+ ,(AlignDefault,ColWidth 0.125)]
+ (TableHead ("",[],[])
+ [])
+ [(TableBody ("",[],[]) (RowHeadColumns 0)
+ []
+ [Row ("",[],[])
+ [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "plus"]]
+ ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "a",Space,Str "table"]]]])]
+ (TableFoot ("",[],[])
+ [])
+ ,Para [Str "Then",Space,Str "some",Space,Str "more",Space,Str "text"]]
+ ,Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Para [Image ("",[],[]) [Str "Plus",Space,Str "an",Space,Str "image"] ("lalune.jpg","fig:")]]]]
diff --git a/test/pptx/comparison/both-columns/moved-layouts.pptx b/test/pptx/comparison/both-columns/moved-layouts.pptx
new file mode 100644
index 000000000..88282fabb
--- /dev/null
+++ b/test/pptx/comparison/both-columns/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/both-columns/output.pptx b/test/pptx/comparison/both-columns/output.pptx
new file mode 100644
index 000000000..477072fb4
--- /dev/null
+++ b/test/pptx/comparison/both-columns/output.pptx
Binary files differ
diff --git a/test/pptx/comparison/both-columns/templated.pptx b/test/pptx/comparison/both-columns/templated.pptx
new file mode 100644
index 000000000..431d22392
--- /dev/null
+++ b/test/pptx/comparison/both-columns/templated.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-image/deleted-layouts.pptx b/test/pptx/comparison/extra-image/deleted-layouts.pptx
new file mode 100644
index 000000000..beed077f7
--- /dev/null
+++ b/test/pptx/comparison/extra-image/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-image/input.native b/test/pptx/comparison/extra-image/input.native
new file mode 100644
index 000000000..34aeb8f2b
--- /dev/null
+++ b/test/pptx/comparison/extra-image/input.native
@@ -0,0 +1,24 @@
+[Header 1 ("a-slide",[],[]) [Str "A",Space,Str "slide"]
+,Div ("",["columns"],[])
+ [Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Table ("",[],[]) (Caption Nothing
+ [])
+ [(AlignDefault,ColWidth 0.125)
+ ,(AlignDefault,ColWidth 0.125)]
+ (TableHead ("",[],[])
+ [])
+ [(TableBody ("",[],[]) (RowHeadColumns 0)
+ []
+ [Row ("",[],[])
+ [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "plus"]]
+ ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "a",Space,Str "table"]]]])]
+ (TableFoot ("",[],[])
+ [])
+ ,Para [Str "Then",Space,Str "some",Space,Str "more",Space,Str "text"]]
+ ,Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Para [Image ("",[],[]) [Str "Plus",Space,Str "an",Space,Str "image"] ("lalune.jpg","fig:")]
+ ,Para [Image ("",[],[]) [Str "And",Space,Str "another",Space,Str "image"] ("lalune.jpg","fig:")]]]]
diff --git a/test/pptx/comparison/extra-image/moved-layouts.pptx b/test/pptx/comparison/extra-image/moved-layouts.pptx
new file mode 100644
index 000000000..f86f5b043
--- /dev/null
+++ b/test/pptx/comparison/extra-image/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-image/output.pptx b/test/pptx/comparison/extra-image/output.pptx
new file mode 100644
index 000000000..a0eb5e847
--- /dev/null
+++ b/test/pptx/comparison/extra-image/output.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-image/templated.pptx b/test/pptx/comparison/extra-image/templated.pptx
new file mode 100644
index 000000000..a434ba29f
--- /dev/null
+++ b/test/pptx/comparison/extra-image/templated.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-text/deleted-layouts.pptx b/test/pptx/comparison/extra-text/deleted-layouts.pptx
new file mode 100644
index 000000000..6a5affdbf
--- /dev/null
+++ b/test/pptx/comparison/extra-text/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-text/input.native b/test/pptx/comparison/extra-text/input.native
new file mode 100644
index 000000000..2557880d4
--- /dev/null
+++ b/test/pptx/comparison/extra-text/input.native
@@ -0,0 +1,23 @@
+[Header 1 ("a-slide",[],[]) [Str "A",Space,Str "slide"]
+,Div ("",["columns"],[])
+ [Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Table ("",[],[]) (Caption Nothing
+ [])
+ [(AlignDefault,ColWidth 0.125)
+ ,(AlignDefault,ColWidth 0.125)]
+ (TableHead ("",[],[])
+ [])
+ [(TableBody ("",[],[]) (RowHeadColumns 0)
+ []
+ [Row ("",[],[])
+ [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "plus"]]
+ ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "a",Space,Str "table"]]]])]
+ (TableFoot ("",[],[])
+ [])
+ ,Para [Str "Then",Space,Str "some",Space,Str "more",Space,Str "text"]]
+ ,Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Para [Image ("",[],[]) [Str "Plus",Space,Str "an",Space,Str "image"] ("lalune.jpg","fig:")]]]]
diff --git a/test/pptx/comparison/extra-text/moved-layouts.pptx b/test/pptx/comparison/extra-text/moved-layouts.pptx
new file mode 100644
index 000000000..88282fabb
--- /dev/null
+++ b/test/pptx/comparison/extra-text/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-text/output.pptx b/test/pptx/comparison/extra-text/output.pptx
new file mode 100644
index 000000000..8de7d23b2
--- /dev/null
+++ b/test/pptx/comparison/extra-text/output.pptx
Binary files differ
diff --git a/test/pptx/comparison/extra-text/templated.pptx b/test/pptx/comparison/extra-text/templated.pptx
new file mode 100644
index 000000000..431d22392
--- /dev/null
+++ b/test/pptx/comparison/extra-text/templated.pptx
Binary files differ
diff --git a/test/pptx/comparison/non-text-first/deleted-layouts.pptx b/test/pptx/comparison/non-text-first/deleted-layouts.pptx
new file mode 100644
index 000000000..bd7aa69b7
--- /dev/null
+++ b/test/pptx/comparison/non-text-first/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/non-text-first/input.native b/test/pptx/comparison/non-text-first/input.native
new file mode 100644
index 000000000..a8caad151
--- /dev/null
+++ b/test/pptx/comparison/non-text-first/input.native
@@ -0,0 +1,21 @@
+[Header 1 ("a-slide",[],[]) [Str "A",Space,Str "slide"]
+,Div ("",["columns"],[])
+ [Div ("",["column"],[])
+ [Table ("",[],[]) (Caption Nothing
+ [])
+ [(AlignDefault,ColWidth 0.125)
+ ,(AlignDefault,ColWidth 0.125)]
+ (TableHead ("",[],[])
+ [])
+ [(TableBody ("",[],[]) (RowHeadColumns 0)
+ []
+ [Row ("",[],[])
+ [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "a"]]
+ ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "table"]]]])]
+ (TableFoot ("",[],[])
+ [])
+ ,Para [Str "Plus",Space,Str "a",Space,Str "paragraph",Space,Str "here"]]
+ ,Div ("",["column"],[])
+ [Para [Image ("",[],[]) [Str "Just",Space,Str "an",Space,Str "image",Space,Str "on",Space,Str "this",Space,Str "side"] ("lalune.jpg","fig:")]]]]
diff --git a/test/pptx/comparison/non-text-first/moved-layouts.pptx b/test/pptx/comparison/non-text-first/moved-layouts.pptx
new file mode 100644
index 000000000..a01def95c
--- /dev/null
+++ b/test/pptx/comparison/non-text-first/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/non-text-first/output.pptx b/test/pptx/comparison/non-text-first/output.pptx
new file mode 100644
index 000000000..cb7843fce
--- /dev/null
+++ b/test/pptx/comparison/non-text-first/output.pptx
Binary files differ
diff --git a/test/pptx/comparison/non-text-first/templated.pptx b/test/pptx/comparison/non-text-first/templated.pptx
new file mode 100644
index 000000000..32db19cbf
--- /dev/null
+++ b/test/pptx/comparison/non-text-first/templated.pptx
Binary files differ
diff --git a/test/pptx/comparison/one-column/deleted-layouts.pptx b/test/pptx/comparison/one-column/deleted-layouts.pptx
new file mode 100644
index 000000000..5fd7cf9b6
--- /dev/null
+++ b/test/pptx/comparison/one-column/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/one-column/input.native b/test/pptx/comparison/one-column/input.native
new file mode 100644
index 000000000..b99740a14
--- /dev/null
+++ b/test/pptx/comparison/one-column/input.native
@@ -0,0 +1,21 @@
+[Header 1 ("a-slide",[],[]) [Str "A",Space,Str "slide"]
+,Div ("",["columns"],[])
+ [Div ("",["column"],[])
+ [Para [Str "A",Space,Str "paragraph",Space,Str "here"]
+ ,Table ("",[],[]) (Caption Nothing
+ [])
+ [(AlignDefault,ColWidth 0.125)
+ ,(AlignDefault,ColWidth 0.125)]
+ (TableHead ("",[],[])
+ [])
+ [(TableBody ("",[],[]) (RowHeadColumns 0)
+ []
+ [Row ("",[],[])
+ [Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "plus"]]
+ ,Cell ("",[],[]) AlignDefault (RowSpan 1) (ColSpan 1)
+ [Plain [Str "a",Space,Str "table"]]]])]
+ (TableFoot ("",[],[])
+ [])]
+ ,Div ("",["column"],[])
+ [Para [Str "Only",Space,Str "a",Space,Str "paragraph",Space,Str "here"]]]]
diff --git a/test/pptx/comparison/one-column/moved-layouts.pptx b/test/pptx/comparison/one-column/moved-layouts.pptx
new file mode 100644
index 000000000..d5df2b751
--- /dev/null
+++ b/test/pptx/comparison/one-column/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/comparison/one-column/output.pptx b/test/pptx/comparison/one-column/output.pptx
new file mode 100644
index 000000000..6914162ff
--- /dev/null
+++ b/test/pptx/comparison/one-column/output.pptx
Binary files differ
diff --git a/test/pptx/comparison/one-column/templated.pptx b/test/pptx/comparison/one-column/templated.pptx
new file mode 100644
index 000000000..a30a24453
--- /dev/null
+++ b/test/pptx/comparison/one-column/templated.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/heading-text-image/deleted-layouts.pptx b/test/pptx/content-with-caption/heading-text-image/deleted-layouts.pptx
new file mode 100644
index 000000000..b5afcc021
--- /dev/null
+++ b/test/pptx/content-with-caption/heading-text-image/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/heading-text-image/input.native b/test/pptx/content-with-caption/heading-text-image/input.native
new file mode 100644
index 000000000..576bc1658
--- /dev/null
+++ b/test/pptx/content-with-caption/heading-text-image/input.native
@@ -0,0 +1,3 @@
+[Header 1 ("a-slide",[],[]) [Str "A",Space,Str "slide"]
+,Para [Str "Some",Space,Str "text",Space,Str "here"]
+,Para [Image ("",[],[]) [Str "Followed",Space,Str "by",Space,Str "a",Space,Str "picture"] ("lalune.jpg","fig:")]]
diff --git a/test/pptx/content-with-caption/heading-text-image/moved-layouts.pptx b/test/pptx/content-with-caption/heading-text-image/moved-layouts.pptx
new file mode 100644
index 000000000..05806a767
--- /dev/null
+++ b/test/pptx/content-with-caption/heading-text-image/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/heading-text-image/output.pptx b/test/pptx/content-with-caption/heading-text-image/output.pptx
new file mode 100644
index 000000000..b3e89757b
--- /dev/null
+++ b/test/pptx/content-with-caption/heading-text-image/output.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/heading-text-image/templated.pptx b/test/pptx/content-with-caption/heading-text-image/templated.pptx
new file mode 100644
index 000000000..3b0fe64c3
--- /dev/null
+++ b/test/pptx/content-with-caption/heading-text-image/templated.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/image-text/deleted-layouts.pptx b/test/pptx/content-with-caption/image-text/deleted-layouts.pptx
new file mode 100644
index 000000000..e9e0551ac
--- /dev/null
+++ b/test/pptx/content-with-caption/image-text/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/image-text/input.native b/test/pptx/content-with-caption/image-text/input.native
new file mode 100644
index 000000000..2ffbf0888
--- /dev/null
+++ b/test/pptx/content-with-caption/image-text/input.native
@@ -0,0 +1,2 @@
+[Para [Image ("",[],[]) [Str "The",Space,Str "picture",Space,Str "first"] ("lalune.jpg","fig:")]
+,Para [Str "Then",Space,Str "some",Space,Str "text",Space,Str "here"]]
diff --git a/test/pptx/content-with-caption/image-text/moved-layouts.pptx b/test/pptx/content-with-caption/image-text/moved-layouts.pptx
new file mode 100644
index 000000000..77d706ed3
--- /dev/null
+++ b/test/pptx/content-with-caption/image-text/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/image-text/output.pptx b/test/pptx/content-with-caption/image-text/output.pptx
new file mode 100644
index 000000000..94a2e8b88
--- /dev/null
+++ b/test/pptx/content-with-caption/image-text/output.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/image-text/templated.pptx b/test/pptx/content-with-caption/image-text/templated.pptx
new file mode 100644
index 000000000..bef1921a7
--- /dev/null
+++ b/test/pptx/content-with-caption/image-text/templated.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/text-image/deleted-layouts.pptx b/test/pptx/content-with-caption/text-image/deleted-layouts.pptx
new file mode 100644
index 000000000..68d3d7b9b
--- /dev/null
+++ b/test/pptx/content-with-caption/text-image/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/text-image/input.native b/test/pptx/content-with-caption/text-image/input.native
new file mode 100644
index 000000000..762d18426
--- /dev/null
+++ b/test/pptx/content-with-caption/text-image/input.native
@@ -0,0 +1,2 @@
+[Para [Str "Some",Space,Str "text",Space,Str "here"]
+,Para [Image ("",[],[]) [Str "Followed",Space,Str "by",Space,Str "a",Space,Str "picture"] ("lalune.jpg","fig:")]]
diff --git a/test/pptx/content-with-caption/text-image/moved-layouts.pptx b/test/pptx/content-with-caption/text-image/moved-layouts.pptx
new file mode 100644
index 000000000..feade1096
--- /dev/null
+++ b/test/pptx/content-with-caption/text-image/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/text-image/output.pptx b/test/pptx/content-with-caption/text-image/output.pptx
new file mode 100644
index 000000000..efa814d65
--- /dev/null
+++ b/test/pptx/content-with-caption/text-image/output.pptx
Binary files differ
diff --git a/test/pptx/content-with-caption/text-image/templated.pptx b/test/pptx/content-with-caption/text-image/templated.pptx
new file mode 100644
index 000000000..ebd552252
--- /dev/null
+++ b/test/pptx/content-with-caption/text-image/templated.pptx
Binary files differ
diff --git a/test/pptx/document-properties-short-desc/deleted-layouts.pptx b/test/pptx/document-properties-short-desc/deleted-layouts.pptx
index e4cf6bd7b..a866f3c1f 100644
--- a/test/pptx/document-properties-short-desc/deleted-layouts.pptx
+++ b/test/pptx/document-properties-short-desc/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/document-properties/deleted-layouts.pptx b/test/pptx/document-properties/deleted-layouts.pptx
index a00c8059d..1f52481f3 100644
--- a/test/pptx/document-properties/deleted-layouts.pptx
+++ b/test/pptx/document-properties/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/endnotes-toc/deleted-layouts.pptx b/test/pptx/endnotes-toc/deleted-layouts.pptx
index 46708544c..60110a64e 100644
--- a/test/pptx/endnotes-toc/deleted-layouts.pptx
+++ b/test/pptx/endnotes-toc/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/endnotes/deleted-layouts.pptx b/test/pptx/endnotes/deleted-layouts.pptx
index 5c69a6310..0b0bd2f53 100644
--- a/test/pptx/endnotes/deleted-layouts.pptx
+++ b/test/pptx/endnotes/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/images/deleted-layouts.pptx b/test/pptx/images/deleted-layouts.pptx
index 053928863..2f8754e90 100644
--- a/test/pptx/images/deleted-layouts.pptx
+++ b/test/pptx/images/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/inline-formatting/deleted-layouts.pptx b/test/pptx/inline-formatting/deleted-layouts.pptx
index bbd5bfeb4..2fbe21a45 100644
--- a/test/pptx/inline-formatting/deleted-layouts.pptx
+++ b/test/pptx/inline-formatting/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/lists/deleted-layouts.pptx b/test/pptx/lists/deleted-layouts.pptx
index 6512e44bb..e527d3c5f 100644
--- a/test/pptx/lists/deleted-layouts.pptx
+++ b/test/pptx/lists/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/raw-ooxml/deleted-layouts.pptx b/test/pptx/raw-ooxml/deleted-layouts.pptx
index 2ea155657..2da1b7a63 100644
--- a/test/pptx/raw-ooxml/deleted-layouts.pptx
+++ b/test/pptx/raw-ooxml/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/remove-empty-slides/deleted-layouts.pptx b/test/pptx/remove-empty-slides/deleted-layouts.pptx
index 7ae4a5fab..51981b241 100644
--- a/test/pptx/remove-empty-slides/deleted-layouts.pptx
+++ b/test/pptx/remove-empty-slides/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/remove-empty-slides/moved-layouts.pptx b/test/pptx/remove-empty-slides/moved-layouts.pptx
index 2572f2447..ddca32a52 100644
--- a/test/pptx/remove-empty-slides/moved-layouts.pptx
+++ b/test/pptx/remove-empty-slides/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/remove-empty-slides/output.pptx b/test/pptx/remove-empty-slides/output.pptx
index c6df8e18e..9e8b5eed2 100644
--- a/test/pptx/remove-empty-slides/output.pptx
+++ b/test/pptx/remove-empty-slides/output.pptx
Binary files differ
diff --git a/test/pptx/remove-empty-slides/templated.pptx b/test/pptx/remove-empty-slides/templated.pptx
index 1df48c5ad..579467452 100644
--- a/test/pptx/remove-empty-slides/templated.pptx
+++ b/test/pptx/remove-empty-slides/templated.pptx
Binary files differ
diff --git a/test/pptx/slide-breaks-slide-level-1/deleted-layouts.pptx b/test/pptx/slide-breaks-slide-level-1/deleted-layouts.pptx
index 2c7fd4d8b..2c891cd1d 100644
--- a/test/pptx/slide-breaks-slide-level-1/deleted-layouts.pptx
+++ b/test/pptx/slide-breaks-slide-level-1/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-breaks-toc/deleted-layouts.pptx b/test/pptx/slide-breaks-toc/deleted-layouts.pptx
index 1e0b76d46..b63994cce 100644
--- a/test/pptx/slide-breaks-toc/deleted-layouts.pptx
+++ b/test/pptx/slide-breaks-toc/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-breaks/deleted-layouts.pptx b/test/pptx/slide-breaks/deleted-layouts.pptx
index 86dfad3b2..fbf4054be 100644
--- a/test/pptx/slide-breaks/deleted-layouts.pptx
+++ b/test/pptx/slide-breaks/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h1-h2-with-table/deleted-layouts.pptx b/test/pptx/slide-level-0/h1-h2-with-table/deleted-layouts.pptx
index 5e776e05c..217b000b6 100644
--- a/test/pptx/slide-level-0/h1-h2-with-table/deleted-layouts.pptx
+++ b/test/pptx/slide-level-0/h1-h2-with-table/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h1-h2-with-table/moved-layouts.pptx b/test/pptx/slide-level-0/h1-h2-with-table/moved-layouts.pptx
index 35204de1b..d8a6c90fe 100644
--- a/test/pptx/slide-level-0/h1-h2-with-table/moved-layouts.pptx
+++ b/test/pptx/slide-level-0/h1-h2-with-table/moved-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h1-h2-with-table/output.pptx b/test/pptx/slide-level-0/h1-h2-with-table/output.pptx
index 197a6833f..512b324bf 100644
--- a/test/pptx/slide-level-0/h1-h2-with-table/output.pptx
+++ b/test/pptx/slide-level-0/h1-h2-with-table/output.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h1-h2-with-table/templated.pptx b/test/pptx/slide-level-0/h1-h2-with-table/templated.pptx
index 5c659952e..5ab88e94c 100644
--- a/test/pptx/slide-level-0/h1-h2-with-table/templated.pptx
+++ b/test/pptx/slide-level-0/h1-h2-with-table/templated.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h1-with-image/deleted-layouts.pptx b/test/pptx/slide-level-0/h1-with-image/deleted-layouts.pptx
index 16c61d1be..5be799e3b 100644
--- a/test/pptx/slide-level-0/h1-with-image/deleted-layouts.pptx
+++ b/test/pptx/slide-level-0/h1-with-image/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h1-with-table/deleted-layouts.pptx b/test/pptx/slide-level-0/h1-with-table/deleted-layouts.pptx
index 0eb7c0b08..127dcea01 100644
--- a/test/pptx/slide-level-0/h1-with-table/deleted-layouts.pptx
+++ b/test/pptx/slide-level-0/h1-with-table/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/slide-level-0/h2-with-image/deleted-layouts.pptx b/test/pptx/slide-level-0/h2-with-image/deleted-layouts.pptx
index afc096ce6..5be799e3b 100644
--- a/test/pptx/slide-level-0/h2-with-image/deleted-layouts.pptx
+++ b/test/pptx/slide-level-0/h2-with-image/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/speaker-notes-after-metadata/deleted-layouts.pptx b/test/pptx/speaker-notes-after-metadata/deleted-layouts.pptx
index 1298870e2..33304ae3e 100644
--- a/test/pptx/speaker-notes-after-metadata/deleted-layouts.pptx
+++ b/test/pptx/speaker-notes-after-metadata/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/speaker-notes-afterheader/deleted-layouts.pptx b/test/pptx/speaker-notes-afterheader/deleted-layouts.pptx
index 853b918cb..00f05fae5 100644
--- a/test/pptx/speaker-notes-afterheader/deleted-layouts.pptx
+++ b/test/pptx/speaker-notes-afterheader/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/speaker-notes-afterseps/deleted-layouts.pptx b/test/pptx/speaker-notes-afterseps/deleted-layouts.pptx
index 9fec1c279..139af783b 100644
--- a/test/pptx/speaker-notes-afterseps/deleted-layouts.pptx
+++ b/test/pptx/speaker-notes-afterseps/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/speaker-notes/deleted-layouts.pptx b/test/pptx/speaker-notes/deleted-layouts.pptx
index 6a5ad524f..c63125d8a 100644
--- a/test/pptx/speaker-notes/deleted-layouts.pptx
+++ b/test/pptx/speaker-notes/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/start-numbering-at/deleted-layouts.pptx b/test/pptx/start-numbering-at/deleted-layouts.pptx
index d9cf91804..68b4215df 100644
--- a/test/pptx/start-numbering-at/deleted-layouts.pptx
+++ b/test/pptx/start-numbering-at/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/tables/deleted-layouts.pptx b/test/pptx/tables/deleted-layouts.pptx
index a52222551..d533d3c28 100644
--- a/test/pptx/tables/deleted-layouts.pptx
+++ b/test/pptx/tables/deleted-layouts.pptx
Binary files differ
diff --git a/test/pptx/two-column/deleted-layouts.pptx b/test/pptx/two-column/deleted-layouts.pptx
index 60a244f94..9622ed2cd 100644
--- a/test/pptx/two-column/deleted-layouts.pptx
+++ b/test/pptx/two-column/deleted-layouts.pptx
Binary files differ