众所周知,LATEX 提供了 \textcircled 命令用以给字符加圈,但效果却不怎么好:

实际上,加圈并不是一个平凡的变换,它会涉及到圈内字符形状的微调,而这是几乎无法在 TEX 宏层面解决的。因此,要得到比较好的效果,最好能使用预先设计的字符形(glyph)。


传统方案

pifont 宏包提供了一系列杂锦符号(dingbats),其中就有带圈数字。pifont 属于 psnfss 宏集,它封装了一系列 PostScript 字体,包含著名的 Helvetica、Times、Courier 等。pifont 使用的是 Zapf Dingbats 字体。

使用 \ding{<number>} 可以很方便地使用带圈数字(共有四种),当然也有其他符号。具体数字可参见下图:

在主流的 TEX 引擎下,pifont 宏包都可以使用。


Unicode

数字 0–50 的带圈版本都分配了对应的 Unicode 码位,因而在现代 TEX 引擎(X⁠E⁠TEX 和 Lua­TEX,若无特殊说明以下仅讨论这两者)中,配合合适的字体,理论上可以直接输入这些符号。具体见下表:[1]

24EA 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469
 
  246A 246B 246C 246D 246E 246F 2470 2471 2472 2473
 
  3251 3252 3253 3254 3255 3256 3257 3258 3259 325A
 
  325B 325C 325D 325E 325F 32B1 32B2 32B3 32B4 32B5
 
  32B6 32B7 32B8 32B9 32BA 32BB 32BC 32BD 32BE 32BF

Zapf Dingbats 中的其他几种样式也分配有码位: