查看: 1819|回复: 20

[教程] 分享个人进行 epub 文件校对的操作记录(使用 beyond compare)

[复制链接]

15

听众

0

收听

13

好友

贡士

Rank: 7Rank: 7Rank: 7

UID
155378
积分
2987
回帖
1025
主题
67
铜币
44271
威望
2435
银币
0
贡献
0
发书数
57
注册时间
2023-6-14
最后登录
2024-4-28
在线时间
1537 小时
发表于 2023-9-6 19:45 | 显示全部楼层 |阅读模式
本帖最后由 edennow 于 2024-4-15 19:46 编辑

epub 无疑是当前通用性最好、各项特性最丰富的电子书格式之一,实际上 epub 文件相当于是将一堆 html 文件按特定结构打包形成的压缩文件,
使用过 sigil 或者 calibre 编辑过 epub 文件的用户应该都清楚 epub 的结构。

个人在下载一定数量的 epub 格式的网文后,发现仍然有很多“精校”“读校”文本中出现了明显漏校的情况,

等自己去进行 epub 校对编辑的时候,如果想通过“校对助手”“txtFormat”等软件进行辅助校对,
发现由于 epub 文件的章节都是拆分成了很多个文件,无法直接像 txt 文件一样进行整体的校对(可能是我不太会用),而且我也不想每次都手动做“epub 转 txt->校对 txt->转回 epub”这种重复劳动。

因此完善了一下这个帖子“网文常见字词替换校对表”里的 FixText.zip(搜名字就能找到附件) 的 php 脚本,实现了“epub 合并成 txt ,以及后续拆分还原”的功能,顺便分享一下个人使用 beyond compare 的一些经验。

脚本下载解压后的结构如下:


将你想要处理的 epub 文件放入 books 文件夹中,可做以下流程的 epub 校对(txt 也同样支持)操作,

①通过 FixText 中自带的校对表进行自动文本粗校
执行 【双击运行】1.书籍校正.bat【双击运行】2.书籍校正(不进行原文件预处理).bat,这两个命令都会对 books 文件夹中的书籍进行备份(自动复制一份到 booksBak 中)和递归校正。

区别在于第二个命令不会执行该帖 “网文常见字词替换校对表” 中提到的“原文件预处理”流程,自动备份在 booksBak 文件夹中的书籍原文件是原封不动的,

但是要注意,此时可能会在 beyond compare 中产生大量的差异项提示,请详细看看这个帖子中的“原文件预处理”,并确认你不需要进行原文件预处理,否则最好执行第一个命令脚本,会自动对原文件进行预处理。


校对运行结果:


执行校对命令后,需要在 beyond compare 中按 F5 进行刷新,最好是 Ctrl+F5 完整刷新,才能较好识别修改后的内容。

②将 epub 的所有文本文件进行自动合并,原样转成一个 TXT
第一步执行完成后,会看到 books 和 booksBak 中各有一个 epub 文件,其实 books 文件夹中的 epub 文件就是已经校正完成的结果文件,booksBak 文件夹内的则是经过原文件预处理的备份文件。

前面说了由于 epub 的文本分得太零散,在很多的校对软件中都不是很好校对,因此可以考虑将 epub 这些零散的 html 文件统一合并,转成一个完整的 txt 文档,便于进一步校对。

可以观察一下,绝大部分的 epub 文本的“章节正文”部分,和 txt 格式的文本其实并没什么差别,也就是在各段内容中套上了 <p></p> 这样的标签而已,最多也不过就是多了几张 <img></img> 标签的插图,以及一些 <div></div> <span></span> 包裹的修饰元素。
因此可以直接把它们原样合并,当成 txt 文本来校对,并不会有什么问题。

操作步骤如下:
执行 【双击运行】5.EPUB 文本合并,原样转成 TXT.bat(3 和 4 那两个解压和压缩的命令,因为操作体验并不好,算是已经废弃了,可以无视,直接执行 5 就好了)可发现在 books 文件夹中会多出相应的 【EPUB 合并文件】 前缀的 txt,这些就是从 epub 文本目录中合并后产生 txt 的文件:


直接拿这些合并出来的 txt 文件(相当于把同一本 epub 内的所有文本原样拼到了一起,html 标签也是原样保留的)去其他软件进行进一步校对即可。

强烈建议先通过 Beyond Compare 进行 books 和 booksBak 文件夹内的结果文件(带 【EPUB 合并文件】 前缀 的 txt 文件)比对,确认 FixText 脚本的修正效果(在 BC 中可以很方便地进行对误改项的还原),然后再去 txtFormat 之类的其他校对软件中进一步操作。

这一步会自动扫描书籍中所有含 html 文本的文本目录,我自己用了很多次,没有发现遗漏内容的情况,欢迎测试。

在合并的过程中,是对 html 根据文件名进行了排序之后再合并的,并没有去解析 epub 的根文件。
所以如果 epub 文件中的 html 文件名本身不是按从小到大的序号排列的话(比如本来是 chapter 1-100 的 html 文件列表,中间插入了 vol_1/2/3 之类的分卷文件名),
合并出来的 txt 文本的章节顺序和在 epub 编辑器和浏览器中看到的顺序,可能不会完全一样,但内容是没有遗漏的,相信也不怎么会影响校对操作。

如果文件中含有多个文本目录,(在一些合集书籍中有可能出现,合集里的每一本书都分别有各自的文本目录)
进行 epub->txt 原样合并的过程中,会产生多个合并 txt,也是直接拿去校对即可, 和对【普通的只有一个文本目录的 epub 文件】,在处理上没有什么区别:


③将校正后的 TXT 文件重新拆分还原成 epub
从其他软件校对完成后,再把这份 txt 拿回 books 目录,覆盖掉原先的文件(文件名千万不要改,里面的 html 标签也不要动),然后执行 【双击运行】6.EPUB 文本拆分还原(从 TXT 中拆分).bat,即可进行 epub 还原,那些带 【EPUB 合并文件】前缀的 txt 和解压目录也会自动被清除。

完成了②③步后,就已经完成了“epub 文本校对并确认,重新进行 epub 打包”的流程,基本上很多你想改的错别字都已完成修正了。

清理书籍
至于那个 【双击运行】7.书籍清理(全部删除,包括备份).bat 脚本,见名知义,就是将 books 和 booksBak 中的所有文件递归删除(不会放到回收站,是彻底删除), 执行前请确保已经完成了对这两个文件夹内的文件处理,并已经把文件移动到了其他目录。

注意事项
另外说一下,这个 php 脚本因为属于是“急就章”,没有多少性能优化之类的操作,我自己一个人 debug 也只能保证“不做重复操作,执行不报错”,所以某些命令的执行时间不一定能快到哪里去。

在每个 bat 文件执行的时候,都会有 !!!!!!! 开始执行命令:【xxx】 !!!!!!! 的信息打印出来,在没看到 !!!!!!! 结束执行命令:【xxx】 !!!!!!! 的信息打印出来之前,最好不要关闭窗口,否则文件不知道会变成什么中间状态,也不要乱序、并行执行命令。

比如 5 和 6 是一对操作。
做了 5 的 epub 文本合并操作后,你能做的应该只有在 beyond compare 中进行文本比较,只有在执行完 6 的拆分还原后,才能进行其他操作。
如果你非要中断操作或者随心所欲操作,那只能多多善用【双击运行】7.书籍清理(全部删除,包括备份).bat,从头再来了。



另外分享一下个人使用 beyond compare 比对的一些设置和操作:

上下文差异项比对
论坛里下载的 beyond compare 默认好像是只显示差异行数,在某些对修改结果不是很确定的段落,可以按下图点击一下,显示“上下文”的视图,以便于结合语境进行确认:


自动折行/换行
我用的 beyond compare 版本中甚至没有这个选项,在比较一些字数较多的段落时很不方便,按如下设置可完成 txt 的自动折行:


下一个差异文件
取消勾选后,如果 beyond compare 中正在比较多个目录,方便一路用 ctrl+m 往下跳到另一文件目录。



文本编码错误导致的“编辑禁止”处理
beyond compare 比对过程中可能出现如图所示的编码错误, 这是由于文本原文件中就已经用了某些编码不一致的字符(例如某些 emoji 等),
如果你用了我写的 FixText 脚本,和 php 脚本的执行 99.99% 没有关系。


这时在 beyond compare 中没有办法直接进行编辑,这时可以将比较选项切换成 “显示所有”, 按 ctrl+g 快捷键,快速定位到具体行数,自己到别的编辑器把它提示的错误字符改掉,再回来 beyond compare 进行对比编辑。

如果这里出现的其实是 cjk 扩展区的中文字符,也可以直接在顶部把编码改成 ANSI 试试,若不再报错也可直接编辑。

beyond compare 论坛内下载地址:
http://www.1000qm.vip/forum.php?mod=viewthread&tid=42400
这个帖子里的倒数第二个附件。

ps:
写得比较啰嗦,如果能耐心看完,欢迎交流^_^

如果你有使用我写的这个脚本,可以在 beyond compare 中把 books 和 booksBak 两个文件夹对比的会话长期保存,后续只用考虑比较这两个文件夹内的不同内容就行了。

最好每次使用完脚本后都用 【双击运行】7.书籍清理(全部删除,包括备份).bat 进行清理,这样不会让脚本对旧数据重复执行操作。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

参与人数 2威望 +6 铜币 +86 收起 理由
pvps + 20 论坛有您更精彩!
baizhai1704 + 6 + 66 赞,膜拜一下!!

查看全部评分

回复

使用道具 举报

3

听众

0

收听

1

好友

秀才

Rank: 5Rank: 5

UID
138622
积分
608
回帖
1210
主题
2
铜币
33
威望
2
银币
0
贡献
0
发书数
0
注册时间
2021-11-19
最后登录
2024-4-27
在线时间
278 小时
发表于 2023-9-8 09:05 | 显示全部楼层
技术部的大牛!!!!
回复 支持 1 反对 0

使用道具 举报

0

听众

0

收听

0

好友

童生

Rank: 3Rank: 3

UID
157328
积分
106
回帖
109
主题
3
铜币
548
威望
50
银币
0
贡献
0
发书数
0
注册时间
2023-7-18
最后登录
2024-4-27
在线时间
21 小时
发表于 2023-10-3 17:37 | 显示全部楼层
最好的教程,谢谢
回复 支持 反对

使用道具 举报

8

听众

1

收听

5

好友

举人

Rank: 6Rank: 6

UID
163064
积分
1414
回帖
949
主题
42
铜币
23677
威望
915
银币
0
贡献
0
发书数
34
注册时间
2023-10-6
最后登录
2024-4-26
在线时间
286 小时

发主题系列:闻鸡起舞发书系列:乐于分享发帖系列:初尝滋味

发表于 2023-10-19 23:21 | 显示全部楼层
技术部的大牛!!!!
回复 支持 反对

使用道具 举报

8

听众

0

收听

2

好友

举人

Rank: 6Rank: 6

UID
2230
积分
1631
回帖
2001
主题
1
铜币
9324
威望
630
银币
0
贡献
0
发书数
0
注册时间
2015-7-1
最后登录
2024-4-27
在线时间
801 小时
QQ
发表于 2023-10-21 11:57 | 显示全部楼层
楼主有心了,还是对错词库感兴趣,校对助手和黑马我都在用。
回复 支持 反对

使用道具 举报

1

听众

29

收听

19

好友

秀才

Rank: 5Rank: 5

UID
158347
积分
808
回帖
366
主题
137
铜币
4227
威望
556
银币
0
贡献
0
发书数
2
注册时间
2023-8-6
最后登录
2024-4-18
在线时间
123 小时
发表于 2023-10-21 15:45 | 显示全部楼层
谢谢老哥的教程和工具,有空捣鼓几下
回复 支持 反对

使用道具 举报

0

听众

0

收听

0

好友

童生

Rank: 3Rank: 3

UID
157328
积分
106
回帖
109
主题
3
铜币
548
威望
50
银币
0
贡献
0
发书数
0
注册时间
2023-7-18
最后登录
2024-4-27
在线时间
21 小时
发表于 2023-10-24 15:06 | 显示全部楼层
能不能录个视频,,发一下啊
[发帖际遇]: 笾豆 坐公交车睡着,被偷走 4 铜币. 幸运榜 / 衰神榜
回复 支持 反对

使用道具 举报

15

听众

0

收听

13

好友

贡士

Rank: 7Rank: 7Rank: 7

UID
155378
积分
2987
回帖
1025
主题
67
铜币
44271
威望
2435
银币
0
贡献
0
发书数
57
注册时间
2023-6-14
最后登录
2024-4-28
在线时间
1537 小时
 楼主| 发表于 2023-10-24 19:26 | 显示全部楼层
笾豆 发表于 2023-10-24 15:06
能不能录个视频,,发一下啊

帖子虽然写得比较啰嗦,但核心就是把书籍放到 books 文件夹,一键执行校对(执行 1 那个 bat)。

然后如果是 epub 文件,再一键原样转成 txt(执行 5 那个 bat),去 beyond compare 比较,比较完后,执行 6 那个 bat 还原成 epub 就已经结束了(如果是 txt 都不用执行 5 和 6,直接在 beyond compare 对比完就完事了)。

如果录视频感觉也录不出啥流程,可能帖子里的很多细节(feihua)也没办法很完整地展示。

建议就找一两本书按我说的这个流程操作一遍,应该就可以理解了,后续再详细看帖子里的细节。如果有哪一步有疑问,可以提出来我看看怎么解答。
回复 支持 反对

使用道具 举报

4

听众

0

收听

0

好友

举人

Rank: 6Rank: 6

UID
164576
积分
1110
回帖
448
主题
36
铜币
9770
威望
865
银币
0
贡献
0
发书数
33
注册时间
2023-11-1
最后登录
2024-4-27
在线时间
184 小时
QQ
发表于 2024-1-23 13:54 | 显示全部楼层
请问有没有什么像快速处理注释一样的,处理插图的方法啊?
回复 支持 反对

使用道具 举报

15

听众

0

收听

13

好友

贡士

Rank: 7Rank: 7Rank: 7

UID
155378
积分
2987
回帖
1025
主题
67
铜币
44271
威望
2435
银币
0
贡献
0
发书数
57
注册时间
2023-6-14
最后登录
2024-4-28
在线时间
1537 小时
 楼主| 发表于 2024-1-23 15:54 | 显示全部楼层
kll85757 发表于 2024-1-23 13:54
请问有没有什么像快速处理注释一样的,处理插图的方法啊?

具体是怎样的需求?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|阡陌居

GMT+8, 2024-4-28 06:02 , Processed in 0.047523 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表