Bagaimana saya bisa meletakkan ringkasan eksekutif sebelum TOC menggunakan bookdown?

Jan 15 2021

Saya punya bookdownproyek dengan custom template.texdan custom my-format.cls. Saya dapat melakukan hal-hal seperti berikut ini di template.tex:

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

\tableofcontents

\begin{body}
...

dan dapatkan abstrak untuk mengambil pemformatan kustom saya. Ini berfungsi sebagian karena konten abstrak hanyalah satu paragraf teks, yang dapat ditempatkan di materi depan YAML.

Namun, apakah mungkin untuk memasukkan ringkasan eksekutif sebelum daftar isi ?

Saya tahu saya bisa menggunakan (dalam saya index.Rmd)


# Executive Summary {-}

a summary here

# Introduction

this is the first numbered section

Namun dalam kasus tersebut meskipun header bagian "Ringkasan Eksekutif" tidak diberi nomor, ia muncul setelah TOC. Apakah mungkin untuk memodifikasi template.texsedemikian rupa menggunakan sesuatu seperti:

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

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

\tableofcontents

\begin{body}
...

Saya dapat mengupas konten (termasuk gambar / tabel / dll.) Dari bagian ringkasan eksekutif yang tidak dinomori (bahkan jika harus berasal dari .Rmdfile yang berbeda ) dan menetapkannya ke beberapa variabel (pandoc) yang dapat menjadi referensi sebagai pengganti di % If I insert summary content hereatas? Saya juga ingin konten yang sama ini dihapus dari $body$variabel default yang ditetapkan (pandoc) .

Jawaban

2 MattPollock Jan 15 2021 at 23:32

Terima kasih @tarleb! Saya curiga saya bisa mendapatkan apa yang saya inginkan melalui filter Lua, tetapi saya rasa saya menemukan cara yang lebih mudah di sepanjang garis jawaban Andahttps://stackoverflow.com/a/53885034/1785752

Di index.RmdYAML saya menambahkan

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

Ini membutuhkan beberapa hal:

  • Bahwa lingkungan "Berbayang" didefinisikan dalam pembukaan template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
  • Itu executive-summary.Rmdsudah ditentukan, dan tidak memiliki YAML dan tidak ada header tingkat 1 (judul "Ringkasan Eksekutif" berasal dari file template / kelas)

Menariknya, saya bisa saja meletakkan konten di bagian executivesummaryYAML (yaitu, melewatkan rendering dokumen anak), tetapi opsi potongan kode yang menyertakan string terkadang diurai sebagai kunci YAML dalam kasus ini, yang menyebabkan rendering gagal. Selain itu, potongan kode berlekuk 2 ruang tidak mendapatkan bantuan IDE untuk pemeriksaan sintaks atau pelengkapan otomatis.