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

在R Markdown转PDF时为绘图文本添加右弯引号/撇号的方法

在R Markdown编织PDF时为绘图文本添加右弯引号/撇号的解决方案

问题背景

我正在绘制书籍用的调研问题数据,需要在x轴的调研问题两侧添加规范的弯引号(智能引号)。在R Markdown绘图时,用反引号能轻松生成左弯引号/撇号,但右弯引号/撇号(如’或”)的添加方法不明确。尝试过plotmath、硬编码弯引号(比如labs(x = '“some text”'))都无效;sQuote()或dQuote()在交互模式下有效,但编织成PDF时会变成直引号。

可行解决方案

方法1:直接使用Unicode字符

直接在标签文本中插入右弯引号的Unicode编码,无需依赖额外工具:

  • 右双引号:\u201D
  • 右单引号:\u2019

示例代码:

library(ggplot2)

ggplot(mtcars) +
  aes(x = hp, y = mpg) +
  geom_point() +
  labs(x = "“Is MPG related to HP?”")  # 直接输入Unicode弯引号(编辑器需支持)

或用编码形式兼容更多场景:

labs(x = "\u201CIs MPG related to HP?\u201D")

方法2:结合plotmath语法

利用plotmath的字符支持,通过expression()或paste()组合弯引号:

ggplot(mtcars) +
  aes(x = hp, y = mpg) +
  geom_point() +
  labs(x = expression(paste("\u201C", "Is MPG related to HP?", "\u201D")))

方法3:借助LaTeX包自动转换

通过R Markdown的YAML配置加载csquotes包,让LaTeX自动将直引号转为智能引号:

  1. 修改YAML头部:
---
title: "Curly Quote in Plot Example"
output: pdf_document
date: "2022-08-17"
header-includes:
  - \usepackage{csquotes}
---
  1. 绘图时使用普通直引号:
ggplot(mtcars) +
  aes(x = hp, y = mpg) +
  geom_point() +
  labs(x = "\"Is MPG related to HP?\"")

效果验证

以上方法均可确保PDF输出中,x轴标签的左右弯引号均为规范的智能引号,解决右引号显示为直引号的问题。

内容的提问来源于stack exchange,提问作者Omar Wasow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:21:43