Julia-显示方程式触发的无效转义序列

时间:2018-09-17 12:29:17

标签: string escaping latex julia documentation

朱莉娅documentation说:

  

与段落内联的大LaTeX方程可能是   使用带有围栏的代码块作为显示方程式编写的   如下例所示的“语言”数学。

```math
f(a) = \frac{1}{2\pi}\int_{0}^{2\pi} (\alpha+R\cos(\theta))d\theta
```

但是,在我的一个项目中,内联数学表达式似乎触发了“无效的转义序列”错误:

"""
...


```math
G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})
```

...
"""

我是否理解文档中的显示方程式使用不正确?

Julia版本为0.7

1 个答案:

答案 0 :(得分:1)

您在字符串中有转义序列,因此可以使用raw字符串:

julia> s = raw"""
       ```math
       G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})
       ```
       """
"```math\nG_u \\sim PY(d_{|u|}, \\theta_{|u|}, G_{\\pi(u)})\n```\n"

julia> println(s)
```math
G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})
```

或逃脱\(这不太方便):

julia> s = """
       ```math
       G_u \\sim PY(d_{|u|}, \\theta_{|u|}, G_{\\pi(u)})
       ```
       """
"```math\nG_u \\sim PY(d_{|u|}, \\theta_{|u|}, G_{\\pi(u)})\n```\n"

julia> println(s)
```math
G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})
```

最后,如果您使用Markdown模块,则可以使用doc这样的字符串:

julia> using Markdown

julia> s = doc"""
       ```math
       G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})
       ```
       """
G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})

julia> println(s)
$$
G_u \sim PY(d_{|u|}, \theta_{|u|}, G_{\pi(u)})
$$

编辑:现在观察到doc$$包裹数学,如上所示。此外,doc仅处理$\,例如插值在doc中起作用,而不是raw,后者尽可能原始:)。最后,doc不产生字符串,而是Markdown.MD对象。例如:

julia> using Markdown

julia> raw"""$x = 1"""
"\$x = 1"

julia> doc"""$x = 1"""
1

  = 1

julia> """$x = 1"""
"1 = 1"

julia> typeof(doc"""$x = 1""")
Markdown.MD