如何修改Bookdown和Rmarkdown图表格式:取消斜体并设置文本加粗、图例普通
解决Rmarkdown/Bookdown生成Word时图表标题与文本样式问题
核心需求回顾
将图表标题(图例)设为普通文本,同时把标题中的指定内容(或绘图内的文本)设为加粗样式。
方法1:自定义Word模板(推荐,长期复用)
Word输出的图表标题默认映射到「Figure Caption」样式,修改该样式可全局生效:
- 新建空白Word文档,点击「开始」→「样式」→找到「Figure Caption」样式→右键修改:将字体格式从斜体改为常规,保存文档为
custom-template.docx。 - 在Rmarkdown的YAML头部指定模板:
--- title: "test" output: bookdown::word_document2: reference_docx: custom-template.docx ---
- 在代码块的
fig.cap中用**包裹需要加粗的内容,示例:
```{r fig, fig.cap="**A scatterplot** of the data cars using base R graphics", echo=FALSE} plot(cars)
生成的图表标题整体为普通文本,其中`A scatterplot`会被加粗。 --- ## 方法2:临时调整(无需模板) 若不想制作模板,可通过pandoc原生XML语法强制取消标题斜体,同时保留加粗标记: ```r ```{r fig, fig.cap="\\raw{openxml}<w:r><w:rPr><w:i w:val=\"0\"/></w:rPr></w:r>**A scatterplot** of the data cars using base R graphics", echo=FALSE} plot(cars)
注:该方法仅适合单次调整,代码可读性较差。 --- ## 方法3:调整绘图内的文本样式(若指坐标轴/绘图标题) 如果「图表文本」指绘图内部的坐标轴标签、主标题等内容,需在base R绘图代码中直接设置: ### 方式A:单独指定元素样式 ```r ```{r fig, fig.cap="A scatterplot of the data cars using base R graphics", echo=FALSE} plot(cars, main = expression(bold("Scatterplot of Cars Data")), # 主标题加粗 xlab = expression(bold("Speed (mph)")), # X轴标签加粗 ylab = expression(bold("Distance (ft)"))) # Y轴标签加粗
### 方式B:全局设置绘图文本样式 ```r ```{r fig, fig.cap="A scatterplot of the data cars using base R graphics", echo=FALSE} # 先设置全局文本为粗体(2代表粗体,1为常规) par(font.main = 2, font.lab = 2, font.axis = 2) plot(cars) # 恢复默认样式,避免影响后续绘图 par(font.main = 1, font.lab = 1, font.axis = 1)
--- 内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

