如何修复 Kindle 自定义字体名称显示问号的问题

延伸阅读

给这篇文章写一条留言

提示:带 * 标记的是必填项。您填写的邮箱地址将会被保密。首次留言将会在通过人工审核后显示。如果是提出问题,请务必提供尽可能多信息,这有助于他人更好地理解你所提出的问题。

小伙伴们写下了 24 条留言

  1. 我有个问题,我下载的思源宋体/黑体等包含多字重的ttc文件时,kindle会默认使用extralight字重,并且字体名称会显示日语名称,但是当然不影响显示中文字形。我想问这种情况可以让kindle默认使用regular字重吗?还是说我得每本书自己修改css?

  2. 你说的方法我感觉好难。。。有个字体编辑软件叫high-logic font creator,我看了下显示为问号的字体元数据里的名称大部分是有一些特殊符号。我在里面修改了字体属性(识别-字体族那一栏修改了字体名称将特殊符号去掉),保存导出后的字体,我看到元数据里字体名称修改过来了,但是导入KINDLE还是显示为问号 ,我想应该是我哪里没修改到位。请问你能不能研究一下如何使用这个软件解决此问题?这样应该比你说的修正方法更容易理解 适合没有编程经验的小白

    • 用font creator字体编辑软件,把名称显示问号的字体打开,然后菜单栏找到”font”下面属性”properties”, 修改family name就可以,亲测 有效

  3. 先切换到字体所在的目录,然后运行如下命令,这个能具体说说吗?没看懂,是把字体文件所在的文件地址打开之后,就在哪里运行下列命令,我是直接在cmd的那个命令提示符里运行,之后,结果显示找不到文件。

    • 假设名为 SampleSong.ttf 的字体文件放在 D: 盘的 somewhere 文件夹,可以先运行 cd D:\somewhere 再运行 ttx -t name SampleSong.ttf。或者,也可以在运行命令的时候直接使用字体文件的绝对路径 ttx -t name D:\somewhere\SampleSong.ttf。如果你不知道字体文件的路径,可以直接把文件拖放到命令提示符上,它会自动生成一个绝对路径。

      • 现在可以按步骤执行了。但得到的ttx文件,与样例不太一样 ,我按着例子模仿了第二种方法,最后合并得到的文件无法被kindle识别。

        • 测试字体时需注意,拷贝字体文件之后,如果电子书处于打开状态,需要先退出回到 Kindle 的首页或图书馆,停上几秒再重新打开,才能让 Kindle 重新加载新拷贝的字体。有时可能需要这样反复重试几次。

          ——

          Noah 的邮件回复:好的,谢谢书伴。其实真实原因是,我没有将旧文件删除,把新文件和旧文件放在同一个文件夹里font,这样导致kindle只识别了一个文件,新文件因为有后缀#1排在后面,没有识别出来。当时我是想测试看看文件修好没,再删掉旧文件,所以导致了这样的结果。你确定文件是可用的,我猜测了一下(当时没显示出来,我重启了kindle),删掉了旧文件,终于显示成功了。特来向你说明一下。

  4. 自定义字体时,例如方正悠宋,发现字体有7个字重,把全部字重都放进去。在kindle 加粗时,发现是直接机械式的加粗字体,而不是匹配到更粗的字重。这种要怎么处理?

    • 自定义字体功能的加粗不会读取字重,如果你想更精细的控制字重,需要自行修改电子书的 CSS 文件。

  5. 来了来了,超级感谢,真是名副其实的书伴,直接从源头解决了我的问题,另外说一下在实操中遇到的问题。
    安装完成fonttools并检测安装成功后。运行提取ttx文件代码就会显示
    “Dumping “新仓耳今楷.ttf” to “新仓耳今楷.ttx”…
    No ”name” table found.”。
    然后仍然会有ttx文件出现,但是内容只有

    <?xml version="1.0" encoding="UTF-8"?>
    <ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.22">
    
    </ttFont>

    最后我采取了暴力的办法,直接把你给的正确代码复制了进去,把名称修改过来,然后进行了合并,问题解决,kindle中显示正确。
    但是我再回头对新合并的ttf文件进行提取时,又变成了上边的情况,不过无所谓了,在kindle中不显示名称的问题已经解决了,再次感谢您手把手教我(对于编程和python真的是零基础,只会跟着步骤走)。

    • 好像ttx文件的内容没有显示出来,那我再发一遍

      <?xml version="1.0" encoding="UTF-8"?>
      <ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.22">
      
      </ttFont>
      • 还是没出现,其实就是你给出示例中的头两行和最后一行,中间name开头的每一段都没有

        • 留言会把 XML 代码过滤掉……代码根据你后面留言的描述补上了。

          找不到“name”表是因为文中给出的命令在 Windows 命令提示符中执行有点问题(和类 Unix 系统的终端不同,Windows 命令提示符不能正确识别单引号)。你可以直接把“name”的引号去掉(或者将半角单引号换成半角双引号),应该就可以正常执行了:

          ttx -t name SampleSont.ttf
  6. 求教一个困扰我很久的问题:为什么kindle的邮箱推送会间歇性失灵

    设备:kpw3中亚
    版本:长久以来好多版本都这样

    • 推送稳定性完全取决于亚马逊的个人文档服务器,如果你的 Kindle 设备联网正常却无法收到推送,大部分情况下是亚马逊服务器的问题,用户端没有什么可操作的空间。

        • 如果排版没有通过手工处理,一般都不怎么样。用不了词典有什么具体表现吗?一般情况下,所有电子书都可以使用字典。

            • 用的哪个词典?会不会是你要查的字词字典里不存在。你可以查一下字典里存在的字词,看是否正常。如果还不行的话,可以把查词有问题的电子书发一份到书伴邮箱(页面底部“联系”处获取),书伴实机测试一下。