Partiamo
Per iniziare il piccolo tour mostro lo stesso codice scritto in tre formati diversi, tutti strettamente in formato testo, e il risultato in formato pdf.
Rmarkdown (.Rmd) ¶
---
title: "Esempio minimo
date: \today
lang: it
output:
pdf_document:
latex_engine: xelatex
keep_tex: true
tables: true
---
This is a minimal example of using **knitr** to produce an *HTML* or *PDF* page from *Markdown*.
## R code chunks
```{r setup}
# set global chunk options: images will be 7x5 inches
library(knitr)
library(kableExtra)
knitr::opts_chunk$set(fig.width=7, fig.height=5, results = 'markup')
options(digits = 4)
```
Now we write some code chunks in this markdown file:
```{r, 'computing'}
(x <- 1+1) # a simple calculator
set.seed(123)
rnorm(5) # boring random numbers
```
R ¶
Questo è fondamentalmente come il prcedente. Da notare
- il testo è preceduto da
#'
- i chunck di codice da
#+ label-del-chunck
#' ---
#' title: "Esempio minimo"
#' date: \today
#' lang: it
#' output:
#' pdf_document:
#' latex_engine: xelatex
#' keep_tex: true
#' tables: true
#'---
#'
#' This is a minimal example of using **knitr** to produce an *HTML* or *PDF* page from *Markdown*.
#'
# ## R code chunks
#'
#+ setup
library(knitr)
library(kableExtra)
knitr::opts_chunk$set(fig.width=7, fig.height=5, results = 'markup')
options(digits = 4)
#'
#'
#' Now we write some code chunks in this markdown file:
#'
#+ computing
x <- 1+1 # a simple calculator
set.seed(123)
rnorm(5) # boring random numbers
Rnoweb (.Rnw) ¶
Questo è molto più latexiano come approccio.
% !TeX program = xelatex
% !Rnw weave = knitr
\documentclass{scrartcl}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{italian}
\setotherlanguage{english}
%\usepackage{mathpazo}
%\usepackage{palatino}
\setmainfont{Optima-Regular}
%\usepackage[sc]{mathpazo}
\usepackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{2}
\usepackage{booktabs}
%\usepackage{longtable}
\usepackage{url}
% fissa la posizione dell'immagine
\usepackage{float}
\let\origfigure=\figure
\let\endorigfigure=\endfigure
\renewenvironment{figure}[1][]{%
\origfigure[H]
}{%
\endorigfigure
}
\usepackage{multicol}
\usepackage{booktabs}
\usepackage{varioref}
\usepackage{tabularx}
\usepackage{multirow}
\usepackage{siunitx}
\usepackage{graphicx}
\usepackage{xcolor}
\usepackage{textcomp}
\usepackage[autostyle,italian=guillemets]{csquotes}
\usepackage[hyperref=true, style=nejm, language=auto, backend=biber, url=false, isbn=false, backref=true, sorting=none, autocite=superscript]{biblatex}
\usepackage[colorlinks, xetex]{hyperref}
\usepackage{cleveref}
\usepackage{xpatch}
\begin{document}
<<setup, include=FALSE, cache=FALSE>>=
library(knitr)
library(kableExtra)
knitr::opts_chunk$set(fig.width=7, fig.height=5, results = 'markup')
options(digits = 4)
@
\title{Esempio minimo}
\author{}
\date{\today}
\maketitle
\tableofcontents
This is a minimal example of using \textbf{knitr} to produce an \textbf{HTML} or \textbf{PDF} page from \textit{Markdown}.
\section{R code chunks}\label{introduzione}
Now we write some code chunks in this markdown file:
<<computing>>=
x <- 1+1 # a simple calculator
set.seed(123)
rnorm(5) # boring random numbers
@
Nota ¶
Naturalmente è possibile preparare un file con solo codice e un file .tex in cui inserire il solo risultato del codice. Per esempio con neovim e il plugin nvim-R nella riga di comando del buffer tex si scrive Rinsert codice-R
. Se si usa la funzione kable del package knitr, si può scrivere Rinsert knitr::kable(codice-da-tabellare, format = "latex", booktabs = TRUE)
per avere una tabella pronta da inserire in un ambiente table.