首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在带有pandoc标记的TeX和MathJax中使用转义百分号

在带有pandoc标记的TeX和MathJax中使用转义百分号
EN

Stack Overflow用户
提问于 2017-05-23 21:14:06
回答 1查看 4.8K关注 0票数 2

很容易在Markdown文档中编写TeX公式并将其转换为实际的排版公式using pandoc (版本1.18),无论是在LaTeX文档中还是在HTML文档中(通过MathJax):对于内联公式,使用$...$中的环绕数学;对于块公式,使用$$...$$

但是,使用像%这样的特殊字符的MathJax和TeX语法似乎有所不同。例如,考虑以下示例文档:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
pandoc test.md -o test.pdf

正确地生成一个未转义的百分号:

但是,使用MathJax使用以下命令将同一文档转换为HTML语言

代码语言:javascript
运行
复制
pandoc test.md -s --mathjax -o test.html

错误地生成转义百分号:

目前,在将文档转换为PDF/HTML之前,我一直在手动转义/取消转义百分号,这似乎违背了拥有一个可以转换为任何格式的主Markdown文档的目的。

在TeX和MathJax中处理转义百分号的正确方法是什么?MathJax中是否有允许对特殊字符进行转义的设置?我需要告诉LaTeX在数学模式下接受未转义的百分号吗?

EN

回答 1

Stack Overflow用户

发布于 2017-05-24 11:38:17

(我知道这没有标记在R下,但我知道Andrew是一个狂热的R和Rmarkdown用户,所以我希望这就足够了。)

这可以使用Rmarkdown和knitr实现。下面的脚本在使用rmarkdown::render呈现时会生成所需的输出。我还创建了一个gist of the script

代码语言:javascript
运行
复制
---
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")

}

代码语言:javascript
运行
复制
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)

代码语言:javascript
运行
复制
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44135917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档