Comment puis-je mettre un résumé avant la table des matières à l'aide de bookdown?
J'ai un bookdown
projet avec une coutume template.tex
et une coutume my-format.cls
. Je peux faire des choses comme ce qui suit dans mon template.tex
:
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
\tableofcontents
\begin{body}
...
et obtenez le résumé pour prendre ma mise en forme personnalisée. Cela fonctionne en partie parce que le contenu du résumé est juste un paragraphe de texte, qui peut être placé dans l'avant-plan YAML.
Cependant, est-il possible d'inclure un résumé avant la table des matières ?
Je sais que je peux utiliser (dans mon index.Rmd
)
# Executive Summary {-}
a summary here
# Introduction
this is the first numbered section
Mais dans ce cas, même si l'en-tête de la section "Executive Summary" n'est pas numéroté, il apparaît après la table des matières. Est-il possible de modifier le template.tex
tel qu'en utilisant quelque chose comme:
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$if(executive_summary)$
\begin{executivesummary}
% insert summary content here
\end{executivesummary}
$endif$
\tableofcontents
\begin{body}
...
Je peux retirer le contenu (y compris les figures / tableaux / etc.) d'une section de résumé analytique non numérotée (même si elle doit provenir d'un .Rmd
fichier différent ) et l'assigner à une variable (pandoc) qui pourrait faire référence à la place de % If I insert summary content here
ci-dessus? J'aurais également besoin de ce même contenu supprimé de la $body$
variable assignée par défaut (pandoc) .
Réponses
Merci @tarleb! Je soupçonne que je pourrais obtenir ce que je veux via un filtre Lua, mais je pense avoir trouvé un moyen plus simple dans le sens de votre réponsehttps://stackoverflow.com/a/53885034/1785752
Dans le index.Rmd
YAML j'ai ajouté
executivesummary: |
```{r, echo=FALSE, results='asis'}
res <- knitr::knit_child(quiet = TRUE, 'executive-summary.Rmd')
cat(res, sep = '\n')
```
Cela nécessite cependant quelques éléments:
- Que l'environnement «ombré» est défini dans le préambule de
template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
- Que le
executive-summary.Rmd
est défini et n'a pas de YAML et pas d'en-tête de niveau 1 (l'en-tête "Résumé exécutif" provient du fichier modèle / classe)
Fait intéressant, je pourrais simplement mettre le contenu dans la executivesummary
section YAML (c'est-à-dire ignorer le rendu du document enfant), mais les options de bloc de code qui incluent des chaînes sont parfois analysées comme des clés YAML dans ce cas, ce qui entraîne l'échec du rendu. De plus, les morceaux de code indentés de 2 espaces ne reçoivent aucune aide de l'IDE pour la vérification de la syntaxe ou la saisie semi-automatique.