宋体 与 粗宋体

news/2024/11/30 0:38:53/

这几日在学习ConTeXt,拜读了 LiYanrui 同学的若干文章之后,开始想着尝试点东西。

因为以前一直用MS Word,所以想尝试把一些文档从Word转到ConTeXt,遇到的第一件事情就是字体。虽然可以直接用LiYanrui的zhfonts模块,但是Word里有一些样式,比如标题设置为黑体初号,宋体加粗什么的,还是需要一个像 \hei \bfsong这样的命令,zhfonts貌似并没有直接提供这样的命令,因为他站在一个更高的层次来看问题^_^。

想到这里我觉得应该有这么一个宏  \ziti[黑体][小初],第一个参数是Word中的字体,第二个参数是Word中的字号,这样可以使人快速从Word转到ConTeXt。为了达到这目的,应编写一个程序自动读Windows中的所有字体,生成一个tex文件,使得\ziti[][]可以用到Word中的所有字体设置。

查了一些资料,就在我准备动手编程时,我发现一个问题,Windows的字体目录中的宋体 C:\Windows\Fonts\simsun.ttc,是Regular的,而且没有发现其他宋体的粗体类型,再看zhfonts中的设置,bold型字体被设置黑体,我也记得LiYanrui在博客上说字体加粗就变另一个字体了,但是Word为什么能做到呢? google之,发现Word的粗宋体是假的(参见http://lists.fedoraproject.org/pipermail/chinese/2011-January/005028.html),是通过软件插值出来的,ctex上的一些帖子也说了这样插值出来的字体可能会有毛刺,不光滑,如果需要真的宋体,可以下载一些收费的字体,如华文粗宋。原来是这样!被Word骗了这么久!

上面的发现,让我放弃了为Word编写那个\ziti宏的想法,还是按照LiYanrui同学的博客自己动手吧~,不过查了一些关键的信息,记在下面,以便其他同志有同样想法,或者我以后又想了~

Windows字体名 -> 字体文件

所有Windows中安装的字体都在C:\Windows\Fonts中,这个安装字体的信息,也被映射到注册表中:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts,程序员可以在这里找到Word中的字体名对应的字体文件名

顺便提一句,在Windows下不需要为ConTeXt设置OSFONTDIR环境变量,参见luatools.lua文件,里面直接给定了C:\Windows\Fonts

字体文件 -> ConTeXt字体名

Word里的字体名是有中文的,但是 mtxrun --script fonts --list pattern=* --all (参见LiYanrui的博客)列表出来的字体名字里是没有中文名的。所有我们还需要从ttf或ttc里读出实际的字体名。ttf/ttc的格式也比较复杂,codeproject上有现成的代码,参见 How to Use a Font Without Installing it ,这位大哥提供了一个TTF和TTC的类,还提供了示例代码,很好使!

另外,猜测了下,ConTeXt最后生成的字体名,是实际字体名中去掉非字母,并全部整成小写的结果。


http://www.ppmy.cn/news/512032.html

相关文章

用OpenCV进行OCR字符分割

1. 引言 本文重点介绍如何利用传统的图像处理的方法来进行OCR字符切分,进而可以用分割后的单个字符做相应的后续任务,虽然现在计算机视觉依然是卷积神经网络的天下,但是对于一些相对简单的落地场景传统方案还是很有效的。 闲话少说&#xff…

使用它或失去它!谷歌即将清理不活跃账号

如果你很长时间没有登录你的谷歌账号,最好尽快登录,否则你很可能会失去账号。 2023年5月16号,谷歌宣布,将开始删除至少两年不活跃的账号。 如果谷歌帐户至少两年未被使用或登录,可能会删除该帐户及其内容,包…

Apache Zeppelin系列教程第十篇——SQL Debug In Zeppelin

SQL Debug介绍 首先介绍下什么是SQL Debug? 但是经常有这样一个需求,一大段sql 跑出来之后,发现不是自己想要的结果?比如: demo 1: select id,name from ( select id,name from table1 union all select id,name fr…

python多进程使用

目录 背景单个输入参数多个输入参数 背景 在工作或者生活中,可能会遇到大量的for循环处理逻辑,这些逻辑完全可以并行(比如读取一个文件夹中的所有图片,然后将其resiz到最长边不超过960),此时我们可以使用多…

前端3D Three.js 在本地搭建一个官方网站

上文Web前端 3D开发入门规划 3D效果将不再是桌面应用的专利我们说了说 WEB 3D的一个发展和学习方向 那么 我们还是先搞定文档使用的问题 我们可以访问http://www.yanhuangxueyuan.com/Three.js/这里面可以查到使用方法 但不是最新的 而是别人用官方文档改的 真正的官方文档地址…

黑客都用什么牌子的电脑?

【黑客联盟2017年06月05日讯】你知不知道,全世界的黑客都凑在一间屋子里,是一种怎样的体验? 朋友:神马?有这种事?屋子里有床吗? 你:是全世界的黑客,不是全日本的演员。。…

推荐这几款好用的电脑软件

软件一:Sticky Notes Sticky Notes(便笺)是Windows系统自带的便签应用程序,它可以帮助用户快速创建、编辑、保存和查看文本便笺。用户可以在便笺上记录备忘、灵感、待办事项等内容,方便日常生活和工作中的信息管理。 …

推荐7 款实用好用的电脑软件

EasyCharts EasyCharts 是一个简单好用 的Excel 插件。 使用它可以快速制作出美观高大上的图表。 它支持多种图表,什么柱线图,散列图,折线图等等。而且还能美化配色图表。 它还可以使用数据分析命令自动绘制复杂的图表。 关注…