如何在Quarto RevealJS输出中实现长代码自动换行?
在Quarto RevealJS中实现长代码自动换行
HTML输出中有效的code-overflow: wrap配置在RevealJS里不生效,原因是RevealJS的代码块默认带有white-space: nowrap样式,阻止了自动换行。可以通过自定义CSS来覆盖这个默认设置,具体方法如下:
方法一:在文档中嵌入CSS
直接在Quarto文档里添加自定义样式块,修改代码块的换行规则:
--- format: revealjs --- <style> .reveal pre code { white-space: pre-wrap !important; word-break: break-all; } </style> ## 示例标题 ```{r} #| echo: true multipoint <- sf::st_multipoint(rbind(c(3.2,4), c(3,4.6), c(3.8,4.4), c(3.5,3.8), c(3.4,3.6), c(3.9,4.5))) # 这行注释会自动换行
### 方法二:使用外部CSS文件 1. 创建一个名为`custom.css`的文件,写入以下内容: ```css .reveal pre code { white-space: pre-wrap !important; word-break: break-all; }
- 在Quarto文档的YAML头部引用该CSS文件:
--- format: revealjs css: custom.css --- ## 示例标题 ```{r} #| echo: true multipoint <- sf::st_multipoint(rbind(c(3.2,4), c(3,4.6), c(3.8,4.4), c(3.5,3.8), c(3.4,3.6), c(3.9,4.5))) # 这行注释会自动换行
上述配置中: - `white-space: pre-wrap`:保留代码原有的换行和空格,同时让过长的代码行自动换行 - `word-break: break-all`:确保长变量名或单词能被拆分,避免出现横向滚动条 - `!important`:强制覆盖RevealJS自带的代码块样式规则 内容的提问来源于stack exchange,提问作者Maël
相关产品推荐
相关产品推荐

