Maison  >  Article  >  interface Web  >  Comment ajouter des classes CSS à des morceaux de code individuels dans RMarkdown ?

Comment ajouter des classes CSS à des morceaux de code individuels dans RMarkdown ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-25 03:33:29631parcourir

How to Add CSS Classes to Individual Code Chunks in RMarkdown?

Ajout de classes CSS à des morceaux de code individuels dans RMarkdown

Dans RMarkdown, la personnalisation de l'apparence des morceaux de code peut améliorer la lisibilité et l'esthétique du document. Une façon d'y parvenir consiste à attribuer des classes CSS à des morceaux de code spécifiques.

Défi :

En tant qu'utilisateur de RMarkdown, vous devrez peut-être ajouter une classe CSS. à un certain morceau de code, désigné par une étiquette, par exemple .myClass. L'objectif est de trouver une solution simple qui ne nécessite pas de solutions de contournement lourdes comme envelopper le morceau dans un

supplémentaire.

Tentative initiale :

On pourrait essayer en utilisant la syntaxe suivante pour ajouter la classe .myClass au morceau de code intitulé « voitures » :

summary(cars)

Malheureusement, cette approche ne fonctionne pas. Pour remédier à cette limitation, nous présentons deux solutions :

Solution 1 : l'option class.source de Knitr

knitr, le package R sous-jacent pour RMarkdown, a récemment introduit la classe. source, qui vous permet de spécifier une classe CSS au morceau de code source :

summary(cars)

Cette méthode est simple et ajoutera la classe .myClass au

 élément entourant le morceau de code dans le document HTML généré.</p>
<p><strong>Solution 2 : l'extension fenced_code_attributes et le hook de sortie de Pandoc</strong></p>
<p>Avant que knitr n'implémente l'option class.source, une solution impliquant L'extension fenced_code_attributes de Pandoc et un hook de sortie knitr personnalisé étaient populaires. Cette approche fonctionne en ajoutant des attributs au <pre class="brush:php;toolbar:false"> tag:</p>
<pre class="brush:php;toolbar:false">---
title: "Untitled"
output:
  html_document:
    md_extensions: +fenced_code_attributes
---

knitr::knit_hooks$set(source = function(x, options) {
return(paste0(

"```{.r",
ifelse(is.null(options$class),
  "",
  paste0(" .", gsub(" ", " .", options$class))
),
"}\n",
x,
"\n```"

))
})

résumé(voitures)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn