R Markdown转PDF时代码格式化异常求助
解决R Markdown转PDF时代码格式化异常的问题
问题分析
从你提供的原始文档来看,代码格式化异常主要由以下原因导致:
- YAML配置冲突:同时使用
format: pdf(Quarto语法)和output: pdf_document(R Markdown语法),导致渲染引擎参数解析混乱 - R代码块标记错误:代码块起始未用标准的三个反引号包裹,无法被正确识别为可格式化的R代码块
- 局部
tidy参数未被正确生效
解决方案
1. 修正YAML配置
删除冲突的format: pdf字段,统一使用R Markdown标准输出配置,可在output中全局设置代码格式化参数:
--- title: "Inferencia estadística - UOC" date: "2024-03-06" output: pdf_document: tidy: true # 全局开启代码格式化 tidy_opts: width.cutoff: 60 # 设置代码换行宽度,避免超出页面 ---
2. 修复R代码块标记
用标准的三个反引号包裹代码块,确保chunk选项被正确识别:
# 1.- Cálculo del Valor Predictivo Positivo (PPV) # Sensibilidad, especificidad y prevalencia sensitivity <- 0.95 specificity <- 0.75 Prevalence <- 0.2 # Calcular PPV PPV <- sensitivity * Prevalence / ((sensitivity * Prevalence) + ((1 - specificity) * (1 - Prevalence))) PPV # 2.- Cálculo del Valor Predictivo Negativo (NPV) # Calcular NPV NPV <- (specificity * (1 - Prevalence)) / (((1 - sensitivity) * Prevalence) + ((specificity) * (1 - Prevalence))) NPV # 3.- Ajuste de Prevalencia # Nueva prevalencia Prevalence <- 0.8 # PPV y NPV actualizados PPV <- "93.8%" NPV <- "78.94%"
3. 可选:使用styler进行格式化
若要替换默认的formatR为styler,先确保已安装styler包,再修改配置:
output: pdf_document: tidy: "styler" tidy_opts: strict: false # 放宽格式化规则,避免过度调整
4. 调整页面边距(若仍有溢出)
在YAML中添加geometry参数统一调整页面边距:
--- title: "Inferencia estadística - UOC" date: "2024-03-06" output: pdf_document: tidy: true tidy_opts: width.cutoff: 60 geometry: margin=1.5in # 设置上下左右边距为1.5英寸 ---
修改后的完整文档示例
--- title: "Inferencia estadística - UOC" date: "2024-03-06" output: pdf_document: tidy: true tidy_opts: width.cutoff: 60 geometry: margin=1.5in --- Ejercicios 1. El embolismo pulmonar es una condición relativamente común que necesita hospitalización y que a menudo ocurre en pacientes hospitalizados. La presión arterial menor de 90 mm HG es uno de los criterios importantes para diagnosticar esta condición. Supongamos que la sensibilidad del test es del 95% y la especificidad del test es del 75% y la prevalencia es del 20%. 1. Calcula el valor predictivo positivo del test. 2. Calcula el valor predictivo negativo del test. 3. Responde a las preguntas anteriores si la prevalencia fuera del 80%. ```{r} # 1.- Cálculo del Valor Predictivo Positivo (PPV) # Sensibilidad, especificidad y prevalencia sensitivity <- 0.95 specificity <- 0.75 Prevalence <- 0.2 # Calcular PPV PPV <- sensitivity * Prevalence / ((sensitivity * Prevalence) + ((1 - specificity) * (1 - Prevalence))) PPV # 2.- Cálculo del Valor Predictivo Negativo (NPV) # Calcular NPV NPV <- (specificity * (1 - Prevalence)) / (((1 - sensitivity) * Prevalence) + ((specificity) * (1 - Prevalence))) NPV # 3.- Ajuste de Prevalencia # Nueva prevalencia Prevalence <- 0.8 # PPV y NPV actualizados PPV <- "93.8%" NPV <- "78.94%"
### 额外调试建议 - 更新相关包至最新版本:运行`update.packages(c("rmarkdown", "formatR", "styler"))` - 检查LaTeX环境完整性:若使用TinyTeX,运行`tinytex::tlmgr_update()`更新组件 内容的提问来源于stack exchange,提问作者Javier Hernando
相关产品推荐
相关产品推荐

