【问题标题】:rmarkdown to preserve line breaks in YAML header variable during exportrmarkdown 在导出期间保留 YAML 标头变量中的换行符
【发布时间】:2019-08-19 07:23:11
【问题描述】:

我正在将rmarkdown 文件导出到odthtmlpdf。但让我们先关注odt 导出。

我想要一个地址作为 YAML 标头的一部分:

---
title: Test Multi
address:
  First Name
  Institute
  Street
  City
output:
  odt_document:
    template: default.opendocument
---

# Just a test document
With some text

然后,此地址应作为“标头”的一部分导出。因此,我在default odt-template中加入了如下sn-p(另存为default.opendocument):

$if(address)$
<text:p text:style-name="Author">$address$</text:p>
$endif$

但在导出时,换行符会丢失:

this answer 之后,我尝试了管道

---
title: Test Multi
address: |
  | First Name
  | Institute
  | Street
  | City
output:
  odt_document:
    template: default.opendocument
---

# Just a test document
With some text

但是,该地址完全从 odt 中丢失。

所以,我的问题是:如何将 YAML 中的多行地址添加到导出并保留换行符?

PS:我正在使用rmarkdown 1.12pandoc-2.7.3

【问题讨论】:

    标签: r-markdown pandoc


    【解决方案1】:

    发生了两件事。

    1. 正如您所发现的,您需要 address: | 以使 YAML 不会吞噬您的换行符。
    2. 但是 pandoc 将字符串视为降价,pandoc's markdown by default 将段落内的换行符视为空格。但你可以逃脱它们:
    address: |
      First Name \
      Institute \
      Street \
      City
    

    【讨论】:

    • 感谢您对此进行调查。但是,它并没有为我解决:导出的 odt 中的地址仍然丢失。
    • 好的,我找到了。我不允许设置此样式,因为它将为我设置样式,并且我最终会嵌套 &lt;p&gt;。如果我将&lt;text:p text:style-name="Author"&gt;$address$&lt;/text:p&gt; 替换为$address$,这将适用于Rmd 中的语法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多