更新(2012年6月13日): RStudio now supports a range of mathjax delimtiers包括单个美元符号和没有latex
的双美元符号。
对于内联方程,从0. $<equation>$
$latex <equation>$
到$$<equation>$$
,对于显示的方程,从<{1}}到$$latex <equation>$$
。
因此,总结如下:
修订后的语法将
latex
限定符添加到$或$$等式开始分隔符。
我有一些使用原始$
分隔符的现有脚本,我想更新它们以使用新的$latex
分隔符。
我以为sed或awk可能是合适的。
此类r代码块中出现的美元也不应改变。
```{r ...}
x <- Data$asdf
```
原文:
$y = a + b x$ is the formula.
This is some text, and here is a displayed formula
$$y = a+ bx\\
x = 23$$
```{r random_block}
y <- Data$asdf
```
and some more text
$$y = a+ bx\\
x = 23$$
变换后
$latex y = a + b x$ is the formula.
This is some text, and here is a displayed formula
$$latex y = a+ bx\\
x = 23$$
```{r random_block}
y <- Data$asdf
```
and some more text
$$latex y = a+ bx\\
x = 23$$
`r opts_chunk$set(cache=TRUE)`
<!-- some comment -->
Some text
<!-- more -->
Observed data are $y_i$ where $i=1, \ldots, I$.
$$y_i \sim N(\mu, \sigma^2)$$
Some text $\sigma^2$ blah blah $\tau$.
$$\tau = \frac{1}{\sigma^2}$$
blah blah $\mu$ and $\tau$
$$\mu \sim N(0, 0.001)$$
$$\tau \sim \Gamma(0.001, 0.001)$$
应该成为
`r opts_chunk$set(cache=TRUE)`
<!-- some comment -->
Some text
<!-- more -->
Observed data are $latex y_i$ where $latex i=1, \ldots, I$.
$$latex y_i \sim N(\mu, \sigma^2)$$
Some text $latex \sigma^2$ blah blah $latex \tau$.
$$latex \tau = \frac{1}{\sigma^2}$$
blah blah $latex \mu$ and $latex \tau$
$$latex \mu \sim N(0, 0.001)$$
$$latex \tau \sim \Gamma(0.001, 0.001)$$
答案 0 :(得分:4)
使用perl
和回顾,应该可以做到这一点:
perl -pe 's/\b(?<=\$)(\w+)\b /latex $1 /g' file.txt
使更改与-i
标志一致:
perl -pe -i 's/\b(?<=\$)(\w+)\b /latex $1 /g' file.txt
修改强>
试试这个怪物:
perl -pe 's/\b(?<=\$)(\w+)\b(\$?)([ =])/latex $1$2$3/g;' -pe 's/(?<=\$)(\\\w+)/latex $1/g' file.txt
HTH
答案 1 :(得分:2)
这可能对您有用:
sed '/^```{r/,/^```$/b;/^`r/b;:a;/\\\\$/{$!{N;ba}};s/\(\$\$\)\([^$]*\(\$[^$]*\)*\$\$\)\|\(\$\)\([^$]*\$\)/\1\4latex \2\5/g' file
N.B。 r codeblock
代码可能需要扩展/更改,因为示例代码并不明显它的构成。