coderzjz

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

\textcircled

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


传统方案

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

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

pifont

在主流的 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 中的其他几种样式也分配有码位:

  • 反白(negative circled digits)

    24FF 2776 2777 2778 2779 277A 277B 277C 277D 277E 277F
    24EB 24EC 24ED 24EE 24EF 24F0 24F1 24F2 24F3 24F4
  • 无衬线(circled sans-serif digits)

相关文章: