【问题标题】:Using a section as abstract in latex template在乳胶模板中使用部分作为摘要
【发布时间】:2020-11-29 17:19:36
【问题描述】:

我想创建一个带有摘要的降价报告,其中可以包含报告本身生成的数据。将摘要定义为 yaml 标头中的字符串的常用方法对我不起作用。

基本上,我希望文档的某些部分具有如下内容:

## Abstract

Lorem impsum this is the abstract

```{r, fig.cap = "figure in the abstract"}
plot(pressure)
```

然后在latex文档中有这样的东西

\begin{abstract}
Lorem impsum this is the abstract 
\begin{figure}
\centering
\includegraphics{unnamed-chunk-1-1.pdf}
\caption{figure in the abstract}
\end{figure}
\end{abstract}

理想情况下,这将通过类似的东西来完成

\begin{abstract}
$body.abstract$   
\end{abstract}

在乳胶模板中。但我面临的问题是,对于 Pandoc,knitr 呈现的所有内容都是 $body$ 变量的一部分,所以我不知道如何访问特定部分的内容。

作为一种解决方法,创建一个单独的 abstract.Rmd 文件,该文件编译成乳胶片段,然后使用

\begin{abstract}
\input{abstract.tex}
\end{abstract}

有效。但它涉及记住首先编译该文件,并用额外的 LaTeX 文件污染目录。既然这肯定会给预期的用户带来错误和混乱,我想避免它。

我要求的可能吗?

【问题讨论】:

    标签: r knitr pandoc


    【解决方案1】:

    听起来像 abstract-to-meta Lua filter 应该完全符合您的需要。

    这会将文档的摘要从正文移到元数据中。

    下载abstract-to-meta.lua 文件并将其放置在R Markdown 文件旁边的项目目录中。然后确保通过在元数据中添加 pandoc_args 字段来调用它:

    ---
    output: 
      pdf_document:
        pandoc_args: ["--lua-filter=abstract-to-meta.lua"]
    ---
    

    【讨论】:

    • 谢谢!这就像一个魅力。作为一种解决方法,我在 R 中创建了一些非常相似的东西。
    猜你喜欢
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多