ฉันจะใส่บทสรุปสำหรับผู้บริหารก่อน TOC โดยใช้ bookdown ได้อย่างไร?
ฉันมีbookdown
โครงการกับที่กำหนดเองและกำหนดเองtemplate.tex
my-format.cls
ฉันสามารถทำสิ่งต่างๆดังต่อไปนี้ในtemplate.tex
:
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
\tableofcontents
\begin{body}
...
และรับบทคัดย่อเพื่อจัดรูปแบบที่กำหนดเองของฉัน ส่วนหนึ่งทำงานได้เนื่องจากเนื้อหาของบทคัดย่อเป็นเพียงย่อหน้าเดียวของข้อความซึ่งสามารถวางไว้ในเนื้อหาส่วนหน้าของ YAML
แต่ก็เป็นไปได้ที่จะมีบทสรุปผู้บริหารก่อนสารบัญ ?
ฉันรู้ว่าฉันสามารถใช้ (ในตัวฉันindex.Rmd
)
# Executive Summary {-}
a summary here
# Introduction
this is the first numbered section
แต่ในกรณีนั้นแม้ว่าส่วนหัว "บทสรุปสำหรับผู้บริหาร" จะไม่ได้ระบุหมายเลขไว้ แต่จะปรากฏอยู่หลัง TOC เป็นไปได้หรือไม่ที่จะแก้ไขสิ่งtemplate.tex
นั้นโดยใช้สิ่งต่างๆเช่น:
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$if(executive_summary)$
\begin{executivesummary}
% insert summary content here
\end{executivesummary}
$endif$
\tableofcontents
\begin{body}
...
ฉันสามารถลอกเนื้อหาออก (รวมถึงตัวเลข / ตาราง / ฯลฯ ) จากส่วนสรุปสำหรับผู้บริหารที่ไม่มีตัวเลข (แม้ว่าจะต้องมาจาก.Rmd
ไฟล์อื่นก็ตาม) และกำหนดให้กับตัวแปร (pandoc) บางตัวที่สามารถอ้างอิงแทน% If I insert summary content here
ด้านบนได้หรือไม่ ฉันต้องการให้นำเนื้อหาเดียวกันนี้ออกจาก$body$
ตัวแปรที่กำหนดเริ่มต้น (pandoc)
คำตอบ
ขอบคุณ @tarleb! ฉันสงสัยว่าฉันจะได้รับสิ่งที่ต้องการผ่านตัวกรอง Lua แต่ฉันคิดว่าฉันพบวิธีที่ง่ายกว่าสำหรับคำตอบของคุณhttps://stackoverflow.com/a/53885034/1785752
ในindex.Rmd
YAML ฉันเพิ่ม
executivesummary: |
```{r, echo=FALSE, results='asis'}
res <- knitr::knit_child(quiet = TRUE, 'executive-summary.Rmd')
cat(res, sep = '\n')
```
สิ่งนี้ต้องการบางสิ่ง:
- สภาพแวดล้อม "แรเงา" ถูกกำหนดไว้ในคำนำหน้า
template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
- ที่
executive-summary.Rmd
กำหนดไว้และไม่มี YAML และไม่มีส่วนหัวระดับ 1 (ส่วนหัว "Executive Summary" มาจากไฟล์ template / class)
ที่น่าสนใจคือฉันสามารถใส่เนื้อหาในexecutivesummary
ส่วน YAML ได้ (เช่นข้ามการแสดงผลเอกสารย่อย) แต่ตัวเลือกกลุ่มโค้ดที่รวมสตริงบางครั้งจะถูกแยกวิเคราะห์เป็นคีย์ YAML ในกรณีนี้ซึ่งทำให้การเรนเดอร์ล้มเหลว นอกจากนี้โค้ดที่เยื้อง 2 ช่องว่างจะไม่ได้รับความช่วยเหลือ IDE สำหรับการตรวจสอบไวยากรณ์หรือการเติมข้อความอัตโนมัติ