Rmarkdown¶
Leer: http://geog.uoregon.edu/bartlein/courses/geog490/week05.html
RMarkdown thereby facilitates the concepts of “literate programming”, and “reproducible research” [...] which also allows others (including an original investigator after some time has passed) to reproduce a data analysis or other research result.
Generalidades: https://www.youtube.com/watch?v=uccEhThn0ls&list=PL5fd4SsfvECyYYiSW3ZreC5GqIq8FBocx&index=4
"Rmarkdown is probably the gratest document file format *ever*".
Template en mi paquete de utiles¶
Acáta:
Mi header para los notebooks¶
---
title: "Trabajo Final: Intro"
output:
pdf_document:
latex_engine: xelatex
toc: true
toc_depth: 2
number_sections: true
html_document:
df_print: paged
theme: flatly
toc: yes
toc_float: true
toc_depth: 2
number_sections: false
smooth_scroll: false
code_folding: hide
editor_options:
chunk_output_type: console
author: Fulane de Tal
date: Diciembre 13, 2020
urlcolor: blue
---
Lo más útil de theme: flatly
es que tiene "tab sets" para los gráficos: mútliples plots se pueden ver de a uno usando tabs con nombres (y que no queden simplemente apilados uno tras otro).
Se puede agregar esto para especificar otro knit output directory:
knit: (function(inputFile, encoding) {
rmarkdown::render(inputFile, encoding = encoding, output_dir = "output/renders") })
El file auto completion de RStudio puede ser afectado por esa linea, realmente no sé. El "bug" de que no se puede cambiar el root path para el completion es irreproductible, a veces anda, a veces no.
Mi setup chunk¶
Suprime mensajes y hace que el "working directory" de los chunks sea el del proyecto (y no el del script, que es re molesto).
```{r setup}
knitr::opts_chunk$set(message = F)
# knitr::opts_chunk$set(cache = T)
knitr::opts_knit$set(root.dir = here::here())
```
Incluir imagenes¶
La imagen no aparece o está en blanco¶
Me pasaba que ciertas imágenes exportadas por magick
en PNG no aparecían en el PDF final.
Resulta que por algún motivo se "enmascaran", y aunque están en el PDF no se pueden ver.
El parche es exportar la imagen en formato JPEG.
include_graphics no encuentra la imagen¶
Se puede probar ponerle error=F
.
Con eso emparché este problema: https://github.com/yihui/knitr/issues/2171
Referenciar figuras¶
Bookdown¶
Hay que usar bookdown para renderear: https://bookdown.org/yihui/rmarkdown-cookbook/cross-ref.html
---
title: Cross-referencing figures, tables, and equations
author: Generated by bookdown
output:
bookdown::html_document2: default
bookdown::pdf_document2: default
---
No hay que usar guiones bajos "_" en el nombre de los chunks que incluyen figuras con include_graphics
: https://stackoverflow.com/a/68697522
- No:
```{r strip_magick_example, ...}
- Si:
```{r strip-magick-example, ...}
Para referenciar una figura, usar \@ref(fig:strip-magick-example)
.
Quatro¶
Ver: https://quarto.org/docs/authoring/cross-references.html
LaTeX¶
Paquetes de xelatex en Arch¶
Si falta framed.sty
, hay que instalar el paquete framed
con el comando tlmgr
:
tlmgr install framed
En Arch hay que instalar un par de cosas y "arreglar" tlmgr para que funcione:
sudo pacman -S texlive-core
sudo nano /usr/share/texmf-dist/scripts/texlive/tlmgr.pl
# Sustituir linea 66 por "$Master = "${Master}/../../..";"
tlmgr init-usertree
tlmgr install framed
Y crear alias en .bashrc
y/o .zshrc
:
# TEXMFDIST=/usr/share/texmf-dist/
alias tlmgr='/usr/share/texmf-dist/scripts/texlive/tlmgr.pl --usermode'
Leer:
Formulas quimicas¶
Para formulas quimicas hay que instalar (al menos):
- chemformula
- units (para nicefrac)
- mhchem
- chemgreek
Y usar este header:
header-includes:
- \usepackage[spanish]{babel}
- \usepackage{chemformula}
- \usepackage[version=4]{mhchem}
Y esta sintaxis:
\begin{equation}
\ch{Cr2O7^{2-}_{(ac)} + 4 H2O} \rightleftharpoons \ch{2 HCrO4^{–}_{(ac)} }
\end{equation}
Errores de Latex¶
Too deeply nested¶
Ocurre cuando las listas estan "demasiado" anidadas, por ejemplo:
* respuesta
* Cd
* complejo
* Cd
* NH3
* NH4
* NH3
* complejo
* OH
* H
* OH
* H
TinyTeX y Tablas lindas con Kable¶
---
title: "Knit to PDF example"
output: pdf_document
---
Install a LaTeX distribution:
* TinyTeX is recommended: https://bookdown.org/yihui/rmarkdown-cookbook/install-latex.html
```{r, eval=F}
tinytex::install_tinytex()
```
----
Default style:
```{r}
iris[1:5,]
```
----
Con `kable`:
```{r}
knitr::kable(iris[1:5,])
```
----
Usa por defecto la siguiente opción como formato:
```{r}
knitr:::kable_format()
```
> Yo prefiero "pipe".
Para setear "latex" o "pipe" como default en kable:
* https://bookdown.org/yihui/rmarkdown-cookbook/kable.html
```{r}
options(knitr.table.format = "pipe")
# o bien:
options(knitr.table.format = "latex")
```
```{r}
getOption("knitr.table.format")
```
----
Para setear kable como default en el documento entero, y no tener que usar kable() cada vez,
hay que editar el YAML header del .Rmd para que tenga esto:
```{yaml}
---
title: "Knit to PDF example"
output:
pdf_document:
df_print: kable
---
```
Ver: https://bookdown.org/yihui/rmarkdown/html-document.html#data-frame-printing
----