xaringan无法正确渲染含代码列的kable表格问题求助
问题成因
该异常由两个原因共同导致:
- xaringan默认内置的CSS会给表格内的代码元素设置斜体样式,和
html_document的默认样式规则不同 - 你在数据框Code列手动添加的Markdown反引号会被xaringan的渲染器二次解析,导致空格被压缩、格式错位
解决方法
你可以通过自定义CSS覆盖默认样式,同时使用kableExtra内置的参数生成代码列,避免手动加反引号的解析冲突,修改后的完整代码如下:
--- title: "Bug: posterior prints as two words" output: xaringan::moon_reader --- <!-- 自定义CSS覆盖xaringan默认表格代码样式 --> <style> table code { font-style: normal !important; white-space: pre !important; } </style> ```{r echo = FALSE} `Table 2.1` <- data.frame( Algorithm = c("Linear discriminant analysis", "Generalized Linear model", "Mixture discriminant analysis", "Decision tree", "Random forest", "Gradient boosting machine"), Package = c("MASS", "stats", "mda", "rpart", "ranger", "gbm"), # 不要手动加反引号,直接写代码文本 Code = c("predict(obj)", "predict(obj, type = 'response')", "predict(obj, type = 'posterior')", "predict(obj, type = 'prob')", "predict(obj$predictions)", "predict(obj, type = 'response', n.trees)")) suppressMessages(library(kableExtra)) kable(`Table 2.1`, format = 'html') %>% column_spec(3, code = TRUE) %>% # 直接指定第3列为代码格式,自动生成code标签 column_spec(1:3, background = "white")
修改后渲染的表格效果就和`html_document`完全一致了。 --- 内容的提问来源于stack exchange,提问作者itsMeInMiami
相关产品推荐
相关产品推荐

