Wie kann ich mithilfe von Bookdown eine Zusammenfassung vor das Inhaltsverzeichnis stellen?
Ich habe ein bookdown
Projekt mit einem Brauch template.tex
und einem Brauch my-format.cls
. Ich kann in meinem Fall Folgendes tun template.tex
:
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
\tableofcontents
\begin{body}
...
und erhalten Sie die Zusammenfassung, um meine benutzerdefinierte Formatierung zu übernehmen. Dies funktioniert teilweise, weil der Inhalt des Abstracts nur ein Textabschnitt ist, der in die YAML-Titelseite eingefügt werden kann.
Ist es jedoch möglich, vor dem Inhaltsverzeichnis eine Zusammenfassung einzufügen ?
Ich weiß, dass ich (in meinem index.Rmd
) verwenden kann
# Executive Summary {-}
a summary here
# Introduction
this is the first numbered section
In diesem Fall wird der Abschnittskopf "Executive Summary" zwar nicht nummeriert, aber nach dem Inhaltsverzeichnis angezeigt. Ist es möglich, das template.tex
so zu ändern , dass mit etwas wie:
$if(abstract)$
\begin{abstract}
$abstract$
\end{abstract}
$endif$
$if(executive_summary)$
\begin{executivesummary}
% insert summary content here
\end{executivesummary}
$endif$
\tableofcontents
\begin{body}
...
Ich kann den Inhalt (einschließlich Abbildungen / Tabellen / etc.) Aus einem nicht nummerierten Abschnitt der Zusammenfassung (auch wenn er aus einer anderen .Rmd
Datei stammen muss) entfernen und ihn einer (Pandoc-) Variablen zuweisen, auf die anstelle der % If I insert summary content here
oben genannten verweisen könnte . Ich müsste auch diesen gleichen Inhalt entfernt von dem Standard zugeordnet (pandoc) $body$
variabel.
Antworten
Danke @tarleb! Ich vermute, dass ich über einen Lua-Filter das bekommen könnte, was ich will, aber ich glaube, ich habe einen einfacheren Weg gefunden, der Ihrer Antwort entsprichthttps://stackoverflow.com/a/53885034/1785752
In der index.Rmd
YAML habe ich hinzugefügt
executivesummary: |
```{r, echo=FALSE, results='asis'}
res <- knitr::knit_child(quiet = TRUE, 'executive-summary.Rmd')
cat(res, sep = '\n')
```
Dies erfordert jedoch einige Dinge:
- Dass die "Shaded" -Umgebung in der Präambel von definiert ist
template.tex
$if(highlighting-macros)$
$highlighting-macros$
$endif$
- Dass das
executive-summary.Rmd
definiert ist und keine YAML und keinen Level 1-Header hat (die Überschrift "Executive Summary" stammt aus der Vorlagen- / Klassendatei)
Interessanterweise könnte ich einfach Inhalte in den executivesummary
YAML-Abschnitt einfügen (dh das Rendern von untergeordneten Dokumenten überspringen), aber Code-Chunk-Optionen, die Zeichenfolgen enthalten, werden in diesem Fall manchmal als YAML-Schlüssel analysiert, was dazu führt, dass das Rendern fehlschlägt. Außerdem erhalten 2-Leerzeichen-eingerückte Codeblöcke keine IDE-Hilfe für die Syntaxprüfung oder die automatische Vervollständigung.