¿Cómo puedo poner un resumen ejecutivo antes del TOC usando bookdown?

Jan 15 2021

Tengo un bookdownproyecto con un diseño personalizado template.texy personalizado my-format.cls. Puedo hacer cosas como las siguientes en mi template.tex:

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

\tableofcontents

\begin{body}
...

y obtener el resumen para tomar mi formato personalizado. Esto funciona en parte porque el contenido del resumen es solo un párrafo de texto, que se puede colocar en la portada de YAML.

Sin embargo, ¿es posible incluir un resumen ejecutivo antes del índice ?

Sé que puedo usar (en mi index.Rmd)


# Executive Summary {-}

a summary here

# Introduction

this is the first numbered section

Pero en ese caso, aunque el encabezado de la sección "Resumen ejecutivo" no está numerado, aparece después del TOC. ¿Es posible modificar el template.textal que usando algo como:

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

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

\tableofcontents

\begin{body}
...

¿Puedo extraer el contenido (incluidas figuras / tablas / etc.) de una sección de resumen ejecutivo sin numerar (incluso si tiene que provenir de un .Rmdarchivo diferente ) y asignarlo a alguna variable (pandoc) que podría hacer referencia en lugar de la % If I insert summary content hereanterior? También necesitaría que se elimine este mismo contenido de la $body$variable asignada predeterminada (pandoc) .

Respuestas

2 MattPollock Jan 15 2021 at 23:32

¡Gracias @tarleb! Sospecho que podría obtener lo que quiero a través de un filtro Lua, pero creo que encontré una manera más fácil de seguir las líneas de su respuesta.https://stackoverflow.com/a/53885034/1785752

En el index.RmdYAML agregué

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

Sin embargo, esto requiere algunas cosas:

  • Que el entorno "sombreado" se define en el preámbulo de template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
  • Que executive-summary.Rmdestá definido y no tiene YAML ni encabezado de nivel 1 (el encabezado "Resumen ejecutivo" proviene del archivo de plantilla / clase)

Curiosamente, podría simplemente poner contenido en la executivesummarysección YAML (es decir, omitir la representación del documento secundario), pero las opciones de fragmentos de código que incluyen cadenas a veces se analizan como claves YAML en este caso, lo que hace que la representación falle. Además, los fragmentos de código con sangría de 2 espacios no reciben ayuda del IDE para la verificación de sintaxis o el autocompletado.