防止 pandoc 将 $ 转换为 mediawiki <math>

prevent pandoc from converting $ into mediawiki <math>

我正在使用 pandoc 将 markdown 文件转换为 mediawiki table:

文件内容 mtcars.md:

|   |c1   |c2 |
|:--|:----|:--|
|7  |P$A |A  |
|8  |AB  |B  |
|9  |P$A |C  |

然后我做(我使用 Ubuntu 64 位和 pandoc 版本 1.13.2)

pandoc -t mediawiki -o mtcars.txt mtcars.md

但是两个$符号被解释为<math>...</math>:

{|
!
!c1
!c2
|-
|7
|P<math>A |A | |8 |AB |B | |9 |P</math>A
|C
|}

我怎样才能得到美元符号?

pandoc documentation 说:

Anything between two $ characters will be treated as TeX math. The opening $ must have a non-space character immediately to its right, while the closing $ must have a non-space character immediately to its left, and must not be followed immediately by a digit. Thus, ,000 and ,000 won’t parse as math. If for some reason you need to enclose text in literal $ characters, backslash-escape them and they won’t be treated as math delimiters.

所以,一种方法是在 $:

前面加一个反斜杠
|   |c1   |c2 |
|:--|:----|:--|
|7  |P$A |A  |
|8  |AB  |B  |
|9  |P$A |C  |

输出:

| |c1 |c2 | |:--|:----|:--| |7 |P$A |A | |8 |AB |B | |9 |P$A |C |

(我似乎没有得到与您相同的 mediawiki 输出格式,但您明白了)。

另一种方法是在 $ 之后放置一个 space,虽然这会在输出中添加一个 space。

$ 符号的解释是称为 tex_math_dollars 的降价扩展的一部分 - 您应该能够通过指定 markdown-tex_math_dollarsmarkdown_strict 的输入格式来完全抑制它(虽然这对我这里的旧版 pandoc 不起作用。