Làm cách nào tôi có thể đặt bản tóm tắt điều hành trước TOC bằng cách sử dụng sổ sách?

Jan 15 2021

Tôi có một bookdowndự án với một tùy chỉnh template.texvà tùy chỉnh my-format.cls. Tôi có thể làm những việc như sau trong của tôi template.tex:

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

\tableofcontents

\begin{body}
...

và lấy phần tóm tắt để thực hiện định dạng tùy chỉnh của tôi. Điều này hoạt động một phần bởi vì nội dung của phần tóm tắt chỉ là một đoạn văn bản, có thể được đặt trong vấn đề hàng đầu của YAML.

Tuy nhiên, liệu có thể bao gồm một bản tóm tắt điều hành trước mục lục không?

Tôi biết tôi có thể sử dụng (trong của tôi index.Rmd)


# Executive Summary {-}

a summary here

# Introduction

this is the first numbered section

Nhưng trong trường hợp đó, mặc dù tiêu đề phần "Tóm tắt Điều hành" không được đánh số, nó vẫn xuất hiện sau TOC. Có thể sửa đổi template.texnhư vậy bằng cách sử dụng một cái gì đó như:

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

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

\tableofcontents

\begin{body}
...

Tôi có thể cắt bỏ nội dung (bao gồm số liệu / bảng / v.v.) từ phần tóm tắt điều hành không được đánh số (ngay cả khi nó phải đến từ một .Rmdtệp khác ) và gán nó cho một số biến (pandoc) có thể tham chiếu thay cho phần % If I insert summary content heretrên? Tôi cũng cần xóa nội dung tương tự này khỏi $body$biến (pandoc) được gán mặc định .

Trả lời

2 MattPollock Jan 15 2021 at 23:32

Cảm ơn @tarleb! Tôi nghi ngờ rằng tôi có thể nhận được những gì tôi muốn thông qua bộ lọc Lua, nhưng tôi nghĩ rằng tôi đã tìm thấy một cách dễ dàng hơn theo dòng câu trả lời của bạnhttps://stackoverflow.com/a/53885034/1785752

Trong index.RmdYAML tôi đã thêm

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

Tuy nhiên, điều này đòi hỏi một số điều:

  • Môi trường "Bóng mờ" được xác định trong phần mở đầu của template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
  • Đó executive-summary.Rmdlà định nghĩa và không có YAML và không có tiêu đề cấp 1 (tiêu đề "Tóm tắt điều hành" đến từ tệp mẫu / lớp)

Điều thú vị là tôi chỉ có thể đưa nội dung vào phần executivesummaryYAML (tức là bỏ qua phần hiển thị tài liệu con), nhưng các tùy chọn đoạn mã bao gồm các chuỗi đôi khi được phân tích cú pháp thành các khóa YAML trong trường hợp này, điều này khiến kết xuất không thành công. Ngoài ra, các đoạn mã thụt lề 2 dấu cách không có IDE trợ giúp để kiểm tra cú pháp hoặc tự động hoàn thành.