Chapitre 10 De la page au livre, le package bookdown

Le paquet bookdown est construit sur les fondations données par R Markdown http://rmarkdown.rstudio.com. Il s’appuie ainsi sur la simplicité de la syntaxe Markdown aussi bien que sur l’éventail des multiples formats de rendus possibles. Il apporte, quant à lui, un certain nombre de fonctionnalités complémentaires :

  • générer un ensemble HTML multipages,
  • établir des liens internes de renvoi vers des illustrations, des tableaux, des sections spécifiques du document ou encore des équations,
  • faciliter la gestion d’annexes.

Pour ne citer que les fonctionnalités par lesquelles l’extension bookdown enrichit significativement l’écosystème R Markdown.

En dépit du nommage du paquet qui contient explicitement le terme ‘book’ (‘livre’ en anglais), le paquet bookdown ne trouve pas sa seule utilité dans la production de livres. Ou plutôt, le “livre” qu’il produit peut-être vu comme l’agrégation d’un ensemble de documents R Markdown destinés à être lus de manière linéaire, tels qu’une compilation de cours, un rapport d’étude, un manuel d’utilisation, une thèse ou même un journal.

Il faut cependant signaler l’esprit qui a conduit l’auteur Yihui Xie à élaborer ce paquet : faciliter la génération d’un livre sous de multiples formats, tout en restant sobre, c’est-à-dire en essayant de ne couvrir que les fonctionnalités communes à tous ces formats et en préservant la même syntaxe à travers la sélection de formats retenus dans son projet : html, pdf, epub.

10.1 Démarrer un projet de livre de la page blanche

Après cette présentation rapide du paquet bookdown, il est temps d’aborder les aspects pratiques de son utilisation en essayant de répondre à une première question : comment puis-je créer mon premier livre avec bookdown ?

10.1.1 Installer le package bookdown

install.packages ("bookdown")
library (bookdown)

Remarque

Il faudrait se mettre d’accord sur la manière de renvoyer vers les différentes méthodes d’installation.

ANS: Je suis d’accord. l’installation “de base” pourrait etre faite dans la 1ere partie de la formation. Dans la 2eme partie nous allons installer TinyTex pour générer du PDF. On pourrait compléter cette partie et faire un renvoi. — CCn

Pour un environnement avec un éventail de fonctionnalités aussi complète que possible tel présenté et discuté dans les lignes qui suivent il vous faudra installer aussi un distribution $ $.

Très grossièrement l’environnement $ $ est un des rares produits libres à pouvoir générer du pdf. C’est un environnement qui repose sur des concepts très soucieux du respect de conventions typographiques. Ainsi, des commandes insérées dans le texte permettent d’en dicter avec une précision extrême la répresentation finale, la mise en forme pour impression.

Si vous ne souhaitez pas vous cassez la tête et si vous n’avez pas les droits d’administration sur votre poste, procédez à l’installation de la distribution TinyTex tout spécialement préparée pour cela par l’auteur même du package bookdown Xie Yihui, d’autant qu’il l’a rendue c’est extrêmement simple cette opération pour quiconque pratique un peu de R} puisque tout se passe justement dans sa console :

  # Note : il faut avoir un windows au moins de version 10
  install.packages('tinytex')
  prop_inst_path <- file.path(Sys.getenv('LOCALAPPDATA'), 'TinyTex', fsep='\\')
  create.dir(prop_inst_path)
  tinytex::install_tintex(dir=prop_inst_path)

10.1.2 Initialiser un modèle de livre

Il s’agit non pas de chercher l’entrée de menu correspondante dans l’entrée Fichier>Nouveau fichier mais bien sous le chemin Fichier>Nouveau projet.... En effet, à la différence des manipulations qui ont été abordées précédemment dans ce guide, le système bookdown est tout entier tourné vers la conversion d’un ensemble de fichiers pour les assembler en une série logique monolithique.

Il est donc intéressant de s’en rendre compte en utilisant les modèles de démonstration mis à notre disposition par RStudio. En effet, lorsque nous recourrons au menu de création d’un nouveau bookdown ce n’est pas une structure vierge qui va être initialisée mais bien un document modèle complètement fonctionnel. Il va être établi dans le répertoire que nous aurons préalablement désigné.

10.1.3 Générer le livre et le (re)lire

Pour créer un nouveau livre, il faut aller dans Fichier>Nouveau projet....

Une pop-up apparait nous demandant à partir de quoi créer ce nouveau projet. Comme nous souhaitons créer un livre à partir de rien alors on choisit Nouveau Dossier.

Apparait alors une selection de type de projet possible. Cette liste dépend des packages installés dans votre RStudio. Il faut selectionner Book project using bookdown.

Enfin, il faut spécifier une localisation dans notre espace de fichier et éventuellement de préciser un format (soit gitbook, soit bs4_book.

Nous avons alors à disposition un exemple de source complètement fonctionnel. Mais ce ne sont que des sources, comme nos fichiers Rmarkdown précédents, pour véritablement se rendre compte du résultat final, il faut procéder à l’étape de rendu.

Ce qui nous amène à explorer plus avant les principes d’organisation de RStudio en tant qu’interface. Si l’organisation initiale n’a pas été trop bouleversée, le cadran haut-droit regroupe un certain nombre d’onglets qui ont tous plus ou moins trait à l’environnement du projet et à son pilotage. Il y réside notamment un onglet Build (Construire) qui dans son menu propose un bouton avec une icône représentant un marteau qui va nous permettre de lancer le rendu (la construction) de l’ensemble de fichiers Rmarkdown.

Par défaut le rendu sera sous une forme de “site web” très en usage en ce qui concerne les manuels logiciels sur Internet.

La construction de manière effective s’éxécute en appuyant sur le bouton et, après le défilé d’un certain volume d’informations rendant compte des différent traitements effectués, si tout se passe bien, une fenêtre (navigateur web interne de RStudio) s’ouvre au premier plan. Elle présente le rendu final et un bouton qui permet d’ouvrir et d’explorer le rendu dans le navigateur web configuré pour le système hôte.

Le document résultant de la phase de construction est pour le coup une véritable vitrine qui présente et montre à l’oeuvre les principales fonctionnalité de bookdown.

3 pour le prix d’1 ! Si vous avez la curiosité d’explorer le sous-répertoire _book du dossier projet, vous y trouverez aussi le rendu sous forme d’un “livre” en pdf (format reconnu princpalement pour sa portabilité en matière d’impression) et encore en epub (format adapté pour la lecture notament sur liseuse mais plus généralement pour tout écran portafif).

10.1.4 Se lancer dans l’écriture

À ce stade rien de plus simple, ni rien de bien différent de ce qui a été vu précédemment: il s’agit d’éditer des fichiers R Markdown, (extensions .Rmd).

Relancer la construction (compilation?) pour se rendre compte de l’évolution du contenu.

Des chapitres en trop, ou des chapitres à rajouter ? Il suffit de supprimer ou de créer les fichiers Rmarkdown correspondant. Ils seront ordonnés automatiquement selon leur ordre alphabétique, c’est pour cela que bien souvent vous trouverez des fichiers numérotés 01-..., 02-... ce qui est une manière très explicite de maîtriser l’ordre de composition du document général.

10.2 Composer son livre quand la matière est déjà disponible

Un rapport bookdown contient de manière caractéristique plusieurs chapitres et chacun de ces chapitres est un fichier R Markdown, portant l’extension .Rmd. Ces fichiers R Markdown doivent débuter immédiatement après l’en-tête par le titre du chapitre en utilisant le marquage propre à un titre de premier niveau, par exemple : # Titre du chapitre. Pour le bon fonctionnement général, tous les fichiers R Markdown doivent être encodés en UTF-8, notamment pour les langages présentant des caractères accentués (comme le français).

Trucs & Astuces

Sans être très féru de tout ce qui concerne l’encodage, vous trouverez un certain nombre de facilités dans RStudio:

  • pour ouvrir un fichier avec l’encodage qui vous convient

Fichier \(\Rightarrow\) Réouvrir avec encodage…

  • pour enregistrer un fichier au bon encodage

Fichier \(\Rightarrow\) Sauvegarder avec l’encodage…

Concernant la première fonctionnalité “Réouvrir avec encodage…”, dans la fenêtre de dialogue n’hésitez surtout pas à sélectionner UTF-8 et cocher l’option : “Définir comme encodage par défaut pour les fichiers sources”, vous n’aurez ainsi quasiment plus de question à vous poser par la suite.

10.2.1 Illustration pratique d’une composition

10.2.1.1 Faire d’un ensemble une unité

Allons maintenant au-delà de l’interface RStudio et du système relativement mécanique de ce que nous appelons le clique-bouton. Non que le clique-bouton n’ait pas sa raison d’être, mais parce que les contingeances auxquelles il est soumis nous brident, pour l’instant encore, dans notre capacité d’exploration et d’analyse.

Pour se faire déconnetez votre souris de l’ordinateur, ou désactivez-en le clavier tactile … … vous n’êtes évidemment pas obligés d’en arriver jusqu’à cette extrémité, mais vous avez compris l’idée. Il s’agit maintenant de communiquer en language R.

Rappellons-nous que pour rendre (transformer) un fichier source R Markdown en un format de consultation plus généraliste (odt, pdf, docx, html …), le package rmarkdown nous fournit la fonction rmarkdown::render(). bookdown en offre une du même niveau : bookdown::render_book().

La première prend logiquement comme paramètre d’entrée obligatoire un fichier R Markdown (ou markdown tout simple, voire même simplement du R), quand la seconde n’exige même pas d’information car par défaut elle prendra le répertoire en cours pour tenter d’exploiter tous les fichiers .Rmd disponibles afin d’en constituer un livre. Le paramètre input permet toutefois un peu de souplesse en indiquant plus spécifiquement quel répertoire rendre sans être forcément obligé par avance de le définir comme répertoire de travail courant (current working directory : getwd/setwd).

Travail dirigé :

Objectif

Utiliser les 3 .Rmd vu précédemment pour expérimenter la composition d’un book.

Prérequis

Etapes

10.2.1.2 Vous aviez promis des rendus stylés !

Nous espérons que l’expérimentation précédente vous aura permis de vous rendre compte concrètement de ce qui fait une distinction visible entre les packages rmarkdown et bookdown.

À ce stade, nous nous rendons manifestement compte que bookdown satisfait un de ses premiers engagements c’est-à-dire : permettre de constituer une unité offrant une lecture séquentielle (à partir de plusieurs fichiers dans les coulisses).

Mais somme toute bookdown ne serait-il qu’un énième générateur de site web statique ?

Car enfin ce premier résultat ne détonne finalement pas de ce que nous avons l’habitude de rencontrer maintenant sur le net pour nous aider à comprendre le fonctionnement de tel ou tel programme. D’ailleurs hors les couleurs retenues, fonctionnellement cela ressemble assez aux usuels bouquets de présentation accompagnant les packages alliés au tidyverse dplyr, readr, toutefois nous pourrons – en y regardant bien – voir au bas de la page, généralement à droite, que ceux-ci ont été réalisés avec pkgdown. La formule a tellement séduit que d’autres groupes l’utilisent aussi comme rOpenSci avec son ensemble des paquets dont entre autres dataspice.

Mais, dans l’histoire des recettes pour mettre en lumière de la documentation le site https://readthedocs.org/ a lui aussi ses adeptes et nous y trouverons des vestiges d’initiatives fort intéressantes comme r-snippets même si elle ne semble plus maintenue. Pourquoi parler de https://readthedocs.org/ ? Parce que justement la lecture linéaire est ce qui construit la force du système de présentation d’un nouvel outil en structurant l’information dans une construction progressive. C’est le propre du mode d’emploi et le système sphinx (en python) duquel il readthedoc a tiré son inspiration semble avoir devancé un peu l’avènement d’une compagnie qui a eu un certain succès pour la mise en forme de documentations utilisateur https://www.gitbook.com/. D’où le fameux nom gitbook rendant honeur à l’esthétique particulière que fit émerger l’entreprise. D’ailleurs dans l’extraordinaire base d’archive que constitue github avec laquelle gitbook faisait la passerelle (mais qui ne sont pas structurellement liées en tant qu’entreprises à notre connaissance) nous retrouvons une initiative pour exploiter directement les service gitbook depuis les sources d’un package tout autant qu’il existe un package pour produire de la documentation sur le modèle readthedoc.

Après cette petite digression, pour faire un tout petit zoom sur l’une des nombreuses rivières qui alimentent la quête perpétuelle visant à trouver le système de documentation parfait (S’il n’y en avait pas ?!), retrounons à la distinction que nous faisions entre pkgdown et bookdown. En effet, nous appelions l’ensemble de pages web formées par pkgdown un bouquet car les pages regroupées font sens ensemble et la barre des menus vient même structurer cet ensemble par une certaine codification, convention. Mais dans bookdown, il y a vraiment un ordre, une progression, une linéarité.

Et mécaniquement cette linéarité peut s’apposer successivement sur un ensemble de pages et forme naturellement un livre et c’est aussi cet engagement que porte bookdown.

Dans la pratique, comment devons-nous poursuivre nos manipulations pour obtenir un fichier pdf ?

Réponse : simplement en passant une option spécifiant que c’est le format attendu.

bookdown::render_book(output_format = 'bookdown::pdf_book')

à l’issue du traitement vous aurez un retour d’information vous signalant que votre pdf est servi !

Output created: _book/_main.pdf

La valeur de retour de la fonction elle-même est d’ailleurs le chemin complet vers le fichier créé.

Et si nous voulions générer plusieurs mode de document simultanément ?

bookdown::render_book(output_format = c('bookdown::pdf_book','bookdown::gitbook'))

Laissez libre court à vos envies et explorez parmi les multiples modèles de sortie proposés soyez conscient de leur limite et des contraintes qu’ils imposeront mais aussi posez-vous la question de ce que vous voulez vraiment faire :

  • les formats dits : Book output format qui justifient notre intérêt jusqu’ici parce qu’ils travaillent sur un ensemble de fichiers :
    • gitbook
    • pdf_book
    • epub_book
    • bs4_book
    • bs4_book_theme
    • html_chapters
    • html_book
    • tufte_html_book
  • les formats dit : “Single document output formats” qui ne travaillent que sur un seul fichier .Rmd mais qui rétro-portent à rmarkdown certaines fonctionnalités comme les renvois internes :
    • html_document2
    • html_fragment2
    • html_notebook2
    • html_vignette2
    • ioslides_presentation2
    • slidy_presentation2
    • tufte_html2
    • pdf_document2
    • beamer_presentation2
    • tufte_handout2
    • tufte_book2
    • markdown_document2
    • context_document2
    • github_document2
    • odt_document2
    • powerpoint_presentation2
    • rtf_document2
    • word_document2

10.2.1.3 Maîtrise des méta-données

Si jusqu’ici vous vous êtes prétés au jeux des manipulations que nous vous proposons, il n’aura pas échappé à votre oeil aguerri que la gestion des métadonnées (titre, auteur, date) n’est pas si intuitive que cela.

Confirmons-le par une petite manipulation.

TD

Dans les faits le dernier header yaml écrase les précédents.

Aussi, l’usage veux que le premier chapitre débute dans le fichier index.Rmd, convention qui nous vient du monde du web, des serveurs et de l’html, et que seul ce fichier comporte un header yaml.

10.2.2 Organisation des sources d’un bookdown

Après avoir mis les mains dans le cambouis et constitué notre book, notre livre ou notre rapport à la main, appelez-le comme il vous convient, revenons à l’exemple standard pour démystifier les nombreux fichiers nécessaires de prime abord et en comprendre l’utilité.

bookdown::create_bs4_book('../mybs4book')
setwd('../mybs4book')
list.files()
bookdown::render_book(output_format = 'bookdown::bs4_book')
  • _bookdown_files
  • _book
  • mybs4book.Rproj
  • README.md
  • index.Rmd
  • 01-intro.Rmd
  • 02-cross-refs.Rmd
  • 03-parts.Rmd
  • 04-citations.Rmd
  • 05-blocks.Rmd
  • 06-share.Rmd
  • 07-references.Rmd
  • _bookdown.yml
  • _common.R
  • _output.yml
  • preamble.tex
  • style.css
  • book.bib
  • packages.bib
  • chicago-fullnote-bibliography.csl
  • mybs4book.rds

10.3 Au-delà du fond s’attaquer aux goûts et couleurs

Si vous nous avez lu jusqu’ici dans notre découverte pratico-pratique du package bookdown, de sa place dans l’écosystème des publications reproductibles qui reviennent sur le devant de la scène et prennent un nouveau jour, alors : félicitations !

De notre côté, il nous semble que les éléments fournis jusqu’ici dans un accompagnement par la manipulation doivent vous permettre desormais de produire vos livres sans problème.
Il nous resterait encore à aborder deux autres fonctionnallités de bookdown pour être totalement complet, ce sont :

  • les liens de renvoi internes,
  • l’utilisation de référence bibliographique,

ces facettes seront couvertes dans une édition ultérieure de ce document (pour l’instant des liens seront données en fin de chapitre à l’attention de ceux pour qui ces fonctionnalités sont indispensables). Mais, excepté ces deux fonctionnalités spécifiques d’ailleurs peu fréquentes d’utilisation dans nos métiers, considérons pour l’heure que vous êtes désormais un utilisateur éclairé de bookdown. La partie à laquelle nous nous attaquons ici a pour but de vous faire atteindre le niveau maîtrise.

Partons du postulat que sitôt vous aurez modelé votre matière de fond en un livre, sitôt vous vous direz que cette production ressemble à toutes les autres, or, vous voudrez plutôt quelle vous ressemble ! Nous allons tenter de voir en suivant quelles sont vos options pour cela et à l’occasion ce balayage nous emmenera à investiguer un peu plus profodémment quelques aspects techniques du package bookdown.

10.3.1 Les types de sorties, ou les différents rendus possibles

Dans la section @ref(#styled-outputs) nous avons vu qu’à partir d’un même projet source bookdown nous pouvions choisir entre différents types de sorties, nous devons maintenant être plus précis que cela. Dans la pratique, il y a plusieurs étages à la fusée, en effet tout part du format terminal d’enregistrement sur le disque dur autrement dit : en quel type de fichier va être converti notre projet bookdown in fine.

Concentrons nous sur les transformations mères (Book output format), celles-là mêmes qui au départ ont motivées la création de bookdown au-delà de l’apparente multiplicité des types de sorties possibles, pas moins de 8 (gitbook, pdf_book, epub_book, bs4_book, bs4_book_theme, html_chapters, html_book, tufte_html_book), il n’est en fait question que de trois types de fichiers : pdf, epub et html.

Notons tout de suite l’exception du format de fichier html, c’est le seul format où la transformation bookdown et plus généralement rmarkdown se traduit *matériellement” par plusieurs fichiers, c’est sa nature même. En clair, la résultante d’une transformation source bookdown en l’un des types de sorties (git_book,, bs4_book, bs4_book_theme, html_chapters, html_book, tufte_html_book) va résulter en la création d’un répertoire nommé par défaut _book dans le répertoire projet. Ce répertoire _book va contenir quantité de fichiers constituant un mini-site statique (ensemble de pages web cohérent) qui s’appuie sur une grande variété de type de fichiers : html bien évidemment, css, javascript, des resources liées (images, icônes, fichiers de police de charactère et autres), bref tout un écosystème.

La magie du web repose sur quelques conventions, par exemple une fois ce répertoire _book mis sur un serveur internet (appelons le https://mon-site.com), s’il contient un fichier nommé index.html alors l’appel du répertoire 2 http:://mon-site.com/_book/ par un navigateur quelconque (Chrome, Firefox, Edge …) ouvrira naturellement cette page index.html évitant à devoir invoquer explicitement la page d’entrée par son nommage exact. C’est pourquoi la convention de débuter par un fichier index.Rmd fait sens.

Nous le voyons rien que cette précision sur les types de sorties reposant sur le format html peut appeler à de longues digressions si l’on vise l’exhaustivité didactique. C’est hors de portée pour nous dans le cadre de ce modeste support de formation. La difficulté d’expliquer s’étend aussi au format pdf et epub qui ne sont pas plus simples, alors notre pirouette sera de vous renvoyer vers les documents fondateurs de ces formats, ce qu’on appelle les spécifications, mais même en faisant cela vous ne serez pas encore arrivés pour certaines raisons que nous commentons :

  • spécifications epub le lien donné ici renvoi vers le format en version 3.2, oui notons au passage que les formats évoluent et s’améliorent avec le temps, le standard epub est pris en premier exemple, car le curieux ou le téméraire pourrait se dire : il suffit que je connaisse ça. L’organisme de publication W3C est complètement transparent, tout est publié est accessible gratuitement.

  • spécification html, les choses se compliquent l’histoire et en marche, le W3C publié originellement des spécifications versionnées, mais le html est tellement stratégique et central aujourd’hui que non seulement une nouvelle institution est née, mais en plus les spécifications s’affirment elles-mêmes comme vivantes.

  • spécifications pdf l’histoire du format pdf possède aussi des détours, et là les choses se corsent encore plus pour accèder à la connaissance totale puisque l’organisme qui à normaliser ces spécifications est l’ISO et qu’il faut s’acquitter monaitairement de certains droits pour pouvoir accèder au document valant norme.

L’équipe d’auteurs de ce document a-t’elle lu ces spécifications ? Pas du tout ! Heureusement d’ailleurs, car cela aurait peut-être été une perte de temps collosale par rapport à nos besoins directs, et même parfois inutile.

Dans le cadre du pdf cela aurait été du pur temps perdu et inutile puisque en fait bookdown lui-même ne produit pas directement du pdf mais un format intermédiaire dans un langage appelé \(\LaTeX\).

10.3.2 Un choix esthétique cadré

Parfois vous pouvez vouloir changer le thème global de sortie, et de manière générale ce peut-être réalisé grâce à l’option in_hearder, ou l’option css plus particulièrement adaptée pour les sorties HTML. Certains formats de sortie ont leur propre thème, tel que gitbook, tuft_html_book, et tufte_book2, d’ailleurs cela vous ne devriez pas souhaitez les modifier de trop, d’abord parce qu’ils tendent vers des objectifs très précis ensuite par que techniquement le effort pour les modifier seront importants puisqu’ils reposent sur des mécaniques complexes. Par comparaison les formats de sortie html_book() et pdf_book() ne sont pas attachés à des thèmes spécifiques en conséquence ils peuvent être facilement modifiables et adaptables.

Ainsi, le thème de défaut, ou style, pour html_book() est le style nommé Bootstrap. Le style Bootstrap possède lui-même en réalité plusieurs choix de thème auxquels vous pouvez reccourir, votre choix s’étend parmis les valeurs : default, bootstrap, cerulean, cosmo, darkly, flatly, journal, lumen, paper, readable, sandstone, simplex, spacelab, united, and yeti. Vous pouvez indiquez lequel de ces thèmes vous voulez appliquer en paramétrant l’option theme comme suit :

---
output:
  bookdown::html_book:
    theme: united
---

Si éventuellement il advenait que vous n’apréciiez aucun des thèmes proposé par Bootstrap, il vous reste le recours de fixer l’option theme à null et d’appliquer votre propre feuille de style css, grâce aux options (css ou in_header).

Pour le format de sortie pdf_book(), en plus de l’option in_header déjà évoquée, une autre solution est de changer la classe (documentclass) de document. Il existe de très nombreuses classes possibles pour les mise en forme de type livres, telles que memoir (https://www.ctan.org/pkg/memoir), amsbook (https://www.ctan.org/pkg/amsbook), KOMA-Script (https://www.ctan.org/pkg/koma-script) et bien d’autre. Voici un bref example de l’entête de données YAML pouvant permettre de déclarer le thème de sortie scrbook proposé au travers de l’extension \(LaTeX\) KOMA-Script :

---
documentclass: scrbook
output:
  bookdown::pdf_book:
    template: null
---

A titre d’information, quelques maisons d’édition spécialisées (telles que Springer et Chapman & Hall/CRC) disposent de leur propre style \(LaTeX\), de leur propre fichiers de classe (.sty). Dans ce cas là vous pourriez essayer de changer l’option documentclass afin de spécifier en lieu et place celle de leur style, mais vous constaterez que bien souvent ce n’est pas aussi simple que cela. Votre recours le plus efficace sera soit d’utiliser l’option in_header soit plus surement encore d’aller modifier le modèle de document de sortie \(LaTex\) utilisé par Pandoc pour l’adapter à ces feuilles de style particulière.

Notez bien par ailleurs que lorsque vous changez le paramètre documentclass, vous êtes suscceptibles de spécifier un paramètre Pandoc aditionnel --top-level-division=chapter afin que Pandoc sache bien quel premier niveau de titres il doit traiter comme chapitre en lieu et place des sections (c’est en effet le fonctionnement par défaut quand la documentclass est book, autrement dit pour une structuration du rendu en mode ‘livre’), les options s’exprimeraient par exemple ainsi :

documentclass: krantz
output:
  bookdown::pdf_book:
    pandoc_args: --top-level-division=chapter

10.3.3 Polices de caractères et couleurs, imposez votre style

Revenons sur l’option output/includes/in_header.

Cette option prend en paramètre un nom de fichier et va permettre d’insérer simplement aux environs des premières lignes du fichier html qui sera généré en sortie (exactement dans son entête<head>) le contenu dudit fichier pour influer sur la mise en forme des différents composants et de leur rendu final. Cette adaptation présuppose évidement une certaine maîtrise du html et du sous langage de domaine spécifique qui lui est associé pour stylisation : le css. Le html (et le css) sortent du cadre de notre guide et nous devons vous renvoyer vers des ressources extérieures, cela étant, il s’agit de standards ouverts et vous ne devriez avoir aucun mal à trouver sur l’Inter de quoi rasasier envie d’apprendre, le tutoriel du W3C “Débuter avec HTML + CSS” nous semble un bon point d’attaque.

10.3.4 Un choix esthétique cadré

10.4 Quelques options et détails techniques complémentaires

10.4.1 Options triées sur le volet

10.4.2 Retour sur le fonctionnement global

10.5 Etude d’un exemple bookdown : propre.rpls

10.5.1 Exemple d’appropriation d’une publication Rpls

10.5.2 Compréhension globale de l’architecture du paquet propre.rpl

10.6 Focus sur l’envoi au photocopieur du livre ou comment imprime

10.7 Bookdown, maintenant et au-delà

quarto


  1. dans la pratique le chemin sur un serveur s’appelle une URL↩︎