Come posso inserire un riepilogo esecutivo prima del sommario utilizzando il bookdown?

Jan 15 2021

Ho un bookdownprogetto con una consuetudine template.texe una consuetudine my-format.cls. Posso fare cose come le seguenti nel mio template.tex:

$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$

\tableofcontents

\begin{body}
...

e ottieni l'abstract per prendere la mia formattazione personalizzata. Questo funziona in parte perché il contenuto dell'abstract è solo un paragrafo di testo, che può essere inserito nella parte iniziale di YAML.

Tuttavia, è possibile includere un riepilogo esecutivo prima del sommario ?

So di poter usare (nel mio index.Rmd)


# Executive Summary {-}

a summary here

# Introduction

this is the first numbered section

Ma in questo caso, anche se l'intestazione della sezione "Riepilogo esecutivo" non è numerata, viene visualizzata dopo il sommario. È possibile modificare il template.textale che utilizzando qualcosa come:

$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$

$if(executive_summary)$
\begin{executivesummary}
% insert summary content here
\end{executivesummary}
$endif$

\tableofcontents

\begin{body}
...

Posso estrarre il contenuto (comprese figure / tabelle / ecc.) Da una sezione di riepilogo esecutivo non numerata (anche se deve provenire da un .Rmdfile diverso ) e assegnarlo a qualche variabile (pandoc) che potrebbe fare riferimento al posto di % If I insert summary content heresopra? Avrei anche bisogno che lo stesso contenuto fosse rimosso dalla $body$variabile assegnata di default (pandoc) .

Risposte

2 MattPollock Jan 15 2021 at 23:32

Grazie @tarleb! Sospetto di poter ottenere ciò che voglio tramite un filtro Lua, ma penso di aver trovato un modo più semplice sulla falsariga della tua rispostahttps://stackoverflow.com/a/53885034/1785752

Nello index.RmdYAML ho aggiunto

executivesummary: |
  
    ```{r, echo=FALSE, results='asis'}
    res <- knitr::knit_child(quiet = TRUE, 'executive-summary.Rmd')
    cat(res, sep = '\n')
    ```

Tuttavia, questo richiede alcune cose:

  • Che l'ambiente "ombreggiato" è definito nel preambolo di template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
  • Che executive-summary.Rmdsia definito e non abbia YAML e intestazione di livello 1 (l'intestazione "Riepilogo esecutivo" proviene dal file modello / classe)

È interessante notare che potrei semplicemente inserire il contenuto nella executivesummarysezione YAML (cioè saltare il rendering del documento figlio), ma le opzioni di blocchi di codice che includono stringhe a volte vengono analizzate come chiavi YAML in questo caso, il che causa il fallimento del rendering. Inoltre, i blocchi di codice rientrati di 2 spazi non ricevono alcun aiuto IDE per il controllo della sintassi o il completamento automatico.