Как я могу поместить краткое изложение перед оглавлением, используя резервный запас?
У меня есть 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
Но в этом случае, даже если заголовок раздела «Сводное резюме» не пронумерован, он появляется после оглавления. Можно ли изменить так 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 (заголовок "Краткое изложение" взят из файла шаблона / класса)
Интересно, что я мог просто поместить контент в executivesummary
раздел YAML (т.е. пропустить рендеринг дочернего документа), но параметры фрагмента кода, которые включают строки, иногда в этом случае анализируются как ключи YAML, что приводит к сбою рендеринга. Кроме того, фрагменты кода с отступом в два пробела не получают помощи IDE для проверки синтаксиса или автозаполнения.