当前位置: 首页 > 知识库问答 >
问题:

在TeX和MathJax中使用转义百分比符号,并使用pandoc标记

岑毅庵
2023-03-14

在降价文档中编写TeX公式并使用pandoc(1.18版)将其转换为实际的排版公式很容易,可以是PDF文档(通过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/超文本标记语言之前,我一直在手动转义/取消转义百分比符号,这似乎违背了拥有可以转换为任何格式的主标记文档的目的。

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


共有1个答案

长孙沈义
2023-03-14

(我知道这不是标记在[R]下,但我知道安德鲁是一个狂热的R和Rmarkdown用户,所以我希望这将足够。)

这可以使用Rmarkdown和knitr实现。下面的脚本在使用rmarkdown::render渲染时生成所需的输出。我还创建了脚本的要点。

---
title: TEST
output:
    pdf_document:
        latex_engine: xelatex
    html_document:
        fig_caption: true
---

```{r, echo = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  echo = TRUE,
  cache = FALSE,
  comment = "#>",
  fig.path = "fig-",
  fig.pos = "h"
)

# this will check what the output format is going to be
getOutputFormat <- function() {
  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{\\% change} = \\frac{x_2 - x_1}{x_1} \\times 100$$"
if(getOutputFormat() == 'html') s <- gsub('\\\\%', '%', s) # dont escape if html
knitr::asis_output(s)
```

Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
 类似资料:
  • 我试着用pandoc在html或epub中转换我的tex文件。它不是一个复杂的带数学格式的乳胶文件。它有点像一本书。 但是我有一个问题。当我用转换pdf中的文件时,所有文件都可以。但是当我使用 或 pandocbook.texbook.epub 就好像没有汇编一样<代码> 事实上,这就像我做了一个简单的复制和粘贴,没有命令。

  • 我需要将Latex文件(使用TexWorks中的Elsevier elsarticle类编写)转换为MS Word文档。我搜索了可能的路线,其中之一就是使用。我在命令提示符下用pandoc尝试了以下操作, 潘多克将文件转换成word文档;然而,一些信息,如标题、关键词、作者详细信息等,却丢失了。对于这个丢失的信息,搜索结果显示它将在元数据中,但我在elsarticle类中找不到任何元数据文件。 我

  • 当我在Pandoc中阅读Markdown时,我如何禁用TeX的东西?我有许多标记文件,我正在处理,但由于文本的存在,它在其中一些文件上窒息,这显然是使用标记式语法。 由于我在这些文本中没有使用任何数学或奇特的排版,我宁愿禁用这种解释,也不愿试图找出正确的方法来逃避实际上触发它的序列。 但如果这不可能,我很想知道逃离@的“正确”方式,不管是什么正确方式。可能是“@”?还是有更多我不知道的德克萨斯式语

  • 我有一个html文档 在一些段落中,我有 我希望带$符号的文本使用KaTeX呈现为TeX math。 问题是,如果我想在浏览器中使用它,我必须使用 所以我需要分配一个元素。 那么,我真的应该这样编写html文档,还是有其他选择: 对每个配方重复相同的模式? 这似乎有点奇怪,我不能只写文本并用tex渲染的输出替换所有文本公式。 例如,汗学院是如何在这个页面上结合文本和公式的?他们是否在服务器上呈现所

  • 我正在构建一个Rails应用程序,我正在寻找一种方法,将带有html和内联MathJax math(TeX)的数据库条目转换为LaTeX,以便创建pdf。 我发现了类似的问题: 使用pandoc将html mathjax转换为markdown 如何使用pandoc将带有mathjax的HTML转换为latex 我在这里看到两个选择: 创建一个Haskell可执行文件,在将html转换为LaTeX时

  • 本文向大家介绍C#在标识符中使用转义序列,包括了C#在标识符中使用转义序列的使用技巧和注意事项,需要的朋友参考一下 示例 转义序列不限于string和char文字。 假设您需要重写第三方方法: 并假定该字符Œ在用于C#源文件的字符编码中不可用。你是幸运的,它允许使用的类型逃逸\u####或者\U########在标识中的代码。所以写是合法的: 并且C#编译器将知道Œ并且\u0152是相同的字符。