英文电子书使用字典查词时选中整段的解决方法
昨天有位小伙伴向书伴提出一个问题,他在用 Kindle 设备阅读 Calibre 转换的两本英文电子书时,发现它们查词时的表现不一样,其中一本可以正常查词,而另外一本却不能,只能选择一整段内容。
▲ 只能选择整段文字,无法正常查询单词
在获得这两本电子书的样本,并仔细对比了它们的源代码后,不论是元数据还是文本内容,并没有发现查词有问题的电子书存在什么异常。但是不管怎么转换,查词问题总会重现,这着实让人疑惑。
最后,为了更彻底地做对比测试,我从这两本书中各选取了一段,并将其转换成电子书。有趣的现象出现了,居然一段无法正常查词另一段却能正常查词。由此可以推测,问题一定是出在文本内容上。
但是这两段内容看起来确实没有什么区别。当我同时选中这两段内容的时候,突然发现它们的空格看起来有点儿不同。我所用的编辑器是 Sublime Text,当正常的空格被选中时理应显示为“·”,而查词有问题的段落的空格却显示为空(如下图所示)。在确认异常空格的 HTML 实体后,终于找到了问题的症结。
和汉字不同,英文单词之间必须要有空格才有意义,但是在 HTML 中,空格可以分为很多种,其中最常见的就是普通的 ASCII 空格,编辑或阅读时,当一行的空间无法容纳下一个单词时,就会自动换到下一行。此外还有一种特殊的空格,被称为“不换行空格(Non-breaking space)”,这种空格会阻止行的自动换行,编辑或阅读时,当一行的空间不够显示时候,会破坏单词的完整性以字母为单位折行。
这种空格在某些情况下适用,比如“100 km”,可以在“100”和“km”之间加一个不换行空格,这样当一行的行尾空间无法容纳这个计量单位的时候,“100 km”就会被放到下一行的行首,而不会出现“100”在上一行“km”在下一行的情况发生。而如果把所有应该用普通空格的地方换成了不换行空格,就是对不换行空格的滥用。这种滥用的情况虽然不常见,但由于编辑器或输入法等意外情况,还是有可能出现的。
元素名称 | Non-breaking space(不换行空格) |
字符实体: | |
字符数值(十进制): |   |
字符数值(十六进制): |   |
▲ 不换行空格不同形式的 HTML 字符实体
很显然 Kindle 的字典查询功能并没有对不换行空格特殊处理,它会把所有被不换行空格连接起来的单词当作一个单词,这也就是为什么它会自动调用在线字典的原因(否则这么一大段内容它就会给自动标注了)。所以,为了解决这个问题,我们需要在转换电子书时把内容中的不换行空格替换成普通空格。
以 Calibre 为例,在转换电子书的设置面板中,切换到【搜索 & 替换】功能,按照下图所示,在正则表达式中填入 \xa0+
用来查找特殊空格,在替换文本中输入一个普通空格(按一下空格键):
然后点击【添加】按钮将设置加入规则。这样转换出来的电子书查词就恢复正常了,如下图所示:
此问题虽得以解决,但正如前面所提到的,在 HTML 中有很多类型的空格,有可能还会因为其它类型的空格导致类似的问题出现,到时只需要确认空格的实体,然后如法炮制将其替换成普通空格即可。
本文仅针对英文内容的电子书。中文内容的 AZW3 电子书也可能会出现查询字典时选择整段文本的情况,关于这个问题可参考《为什么 AZW3 电子书查字典取词时会选中一整句》这篇文章。
————————–
参考资料:
© 「书伴」原创文章,转载请注明出处及原文链接:https://bookfere.com/post/776.html
“Calibre教程”相关阅读
- Calibre 使用教程之通过邮箱一键推送 Kindle 电子书
- 如何用 Calibre 和 Count Pages 插件统计电子书的字数和页数
- Calibre 使用教程之电子书繁体字转简体字
- Calibre 转换 TXT 文件出现 Errno 21 错误的解决方法
- 用 GitHub Actions 让 Calibre 定时推送新闻到 Kindle
- 如何将 Calibre 中的电子书拼音书名保存成中文书名
- Calibre 常用命令行工具详解之 ebook-convert
- Calibre 常用命令行工具详解之 calibre-smtp
- Calibre 使用教程之批量获取电子书元数据
- Calibre 使用教程之优化电子书的排版
- Calibre 使用教程之把合集电子书拆分成单本
- Calibre 常用命令行工具详解之 ebook-meta
- 把 TXT 文档转换成带目录的 MOBI 格式电子书
- 解决 Calibre 推送“500 Error: bad syntax”错误
- Calibre 发布 3.0 版本(附常用功能梳理)
我遇到的情况是看英文书籍的时候没发选中整个段落……还有选中时候屏幕两边出现的黑条是最近更新的吗,之前不是这样。
没法选中整个段落是什么表现?黑条的问题之前有人反馈过,但是我一直没遇到,这次更新到 5.12.1 固件后我才遇到,感觉是一个 BUG。
我的MOBI(old)是選中單字後螢幕兩邊出現小黑條,若單字後面出現一些特定的標點符號,字典便無法辨識。不是什麼大問題,單純背誦單字的時候有點困擾。
我也出现了两边黑条,我想这个是新系统特性,Amazon重新设计了选中的视觉风格?
两边黑有点像markdown的引用哦。