精简版的 R Markdown(求测试)
yihui 我想的是有一两个表格总结展示功能对比就好了,就好像 https://posit.co/products/open-source/rstudio/ 对比开源版和 Pro 版,不用详详细细的文档那么多,功能的详细介绍,让用户看文档就好了。现在有三套工具,作为一个刚接触的用户来说,可能会有点懵。他的工作可能用 markdown 包就可以搞定了,却走了 Quarto 的路子。
我试着划分几个维度,其一是输出格式对比(比如 HTML、LaTeX 等),其二是使用场景对比(比如文档报告、幻灯片展示等),其三是功能对比(比如 HTML 输出下,是否支持目录等)
最近两周增加了以下新功能:
:::
层,HTML 输出<div>
,LaTeX 输出\begin...\end...
环境。能用层之后 Markdown 就可以做很多额外的事情了。- 自包含(self-contained)HTML 文件的支持大大增强。九年前我向 Pandoc 建议提供一个选项,让 Pandoc 可以不要嵌入网络资源、只嵌入本地文件。当时作者没有采纳,但前几年他提供了一个蹩脚的办法,就是在网络资源的标签中加入
data-external="1"
的属性,这样 Pandoc 就可以不下载、嵌入它。如今我抄起键盘把这个功能在 markdown 包中实现了。当创建自包含 HTML 文件时,可选嵌入本地或网络文件或二者皆嵌入(参见文档中的embed_resources
选项)。 - 增强了 MathJax 支持,并新加了 KaTeX 支持。后者基本上可以本嵌入进自包含的 HTML 输出中,也就意味着离线也可以渲染数学公式。前者因为实在是太复杂了,目前只能部分嵌入。
- 增强了高亮工具 highlight.js 的支持,并新加了另一个高亮工具 Prism.js 的支持。后者我已经听说几年,但如今终于有动力研究了一下,因为我觉得 highlight.js 的基础库还是太臃肿,自带的三十多种语言里多数都是我不需要的(除了演示,谁会在一个页面上使用三十多种语言呢)。Prism 提供了一个只有几 K 的核心库,然后按需加载需要的语言支持,这一点正好符合我的需求。于是 markdown 的默认高亮工具变成了 Prism。
这下应该是没什么大的核心功能可加了。其它边边角角的功能估计我会用插件形式去做。
R Markdown 里输入中文经常会莫名其妙的换行,其实上一行还可以写好几个字的,不知道它为什么要换行呢,我不知道这个问题是不是只有我遇到了。
chuxinyuan 请提供一个如此莫名其妙的例子吧,如果没有可重复的例子,那么是很难猜的。
- 已编辑
yihui 是的,这里给出一个可重复的例子会更好点。只是每个人的 RStudio 设置的不一样……
---
title: "测试用例"
output: html_document
---
```{r}
#| echo: FALSE
abcdefghijklmn = 1
```
  当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;当圆的半径为`r abcdefghijklmn[1]`时,圆的面积为`r pi * abcdefghijklmn * abcdefghijklmn`,圆的周长周长为`r 2 * pi * abcdefghijklmn`;
编辑器会出现莫名其妙换行。
chuxinyuan 这个问题与本帖无关。简言之,编辑器的换行行为通常是以西文习惯为准的,也就是逢空格才考虑换行,这样做是为了避免分裂一个完整的单词。中文不以空格为分隔符,所以连续的中文字符会被当做一个“单词”。要是你觉得实在辣眼睛,不妨切换到 RStudio 的可视化编辑器。
yihui 如此看来,是编辑器的问题。问题不大,对编织的文档结果没影响就行,谢谢答疑解惑。
dapengde 审美疲劳是一方面。另一方面是维护起来太累了,这跟生娃太像了,生之前往往体会不到原来生下来之后要费这么大劲去养。现在体会到了无穷尽的新功能要花那么多时间和精力去维护,我压根儿就不想去把它们开发出来了,因为那些破功能都特么太占用我养娃的时间和精力……
刚刚把新一版的 markdown 包发上了 CRAN:https://cran.r-project.org/package=markdown 宣布主要功能已经集结完毕,接下来应该不会有大动作了。最近主要花时间写了几篇文档,敲键盘敲得现在我小指都酸了。
- 入门(或入坑)介绍:https://cran.r-project.org/package=markdown/vignettes/intro.html
- 幻灯片的花式玩法:https://cran.r-project.org/package=markdown/vignettes/slides.html
- 文章样式:https://cran.r-project.org/package=markdown/vignettes/article.html
我记得你大前年好像问过(若不是你就是湘云,我记不清了)是不是可以把 hugo-prose 的样式搬进 R Markdown,当时我说可以考虑。这两天我也挑灯夜战把里面的 CSS 和 JS 抽离出来,可以复用了。上面的第三篇文档就是一个演示,还用我的黄瓜架子当了超宽图片的例子。这一阵高强度脑力劳动结束,明天我也要去园子里翻地种菜了。这边的春天终于来了。