knitr / markdown:如何在CRAN构建的小插图中渲染数学方程式?

时间:2016-10-03 18:08:37

标签: rstudio knitr r-markdown pandoc mathjax

在一个软件包中,我有几个使用数学符号的小插图,如:

This vignette illustrates the ideas behind solving systems of linear equations of the form $\mathbf{A x = b}$
where 

- $\mathbf{A}$ is an $m \times n$ matrix of coefficients for $m$ equations in $n$ unknowns
- $\mathbf{x}$ is an $n \times 1$ vector unknowns, $x_1, x_2, \dots x_n$
- $\mathbf{b}$ is an $m \times 1$ vector of constants, the "right-hand sides" of the equations

当我使用R Studio( Ctrl + Shift + K )编译晕影时,它会在HTML文件中正确呈现,无论是否已查看在R Studio查看器或浏览器中。

enter image description here

然而,当包被提交给CRAN,并且源包中的那里时,数学不能正确呈现,但显示为标记,

enter image description here

我是否需要添加到我的YAML标题中以便在R Studio之外构建的晕影能够正确地呈现数学?目前,我只使用标准标题:

---
title: "Solving Linear Equations"
author: "Me"
date: "`r Sys.Date()`"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Solving Linear Equations}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

R Studio生成的pandoc命令是

"C:/Program Files/RStudio/bin/pandoc/pandoc" +RTS -K512m -RTS linear-equations.utf8.md --to html --from markdown+autolink_bare_uris+ascii_identifiers+tex_math_single_backslash --output pandoc8141d044063.html --smart --email-obfuscation none --self-contained --standalone --section-divs --template "C:\R\R-3.2.5\library\rmarkdown\rmd\h\default.html" --css "C:\R\R-3.2.5\library\rmarkdown\rmarkdown\templates\html_vignette\resources\vignette.css" --mathjax --variable "mathjax-url:https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML" --highlight-style pygments 

也许我需要添加与--self-contained--standalone对应的YAML选项?

1 个答案:

答案 0 :(得分:0)

过几年后发布,以防其他用户有相同的问题。我注意到在小插图中呈现方程式时遇到了同样的问题-不在CRAN上,只是在本地托管的程序包上。 Ctrl + Shift + K可以很好地显示,但是在RStudio帮助面板中使用vignette()进行查看会严重影响方程式。

我认为这只是“帮助”面板不能完全呈现HTML的问题。如果我在浏览器中查看打包的小插图,例如使用RShowDoc(),则方程式很好。因此,也许应该比RShowDoc()更频繁地将用户定向到vignette()