diff --git a/NAMESPACE b/NAMESPACE
index 1284ebc..1f7e92e 100644
--- a/NAMESPACE
+++ b/NAMESPACE
@@ -1,5 +1,6 @@
 # Generated by roxygen2: do not edit by hand
 
+export(posterdown_betterland)
 export(posterdown_html)
 export(posterdown_latex)
 export(posterdown_pdf)
diff --git a/R/posterdown_html.R b/R/posterdown_html.R
index 4ed2b10..477c95d 100644
--- a/R/posterdown_html.R
+++ b/R/posterdown_html.R
@@ -1,5 +1,4 @@
 #' Posterdown HTML format (using bookdown::html_document2)
-#'
 #' @inheritParams pagedown::poster_relaxed
 #' @param ... Additional arguments to \code{rmarkdown::html_document}
 #'
@@ -18,3 +17,12 @@
 	css = NULL) {
 	pagedown::poster_relaxed(..., css = css, template = template)
 }
+#' @description The output format \code{poster_betterland()} mimics the style of the
+#' \dQuote{BetterPoster} movement from twitter.
+#' @rdname posterdown_html
+#' @export
+posterdown_betterland <- function(...,
+                            template = find_resource("posterdown_betterland", "template.html"),
+                            css = NULL) {
+  pagedown::poster_relaxed(..., css = css, template = template)
+}
diff --git a/inst/rmarkdown/templates/posterdown_betterland/resources/template.html b/inst/rmarkdown/templates/posterdown_betterland/resources/template.html
new file mode 100644
index 0000000..c71911e
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_betterland/resources/template.html
@@ -0,0 +1,328 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml"$if(lang)$ lang="$lang$" xml:lang="$lang$"$endif$>
+<head>
+<meta charset="utf-8" />
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="generator" content="pandoc" />
+<meta name="viewport" content="width=device-width, initial-scale=1">
+
+$for(author-meta)$<meta name="author" content="$author-meta$" />$endfor$
+$if(date-meta)$<meta name="date" content="$date-meta$" />$endif$
+<title>$if(title-prefix)$$title-prefix$ - $endif$$pagetitle$</title>
+
+$for(header-includes)$
+$header-includes$
+$endfor$
+
+$if(highlightjs)$
+<link rel="stylesheet" href="$highlightjs$/$if(highlightjs-theme)$$highlightjs-theme$$else$default$endif$.css" $if(html5)$$else$type="text/css" $endif$/>
+<script src="$highlightjs$/highlight.js"></script>
+<script type="text/javascript">hljs.configure({languages: []}); hljs.initHighlightingOnLoad();</script>
+$endif$
+
+$if(highlighting-css)$<style type="text/css">$highlighting-css$</style>$endif$
+
+$for(css)$
+<link rel="stylesheet" href="$css$" $if(html5)$$else$type="text/css" $endif$/>
+$endfor$
+
+<!--
+Font-awesome icons ie github or twitter
+-->
+<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous">
+<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/brands.css" integrity="sha384-n9+6/aSqa9lBidZMRCQHTHKJscPq6NW4pCQBiMmHdUCvPN8ZOg2zJJTkC7WIezWv" crossorigin="anonymous">
+
+<!--
+Google fonts api stuff
+-->
+<link href='https://fonts.googleapis.com/css?family=$middle_fontfamily$' rel='stylesheet'>
+<link href='https://fonts.googleapis.com/css?family=$font_family$' rel='stylesheet'>
+
+
+
+<!--
+Here are the required style attributes for css to make this poster work :)
+-->
+<style>
+@page {
+size: $poster_width$ $poster_height$;
+margin: 0;
+padding: 0;
+}
+body {
+margin: 0px;
+padding: 0px;
+width: $poster_height$;
+height: $poster_width$;
+text-align: justify;
+font-size: $body_textsize$;
+}
+/* RMarkdown Class Styles */
+/* center align leaflet map,
+from https://stackoverflow.com/questions/52112119/center-leaflet-in-a-rmarkdown-document */
+.html-widget {
+margin: auto;
+position: sticky;
+margin-top: 2cm;
+margin-bottom: 2cm;
+}
+.leaflet.html-widget.html-widget-static-bound.leaflet-container.leaflet-touch.leaflet-fade-anim.leaflet-grab.leaflet-touch-drag.leaflet-touch-zoom {
+position: sticky;
+width: 100%;
+}
+pre.sourceCode.r {
+background-color: #dddddd40;
+border-radius: 4mm;
+padding: 4mm;
+width: 75%;
+margin: auto;
+margin-top: 1em;
+margin-bottom: 1em;
+/* align-items: center; */
+padding-left: 2cm;
+}
+code.sourceCode.r{
+background-color: transparent;
+font-size: 20pt;
+border-radius: 2mm;
+}
+code {
+font-size: 25pt;
+font-family: monospace;
+background-color: $secondary_colour$24;
+color: $primary_colour$;
+padding: 1.2mm;
+border-radius: 2mm;
+}
+caption {
+margin-bottom: 10px;
+font-size: $caption_fontsize$;
+font-style: italic;
+}
+tbody tr:nth-child(odd) {
+    background-color: $primary_colour$20;
+}
+.table>thead>tr>th, .table>tbody>tr>th, .table>tfoot>tr>th, .table>thead>tr>td, .table>tbody>tr>td, .table>tfoot>tr>td{
+  border-spacing: 0;
+  border-style: none;
+  padding-top: 15px;
+  padding-bottom: 15px;
+  padding-right: 20px;
+  padding-left: 20px;
+  line-height: 1.42857143;
+}
+.caption {
+font-size: $caption_fontsize$;
+font-style: italic;
+}
+.references {
+font-size: 20px;
+line-height: 90%;
+}
+/* Create three unequal columns that floats next to each other */
+.column {
+float: left;
+padding: 0px;
+}
+.outer {
+width: $poster_width$;
+height: $poster_height$;
+-webkit-column-count: 2; /* Chrome, Safari, Opera */
+-moz-column-count: 2; /* Firefox */
+column-count: 2;
+-webkit-column-fill: auto;
+-moz-column-fill: auto;
+column-fill: auto;
+-webkit-column-rule-width: 50%;
+-moz-column-rule-width: 50%;
+column-rule-width: 50%;
+-webkit-column-rule-style: solid;
+-moz-column-rule-style: solid;
+column-rule-style: solid;
+-webkit-column-rule-color: black;
+-moz-column-rule-color: black;
+column-rule-color: black;
+-webkit-column-gap: 50%;
+background-color: $body_bgcol$;
+font-family: $font_family$;
+}
+span.citation {
+  color: $secondary_colour$;
+  font-weight: bold;
+}
+a {
+text-decoration: none;
+color: $secondary_colour$;
+}
+#title {
+font-size: $title_textsize$;
+text-align: left;
+padding-right: 7%;
+padding-left: 7%;
+margin: 0;
+line-height: 80%;
+border-bottom: 0;
+}
+#author {
+padding-right: 7%;
+padding-left: 7%;
+color: $primary_colour$;
+margin: 0;
+line-height: 85%;
+font-size: $author_textsize$;
+}
+#affiliation {
+padding-right: 7%;
+padding-left: 7%;
+padding-top: 1em;
+color: $affiliation_textcol$;
+font-style: italic;
+font-size: $affiliation_textsize$;
+margin: 0;
+}
+sup {
+color: $accent_colour$;
+}
+.affiliation sup {
+font-size: 20px;
+}
+.author sup {
+font-size: 30px;
+}
+.outer h1 {
+text-align: center;
+margin-top: 0.5in;
+margin-bottom: 0.5in;
+}
+.outer h2 {
+text-align: center;
+}
+.outer p {
+padding-right: 7%;
+padding-left: 7%;
+color: #000000;
+}
+.outer ol {
+padding-left: 12%;
+padding-right: 12%;
+text-align: left;
+}
+.middle {
+width: calc($poster_width$ / 2);
+height: $poster_height$;
+position: absolute;
+margin-left: calc($poster_width$ / 4);
+background-color: $primary_colour$;
+color: $middle_textcol$;
+font-family: $middle_fontfamily$;
+background-image: linear-gradient($primary_colour$ 50%, $secondary_colour$);
+}
+.middle strong {
+color: #FFFFFF;
+}
+#middle-img-left {
+width: 20%;
+left: 0.5in;
+bottom: 0.2in;
+position: absolute;
+opacity: 0.5
+}
+#middle-img-right {
+width: 18%;
+right: 0.5in;
+bottom: 0.2in;
+position: absolute;
+opacity: 0.6
+}
+.middle p {
+padding-left: 5%;
+padding-right: 5%;
+padding-top: 20%;
+font-size: 170px;
+text-align: left;
+}
+.fab {
+color: #00000030;
+font-size: 25px;
+}
+.twitter, i {
+color: #00000030;
+font-size: 35px;
+text-decoration: none;
+}
+a.email {
+text-decoration: none;
+color: #00000030;
+font-size: 35px;
+}
+.envelope {
+color: #00000030;
+font-size: 5px;
+text-decoration: none;
+}
+.poster_wrap {
+width: 42in;
+height: 30in;
+padding: 0cm;
+}
+span > #tab:mytable {
+  font-weight: bold;
+}
+</style>
+</head>
+<body>
+
+$for(include-before)$
+$include-before$
+$endfor$
+
+<div class="poster_wrap">
+<div class="column outer">
+<br>
+<h1 id="title">$title$</h1>
+<br>
+<h3 id="author" class="author">
+$for(author)$$author.name$<sup> $author.affil$</sup><br>
+$if(author.twitter)$<a class="twitter" href="https://mobile.twitter.com/$author.twitter$"><i class="fab fa-twitter"></i>&nbsp;&nbsp;@$author.twitter$</a><br>
+$else$$endif$
+$if(author.email)$
+<a class='envelope'><i class="fas fa-envelope"></i></a> $author.email$
+$else$$endif$
+$sep$<br> $endfor$
+</h3>
+<p id="affiliation" class="affiliation">
+$for(affiliation)$<sup>$affiliation.num$</sup> $affiliation.address$$sep$<br> $endfor$
+</p>
+
+$body$
+
+</div>
+<div class="column middle">
+<p>$for(main_findings)$$main_findings$$sep$<br><br> $endfor$</p>
+<img id="middle-img-left" src=$logoleft_name$>
+<img id="middle-img-right" src="$logoright_name$">
+</div>
+</div>
+
+$if(math)$
+<!-- dynamically load mathjax for compatibility with self-contained -->
+<script>
+(function () {
+var script = document.createElement("script");
+script.type = "text/javascript";
+var src = "$if(mathjax)$$mathjax$$endif$";
+if (src === "" || src === "true") src = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-MML-AM_CHTML";
+if (location.protocol !== "file:" && /^https?:/.test(src))
+src = src.replace(/^https?:/, '');
+script.src = src;
+document.getElementsByTagName("head")[0].appendChild(script);
+})();
+</script>
+$endif$
+
+$for(include-after)$
+$include-after$
+$endfor$
+
+</body>
+</html>
diff --git a/inst/rmarkdown/templates/posterdown_betterland/skeleton/Figures/posterdownlogo.png b/inst/rmarkdown/templates/posterdown_betterland/skeleton/Figures/posterdownlogo.png
new file mode 100644
index 0000000..258776d
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_betterland/skeleton/Figures/posterdownlogo.png
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_betterland/skeleton/Figures/qr-code-black.png b/inst/rmarkdown/templates/posterdown_betterland/skeleton/Figures/qr-code-black.png
new file mode 100644
index 0000000..8fcbfde
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_betterland/skeleton/Figures/qr-code-black.png
Binary files differ
diff --git a/inst/rmarkdown/templates/posterdown_betterland/skeleton/MyBib.bib b/inst/rmarkdown/templates/posterdown_betterland/skeleton/MyBib.bib
new file mode 100644
index 0000000..02a8bb7
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_betterland/skeleton/MyBib.bib
@@ -0,0 +1,131 @@
+@Manual{thorneposterdown2019,
+  title = {posterdown: An R Package built to generate reproducible conference posters for the academic and professional world were PowerPoint and Pages just wont cut it},
+  author = {W. Brent Thorne},
+  year = {2019},
+  volume = {0.1.2},
+  url = {https://github.com/brentthorne/posterdown},
+  note = {R package version 0.1.2},
+}
+
+@Manual{ggspatial,
+  title = {ggspatial: Spatial Data Framework for ggplot2},
+  author = {Dewey Dunnington},
+  note = {R package version 1.0.1},
+  url = {https://github.com/paleolimbot/ggspatial},
+}
+
+@Manual{gganimate2017,
+  title = {gganimate: A Grammar of Animated Graphics},
+  author = {Thomas Lin Pedersen and David Robinson},
+  year = {2017},
+  note = {R package version 0.9.9.9999},
+  url = {http://github.com/thomasp85/gganimate},
+}
+
+@Manual{patchwork2017,
+  title = {patchwork: The Composer of ggplots},
+  author = {Thomas Lin Pedersen},
+  year = {2017},
+  note = {R package version 0.0.1},
+  url = {https://github.com/thomasp85/patchwork},
+}
+
+@Manual{kableExtra2019,
+  title = {kableExtra: Construct Complex Table with 'kable' and Pipe Syntax},
+  author = {Hao Zhu},
+  year = {2019},
+  note = {R package version 1.0.0},
+  url = {https://CRAN.R-project.org/package=kableExtra},
+}
+
+@Manual{rmarkdown,
+  title = {rmarkdown: Dynamic Documents for R},
+  author = {JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone},
+  year = {2018},
+  note = {R package version 1.11},
+  url = {https://rmarkdown.rstudio.com},
+}
+
+@Manual{sf,
+  title = {sf: Simple Features for R},
+  author = {Edzer Pebesma},
+  year = {2018},
+  note = {R package version 0.6-3},
+  url = {https://CRAN.R-project.org/package=sf},
+}
+
+@Manual{tidyverse,
+  title = {tidyverse: Easily Install and Load the 'Tidyverse'},
+  author = {Hadley Wickham},
+  year = {2017},
+  note = {R package version 1.2.1},
+  url = {https://CRAN.R-project.org/package=tidyverse},
+}
+
+@Manual{pagedown,
+  title = {pagedown: Paginate the HTML Output of R Markdown with CSS for Print},
+  author = {Yihui Xie and Romain Lesur},
+  note = {R package version 0.1.2},
+  url = {https://github.com/rstudio/pagedown},
+}
+
+@Manual{leaflet,
+  title = {leaflet: Create Interactive Web Maps with the JavaScript 'Leaflet'
+Library},
+  author = {Joe Cheng and Bhaskar Karambelkar and Yihui Xie},
+  year = {2018},
+  note = {R package version 2.0.2},
+  url = {https://CRAN.R-project.org/package=leaflet},
+}
+
+@Manual{ggthemes,
+  title = {ggthemes: Extra Themes, Scales and Geoms for 'ggplot2'},
+  author = {Jeffrey B. Arnold},
+  note = {R package version 4.0.1},
+  url = {http://github.com/jrnold/ggthemes},
+}
+
+@Manual{rticles,
+  title = {rticles: Article Formats for R Markdown},
+  author = {JJ Allaire and Yihui Xie and {R Foundation} and Hadley Wickham and {Journal of Statistical Software} and Ramnath  Vaidyanathan and {Association for Computing Machinery} and Carl Boettiger and {Elsevier} and Karl Broman and Kirill Mueller and Bastiaan Quast and Randall  Pruim and Ben Marwick and Charlotte Wickham and Oliver Keyes and Miao Yu and Daniel Emaasit and Thierry Onkelinx and Alessandro Gasparini and Marc-Andre Desautels and Dominik Leutnant and {MDPI} and Oğuzhan Öğreden and Dalton Hance and Daniel Nüst},
+  year = {2018},
+  note = {R package version 0.6},
+  url = {https://CRAN.R-project.org/package=rticles},
+}
+
+@Manual{thesisdown,
+  title = {thesisdown: An updated R Markdown thesis template using the bookdown package},
+  author = {Nick Solomon},
+  year = {2019},
+  note = {R package version 0.0.2},
+}
+
+@Book{knitr,
+  title = {Dynamic Documents with {R} and knitr},
+  author = {Yihui Xie},
+  publisher = {Chapman and Hall/CRC},
+  address = {Boca Raton, Florida},
+  year = {2015},
+  edition = {2nd},
+  note = {ISBN 978-1498716963},
+  url = {https://yihui.name/knitr/},
+}
+
+@article{turnerControlsWaterBalance2014,
+	title = {Controls on water balance of shallow thermokarst lakes and their relations with catchment characteristics: a multi-year, landscape-scale assessment based on water isotope tracers and remote sensing in {Old} {Crow} {Flats}, {Yukon} ({Canada})},
+	volume = {20},
+	issn = {13541013},
+	shorttitle = {Controls on water balance of shallow thermokarst lakes and their relations with catchment characteristics},
+	url = {http://doi.wiley.com/10.1111/gcb.12465},
+	doi = {10.1111/gcb.12465},
+	abstract = {Many northern lake-rich regions are undergoing pronounced hydrological change, yet inadequate knowledge of the drivers of these landscape-scale responses hampers our ability to predict future conditions. We address this challenge in the thermokarst landscape of Old Crow Flats (OCF) using a combination of remote sensing imagery and monitoring of stable isotope compositions of lake waters over three thaw seasons (2007–2009). Quantitative analysis conﬁrmed that the hydrological behavior of lakes is strongly inﬂuenced by catchment vegetation and physiography. Catchments of snowmelt-dominated lakes, typically located in southern peripheral areas of OCF, encompass high proportions of woodland/forest and tall shrub vegetation (mean percent land cover = ca. 60\%). These land cover types effectively capture snow and generate abundant snowmelt runoff that offsets lake water evaporation. Rainfalldominated lakes that are not strongly inﬂuenced by evaporation are typically located in eastern and northern OCF where their catchments have higher proportions of dwarf shrub/herbaceous and sparse vegetation (ca. 45\%), as well as surface water (ca. 20\%). Evaporation-dominated lakes, are located in the OCF interior where their catchments are distinguished by substantially higher lake area to catchment area ratios (LA/CA = ca. 29\%) compared to low evaporation-inﬂuenced rainfall-dominated (ca. 10\%) and snowmelt-dominated (ca. 4\%) lakes. Lakes whose catchments contain {\textgreater}75\% combined dwarf shrub/herbaceous vegetation and surface water are most susceptible to evaporative lake-level drawdown, especially following periods of low precipitation. Findings indicate that multiple hydrological trajectories are probable in response to climate-driven changes in precipitation amount and seasonality, vegetation composition, and thermokarst processes. These will likely include a shift to greater snowmelt inﬂuence in catchments experiencing expansion of tall shrubs, greater inﬂuence from evaporation in catchments having higher proportions of surface water, and an increase in the rate of thermokarst lake expansion and probability of drainage. Local observations suggest that some of these changes are already underway.},
+	language = {en},
+	number = {5},
+	urldate = {2018-06-29},
+	journal = {Global Change Biology},
+	author = {Turner, Kevin W. and Wolfe, Brent B. and Edwards, Thomas W. D. and Lantz, Trevor C. and Hall, Roland I. and Larocque, Guillaume},
+	month = may,
+	year = {2014},
+	pages = {1585--1603},
+	file = {Turner et al. - 2014 - Controls on water balance of shallow thermokarst l.pdf:/home/thornux/Zotero/storage/ENFATHMR/Turner et al. - 2014 - Controls on water balance of shallow thermokarst l.pdf:application/pdf}
+}
diff --git a/inst/rmarkdown/templates/posterdown_betterland/skeleton/skeleton.Rmd b/inst/rmarkdown/templates/posterdown_betterland/skeleton/skeleton.Rmd
new file mode 100644
index 0000000..d3f1e95
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_betterland/skeleton/skeleton.Rmd
@@ -0,0 +1,124 @@
+---
+# PLEASE SEE THE README for in depth description github.com/brentthorne/posterdown
+poster_height: "32in"
+poster_width: "46in"
+font_family: 'Rasa'
+#ESSENTIALS
+title: A Better Reproducible Poster Title
+author:
+  - name: W. Brent Thorne
+    affil: 1,*
+    orcid: '0000-0002-1099-3857'
+    twitter: brentthorne18 
+    email: bthorne2@brocku.ca
+  - name: Another G. Contributor
+    affil: 2
+    email: ag.con@posterdown.net
+affiliation:
+  - num: 1
+    address: Department of Earth Science, Brock University
+  - num: 2
+    address: Department of Graphics and Layouts, University of Posters; Canada
+#STYLE & FORMATTING
+title_textsize: "125pt"
+author_textsize: "1.17em"
+affiliation_textsize: "25px"
+affiliation_textcol: '#00000080'
+caption_fontsize: "20pt"
+#Middle of the poster
+middle_fontfamily: "Special Elite"
+middle_textcol: "#FFFFFF90"
+main_findings:
+  - "Make **better posters** with <br> RMarkdown + **posterdown**."
+  - "Transition from **poster** to **manuscript** with ease!"
+logoleft_name: "Figures/qr-code-black.png"
+logoright_name: "Figures/posterdownlogo.png"
+#---POSTER BODY OPTIONS---#
+primary_colour: '#0b4545'
+secondary_colour: '#008080'
+accent_colour: "#cc0000"
+body_bgcol: "#ffffff"
+body_textsize: "45px"
+body_textcol: "#000000"
+#--Standard Options--#
+output: 
+  posterdown::posterdown_betterland:
+    self_contained: false
+    pandoc_args: --mathjax
+    highlight: espresso
+    number_sections: false
+bibliography: MyBib.bib
+---
+
+```{r, include=FALSE}
+knitr::opts_chunk$set(results = 'asis', echo = FALSE, comment = FALSE,  warning = FALSE,tidy = FALSE, message = FALSE, fig.align = 'center')
+options(knitr.table.format = "html") 
+```
+
+# Introduction
+
+This is the `posterdown_betterland` template for the {posterdown} package! I was inspired by the twitter thread of [Mike Morrison](https://mobile.twitter.com/mikemorrison/status/1110191245035479041) and wanted to apply the `#betterposter` concept to the reproducible (yet simple to use) functionality of the {posterdown} package [@thorneposterdown2019]. If you are not an R user don't sweat as you do **NOT** need to use it at all! Feel free to use only the Markdown functionallity of this package :)
+
+# Methods
+
+1. Install R and `posterdown`, see [github](github.com/brentthorne/posterdown)
+2. Open the `posterdown_betterland` template
+3. Make all your poster dreams come true!
+
+# Results
+
+```{r, out.width='90%', fig.height=4, fig.cap='Using {ggplot} and {patchwork} to generate a layout of multiple plots in one figure [@patchwork2017].'}
+
+library(tidyverse)
+library(patchwork)
+library(ggthemes)
+
+theme_set(theme_gray() + theme_tufte() + theme(legend.position = "none"))
+
+base <- ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species))
+  
+p_point <- base + geom_point()
+p_line  <- base + geom_line() 
+p_area  <- base + geom_area()
+p_box1  <- ggplot(iris) + geom_boxplot(aes(x = Species, y = Sepal.Length, fill = Species))
+p_box2  <- ggplot(iris) + geom_boxplot(aes(x = Species, y = Sepal.Width, fill = Species))
+
+p_line + 
+  {p_point + p_box1} +
+  plot_layout(ncol = 1) + plot_annotation(tag_levels = "a", tag_prefix = "(",tag_suffix = ")")
+
+```
+
+## More Figures and Tables
+
+```{r, mytable, fig.align='center', out.width='90%'}
+
+library(knitr)
+library(kableExtra)
+
+dt <- iris[1:5, 1:5]
+
+kable(dt, caption = 'Here is a caption for the table made with the {kableExtra} package [@kableExtra2019].',align = 'c', col.names = c("Sepal W","Sepal L","Pedal W","Pedal L","Species")) %>% 
+  kable_styling(full_width = T) %>% 
+  row_spec(0, color = "#fff", background = "#0b454580")
+```
+
+
+```{r, mymapfig, out.width="100%", echo=TRUE, cache=FALSE, fig.cap='Map of Long Lake eample from the [ggspatial](https://github.com/paleolimbot/ggspatial) package [@ggspatial].', comment=FALSE}
+
+library(ggplot2)
+library(ggspatial)
+
+load_longlake_data()
+
+ggplot() + 
+  theme_minimal() +
+  layer_spatial(longlake_depthdf,
+                aes(colour = DEPTH)) +
+  annotation_scale(location = "tl") +
+  annotation_north_arrow(location = "br") +
+  theme(legend.position = "bottom")
+
+```
+
+# References
diff --git a/inst/rmarkdown/templates/posterdown_betterland/template.yaml b/inst/rmarkdown/templates/posterdown_betterland/template.yaml
new file mode 100644
index 0000000..9fc207e
--- /dev/null
+++ b/inst/rmarkdown/templates/posterdown_betterland/template.yaml
@@ -0,0 +1,4 @@
+name: Posterdown HTML
+description: >
+ Template for creating R Markdown based PDF via HTML and CSS
+create_dir: true
diff --git a/man/posterdown_html.Rd b/man/posterdown_html.Rd
index 610d441..8c9f7fe 100644
--- a/man/posterdown_html.Rd
+++ b/man/posterdown_html.Rd
@@ -2,10 +2,15 @@
 % Please edit documentation in R/posterdown_html.R
 \name{posterdown_html}
 \alias{posterdown_html}
+\alias{posterdown_betterland}
 \title{Posterdown HTML format (using bookdown::html_document2)}
 \usage{
 posterdown_html(..., template = find_resource("posterdown_html",
   "template.html"), css = NULL)
+
+posterdown_betterland(...,
+  template = find_resource("posterdown_betterland", "template.html"),
+  css = NULL)
 }
 \arguments{
 \item{...}{Additional arguments to \code{rmarkdown::html_document}}
@@ -19,7 +24,8 @@
   \code{\link[rmarkdown:render]{render}}
 }
 \description{
-Posterdown HTML format (using bookdown::html_document2)
+The output format \code{poster_betterland()} mimics the style of the
+\dQuote{BetterPoster} movement from twitter.
 }
 \examples{
 
