PowerPoint
Overview
You can create PowerPoint presentations using the pptx
format. PowerPoint presentations support core presentation features like incremental bullets, 2-column layouts, and speaker notes, and can also be rendered using custom PowerPoint templates.
See the PowerPoint format reference for a complete list of all options available for PowerPoint output.
Creating Slides
In markdown, slides are delineated using headings. For example, here is a simple slide show with two slides (each defined with a level 2 heading (##
):
---
title: "Habits"
author: "John Doe"
format: pptx
---
## Getting up
- Turn off alarm
- Get out of bed
## Going to sleep
- Get in bed
- Count sheep
You can also divide slide shows into sections with title slides using a level 1 header (#
). For example:
---
title: "Habits"
author: "John Doe"
format: pptx
---
# In the morning
## Getting up
- Turn off alarm
- Get out of bed
## Breakfast
- Eat eggs
- Drink coffee
# In the evening
## Dinner
- Eat spaghetti
- Drink wine
## Going to sleep
- Get in bed
- Count sheep
Finally, you can also delineate slides using horizontal rules (for example, if you have a slide without a title):
---
title: "Habits"
author: "John Doe"
format: pptx
---
- Turn off alarm
- Get out of bed
---
- Get in bed
- Count sheep
The examples above all use level 2 headings for slides and level 1 headings for sections/title slides. You can customize this using the slide-level
option (See the Pandoc documentation on structuring the slide show for additional details.
Incremental Lists
By default number and bullet lists within slides are displayed all at once. You can override this globally using the incremental
option. For example:
title: "My Presentation"
format:
pptx:
incremental: true
You can also explicitly make any list incremental or non-incremental by surrounding it in a div with an explicit class that determines the mode. To make a list incremental do this:
::: {.incremental}
- Eat spaghetti
- Drink wine
:::
To make a list non-incremental do this:
::: {.nonincremental}
- Eat spaghetti
- Drink wine
:::
Multiple Columns
To put material in side by side columns, you can use a native div container with class .columns
, containing two or more div containers with class .column
and a width
attribute:
:::: {.columns}
::: {.column width="40%"}
contents...
:::
::: {.column width="60%"}
contents...
:::
::::
Speaker Notes
You can add speaker notes to a slide using a div with class .notes
. For example:
## Slide with speaker notes
Slide content
::: {.notes}
Speaker notes go here. :::
PowerPoint Templates
By default PowerPoint output uses a fairly plain looking template. You can customize what template is used via the reference-doc
option. For example:
---
title: "Presentation"
format:
pptx:
reference-doc: template.pptx
---
Nearly all templates included with recent versions of PowerPoint (either with .pptx
or .potx
extension) are known to work, as are most templates derived from these.
The specific requirement is that the template should contain layouts with the following names (as seen within PowerPoint, click on Layout
under the Home
menu to check):
- Title Slide
- Title and Content
- Section Header
- Two Content
- Comparison
- Content with Caption
- Blank
For each name, the first layout found with that name will be used. If no layout is found with one of the names, Pandoc will output a warning and use the layout with that name from the default reference-doc
instead.
Creating a Template
To create a template from scratch, start with the default PowerPoint template as follows:
Terminal
quarto pandoc -o template.pptx --print-default-data-file reference.pptx
Then edit the template.pptx
file within PowerPoint as desired, and use it as the value for reference-doc
(as shown above) when rendering your slides:
Slide Layouts
When creating slides, the pptx writer chooses from a number of pre-defined layouts, based on the content of the slide:
- Title Slide
-
This layout is used for the initial slide, which is generated and filled from the metadata fields
date
,author
, andtitle
, if they are present. - Section Header
-
This layout is used for what pandoc calls “title slides”, i.e. slides which start with a header which is above the slide level in the hierarchy.
- Two Content
-
This layout is used for two-column slides, i.e. slides containing a div with class
columns
which contains at least two divs with classcolumn
. - Comparison
-
This layout is used instead of “Two Content” for any two-column slides in which at least one column contains text followed by non-text (e.g. an image or a table).
- Content with Caption
-
This layout is used for any non-two-column slides which contain text followed by non-text (e.g. an image or a table).
- Blank
-
This layout is used for any slides which only contain blank content, e.g. a slide containing only speaker notes, or a slide containing only a non-breaking space.
- Title and Content
-
This layout is used for all slides which do not match the criteria for another layout.
These layouts are chosen from the default pptx
reference doc included with Pandoc, unless an alternative reference doc is specified using reference-doc
.
Background Images
To provide a common background image for multiple slides in a PowerPoint presentation, include the background image within the relevant slide layouts of a custom PowerPoint template (see Creating a Template for details on creating templates).
To add a background image to an individual slide, add the background-image
attribute to the slide’s heading. For example:
## Slide Title {background-image="background.png"}
Note that this also works even if you don’t have slide heading text. For example:
## {background-image="background.png"}
For background images, only the “stretch” mode is supported, and the background image is centred around the slide in the image’s larger axis, matching the observed default behaviour of PowerPoint.