如何阻止RMarkdown中代码注释超出页边距并自动换行?
解决RMarkdown代码注释超出页边距的自动换行问题
针对PDF输出中代码注释超出页边距的问题,有两种常用的全局解决方法,也支持局部调整:
方法一:通过LaTeX包实现代码块自动换行(推荐)
这种方法无需修改R代码格式,直接在PDF渲染时让代码块(包括注释)自动适应页边距换行。只需在YAML头部添加header-includes配置,加载fvextra包并设置代码环境的换行规则:
--- title: 'This is a test title' author: - name: Honk R. \orcidlink{0000-0000-0000-0001} affil-id: 1,3 - name: Tar F. \orcidlink{0000-0000-0000-0002} affil-id: 2 affiliations: - id: 1 name: Lima Beans. - id: 2 name: Peas. - id: 3 name: French Beans. date: July 6, 2023 geometry: - margin=1in header-includes: - \usepackage{fvextra} - \DefineVerbatimEnvironment{Highlighting}{Verbatim}{breaklines,commandchars=\\\{\}} output: pdf_document: number_sections: yes template: default.tex ---
方法二:全局设置knitr代码格式化规则
通过knitr的全局选项,自动格式化代码并限制每行宽度,让注释自动换行。可以在文档开头添加一个setup代码块:
```{r setup, include=FALSE} knitr::opts_chunk$set(tidy.opts=list(width.cutoff=60), tidy=TRUE)
- `width.cutoff`参数可根据页边距调整数值(建议60-80之间),控制代码每行的最大宽度。 - 注意:该方法会自动格式化代码(如调整缩进、换行),若需保留原始代码格式,优先选择方法一。 ## 局部调整单个代码块 如果仅需针对某一个代码块处理注释换行,可在代码块选项中单独设置: ```r ```{r clustering, echo=TRUE, fig.height=2.5, fig.width=3, tidy.opts=list(width.cutoff=60), tidy=TRUE} library(tidyverse) library(factoextra) # These are the libraries that I am trying the load. Groups <-as.factor(iris$Species) # This is another attempt at a long comment to try and make it spill out of the margins. Matrix <-as.matrix(iris[1:4]) # Defining this matrix of numbers for PCA test. res.pca<-princomp(Matrix) fviz_pca_biplot(res.pca, habillage = Groups) # This is going to be yet another attempt at making a long comment to check if it spills out of the margins so I can make my point
内容的提问来源于stack exchange,提问作者Ginko-Mitten
相关产品推荐
相关产品推荐

