在Word里制作一个复选框(Checkbox)

文章目录
  1. 1. 需求
  2. 2. 解决方案
    1. 2.1. 图片法
    2. 2.2. 内容控件法
    3. 2.3. 直接插入符号法
    4. 2.4. 域代码合并符号法
  3. 3. 字体的不同
    1. 3.1. 适合表示复选框的符号
    2. 3.2. 独立符号
    3. 3.3.
    4. 3.4. 对号
    5. 3.5. 最终结果
  4. 4. 结语

Update: 自认为这篇写的不错,改了一下,加上了标点符号,感觉棒棒哒。—2016-01-07

需求

这里说的「复选框」(Checkbox)是计算机里面的术语,往大了说属于一种人机交互模型,主要用于「是否」判断,在各种档案文件中有很多的应用。如何在Word文档中实现复选框的效果是困惑了我将近十年的问题。最近想出了一个新的解决方案,连同之前的方法一块总结出来。这里只限于Word中编辑文档,不讨论其他情况。

解决方案

图片法

这是我之前几年里使用的方法。思想是将「对号」(关于这个符号后面还会有讨论)转化为图片,采用图片浮于文字上方或置于文字下方的形式,将对号和格子放在一块。

这个的优点是不改变原有的内容,只是添加了一个图片。缺点很明显:因为对号和格子压根没关系,所以一做位置的调整就乱套了。而且,要是选择了对号置于文字下方,想选中对号都困难。

内容控件法

这个方法的优点是可以在Word里做一个易于使用的复选框。对于Word 2013插入方法是在开发工具选项卡里点控件。

优点就是上面说的,非常方便。点一下就选中,再点就不选中,而且可以配置。可惜这个方法我很少用,因为有下面的缺点:

  • 一般情况下不需要这么强大的功能,点一下就改变状态反而容易出错。
  • 肯定要改原始的文档,别人可能不高兴。
  • 有兼容性问题。
  • 默认情况下,选中的格子用(BALLOT BOX WITH X)表示,和一般常规的对号不一样。
  • 虽然可以配置但配置界面不大好用。(这还是高版本的情况,低版本的相应功能更不好用,好像是用宏实现的,而高版本是类似新公式编辑器的实现,保存为低版本就失去效果了)。
  • 可选的符号也很少,还受限于字体,容易导致选中的和未选中的框看起来不一样的问题。

直接插入符号法

这个我用的也不多,实现方法就是插入(BALLOT BOX WITH CHECK)。但这个同样存在要改原始文档和兼容性问题,而且受限于字体,只不过能避免了兼容性问题罢了。

域代码合并符号法

这是我现在用的也是我感觉比较好的方法。我首先说实现方法。

我接触的表格里面一般用中文的(WHITE SQUARE)来表示复选框。我认为适合作为复选框的(BALLOT BOX)因为中文字体支持的问题用的不多。不论用哪种,都肯定包括了一个框框。我们借用图片法的思路,再添加一个对号并且将两者用域代码合并成一个,具体操作方法是:按Ctrl+F9,输入{EQ \o(□,√)}或者{EQ \o(☐,✔)}(这两个用哪个看你喜好了),按Alt+F9,完成。

优点:

  • 感官上是一个字符,不会像图片法一样乱动。
  • 域代码的支持比较底层,兼容性还可以,不大容易出错。
  • 可以保证和原来的格子一样,能让最严苛的人没话说。

字体的不同

上面几种方法中,图片法兼容性最好,其他几种方法都要和字符和字体打交道,所以肯定有各种问题,因为不可能所有人都安装同样的字体。下面我们简单讨论一下这个问题。

适合表示复选框的符号

根据上面的各种方法,如果用符号表示复选框,可以用下面几种符号:

  1. 独立符号表示复选框——可以用(BALLOT BOX WITH CHECK)或🗹(BALLOT BOX WITH BOLD CHECK)。
  2. 对于组合法——选择框可以用(BALLOT BOX)或(WHITE SQUARE)。
  3. 对号——可以用🗸(LIGHT CHECK MARK)、(CHECK MARK)、(HEAVY CHECK MARK)、(SQUARE ROOT)。

显示这些符号的字体我主要用了Win8.1自带的字体以及:

  • Symbola
  • 思源黑体

独立符号

  • (BALLOT BOX WITH CHECK)
  • 🗹(BALLOT BOX WITH BOLD CHECK)

前者用的比较多,后者貌似只有Symbola字体支持(如果以支持的符号数量作为评价符号字体好坏的标准,Symbola字体可能是最好的符号字体了)。

但在Symbola里显得有点大,这是个问题。

  • (BALLOT BOX)
  • (WHITE SQUARE)

根据我的感觉,一般是符号字体支持的不错,中文字体一般是支持的,但具体的大小情况就不大好说了。具体的效果可以看下面我做的效果图。

对号

  • 🗸(LIGHT CHECK MARK)
  • (CHECK MARK)
  • (HEAVY CHECK MARK)
  • (SQUARE ROOT)

这个就复杂了。首先说简单的情况,,Unicode名是SQUARE ROOT,也就是数学里的根号。但很多时候被用做「对号」,因为大多数的字体里面这个符号不带上面的横,就是个对号的样子,而且这个字符一般的字体都支持,所以很多人就习惯性的用了。但也有个例外,比如思源黑体里面这个符号是带上面的横的。我的理解是,既然人家不是对号,就不要用做对号了,专门的对号应该是前面三个。

Windows新的界面字体Segoe UI不支持light版的对号,其他两个支持,我比较喜欢这个符号字体的字形,可惜只有Windows才有这个字体。

最终结果

用Segoe UI Symbol字体里面的加上原来的框(一般是中文字体里面的WHITE SQUARE)就得到了最终的效果。最终的效果里面对号的字号相应放大了一点。

各种图

结语

这是到目前为止我的折腾经历,如果你有什么想法欢迎留言讨论。