是的,这是可能的,尽管我不建议这样做。您可以使用以下内容:
- 使用包含 pstricks 的 LaTeX 代码设置字符串。
- 调用
tex2image(..., packages = c("auto-pst-pdf", ...))
以便使用 LaTeX 包 {auto-pst-pdf}。这支持通过在后台为图形调用 LaTeX 将 pstricks 嵌入 pdfLaTeX 的文档中。
- 确保
tex2image()
使用该选项调用 pdfLaTeX,-shell-escape
以便允许 pdfLaTeX 调用 LaTeX。这通过使用 R 包相对容易tinytex
。
下面包含此策略的一个工作示例,称为dist4.Rmd
. 如果将 R/Markdown 代码复制到文件中,则可以运行:
exams2html("dist4.Rmd")
同样可以在exams2moodle()
. 该练习的灵感来自于 R/exams 中现成的dist、dist2、dist3练习模板。与这些在 R 中绘制图形的模板相比,这个dist4.Rmd
练习非常慢。R 调用 pdfLaTeX,后者调用 LaTeX,所有这些都对图形输出进行后处理。因此,如果我在 pstricks 中有复杂的遗留 LaTeX 代码或构建在 pstricks 之上的专用包,这些代码很难在 R(或 TikZ)中重写,我只会使用 pstricks。
您可以在下面找到 R/Markdown 源代码。这类似于使用include_tikz()
. 关键区别在于 (a)tex2image()
直接调用(而不是 via include_tikz()
),(b) 必须手动嵌入生成的图像,以及 (c) 需要 R 包tinytex
并且需要tinytex.engine_args = "-shell-escape"
设置选项。
```{r, 包括 = FALSE}
## 数据
p <- c(样本(1:3, 1), 样本(1:5, 1))
q <- c(样本((p[1] + 1):5, 1), 样本(1:5, 1))
溶胶 <- 总和(绝对值(p - q))
## 技巧
pst <- '
\\begin{pspicture}(-1,-1)(7,7)
\\psaxes{->}(0,0)(-0.2,-0.2)(6.5,6.5)[$x$,0][$y$, 90]
\\psdot(%s,%s)
\\uput[0](%s,%s){$p$}
\\psdot(%s,%s)
\\uput[0](%s,%s){$q$}
\\结束{pspicture}
'
pst <- sprintf(pst, p[1], p[2], p[1], p[2], q[1], q[2], q[1], q[2])
## 通过 tinytex 和 shell-escape 选项生成图形
opt <- options(exams_tex = "tinytex", tinytex.engine_args = "-shell-escape")
图 <- tex2image(pst, packages = c("auto-pst-pdf", "pst-all"),
名称 = “pqdist”,目录 = “.”,调整大小 = 400)
选项(选择)
```
问题
========
两点的曼哈顿距离$d_1(p, q)$ 是多少
$p$和$q$如下图所示?
![](`r basename(fig)`)
解决方案
========
曼哈顿距离由下式给出:
$d_1(p, q) = \sum_i |p_i - q_i| = |`rp[1]` - `rq[1]`| + |`rp[2]` - `rq[2]`| =`r 溶胶`$。
元信息
=================
exname: 曼哈顿距离
extype: 数字
解决方案:`r sol`
exclozetype: 数字