我有一个使用DiagrammeR
的mermaid工作流程图的rmarkdown演示文稿(ioslides),其中包含3个幻灯片。以下文件保存为.Rmd可以重现这个例子(至少在我的机器上,希望你的机器也可以):
---
title: "Untitled"
author: "author"
date: "28 de enero de 2018"
output: ioslides_presentation
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
require(DiagrammeR)
```
## DiagrammeR's mermaid
It's not producing consistent results in slides when using line breaks.
```{r flow}
mermaid("
graph LR
C(CLIENTES <br>Clients) --> D[Doctors]
U(USUARIOS <br>Users <br>Patients <br>Nurses) --> D
D --> S(SALIDAS <br>Medicines <br>Surgery)
style C fill: #f5f5dc
style D fill: #4682b4
style U fill: #ffe4c4
")
```
## Second attempt
```{r flow2}
mermaid("
graph LR
C(CLIENTES <br>Clients) --> D[Doctors]
U(USUARIOS <br>Users <br>Patients <br>Nurses) --> D
D --> S(SALIDAS <br>Medicines <br>Surgery)
")
```
## Third attempt
```{r flow3}
mermaid("
graph LR
C(CLIENTES <br>Clients) --> D[Doctors]
U(USUARIOS <br>Users <br>Patients <br>Nurses) --> D
D --> S(SALIDAS <br>Medicines <br>Surgery)
style C fill: #f5f5dc
style D fill: #4682b4
style U fill: #ffe4c4
")
```
运行时,它会产生两个正常大小的图表和一个小图表。我注意到的事情:
- 最后一个修改的块(输入或删除的文本,甚至是回车符),会被正确显示(如果我"触摸"它们的树状结构,通常第一个会显示错误)
cache = FALSE
或cache = TRUE
没有任何区别- 在mermaid声明的行之间添加额外换行不起作用(建议解决方案在这里)
- 插入或删除样式声明没有任何区别
- 使用的浏览器没有任何区别(最初在RStudio浏览器中查看,但如果在火狐浏览器中查看,显示也会出错)
- 将演示输出
ioslides
更改为slidy
,它就能工作(那是我的备选方案,但如果有解决方法,我更喜欢ioslides)。
R.Version
和Sys.info
的相关部分:
> Sys.info()
sysname
"Linux"
release
"4.9.0-5-amd64"
version
"#1 SMP Debian 4.9.65-3+deb9u2 (2018-01-04)"
nodename
"pavos"
machine
"x86_64"
## R and packages Versions
> R.Version()
$`svn rev`
[1] "73796"
$version.string
[1] "R version 3.4.3 (2017-11-30)"
$nickname
[1] "Kite-Eating Tree"
> packageVersion("DiagrammeR")
[1] ‘0.9.2’
> packageVersion("rmarkdown")
[1] ‘1.8’
我期望的是:在ioslides输出中,所有幻灯片上都能够呈现一致、完整尺寸和正确颜色的图表。谢谢。
DiagrammeR 1.0.1
和rmarkdown 1.16
。 - Andrew Chisholm