很容易在Markdown文档中编写TeX公式并将其转换为实际的排版公式using pandoc (版本1.18),无论是在LaTeX文档中还是在HTML文档中(通过MathJax):对于内联公式,使用$...$
中的环绕数学;对于块公式,使用$$...$$
。
但是,使用像%
这样的特殊字符的MathJax和TeX语法似乎有所不同。例如,考虑以下示例文档:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
$$\text{\% change} = \frac{x_2 - x_1}{x_1} \times 100$$
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
使用以下命令通过LaTeX将其转换为PDF
pandoc test.md -o test.pdf
正确地生成一个未转义的百分号:
但是,使用MathJax使用以下命令将同一文档转换为HTML语言
pandoc test.md -s --mathjax -o test.html
错误地生成转义百分号:
目前,在将文档转换为PDF/HTML之前,我一直在手动转义/取消转义百分号,这似乎违背了拥有一个可以转换为任何格式的主Markdown文档的目的。
在TeX和MathJax中处理转义百分号的正确方法是什么?MathJax中是否有允许对特殊字符进行转义的设置?我需要告诉LaTeX在数学模式下接受未转义的百分号吗?
发布于 2017-05-24 11:38:17
(我知道这没有标记在R下,但我知道Andrew是一个狂热的R和Rmarkdown用户,所以我希望这就足够了。)
这可以使用Rmarkdown和knitr实现。下面的脚本在使用rmarkdown::render
呈现时会生成所需的输出。我还创建了一个gist of the script。
---
title: TEST
output:
pdf_document:
latex_engine: xelatex
html_document:
fig_caption: true
---
```{r, echo = FALSE}
knitr::opts_chunk$set(
折叠= TRUE,
echo = TRUE,
cache = FALSE,
comment = "#>",
fig.path =“fig”,
fig.pos = "h“
)
这将检查输出格式是什么
函数<- getOutputFormat (){
knitr::opts_knit$get("rmarkdown.pandoc.to")
}
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
```{r, warning=FALSE, message=FALSE, echo=FALSE, eval=TRUE, results='asis'}
S <-“更改{\%$$\text}= \frac{x_2 - x_1}{x_1} \次100$$”
if(getOutputFormat() == ' html ') s <- gsub('\\%','%',s) #如果html不转义
knitr::asis_output(s)
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
https://stackoverflow.com/questions/44135917
复制相似问题