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

如何用ggtext的<sub>和<sup>标签实现同一元素紧凑上下标并消除间距?

解决ggtext上下标与主文本间距过大的问题

你的问题出在默认的<sup>标签自带额外边距和对齐规则,导致上标和主文本间距过大。可以通过在HTML标签内添加行内CSS样式手动调整上标的位置与间距,实现紧凑效果。

修改后的代码如下:

library(ggtext)
library(tidyverse)

df <- tibble(
  label = c(
    'SO<sub>4</sub><sup style="margin-left:-0.2em; vertical-align:0.4em; font-size:0.7em;">2-</sup>'
  ),
  x = c(.5),
  y = c(.5),
)

ggplot(df) +
  aes(x, y, label = label) +
  geom_richtext() +
  xlim(0, 1)+ 
  ylim(0, 1)

关键样式参数说明:

  • margin-left:-0.2em:向左偏移上标,缩小与主文本的横向间距
  • vertical-align:0.4em:调整上标的垂直位置,让它更贴近主文本(默认值偏高)
  • font-size:0.7em:按需调整上标字体大小,保证整体视觉协调

你可以根据实际显示效果微调margin-left和vertical-align的数值,直到匹配目标紧凑效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 16:33:23