북 다운을 사용하여 TOC 앞에 요약 요약을 넣으려면 어떻게해야합니까?

Jan 15 2021

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

그러나이 경우 "Executive Summary"섹션 머리글에 번호가 지정되어 있지 않더라도 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있습니까? 또한 기본 할당 (pandoc) 변수 에서이 동일한 콘텐츠를 제거 해야 $body$합니다.

답변

2 MattPollock Jan 15 2021 at 23:32

감사합니다 @tarleb! Lua 필터를 통해 원하는 것을 얻을 수 있다고 생각하지만 귀하의 답변 라인을 따라 더 쉬운 방법을 찾은 것 같습니다https://stackoverflow.com/a/53885034/1785752

에서 index.RmdYAML I 추가

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 헤더 (이하 "요약"제목 템플릿 / 클래스 파일에서 유래)가 없다

흥미롭게도 YAML 섹션 에 콘텐츠를 넣을 executivesummary 있지만 (즉, 하위 문서 렌더링 건너 뛰기)이 경우 문자열을 포함하는 코드 청크 옵션이 때때로 YAML 키로 구문 분석되어 렌더링이 실패합니다. 또한 2 칸 들여 쓰기 된 코드 청크는 구문 검사 또는 자동 완성에 대한 IDE 도움말을 얻지 못합니다.