diff --git a/.Rproj.user/441ADA46/sources/per/t/2F24B1BB b/.Rproj.user/441ADA46/sources/per/t/2F24B1BB
deleted file mode 100644
index 6b4bd79..0000000
--- a/.Rproj.user/441ADA46/sources/per/t/2F24B1BB
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1547919267165.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "2227939390",
-    "id" : "2F24B1BB",
-    "lastKnownWriteTime" : 1547934159,
-    "last_content_update" : 1547934159,
-    "path" : "~/Documents/GitHub/posterdown/DESCRIPTION",
-    "project_path" : "DESCRIPTION",
-    "properties" : {
-        "cursorPosition" : "17,20",
-        "scrollLine" : "0"
-    },
-    "relative_order" : 2,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "dcf"
-}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/per/t/2F24B1BB-contents b/.Rproj.user/441ADA46/sources/per/t/2F24B1BB-contents
deleted file mode 100644
index 5bf0181..0000000
--- a/.Rproj.user/441ADA46/sources/per/t/2F24B1BB-contents
+++ /dev/null
@@ -1,22 +0,0 @@
-Package: posterdown
-Title: Generates PDF conference posters using R Markdown.
-Version: 0.1.1
-Author: Brent Thorne
-Description: Posterdown expands on RMarkdown to generate PDF conference posters.
-Authors@R: c(
-    person("Brent", "Thorne",
-           email = "brent.thorne18@gmail.com", 
-           role = c("aut", "cre"), 
-           comment = c(ORCID = "0000-0002-1099-3857")
-    ),
-    person("Peter", "Higgins", role = "ctb")
-  )
-Maintainer: Brent Thorne <brent.thorne18@gmail.com>
-License: MIT + file LICENSE
-Encoding: UTF-8
-LazyData: true
-URL: https://github.com/brentthorne/posterdown
-BugReports: https://github.com/brentthorne/posterdown/issues
-Imports: rmarkdown, knitr, yaml, tinytex, ggplot2, rticles, kableExtra, Cairo
-SystemRequirements: GNU make
-RoxygenNote: 6.1.1
diff --git a/.Rproj.user/441ADA46/sources/per/t/815ADF03 b/.Rproj.user/441ADA46/sources/per/t/815ADF03
deleted file mode 100644
index ba254fc..0000000
--- a/.Rproj.user/441ADA46/sources/per/t/815ADF03
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1547924094518.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "83736655",
-    "id" : "815ADF03",
-    "lastKnownWriteTime" : 1547924098,
-    "last_content_update" : 1547924098455,
-    "path" : "~/Documents/GitHub/posterdown/README.md",
-    "project_path" : "README.md",
-    "properties" : {
-        "cursorPosition" : "134,0",
-        "scrollLine" : "0"
-    },
-    "relative_order" : 2,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "markdown"
-}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/per/t/815ADF03-contents b/.Rproj.user/441ADA46/sources/per/t/815ADF03-contents
deleted file mode 100644
index dcf2122..0000000
--- a/.Rproj.user/441ADA46/sources/per/t/815ADF03-contents
+++ /dev/null
@@ -1,134 +0,0 @@
-# posterdown
-
-<img src="posterdown_hexlogo1.png" alt="poster logo" align="right" width = "25%" height="25%"/>
-
-As a graduate student, I found that it is almost a rite of passage to take early research and analysis and generate a conference poster allowing for critical feedback, as well as meeting the people in your field. I have also noticed that many of my fellow graduate students use R and are also getting their feet wet with RMarkdown :blush:; however, we always had to go back to using MS Powerpoint or Keynote or Adobe Illustrator for generating conference posters :unamused:. Posterdown was created as a proof-of-concept (to myself) that it is possible to make a beautiful poster using open source reproducible code.
-
-From this:
-
-<img src="code_pic.png" width="50%" height="50%">
-
-To this:
-
-<img src="example_poster.png" width="50%" height="50%">
-
-
-Please feel free to give me feedback or requests for changes in the [issues](https://github.com/brentthorne/posterdown/issues) page. I am currently finishing up my Master's degree so I will have limited time to work on updating this package in the next few months but nevertheless I will do what I can! :smile: 
-
-## Installation
-
-You can install and use **posterdown** from github using the `devtools` package as seen below.
-
-```r
-
-devtools::install_github("brentthorne/posterdown")
-
-```
-
-### Instructions if you have never used RMarkdown
-
-1. Install `devtools` package
-
-    ```r
-    install.packages("devtools")
-    ```
-
-2. Install `posterdown` from github repo
-
-    ```r
-    devtools::install_github("brentthorne/posterdown")
-    ```
-
-3. Install `tinytex`Latex libraries:
-
-    ```r
-    tinytex::install_tinytex()
-    ```
-
-    _**NOTE** This will take some time to load the LaTex Packages but is the best option (in my opinion) for keeping your Latex library as small as possible. After the first download of these libraries you will not need to do this again. To confirm that Tinytex is properly installed use: `tinytex:::is_tinytex()` and you should get a value of `TRUE` in the console._
-    
-    _**NOTE** If you have conflicting versions of Latex (i.e. tinytex and MacTex), you could have problems rendering your poster. You may need to uninstall all versions, then start over by installing posterdown and tinytex from scratch._ 
-
-## Overview
-
-The **posterdown** package provides a familiar workflow for those used to working in [RMarkdown](https://rmarkdown.rstudio.com/). This package is currently focused on a single template called **posterdown_pdf** which is by default a 38in (H) x 45in (W) poster template but does allow for custom sizing, section headers, and colour options.
-
-## Using posterdown from RStudio
-
-To use **posterdown** from RStudio:
-
-1. Install the latest [RStudio](http://www.rstudio.com/products/rstudio/download/).
-
-2. Install the **posterdown** package: 
-
-    ```r    
-    devtools::install_github("brentthorne/posterdown")
-    ```
-    
-3. Use the **New R Markdown** dialog to create a conference poster from the templates
-
-    ![New R Markdown](posterdown_picture.png)
-
-    _**NOTE** If you do not see the **posterdown** template in this dialogue box try to restart the R session or close and re-open RStudio._
-
-## Customization
-
-Posterdown uses Latex to generate the PDF poster but more specifically it uses the [Memoir Latex](http://texdoc.net/texmf-dist/doc/latex/memoir/memman.pdf) class. Memoir was chosen for its flexibility in page sizing as well as thorough documentation. I am fairly new to the world of Latex, and found this class to have a reasonable amount of customization available, at least for my skill level. If there are any users who think there may be better options for down the road I am more than willing to listen! 
-
-### YAML Options
-
-YAML header options have been created to provide more freedom in design (i.e. colours, number of columns, and sizing) to fit a wide variety of requirements. Here are the default YAML options found in the `.Rmd` file:
-
-|     Option    | Description |
-|---------------|-------------|
-| `title` | Poster title, acts as you would expect from RMarkdown. You can add line breaks in your title with \\break. |
-| `author` | List of authors which (as of now) only has true support for a single author, however I have provided a hacky way to have many authors until I can find the time to figure out how to implement something like the [rticles](https://github.com/rstudio/rticles/blob/master/inst/rmarkdown/templates/mdpi_article/skeleton/skeleton.Rmd) packages does|
-| `affiliation` | Author affiliations, which just as the `author` section is currently a hacky version of what I would ultimately like to produce. |
-| `font_size` | Represents the value for `\normaltextsize` in latex. All other font sizes are adjusted from this baseline. For example, the title in the skeleton document is given the Latex command `\Huge`, meaning that the title text will be "huge" relative to the `font_size` chosen. See [Here](https://www.overleaf.com/learn/latex/Font_sizes,_families,_and_styles) for a useful resource for a better understanding of the Latex text sizing options.|
-| `font_family` | Selects the font family to be used on the poster. In the future I will try to implement multiple font families for various components of the poster (such as different fonts for the title versus the main body text).  For now, only standard Latex fonts are available, see [here](https://www.overleaf.com/learn/latex/Font_typefaces) for a list of possible options.|
-| `title_bgcol` | The background colour for the title section of the poster (currently using hex values to define this colour) |
-| `poster_bgcol`| Background colour of the poster's main body section. |
-| `title_textcol` | Colour of the main title text. |
-| `header_textcol` | Colour of the Section Header Text. |
-| `cite_col` | Colour of the citation link elements when using `biblatex`. |
-| `url_col` | Colour of URL links specifically |
-| `link_col` | Colour of in-document links (example would be referencing a Figure or a Table) |
-| `columnline_col` | Colour of the line which divides each column in the poster |
-| `poster_height` | Height of the final poster output. Units can be: "in", "mm", "cm" |
-| `poster_width` | Width of the final poster output. Units can be: "in", "mm", "cm" |
-| `column_numbers` | Number of columns you wish for the poster to have in the main section of the poster. |
-| `bibliography` | Name of the `.bib`. file which you are using to source material. As of right now only `biblatex` is working but I intend to add support of `natbib` which is my preference.
-| `output` | For generating `posterdown_pdf`, in the future other poster designs or templates may be made for this package and thus this option in the YAML will be more flexible. For now this is the only option. |
-
-### Markdown Customization
-
-As you add content to your RMarkdown file, you will notice that the output pdf will fill in columns from left to right, and from top to bottom within columns. If you have more content for your poster than space is available on the default poster, it will spill onto a second page. If this occurs, you can try adding more columns and decreasing the font size (both in the YAML header) to make it work. Or, of course, edit the content to make it shorter. :smile:
-
-## Using posterdown outside of RStudio
-
-1. Install [pandoc](http://pandoc.org) using the [instructions for your platform](https://github.com/rstudio/rmarkdown/blob/master/PANDOC.md).
-
-2. Install the **rmarkdown** and **posterdown** packages:
-
-    ```r
-    devtools::install_github("brentthorne/posterdown")
-    ```
-
-3. Use the `rmarkdown::draft()` function to create articles:
-
-    ```r
-    rmarkdown::draft("MyPoster.Rmd", template = "posterdown_pdf", package = "posterdown")
-    ```
-    
-## To Do List (When Not Writing my Master's Thesis)
-
-- [x] ~~Support for changing the size of the poster~~
-- [ ] Support for Natbib
-- [ ] Support for nbib from PubMed
-- [ ] Support for logo placement in the title bar section of poster
-- [ ] Gradient colour options
-- [ ] True YAML multi-author/ multi-affiliation support
-- [ ] Toggle citation section on/off as per user's choice
-- [ ] Make colour options standardized (probably hex colours if possible)
-- [ ] Allow users to choose colour options from a palette??
-- [ ] Fill/style Section headings if user wishes
diff --git a/.Rproj.user/441ADA46/sources/per/t/CE1C4972 b/.Rproj.user/441ADA46/sources/per/t/CE1C4972
deleted file mode 100644
index 4254c7c..0000000
--- a/.Rproj.user/441ADA46/sources/per/t/CE1C4972
+++ /dev/null
@@ -1,22 +0,0 @@
-{
-    "collab_server" : "",
-    "contents" : "",
-    "created" : 1547934272425.000,
-    "dirty" : false,
-    "encoding" : "UTF-8",
-    "folds" : "",
-    "hash" : "1644768190",
-    "id" : "CE1C4972",
-    "lastKnownWriteTime" : 1547934305,
-    "last_content_update" : 1547934305964,
-    "path" : "~/Documents/GitHub/posterdown/inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd",
-    "project_path" : "inst/rmarkdown/templates/posterdown_pdf/skeleton/skeleton.Rmd",
-    "properties" : {
-        "cursorPosition" : "99,77",
-        "scrollLine" : "96"
-    },
-    "relative_order" : 3,
-    "source_on_save" : false,
-    "source_window" : "",
-    "type" : "r_markdown"
-}
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/per/t/CE1C4972-contents b/.Rproj.user/441ADA46/sources/per/t/CE1C4972-contents
deleted file mode 100644
index b035b15..0000000
--- a/.Rproj.user/441ADA46/sources/per/t/CE1C4972-contents
+++ /dev/null
@@ -1,168 +0,0 @@
----
-#----ESSENTIALS----#
-title: '\fontfamily{phv}\selectfont 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: "palatino" # choose from typical latex fonts (example: "palatino")
-
-#----COLOURS----#
-
-#Background/ Line Colours
-title_bgcol: "0b4545"  #Hex colour for background of poster title section (default is blue)
-poster_bgcol: "ffffff" #colour of the poster main background
-cite_col: "CC0000" #colour of ciation elements
-url_col: "008080" #colour of url links
-link_col: "008080" #colour of other links within the poster
-columnline_col: "0b4545" #colour 
-header_bgcol: "008080"
-
-#Text Colours
-title_textcol: "ffffff" #colour of title text
-author_textcol: "008080" # Colour of author text
-affiliation_textcol: "FFFFFF" # Colour of affiliation text
-body_textcol: "000000" # Colour of main text in the body of poster
-header_textcol: "CC0000" # Colour of the poster header titles
-footnote_textcol: "FFFFFF" # Colour of footnote text if used
-
-#----POSTER SIZE & COLUMN FORMATTING----#
-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
-column_margins: "10mm" # Margin spacing for columns
-
-#----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.
-
-```{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 = c("striped","HOLD_position"),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 as well as remove the "References" section if you choose not to have one for some reason :) -->
-\small\printbibliography
-
-
diff --git a/.Rproj.user/441ADA46/sources/prop/60EAAA4E b/.Rproj.user/441ADA46/sources/prop/60EAAA4E
index cd6cc3c..c69d76f 100644
--- a/.Rproj.user/441ADA46/sources/prop/60EAAA4E
+++ b/.Rproj.user/441ADA46/sources/prop/60EAAA4E
@@ -1,4 +1,4 @@
 {
     "cursorPosition" : "99,77",
-    "scrollLine" : "96"
+    "scrollLine" : "0"
 }
\ No newline at end of file
diff --git a/.Rproj.user/441ADA46/sources/prop/INDEX b/.Rproj.user/441ADA46/sources/prop/INDEX
index 8c60c41..db5b628 100644
--- a/.Rproj.user/441ADA46/sources/prop/INDEX
+++ b/.Rproj.user/441ADA46/sources/prop/INDEX
@@ -1,4 +1,5 @@
 ~%2FDocuments%2FGitHub%2FThesis%2FCarbon%2FCarbon.Rmd="50D2217A"
+~%2FDocuments%2FGitHub%2Fposterdown%2F.gitignore="A9477CA1"
 ~%2FDocuments%2FGitHub%2Fposterdown%2F.travis.yml="F60D855F"
 ~%2FDocuments%2FGitHub%2Fposterdown%2FDESCRIPTION="AE6C9F23"
 ~%2FDocuments%2FGitHub%2Fposterdown%2FNAMESPACE="FB6BF66"
