diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062 b/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062
new file mode 100644
index 0000000..458a24f
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062
@@ -0,0 +1,22 @@
+{
+    "collab_server" : "",
+    "contents" : "",
+    "created" : 1546753481729.000,
+    "dirty" : false,
+    "encoding" : "UTF-8",
+    "folds" : "",
+    "hash" : "0",
+    "id" : "245EA062",
+    "lastKnownWriteTime" : 1546872959,
+    "last_content_update" : 1546872959089,
+    "path" : "~/Documents/GitHub/posterdown/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd",
+    "project_path" : "inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd",
+    "properties" : {
+        "cursorPosition" : "4,131",
+        "scrollLine" : "0"
+    },
+    "relative_order" : 2,
+    "source_on_save" : false,
+    "source_window" : "",
+    "type" : "r_markdown"
+}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062-contents
new file mode 100644
index 0000000..4f27cd8
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/245EA062-contents
@@ -0,0 +1,158 @@
+---
+#----ESSENTIALS----#
+title: 'Using `posterdown` to generate reproducible conference posters via RMarkdown > Knitr > Markdown > Pandoc > Latex > PDF workflow'
+author: "Author One^1^ Author Two^2^"
+affiliation: "^1^Department of Poster Layouts, University of Markdown; ^2^Deparment of Another Institution, Institution University"
+
+#----FONT STYLE----#
+font_size: "30pt" #sets '\normalsize' (sizes of the title and sections headings will adjust based on it)
+font_family: "courier" # choose from typical latex fonts (example: "palatino")
+
+#----COLOURS----#
+title_bgcol: "000000"  #Hex colour for background of poster title section (default is blue)
+poster_bgcol: "white" #colour of the poster main background
+title_textcol: "red" #colour of title text
+header_textcol: "red" #colour of the poster header titles
+cite_col: "green" #colour of ciation elements
+url_col: "cyan" #colour of url links
+link_col: "cyan" #colour of other links within the poster
+columnline_col: "blue" #colour 
+
+#----POSTER SIZE & COLUMN NUMBERS----#
+poster_height: "38in" # height in inches of poster
+poster_width: "45in" # width in inches of poster
+column_numbers: 3 # Number of columns that the poster has
+
+#----OTHER----#
+bibliography: MyLibrary # name of the .bib file used for referencing
+output: posterdown::posterdown_pdf
+---
+
+```{r, include=FALSE}
+knitr::opts_chunk$set(echo = FALSE, results = 'asis',fig.height = 3.5, fig.width = 4.5, out.width = "100%", warning = FALSE, fig.align = 'center', message = FALSE, dev='cairo_pdf')
+```
+
+<!--
+Bellow you will find typical RMarkdown syntax which should fill in the columns for the poster from top to bottom left to right. The more information you have the more will be filled. Please let me know if you have feedback at brentthorne18@gmail.com or at github.com/brentthorne/posterdown
+
+ENJOY! XD
+-->
+
+# Introduction
+
+Welcome to `posterdown` ! This is my attempt to provide a semi-smooth workflow for those who wish to take their `RMarkdown` skills to the conference world. Many creature comforts from `RMarkdown` are available in this package such as `Markdown` section notation, figure captioning, and even citations like this one [@holden_identifying_2012] The rest of this example poster will show how you can insert typical conference poster features into your own document. 
+
+# Study Site
+
+Here is a map made to show the study site using `ggplot2`, `ggspatial`, and `sf`. Lorem ipsum dolor sit amet, [@middleton_geological_nodate] consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Phasellus vestibulum lorem sed risus ultricies tristique nulla. Mauris vitae ultricies leo integer malesuada nunc vel risus commodo. Suspendisse potenti nullam ac tortor vitae. Enim nunc faucibus a pellentesque sit amet porttitor eget.  \vspace{15mm}
+
+```{r, fig.width=4.5, out.width="80%", fig.cap='This is a map of Canada, the ggspatial package is great for GIS folks in R!', cache=TRUE}
+library(ggplot2)
+library(ggspatial)
+library(ggthemes)
+library(sf)
+
+canada <- read_sf("data/Canada.geojson")
+
+
+ggplot() +
+  ggspatial::layer_spatial(canada, fill = "grey") +
+  ggspatial::annotation_north_arrow(location = "br", which_north = "true", style = north_arrow_nautical()) +
+  coord_sf() +
+  theme_solarized() +
+  NULL
+
+```
+
+
+# Objectives
+
+\large
+
+1. Easy to use reproducible poster design. 
+2. Integration with `RMarkdown`.
+3. Easy transition from `posterdown` to `thesisdown` or `rticles`
+
+\small
+
+# Methods
+
+This package uses the same workflow approach as the `RMarkdown` you know and love. Basically it goes from RMarkdown > Knitr > Markdown > Pandoc > Latex > PDF
+
+# Results
+
+Usually you want to have a nice table displaying some important results that you have calcualated. In posterdown this is as easy as using the `kable` table formatting you are probably use to as per typical `RMarkdown` formatting. I suggesting checking out the `kableExtra` package and its in depth documentation on customizing these tables found [here](https://haozhu233.github.io/kableExtra/awesome_table_in_pdf.pdf).
+
+```{r}
+library(kableExtra)
+library(ggplot2)
+
+data("iris")
+
+kable(iris[1:4,],align = "c", caption = "Tables are a breeze with Kable and Kable extra package!", booktabs = TRUE) %>% 
+  kable_styling(latex_options = "striped",full_width = TRUE, font_size = 25)
+
+```
+
+\vspace{1in}
+
+```{r, out.width='75%', fig.width=4, fig.height=3, fig.cap='A typical plot using ggplot using the classic iris dataset.'}
+
+library(ggplot2)
+library(ggthemes)
+
+ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) +
+  geom_point() +
+  theme_fivethirtyeight() +
+  labs(x = "Sepal Length", y = "Sepeal Width") +
+  NULL
+
+```
+
+\vspace{1in}
+
+```{r, out.width='85%', fig.width=4.5, fig.height=4, fig.cap='Another typical plot using ggplot, this time with a different theme and r code chunk options for fig.width and fig.height.'}
+
+library(ggplot2)
+library(ggthemes)
+
+ggplot(data = iris, aes(x = Sepal.Length, y = Sepal.Width, colour = Species)) +
+  geom_point() +
+  theme_hc() +
+  labs(x = "Sepal Length", y = "Sepeal Width") +
+  NULL
+
+```
+
+\vspace{1in}
+
+```{r, out.width='80%', fig.width=4.5, fig.align='center', echo=TRUE, fig.height=5, fig.cap='Another figure showing how base R plots might look on this poster!'}
+
+# Here is some code for people
+# to look at and be in awe of!!!!
+library(ggplot2)
+library(ggthemes)
+
+ggplot(data=iris,
+       aes(x = Sepal.Width,
+           y = Sepal.Length,
+           colour = Species)) +
+  geom_point() +
+  theme_stata() +
+  NULL
+
+```
+
+
+# Next Steps
+
+There is still **A LOT** of work to do on this package which include (but are note limited to): 
+
+- Better softcoding for front end user options in YAML
+- Images in the title section for logo placement which is a common attribut to posters as far as I have come to know.
+- Figure out compatiability with `natbib` which wasn't working during the initial set up.
+- MUCH BETTER PACKAGE DOCUMENTATION. For example, there is nothing in the README...
+- Include References section only if initiated by the user like in RMarkdown.
+
+<!--- Here you can set the size of the citation text -->
+\small
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA b/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA
new file mode 100644
index 0000000..50a96b3
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA
@@ -0,0 +1,22 @@
+{
+    "collab_server" : "",
+    "contents" : "",
+    "created" : 1546877826055.000,
+    "dirty" : false,
+    "encoding" : "UTF-8",
+    "folds" : "",
+    "hash" : "0",
+    "id" : "36A4DACA",
+    "lastKnownWriteTime" : 1546700391,
+    "last_content_update" : 1546700391,
+    "path" : "~/Documents/GitHub/posterdown/R/posterdown_pdf.R",
+    "project_path" : "R/posterdown_pdf.R",
+    "properties" : {
+        "cursorPosition" : "0,23",
+        "scrollLine" : "14"
+    },
+    "relative_order" : 3,
+    "source_on_save" : false,
+    "source_window" : "",
+    "type" : "r_source"
+}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA-contents
new file mode 100644
index 0000000..06f5bd7
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/36A4DACA-contents
@@ -0,0 +1,22 @@
+#' Posterdown PDF format (using 'memoir' document class)
+#'
+#' @inheritParams rmarkdown::pdf_document
+#' @param ... Additional arguments to \code{rmarkdown::pdf_document}
+#'
+#' @return R Markdown output format to pass to
+#'   \code{\link[rmarkdown:render]{render}}
+#'
+#' @examples
+#'
+#' \dontrun{
+#' library(rmarkdown)
+#' draft("MyArticle.Rmd", template = "posterdown_generic", package = "posterdown")
+#' }
+#'
+#' @export
+posterdown_pdf <- function(..., keep_tex = TRUE) {
+  inherit_pdf_document(...,
+                       keep_tex = keep_tex,
+                       template = find_resource("posterdown_pdf", "template.tex"),
+                       citation_package = "biblatex")
+}
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED b/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED
new file mode 100644
index 0000000..bc01eb9
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED
@@ -0,0 +1,22 @@
+{
+    "collab_server" : "",
+    "contents" : "",
+    "created" : 1546872909065.000,
+    "dirty" : false,
+    "encoding" : "UTF-8",
+    "folds" : "",
+    "hash" : "0",
+    "id" : "DC9C14ED",
+    "lastKnownWriteTime" : 1546872957,
+    "last_content_update" : 1546872957437,
+    "path" : "~/Documents/GitHub/posterdown/inst/rmarkdown/templates/posterdown_pdf/resources/template.tex",
+    "project_path" : "inst/rmarkdown/templates/posterdown_pdf/resources/template.tex",
+    "properties" : {
+        "cursorPosition" : "41,0",
+        "scrollLine" : "0"
+    },
+    "relative_order" : 2,
+    "source_on_save" : false,
+    "source_window" : "",
+    "type" : "tex"
+}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED-contents b/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED-contents
new file mode 100644
index 0000000..e6c1632
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/DC9C14ED-contents
@@ -0,0 +1,175 @@
+%brent's poster layout :)
+
+\documentclass[article,$font_size$,extrafontsizes]{memoir}
+
+%utf-8 seems to be important
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{multicol}
+\usepackage{graphicx}
+\usepackage{blindtext}
+\usepackage[svgnames,table]{xcolor}
+\usepackage[framemethod=tikz]{mdframed}
+\usepackage{color}
+\usepackage{geometry}
+\usepackage{adjmulticol}
+
+%For kable extra package :)
+\usepackage{booktabs}
+\usepackage{longtable}
+\usepackage{array}
+\usepackage{multirow}
+\usepackage{wrapfig}
+\usepackage{float}
+\usepackage{colortbl}
+\usepackage{pdflscape}
+\usepackage{pagecolor}
+\usepackage{tabu}
+\usepackage{threeparttable}
+\usepackage{threeparttablex}
+\usepackage[normalem]{ulem}
+\usepackage{makecell}
+
+\usepackage{hyperref}
+\hypersetup{
+    colorlinks=true,
+    linkcolor=$link_col$,
+    citecolor=$cite_col$,
+    filecolor=magenta,
+    urlcolor=$url_col$,
+}
+
+
+%For figure and table placement
+\usepackage{float}
+\floatplacement{figure}{H}
+\floatplacement{table}{H}
+
+%spacing between figure/ table and caption
+\setlength{\abovecaptionskip}{0.4in}
+\setlength{\belowcaptionskip}{0.2in}
+\captionnamefont{\footnotesize\sffamily\bfseries}
+\captiontitlefont{\footnotesize\sffamily}
+
+%define column options
+\setlength{\columnseprule}{1pt}
+\def\columnseprulecolor{\color{$columnline_col$}}
+\setsubsubsecheadstyle{\small\color{$header_textcol$}\textbf}% Set \section style
+\setsecheadstyle{\small\color{$header_textcol$}}
+\setsecnumformat{}
+\def\sectionmark#1{\markboth{#1}{#1}}
+
+%-----------------------------------------------------
+
+\thispagestyle{empty}
+\definecolor{light-gray}{gray}{0.9}
+
+%biblatex options
+\usepackage[sorting=none,backend=biber]{biblatex}
+\renewcommand*{\bibfont}{\tiny}
+\bibliography{$bibliography$}
+\defbibheading{bibliography}[\bibname]{%
+\section*{#1}%
+\markboth{#1}{#1}}
+\AtBeginDocument{%
+  \renewcommand{\bibname}{References}
+}
+
+%bring in the users information
+\author{$author$}
+\title{$title$}
+\counterwithout{section}{chapter}
+\makechapterstyle{mydefault}{
+\addtocounter{secnumdepth}{2}
+\setsecheadstyle{\Large\color{$header_textcol$}\textbf}
+\setsubsecheadstyle{\itshape}
+\setsubsubsecheadstyle{\itshape}
+}
+
+\chapterstyle{mydefault}
+
+%define column spacing
+\setlength\columnsep{1in}
+
+\setlength\parindent{1em}
+\setlength\parskip{1em}
+\setlength\hangparas{0}
+
+%spacing after section head title
+\setaftersecskip{0.3in}
+\setbeforesecskip{1in}
+\setlength\textfloatsep{0.3in}
+\setlength\floatsep{0.3in}
+\setlength\intextsep{0.3in}
+
+\setstocksize{$poster_height$}{$poster_width$}
+\settrimmedsize{\stockheight}{\stockwidth}{*}
+\settypeblocksize{$poster_height$}{$poster_width$}{*}
+\setlrmargins{*}{*}{1}
+\setulmarginsandblock{2.5cm}{*}{*}
+\setmarginnotes{0em}{0cm}{0cm}
+\setlength{\footskip}{0cm}
+\setlength{\footnotesep}{0cm}
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{0pt}
+\setlength{\trimtop}{0pt}
+\setlength{\trimedge}{0pt}
+\setlength{\uppermargin}{0pt}
+\checkandfixthelayout
+
+\definecolor{myframecolour}{HTML}{$title_bgcol$}
+
+\mdfdefinestyle{brentsmdfstyle}{%
+  backgroundcolor=myframecolour,
+  linecolor= $columnline_col$,
+  topline=false,
+  leftline=false,
+  rightline=false,
+  linewidth=2mm,
+  settings={\definecolor{linkcolor}{RGB}{255,255,255}}}
+
+%Footnote to white
+\usepackage{footmisc}
+\def\footnotelayout{\centering\color{white}}
+
+% see https://stackoverflow.com/a/47122900
+$if(highlighting-macros)$
+$highlighting-macros$
+$endif$
+
+\usepackage{$font_family$}
+\renewcommand*\familydefault{\sfdefault}
+\newpagecolor{$poster_bgcol$}
+%begin the document
+\begin{document}
+
+\begin{mdframed}[style=brentsmdfstyle]
+%sets footnote to be white hopefully
+\renewcommand\footnoterule{}
+\renewcommand{\thempfootnote}{\footnotesize\color{red}{\arabic{mpfootnote}}}
+
+% group which adds title author and other infor
+% Used instead of \maketitle for better spacing options
+\begingroup
+  \centering
+  \color{$title_textcol$}
+\vspace{0.5in}
+  \Huge{$title$} \\[0.3in]
+  \color{cyan} \Large{$author$} \\[0.2in]
+  \color{white} \large{$affiliation$} \par
+  \vspace{0.2in}
+
+% end title section -------------------
+  \endgroup
+\end{mdframed}
+
+% Brgin body of poster
+\begin{adjmulticols*}{$column_numbers$}{10mm}{10mm}
+\normalsize{
+\color{black}
+$body$
+\printbibliography
+}
+\end{adjmulticols*}
+%end the poster
+\end{document}
diff --git a/.Rproj.user/441ADA46/sources/s-1DCD7B32/lock_file b/.Rproj.user/441ADA46/sources/s-1DCD7B32/lock_file
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.Rproj.user/441ADA46/sources/s-1DCD7B32/lock_file
