在R markdown中生成下标

59

我知道R Markdown可以生成上标:

text^superscript

但是生成正确的下标是否可能?或者唯一的方法是欺骗并使用LaTeX数学模式吗:

$\sf{text_{subscript}}$

预期的最终输出是 HTML。


5
我不这么认为——R markdown 使用的 markdown 包已启用了“上标” markdown 扩展,但我不记得有“下标”的扩展。由于预期的输出是 HTML,您可以直接嵌入 HTML(text<sub>superscript</sub>),但这对于 markdown 文档并不理想。肯定存在 markdown 下标的扩展,但我不确定 R 的 markdown 包如何加载它们(即如何添加现有的扩展)。 - mathematical.coffee
1
@mathematical.coffee 这次是针对HTML文档的,所以<sub>标签可以很好地工作,但有时我会使用pandoc将Markdown文档转换为多种不同的文件类型。 - sebastian-c
1
text~subscript~text^superscript^ 的翻译如下:H2O 是一种液体。2^10^ 等于 1024。 - swihart
1
@swihart,这基本上就是下面Roger的答案。 - sebastian-c
4个回答

47

R Markdown下标功能表现正常。

也许这是一篇旧帖子。我正在Mac上使用RStudio版本0.99.902+ R版本3.4。

下标:H~2~O是一种液体。
上标:2^10^等于1024。

同样的例子


3
没问题,你可以看到这个问题是在2013年提出的(在RStudio时代算是史前时期了)。有更新是件好事。 - Ben Bolker
4
我认为这应该标记为被接受的答案。略微相关的是:如果你想在R Studio中使用papaja来生成上下标,你需要在字符串末尾添加一个额外的符号。即 H~2~R^2^ - Mikko
2
2020年更新:这个答案对我有用。要获取下标,请使用H~2~ - nniloc
жҲ‘дёҚжҳҺзҷҪгҖӮrmarkdownзҡ„еҶ…йғЁеҮҪж•°pandoc_convertдјҡиҝ”еӣһ$\delta_{0}$пјҢдҪҶеҰӮжһңиҰҒжүӢеҠЁе®ҢжҲҗпјҢдҪ йңҖиҰҒдҪҝз”ЁОҙ~0~зҡ„зәҰе®ҡеҗ—пјҹ - aiorr

33

既然你在评论中提到了Pandoc,也许依赖于Pandoc的扩展来实现下标和上标并不算作欺骗。从这里,我们可以创建一个最小化的Rmd文件示例:

Testing Subscript and Superscript
========================================================

This is an R Markdown document. 

Pandoc includes numerous extensions to markdown, and one 
of them is *subscript* and *superscript*.

Here's the example from the Pandoc help page 
(http://johnmacfarlane.net/pandoc/README.html#superscripts-and-subscripts): 
H~2~O is a liquid.  2^10^ is 1024.

For fun, here's an R code block with some code from @Spacedman:

```{r}
list.depth <- function(this, thisdepth = 0) {
# https://dev59.com/9WYr5IYBdhLWcg3wvslA#13433689
  if(!is.list(this)) {
    return(thisdepth)
  } else {
    return(max(unlist(lapply(this, list.depth, thisdepth = thisdepth+1))))    
  }
}
```
使用Knitr会生成一个HTML文件,渲染结果如下所示: 图片描述 显然这个不起作用。但是你可以在生成的Markdown文件上运行pandoc(我将其命名为“Subscripts.md”): pandoc -o Subscripts.html Subscripts.md -s -S 然后你会得到下面的内容: 图片描述 CSS文件不同,但也许你可以使用自定义CSS参数调用pandoc来使用与Knitr相同的CSS。
PDF文件中的下标也可以按预期在该Markdown文件中工作: pandoc -o Subscripts.pdf Subscripts.md 图片描述 编辑
如果您希望pandoc输出与使用RStudio编织时的输出视觉外观匹配,请下载RStudio使用的CSS文件此处并在从pandoc创建HTML文件时引用该文件。(以下假设您将名称保留为markdown.css,并且它与其他文件位于同一目录中。) pandoc -o Subscripts.html Subscripts.md -s -S --css=markdown.css

8

我发现在RStudio中编译Rmarkdown时,使用下标的X~j~语法是有效的。但是,如果你在一个shiny应用程序中嵌入编译,它就无效了。在我的应用程序中,

  knit2html("Steps.Rmd")
  browseURL("Steps.html")

除了下标之外,一切正常。但是使用普通的HTML下标语法可以在Rmd文档中工作,无论是在RStudio中还是从闪亮应用程序中:X<sub>j</sub>呈现为Xj


2

对于 R 版本 4.0.2 (2020-06-22),这个方法适用:

Subscript H~2~O~
Superscript R^2^

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接