可自编译为PDF的极简RMarkdown文件构建问题咨询
解决你的RMarkdown自执行PDF生成问题
我来帮你逐个搞定这些问题,下面是重构后的完整可自执行RMarkdown文件,完全符合你的需求:
#!/usr/bin/env Rscript ```{r setup, include=FALSE} # 自动获取当前文件路径,不用硬编码文件名 current_file <- sys.frame(1)$ofile # 渲染当前Rmd为PDF,include=FALSE确保这段代码不会出现在最终PDF里 rmarkdown::render(current_file, output_format = "pdf_document")
title: "Homework Chapter 4"
output:
pdf_document:
latex_engine: xelatex # 支持Unicode特殊字符,比如μ、σ、~
4E1. In the model definition below, which line is the likelihood?
A: $y_i$ is the likelihood, based on the expectation and deviation.
4M1. For the model definition below, simulate observed heights from the prior (not the posterior).
A:
points <- 10 rnorm(points, mean = rnorm(points, 0, 10), sd = runif(points, 0, 10))
4M3. Translate the map model formula below into a mathematical model definition.
A:
代码实现:
library(rethinking) # 确保rethinking包已安装,alist来自这个包 flist <- alist( y ~ dnorm(mu, sigma), # 用LaTeX的~符号,或者直接写波浪号也可(因为启用了xelatex) mu ~ dnorm(0, 10), sigma ~ dunif(0, 10) )
数学定义:
$$
\begin{align*}
y_i &\sim \text{Normal}(\mu, \sigma) \
\mu &\sim \text{Normal}(0, 10) \
\sigma &\sim \text{Uniform}(0, 10)
\end{align*}
$$
### 逐个问题的解决说明: 1. **开头R命令不会输出到PDF**:把渲染代码放在`include=FALSE`的代码块里,这个选项会完全隐藏该代码块的内容和输出,不会出现在最终PDF中。 2. **无需用引号包裹内容**:直接遵循RMarkdown的原生语法,文本、标题、代码块直接书写,不用把整个文档塞进字符串里。 3. **无需指定文件名**:用`sys.frame(1)$ofile`获取当前脚本的路径,传给`rmarkdown::render`,不管你把文件命名成什么,都能自动渲染自己。 4. **渲染特殊符号**: - 启用`xelatex`引擎后,你可以直接写Unicode字符:比如`μ`、`σ`、`~`,LaTeX会正确渲染它们。 - 如果偏好传统LaTeX写法,也可以用数学环境里的命令:$\mu$、$\sigma$、$\sim$,这种方式兼容性更好。 ### 使用方法: 1. 把上面的内容保存为任意文件名(比如`hw_ch4.rmd`)。 2. 给文件添加执行权限:`chmod +x hw_ch4.rmd`。 3. 直接运行:`./hw_ch4.rmd`,会自动生成对应的PDF文件。 内容的提问来源于stack exchange,提问作者Vorac
相关产品推荐
相关产品推荐

