tutorial the sheet guide examples espaƱol definitive chunk cheat css r knitr r-markdown

css - the - Cambio de color de fondo de trozo en RMarkdown



r markdown the definitive guide pdf (3)

Me gustaría tener un fragmento de código determinado resaltado en un color diferente (por ejemplo, rojo) para indicar que es una mala práctica. Si estaba usando .Rnw , podría agregar la opción de fragmento background = ''red'' y obtener lo que quiero, pero esto no parece funcionar en .Rmd . Supongo que necesito hacer una hoja de estilo css personalizada (aunque no sé cuál sería el selector), y tal vez también crear un gancho personalizado. Me gustaría que se realizara por trozos, no un cambio general para todo el documento.


Esta solución es un poco hack-y, pero funciona. Lo esencial es hacer dos fragmentos de código, intercambiando el designador {r} con un nombre de clase único. Luego agregue el código css para darle estilo a cada fragmento.

.badCode { background-color: red; }


Podemos usar la opción class.source en el encabezado del fragmento de código para proporcionar CSS personalizado a R Markdown. Esto se explica en el siguiente post:

Agregue una clase CSS a fragmentos de código único en RMarkdown

Al juntar un ejemplo, podría establecer una clase llamada "badCode" y luego tener un poco de CSS para cambiar el fondo como desee. Aquí está mi .Rmd :

--- title: Background color output: html_document: css: badCode.css --- ```{r, include=FALSE} knitr::knit_hooks$set(source = function(x, options) { str_class <- ifelse( is.null(options$class), "", paste0(".", options$class, collapse = " ") ) c( paste0("```{.r ", str_class, "}/n"), x, "/n```" ) }) ``` ```{r mtcars} library("magrittr") mtcars %>% summary() ``` ```{r cars, class="badCode"} summary(cars) ```


Recuerde que markdown admite HTML fuera de los bloques de código.

Rodearía los fragmentos de código con un div con una clase personalizada que los diseñó como yo quería. Este ejemplo le da estilo al código en azul, la salida en azul claro.

<style> div.blue pre { background-color:lightblue; } div.blue pre.r { background-color:blue; } </style> <div class = "blue"> ```{r bluecars} summary(cars) ``` </div> ```{r normal} summary(cars) ```