class: center, middle, inverse, title-slide # Drafting and Publishing Reproducible Scientific Articles with R Markdown ##
### Julia Schulte-Cloos
03 March 2021
###
https://jschultecloos.github.io/reproducr
<div
julia.schulte-cloos@gsi.lmu.de
|
jschultecloos
|
@jschultecloos
--- layout: true <div class="my-header"></div> --- name: content class: spaced, inverse, middle # Contents ### 1) [What makes computational reproducibility still so hard in practice?](#obstacles) ### 2) [An integrated document from draft to submission](#integratedrmd) ### 3) [Explore the data, exploit interactivity](#explore) ### 4) [Circulate, share, and submit your manuscript any time](#manuscript) ### 5) [Future plans and suggestions](#future) --- name: obstacles class: inverse, middle # What makes computational reproducibility still so hard in practice? --- name: defaultrmd ## LaTeX and RMarkdown > ### We do not ask for nothing more than a manuscript... <img src="figs/standard-latex-example.PNG" width="50%" style="display: block; margin: auto;" /> --- ## LaTeX and RMarkdown > ### ...simple like this .scroll-box-20[ ```r \documentclass[11pt, DIV=11]{scrartcl} \usepackage{authblk} \usepackage{mathptmx} \usepackage{booktabs} \usepackage{graphicx} \usepackage{multicol} \usepackage{float} \usepackage{scrlayer-scrpage} \usepackage{setspace} \usepackage[backend=biber, style=apa, doi=false, isbn=false, url=false, uniquename=false, useprefix=true]{biblatex} \usepackage{subcaption} \usepackage{xpatch} \usepackage{longtable} \usepackage{pdflscape} \usepackage{enumitem} \usepackage{fontspec} \usepackage{libertine} \usepackage{hyperref} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{document} \singlespacing \title{\vspace{2ex} ReproducR - Drafting and publishing reproducible scientific articles with R Markdown.} \author{Julia Schulte-Cloos\thanks{Geschwister Scholl Institute of Political Science, LMU Munich, julia.schulte@lmu.de}} \vspace{-4ex} \maketitle \thispagestyle{empty} \vfill \clearscrheadings \renewcommand*{\headfont}{\normalfont\sffamily\footnotesize} \cfoot{\vspace{-2ex} \pagemark} \makeatletter \let\ps@plain\ps@scrheadings \makeatother \begin{abstract} \singlespacing \begin{center} \textbf{Abstract} \end{center} \noindent As demands for computational reproducibility in science are increasing, tools for literate programming are becoming ever more relevant. R Markdown offers a framework to generate reproducible research in various output formats. I present a new package, `reproducr`, that allows users without any prior knowledge of R Markdown to implement reproducible research practices in their scientific workflows. The `reproducr` package offers an integrated-file solution that guides researchers from draft to final paper submission. While in the stage of explorative analysis and when focusing on content only, researchers may rely on the ‘draft mode’ of the `reproducr` package that knits to HTML and allows them to interactively explore their data. When in the stage of research dissemination and when focusing on the presentation of results, in contrast, researchers may rely on the ‘manuscript mode’ that knits to PDF and allows them to circulate a publication-ready version of their working paper or submit it (blinded) for review. \end{abstract} \pagebreak \pagestyle{scrheadings} \onehalfspacing \end{document} ``` ] --- ## LaTeX and RMarkdown > ### And what we get is... <img src="figs/standard-rmd-example.PNG" width="50%" style="display: block; margin: auto;" /> --- ## LaTeX and RMarkdown > ### ...complicated like this .scroll-box-20[ ```r % Options for packages loaded elsewhere \PassOptionsToPackage{unicode}{hyperref} \PassOptionsToPackage{hyphens}{url} % \documentclass[ ]{article} \usepackage{amsmath,amssymb} \usepackage{lmodern} \usepackage{ifxetex,ifluatex} \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage{textcomp} % provide euro and other symbols \else % if luatex or xetex \usepackage{unicode-math} \defaultfontfeatures{Scale=MatchLowercase} \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1} \fi % Use upquote if available, for straight quotes in verbatim environments \IfFileExists{upquote.sty}{\usepackage{upquote}}{} \IfFileExists{microtype.sty}{% use microtype if available \usepackage[]{microtype} \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts }{} \makeatletter \@ifundefined{KOMAClassName}{% if non-KOMA class \IfFileExists{parskip.sty}{% \usepackage{parskip} }{% else \setlength{\parindent}{0pt} \setlength{\parskip}{6pt plus 2pt minus 1pt}} }{% if KOMA class \KOMAoptions{parskip=half}} \makeatother \usepackage{xcolor} \IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available \IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}} \hypersetup{ pdftitle={ReproducR - Drafting and publishing reproducible scientific articles with R Markdown}, pdfauthor={Julia Schulte-Cloos}, hidelinks, pdfcreator={LaTeX via pandoc}} \urlstyle{same} % disable monospaced font for URLs \usepackage[margin=1in]{geometry} \usepackage{color} \usepackage{fancyvrb} \newcommand{\VerbBar}{|} \newcommand{\VERB}{\Verb[commandchars=\\\{\}]} \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} % Add ',fontsize=\small' for more characters per line \usepackage{framed} \definecolor{shadecolor}{RGB}{248,248,248} \newenvironment{Shaded}{\begin{snugshade}}{\end{snugshade}} \newcommand{\AlertTok}[1]{\textcolor[rgb]{0.94,0.16,0.16}{#1}} \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.77,0.63,0.00}{#1}} \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}} \newcommand{\BuiltInTok}[1]{#1} \newcommand{\CharTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}} \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}} \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{#1}} \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}} \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} \newcommand{\ErrorTok}[1]{\textcolor[rgb]{0.64,0.00,0.00}{\textbf{#1}}} \newcommand{\ExtensionTok}[1]{#1} \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.00,0.00,0.81}{#1}} \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} \newcommand{\ImportTok}[1]{#1} \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.13,0.29,0.53}{\textbf{#1}}} \newcommand{\NormalTok}[1]{#1} \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.81,0.36,0.00}{\textbf{#1}}} \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{#1}} \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textit{#1}}} \newcommand{\RegionMarkerTok}[1]{#1} \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\StringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.00,0.00,0.00}{#1}} \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.31,0.60,0.02}{#1}} \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.56,0.35,0.01}{\textbf{\textit{#1}}}} \usepackage{graphicx} \makeatletter \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} \makeatother % Scale images if necessary, so that they will not overflow the page % margins by default, and it is still possible to overwrite the defaults % using explicit options in \includegraphics[width, height, ...]{} \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} % Set default figure placement to htbp \makeatletter \def\fps@figure{htbp} \makeatother \setlength{\emergencystretch}{3em} % prevent overfull lines \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \setcounter{secnumdepth}{-\maxdimen} % remove section numbering \ifluatex \usepackage{selnolig} % disable illegal ligatures \fi \title{ReproducR - Drafting and publishing reproducible scientific articles with R Markdown} \author{Julia Schulte-Cloos} \date{03 3 2021} \begin{document} \maketitle \begin{abstract} As demands for computational reproducibility in science are increasing, tools for literate programming are becoming ever more relevant. R Markdown offers a framework to generate reproducible research in various output formats. I present a new package, \texttt{reproducr}, that allows users without any prior knowledge of R Markdown to implement reproducible research practices in their scientific workflows. The \texttt{reproducr} package offers an integrated-file solution that guides researchers from draft to final paper submission. While in the stage of explorative analysis and when focusing on content only, researchers may rely on the `draft mode' of the \texttt{reproducr} package that knits to HTML and allows them to interactively explore their data. When in the stage of research dissemination and when focusing on the presentation of results, in contrast, researchers may rely on the `manuscript mode' that knits to PDF and allows them to circulate a publication-ready version of their working paper or submit it (blinded) for review. \end{abstract} \pagebreak \end{document} ``` ] --- name: customyaml ## But we could customize the YAML header? > ### ...at least a bit..? -- .scroll-box-20[ ```r --- output: pdf_document: latex_engine: xelatex header-includes: - | ```{=latex} \usepackage{microtype} \usepackage{fontspec} \setmainfont{Times.otf}[ BoldFont = TimesBold.otf] \usepackage{ragged2e} \renewcommand{\footnotesize}{\scriptsize \justify} \usepackage{setspace} \usepackage{xcolor} \definecolor{very-light-gray}{gray}{0.95} \pagenumbering{gobble} \makeatletter \def\MT@is@composite#1#2\relax{% \ifx\\#2\\\else \expandafter\def\expandafter\MT@char\expandafter{\csname\expandafter \string\csname\MT@encoding\endcsname \MT@detokenize@n{#1}-\MT@detokenize@n{#2}\endcsname}% % 3 lines added: \ifx\UnicodeEncodingName\@undefined\else \expandafter\expandafter\expandafter\MT@is@uni@comp\MT@char\iffontchar\else\fi\relax \fi \expandafter\expandafter\expandafter\MT@is@letter\MT@char\relax\relax \ifnum\MT@char@ < \z@ \ifMT@xunicode \edef\MT@char{\MT@exp@two@c\MT@strip@prefix\meaning\MT@char>\relax}% \expandafter\MT@exp@two@c\expandafter\MT@is@charx\expandafter \MT@char\MT@charxstring\relax\relax\relax\relax\relax \fi \fi \fi } % new: \def\MT@is@uni@comp#1\iffontchar#2\else#3\fi\relax{% \ifx\\#2\\\else\edef\MT@char{\iffontchar#2\fi}\fi } \makeatother --- ``` ] [https://tex.stackexchange.com/questions/559727/issue-with-latex-code-in-header-includes-in-r-markdown-file-after-r-and-rstudi] --- name: packagenottemplate ## Template vs. output format > ### The `reproducr` package does not present [yet another](http://svmiller.com/blog/2020/09/another-rmarkdown-article-template/) [custom](https://github.com/juba/rmdformats) [`.Rmd` template](https://github.com/rstudio/rticles). -- .scroll-box-20[ ```r \documentclass[$if(fontsize)$$fontsize$,$endif$$if(lang)$$babel-lang$,$endif$$if(papersize)$$papersize$,$endif$$for(classoption)$$classoption$$sep$,$endfor$]{article} \usepackage[left=1in,top=1in,right=1in,bottom=1in]{geometry} \newcommand*{\authorfont}{\fontfamily{phv}\selectfont} $if(fontfamily)$ \usepackage[$fontfamilyoptions$]{$fontfamily$} $else$ \usepackage{lmodern} $endif$ \usepackage[$if(fontenc)$$fontenc$$else$T1$endif$]{fontenc} \usepackage[utf8]{inputenc} \usepackage{abstract} \renewcommand{\abstractname}{} % clear the title \renewcommand{\absnamepos}{empty} % originally center \renewenvironment{abstract} {{% \setlength{\leftmargin}{0mm} \setlength{\rightmargin}{\leftmargin}% }% \relax} {\endlist} \makeatletter \def\@maketitle{% \newpage % \null % \vskip 2em% % \begin{center}% \let \footnote \thanks {\fontsize{18}{20}\selectfont\raggedright \setlength{\parindent}{0pt} \@title \par}% } %\fi \makeatother $if(appendix)$ \renewcommand*\thetable{$appendixletter$.\arabic{table}} \renewcommand*\thefigure{$appendixletter$.\arabic{figure}} $endif$ \setcounter{secnumdepth}{0} $if(listings)$ \usepackage{listings} $endif$ $if(lhs)$ \lstnewenvironment{code}{\lstset{language=r,basicstyle=\small\ttfamily}}{} $endif$ $if(highlighting-macros)$ $highlighting-macros$ $endif$ $if(verbatim-in-note)$ \usepackage{fancyvrb} $endif$ $if(tables)$ \usepackage{longtable,booktabs} $endif$ $if(graphics)$ \usepackage{graphicx,grffile} \makeatletter \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth\else\Gin@nat@width\fi} \def\maxheight{\ifdim\Gin@nat@height>\textheight\textheight\else\Gin@nat@height\fi} \makeatother % Scale images if necessary, so that they will not overflow the page % margins by default, and it is still possible to overwrite the defaults % using explicit options in \includegraphics[width, height, ...]{} \setkeys{Gin}{width=\maxwidth,height=\maxheight,keepaspectratio} $endif$ $if(title)$ \title{$title$$if(subtitle)$: $subtitle$$endif$ $if(anonymous)$$else$$if(thanks)$\thanks{$thanks$} $endif$$endif$ } $endif$ $if(anonymous)$$else$\author{$for(author)$\Large $author.name$\vspace{0.05in} \newline\normalsize\emph{$author.affiliation$} $sep$ \and $endfor$}$endif$ \date{} \usepackage{titlesec} \titleformat*{\section}{\normalsize\bfseries} \titleformat*{\subsection}{\normalsize\itshape} \titleformat*{\subsubsection}{\normalsize\itshape} \titleformat*{\paragraph}{\normalsize\itshape} \titleformat*{\subparagraph}{\normalsize\itshape} $if(natbib)$ \usepackage{natbib} \bibliographystyle{$if(biblio-style)$$biblio-style$$else$plainnat$endif$} \usepackage[strings]{underscore} % protect underscores in most circumstances $endif$ $if(biblatex)$ \usepackage$if(biblio-style)$[style=$biblio-style$]$endif${biblatex} $if(biblatexoptions)$\ExecuteBibliographyOptions{$for(biblatexoptions)$$biblatexoptions$$sep$,$endfor$}$endif$ $for(bibliography)$ \addbibresource{$bibliography$} $endfor$ $endif$ $if(listings)$ \usepackage{listings} $endif$ \newtheorem{hypothesis}{Hypothesis} \usepackage{setspace} % set default figure placement to htbp \makeatletter \def\fps@figure{htbp} \makeatother $for(header-includes)$ $header-includes$ $endfor$ % move the hyperref stuff down here, after header-includes, to allow for - \usepackage{hyperref} \makeatletter \@ifpackageloaded{hyperref}{}{% \ifxetex \PassOptionsToPackage{hyphens}{url}\usepackage[setpagesize=false, % page size defined by xetex unicode=false, % unicode breaks when used with xetex xetex]{hyperref} \else \PassOptionsToPackage{hyphens}{url}\usepackage[draft,unicode=true]{hyperref} \fi } \@ifpackageloaded{color}{ \PassOptionsToPackage{usenames,dvipsnames}{color} }{% \usepackage[usenames,dvipsnames]{color} } \makeatother \hypersetup{breaklinks=true, bookmarks=true, pdfauthor={$if(anonymous)$$else$$for(author)$$author.name$ ($author.affiliation$)$sep$ and $endfor$$endif$}, pdfkeywords = {$if(keywords)$$keywords$$endif$}, pdftitle={$title$$if(subtitle)$: $subtitle$$endif$}, colorlinks=true, citecolor=$if(citecolor)$$citecolor$$else$blue$endif$, urlcolor=$if(urlcolor)$$urlcolor$$else$blue$endif$, linkcolor=$if(linkcolor)$$linkcolor$$else$magenta$endif$, pdfborder={0 0 0}} \urlstyle{same} % don't use monospace font for urls % Add an option for endnotes. ----- $if(endnotes)$ \usepackage{endnotes} \renewcommand{\enotesize}{\normalsize} \let\footnote=\endnote $endif$ % add tightlist ---------- \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} % add some other packages ---------- % \usepackage{multicol} % This should regulate where figures float % See: https://tex.stackexchange.com/questions/2275/keeping-tables-figures-close-to-where-they-are-mentioned \usepackage[section]{placeins} % CSL environment change ----- $if(csl-refs)$ \newlength{\cslhangindent} \setlength{\cslhangindent}{1.5em} \newlength{\csllabelwidth} \setlength{\csllabelwidth}{3em} \newenvironment{CSLReferences}[2] % #1 hanging-ident, #2 entry spacing {% don't indent paragraphs \setlength{\parindent}{0pt} % turn on hanging indent if param 1 is 1 \ifodd #1 \everypar{\setlength{\hangindent}{\cslhangindent}}\ignorespaces\fi % set entry spacing \ifnum #2 > 0 \setlength{\parskip}{#2\baselineskip} \fi }% {} \usepackage{calc} \newcommand{\CSLBlock}[1]{#1\hfill\break} \newcommand{\CSLLeftMargin}[1]{\parbox[t]{\csllabelwidth}{#1}} \newcommand{\CSLRightInline}[1]{\parbox[t]{\linewidth - \csllabelwidth}{#1}\break} \newcommand{\CSLIndent}[1]{\hspace{\cslhangindent}#1} $endif$ $if(csquotes)$ \usepackage{csquotes} $endif$ \begin{document} % \pagenumbering{arabic}% resets `page` counter to 1 %$if(appendix)$ %\renewcommand*{\thepage}{$appendixletter$--\arabic{page}} %$endif$ $if(removetitleabstract)$ $else$ $if(title)$ % \maketitle {% \usefont{T1}{pnc}{m}{n} \setlength{\parindent}{0pt} \thispagestyle{plain} {\fontsize{18}{20}\selectfont\raggedright \maketitle % title \par } { \vskip 13.5pt\relax \normalsize\fontsize{11}{12} $if(anonymous)$\hfill $else$$for(author)$\textbf{\authorfont $author.name$} \hskip 15pt \emph{\small $author.affiliation$} $sep$ \par $endfor$ $endif$ } } $endif$ $if(abstract)$ \begin{abstract} \hbox{\vrule height .2pt width 39.14pc} \vskip 8.5pt % \small \noindent $abstract$ $if(keywords)$ \vskip 8.5pt \noindent \emph{Keywords}: $keywords$ \par \hbox{\vrule height .2pt width 39.14pc} $else$ \hbox{\vrule height .2pt width 39.14pc} $endif$ \end{abstract} $endif$ \vskip -8.5pt $if(toc)$ { \hypersetup{linkcolor=black} \setcounter{tocdepth}{$toc-depth$} \tableofcontents } $endif$ $endif$ % removetitleabstract \noindent $if(anonymous)$\doublespacing$else$$if(spacing)$\$spacing$spacing$endif$$endif$ $if(twocol)$ \begin{multicols}{2}$endif$ $body$ $if(twocol)$ \end{multicols}$endif$ $if(endnotes)$ \newpage \theendnotes $endif$ \newpage \singlespacing $if(natbib)$ $if(bibliography)$ $if(biblio-title)$ $if(book-class)$ \renewcommand\bibname{$biblio-title$} $else$ \renewcommand\refname{$biblio-title$} $endif$ $endif$ \bibliography{$for(bibliography)$$bibliography$$sep$,$endfor$} $endif$ $endif$ $if(biblatex)$ \printbibliography$if(biblio-title)$[title=$biblio-title$]$endif$ $endif$ $for(include-after)$ $include-after$ $endfor$ \end{document} ``` ] [https://raw.githubusercontent.com/svmiller/stevetemplates/master/inst/rmarkdown/templates/article/resources/template.tex] --- name: pandocdefault ## Template vs. output format > ### The default LaTeX pandoc template is subject to changes and continuos integration into Pandoc -- <img src="figs/history-git-pandoc-latex.PNG" width="80%" style="display: block; margin: auto;" /> --- name: singlermd class: middle, inverse # An integrated document from draft to submission --- name: allstages ## Reproducible research in all stages of the scientific workflow > ### The `reproducr` package offers extended functionality for scholarly writing - integrate **scholarly information** about authors, their (multiple) affiliations, their contributions, and corresponding author in title page of your manuscript -- - **blind your manuscript** before submitting it for review -- <img src="figs/titlepage-blinded.PNG" width="70%" style="display: block; margin: auto;" /> --- name: allstages ## Reproducible research in all stages of the scientific workflow - include two **separate bibliographies** for main article and appendix -- - generate documents that contain a date stamp in their file name while keeping a clean `.Rmd` for tracking changes with version control -- - harmonise fonts in your graphs with fonts used in respective output format -- - create high-resolution graphs -- <img src="figs/integratedfonts.PNG" width="50%" style="display: block; margin: auto;" /> -- - include your code with code-folding for HTML output and hide all of your code in PDF output --- name: outputformat ## `reproducr` features two output formats 1) `reproducr::reproducr_manuscript` 2) `reproducr::reproducr_draft` ```yaml --- output: reproducr::reproducr_manuscript: blinded: false reproducr::reproducr_draft --- ``` -- - compile your document to a manuscript (PDF) by calling `rmarkdown::render("reproducr-file.Rmd", "reproducr::reproducr_manuscript")` -- - compile your document to a draft (HTML) by calling `rmarkdown::render("reproducr-file.Rmd", "reproducr::reproducr_draft")`. -- - **OR**: click on the 'Knit' button (R Markdown will compile your document to the *first* output format that you specify in the `YAML` header) --- name: conditionalexclusion ## Flexible output formats > ### `reproducr` offers full flexibility to knit your document to a polished and well-formatted HTML with all your explorative analysis and dynamic research output or to a polished and submission-ready PDF manuscript with all your scholarly information or blinded for review. -- - ❓ **But how to tell RMarkdown which parts are explorative or drafty and which parts are meant to be in the final manuscript?** -- - `not-in-format` DIV: wrap the parts of the paper that are exclusive to one output format in three colons `::: {.not-in-format .latex}` closed by three more colons `:::` -- - Respective part of the document wrapped in the `not-in-format` `div` structure will not be included in LaTeX output. -- - **Conditional code evaluation**: `eval=knitr::is_html_output()`. -- <img src="figs/not-in-format-text-code.PNG" width="70%" style="display: block; margin: auto;" /> --- name: practical class: inverse, middle # Hands on --- name: template ## Get started with `reproducr` > ### For this workshop, let's make use of the package template that features enough examples -- > ### **In R Studio**: File > New File > R Markdown... > From Template > reproducr <img src="figs/rmarkdown-new-file-template.PNG" width="50%" style="display: block; margin: auto;" /> --- name: explore class: inverse, middle # Explore the data, exploit interactivity --- name: explore class: inverse, middle # Explore the data, exploit interactivity ### ↪️ [https://jschultecloos.github.io/reproducr/articles/reproducr.html#explorative-stage-1](https://jschultecloos.github.io/reproducr/articles/reproducr.html#explorative-stage-1) --- name: manuscript class: inverse, middle # Circulate, share, and submit your manuscript any time --- name: manuscript class: inverse, middle # Circulate, share, and submit your manuscript any time ### ↪️ [https://jschultecloos.github.io/reproducr/articles/reproducr.html#dissemination-stage-1](https://jschultecloos.github.io/reproducr/articles/reproducr.html#dissemination-stage-1) --- name: future class: inverse, middle # Future plans and suggestions --- name: future class: inverse, middle # Future plans and suggestions ### ❓ Questions ❓ -- ### 🤓 Suggestions 🤓 -- ### 🚀 Future Plans 🚀