You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为R Markdown行内动态生成的文本添加下划线?

解决方案

你可以通过在水果名称外层添加Pandoc通用的下划线语法__文本__来实现,这种写法同时支持HTML和PDF两种输出格式,行内输出完全可行。

修改后的代码如下:

---
title: "Untitled"
output:
  pdf_document: default
  html_document: default
date: '2022-07-18'
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)

R Markdown

toPrint <- NULL

toSAve <- list(c("banana", "yellow"), c("apple", "green"))

for(i in 1:length(toSAve)){
  # 给水果名添加__包裹,实现下划线效果
  fruit_name <- paste0("__", toSAve[[i]][1], "__")
  toPrint <- paste(toPrint, paste0(i, ".", fruit_name,"\\linebreak"), toSAve[[i]][2], "\\linebreak", "\\linebreak")
}

\raggedright
r toPrint

### 原理说明
Pandoc会自动将`__文本__`语法转换为对应输出格式的下划线标记:
- 生成HTML时,转为`<u>文本</u>`标签
- 生成PDF时,转为LaTeX的`\underline{文本}`命令

如果需要针对不同输出格式做更精细的控制,也可以用`knitr`的输出判断函数分别处理:
```r
for(i in 1:length(toSAve)){
  if(knitr::is_html_output()){
    fruit_name <- paste0("<u>", toSAve[[i]][1], "</u>")
  } else if(knitr::is_latex_output()){
    fruit_name <- paste0("\\underline{", toSAve[[i]][1], "}")
  }
  toPrint <- paste(toPrint, paste0(i, ".", fruit_name,"\\linebreak"), toSAve[[i]][2], "\\linebreak", "\\linebreak")
}

内容的提问来源于stack exchange,提问作者CharlotteS.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:06:36