una tutorial the sheet insertar informes imagen guide false definitive con como chunk cheat r latex knitr r-markdown

tutorial - Tamaño de fuente del fragmento de código en Rmarkdown con knitr y látex



r markdown the definitive guide pdf (3)

Por esta Gist , tienes que definir el tamaño de la fuente usando css:

<style type="text/css"> body, td { font-size: 14px; } code.r{ font-size: 20px; } pre { font-size: 20px } </style>

code.r controlará el tamaño de fuente para el código R que se hace eco del fragmento de código, mientras que pre se aplicará a cualquier resultado de R del código.

Un archivo .Rmd de trabajo completo podría verse como:

--- title: "FontTest" author: "Thomas Hopper" date: "January 13,2016" output: html_document --- <style type="text/css"> body, td { font-size: 14px; } code.r{ font-size: 20px; } pre { font-size: 20px } </style> ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) ``` ## R Markdown This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see <http://rmarkdown.rstudio.com>. When you click the **Knit** button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this: ```{r cars} summary(cars) ```

El html resultante se procesa como:

En knitr, la opción de tamaño funciona bien en un archivo .Rnw , el siguiente código genera:

/documentclass{article} /begin{document} <<chunk1, size="huge">>= summary(mtcars) @ /end{document}

Sin embargo, no puedo hacerlo funcionar en Rmarkdown. El siguiente código no cambia el tamaño de la fuente, como lo hizo en el archivo .rnw . Lo mismo sucede cuando se intenta establecer opciones con opts_chunk$set(size="huge") .

¿Es este el comportamiento esperado? ¿Cómo se cambia el tamaño de la fuente del código del fragmento? (Me refiero a usar las opciones de knitr, no agregando /huge antes del código)

--- title: "Untitled" output: pdf_document --- ```{r, size="huge"} summary(mtcars) ```

Estoy usando RStudio versión 0.98.987, knitr 1.6 y rmarkdown 0.2.68.


Puede definir su propio formato de documento exportando algo basado en la siguiente función de su paquete my_package :

my_report <- function(...) { fmt <- rmarkdown::pdf_document(...) fmt$knitr$knit_hooks$size = function(before, options, envir) { if (before) return(paste0("/n //", options$size, "/n/n")) else return("/n/n //normalsize /n") } return(fmt) }

Esto definirá un size gancho de fragmento de knitr que pondrá el comando de látex adecuado antes del fragmento, y /normalsize después del fragmento.

De todos modos, con la siguiente rebaja de R puedes verificar si está funcionando:

--- output: my_package::my_report --- Test text for comparison ```{r} print(1) ``` The next code chunk has `size = ''tiny''` in the chunk options. ```{r, size = ''tiny''} print(1) ```

Obtengo el siguiente resultado de `markdown :: render ():

Vea también el tema que abrí en github:

https://github.com/yihui/knitr/issues/1296


Retomando la idea de alterar un gancho knitr podemos hacer lo siguiente:

def.chunk.hook <- knitr::knit_hooks$get("chunk") knitr::knit_hooks$set(chunk = function(x, options) { x <- def.chunk.hook(x, options) ifelse(options$size != "normalsize", paste0("//", options$size,"/n/n", x, "/n/n //normalsize"), x) })

Este fragmento de código modifica el enlace de fragmento predeterminado. Simplemente verifica si el tamaño de la opción de trozo no es igual a su valor predeterminado ( normalsize ) y, de ser así, antepone el valor de options$size a la salida del fragmento de código (¡incluyendo la fuente!) Y agrega //normalsize para cambiar espalda.

Por lo tanto, si agrega size="tiny" a un fragmento, toda la salida generada por este fragmento se imprimirá de esa manera.

Todo lo que tiene que hacer es incluir este fragmento al principio de su documento.