Producing subscripts in R markdown

Since you mention Pandoc in your comments, maybe it’s not cheating to depend on Pandoc’s extensions for subscript and superscript. From here, we can create a minimal example Rmd file:

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) {
# http://stackoverflow.com/a/13433689/1270695
  if(!is.list(this)) {
    return(thisdepth)
  } else {
    return(max(unlist(lapply(this, list.depth, thisdepth = thisdepth+1))))    
  }
}
```

Using Knitr results in an HTML file that renders like this:

That clearly doesn’t work. But you can run pandoc on the resulting markdown file (which I’ve named “Subscripts.md”):

pandoc -o Subscripts.html Subscripts.md -s -S

and you’ll get this:

The CSS is different, but perhaps you can call pandoc with a custom CSS argument to use the same CSS used by Knitr.

Subscripts in PDF files also work as expected with that markdown file:

pandoc -o Subscripts.pdf Subscripts.md


Edit

If you want the pandoc output to match the visual appearance of the output when you knit with RStudio, download the CSS file that RStudio uses here and make a reference to that file when you create your HTML file from pandoc. (The following assumes you have kept the name as markdown.css an it is in the same directory as your other files.)

pandoc -o Subscripts.html Subscripts.md -s -S --css=markdown.css

Leave a Comment