Rmarkdown YAML中的引号和内联R代码

时间:2018-07-12 02:03:18

标签: r r-markdown

我想在R markdown文档的标题/副标题中添加一些特殊字体,但是根据使用的引号类型,我得到的结果会有所不同。

这是一个小R降价示例,显示了我的问题。我想在twitter句柄之前将twitter徽标打印为R markdown字幕的一部分。

---
title: "Untitled"
subtitle: '`r fontawesome::fa("twitter", fill = "steelblue")` @twitter handle'
author: "My Name"
date: "7/12/2018"
output: html_document
---

This is it.

如果我使用单引号,那么我几乎可以得到想要的结果。徽标和Twitter句柄之间有一个换行符,如下所示,但这很好-由于徽标设置在<svg> ... </svg>内,因此可以使用CSS进行修复。

但是,如果我使用双引号,那么事情就很麻烦了:

subtitle: "`r fontawesome::fa('twitter', fill = 'steelblue')` @twitter handle"
现在,在最终的html文档中出现了

现在 none 的YAML信息。我猜想它与this question on entering the current date as part of the yaml或可能与this post where the YAML inline code doesn't run有关,但我很好奇为什么在YAML中引用类型的更改对呈现,因为双引号显然适用于其他YAML参数。

我正在使用rmarkdown v1.10。

enter image description here

1 个答案:

答案 0 :(得分:1)

fontawesome::fa()函数返回一个SVG元素。
例如,fontawesome::fa("twitter", fill = "steelblue")返回的字符串是:

<svg style="height:0.8em;top:.04em;position:relative;fill:steelblue;" viewBox="0 0 512 512">
  <path d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"/>
</svg>

此字符串包含双引号:这就是为什么单引号导致正确的结果而双引号的效果不佳的原因。 很明显,您是否使用markdown选项检查了中间keep_md文件:

---
title: "Untitled"
subtitle: "`r fontawesome::fa('twitter', fill = 'steelblue')` @twitter handle"
author: "My Name"
date: "7/12/2018"
output: 
  html_document:
    keep_md: true
---

可以使用YAML literalfolded块来消除这些引用注意事项:

subtitle: |
    `r fontawesome::fa('twitter', fill = 'steelblue')` @twitter handle

subtitle: >
    `r fontawesome::fa('twitter', fill = 'steelblue')` @twitter handle