序号 UID1796
好友5 人
听众1 人
收听0 人
阅读权限20
注册时间2025-3-1
最后登录2025-3-14
在线时间17 小时
用户组:童生
UID1796
积分146
回帖25
主题4
发书数0
威望131
铜币2237
贡献0
阅读权限20
注册时间2025-3-1
在线时间17 小时
最后登录2025-3-14
|
本帖最后由 edennow 于 2025-3-11 18:11 编辑
脚本下载:http://www.1000qm.vip/forum.php?mod=viewthread&tid=2282,FixText.zip 附件。
以下为对 FixText 【双击运行】0.文本排版.bat 排版命令的说明,只包含个人比较频繁使用的几个功能,可能以后会继续往里加。
和之前的用法一样,将附件下载解压后,把所有需要处理的书籍(txt 和 epub 格式均可)都移到 books 文件夹中,然后双击打开 【双击运行】0.文本排版.bat 进行排版操作,同样支持有文件夹嵌套的多文件批量处理。
当某一个排版操作结束后,会打印出一行【已完成该轮排版】的信息,然后可选择不同的选项继续下一项排版操作。
books 文件夹中的所有文件都会自动备份到 booksBak 文件夹中,可以随时使用 Beyond Compare 比较 books 和 booksBak 中的文件,确认当前所选的排版操作的效果。
包含功能:
- {
- "索引-0": "排版文本(根据论坛排版要求,处理成正文的段落间无空行、缩进两全角空格,章节间空两行、无缩进)",
- "索引-1": "排版文本(去除所有的空行和缩进,可简单套上 <p> 标签,用于比较不同格式的文本)",
- "索引-2": "转换文本的【编码及换行符】(仅支持 UTF-8 编码和 GB2312 中文编码,仅支持 LF 和 CRLF 换行符)",
- "索引-3": "【提取 epub 中的文本】,整体合并后转换为 txt(转出来的 txt 将按照第一项的论坛格式自动排版)",
- "索引-4": "规范部分常见【标点符号】,把英文标点转为中文标点,可更改【连续多行引号】的使用形式",
- "索引-5": "统一更改文本中的引号形式(在【弯引号】 “”‘’ 和【直角引号】「」『』 间进行转换)",
- "索引-6": "在文本的首尾添加【个人校对信息】(请先打开 typesetting.php 文件更改 username 参数)",
- "索引-7": "【请务必使用 BC 检查】转换文本中的【英文大小写】(首字母大写、全改成小写、全改成大写)",
- "索引-8": "【请务必使用 BC 检查】将文本中的【阿拉伯数字转为中文数字】",
- "索引-9": "【请务必使用 BC 检查】移除正文中的【中文字符之间的空格】",
- "索引-10": "将 books 和 booksBak 中的书籍文件【按标点强制分行】",
- }
复制代码
其实很多都在论坛分享的 emeditor 宏中有实现,不过那几个宏包含的功能有点太多了,有不少个人不怎么有机会用到的去广告之类的选项。有一些功能我想自己改的也不怎么改得动,所以索性还是单独整合了一些个人常用的排版操作。
这个 0.文本排版.bat 命令主要提供文本格式、标点符号、英文大小写和数字转换等比较机械的排版操作,而原来的 1.书籍校正.bat 在之后则只处理文本字词的纠错校正。
下面对这些排版功能逐条简介一下。

排版文本(根据论坛排版要求,处理成正文的段落间无空行、缩进两全角空格,章节间空两行、无缩进)
就是一键把文本格式化成符合校对上传区的要求:“统一排版格式为:行首两全角空格,行间无空行,章节间两空行”。
主要代码在 src/app/Service/Formatting/FileProcessor.php 的 function changeTextFormat 中,如有需要可以自行搜索修改其中的正则表达式。
注意关于章节行的缩进和间隔,目前的正则只匹配明确的“卷XX”“第X卷”“第X章”这种格式,其他“楔子”“番外”“感言”之类的,如果有需要可以在上述位置的正则中自己加。
或者可以在对应的行前新增一个特殊字符:◎,如 “◎番外”,只要某行是以 ◎ 开头,就会被脚本当成和“第X卷”“第X章”等同的章节行,取消该行的缩进,增加分隔行。

排版文本(去除所有的空行和缩进,可简单套上 <p> 标签,用于比较不同格式的文本)
这个功能比较简单,是个人用来直接比较 epub 文本和 txt 文本的,如果是 txt 文本,可以给每个段落套上或者移除 <p> 标签,让 txt 文本和 epub 文本的正文部分基本保持一致。
利用脚本的 EPUB 文本合并 和 EPUB 文本拆分还原 功能,可以在不破坏 epub 结构的前提下进行一些文本差异项的同步,不过说明起来比较麻烦,如果有兴趣可以自己琢磨尝试一下(简单提示:大部分 epub 文件的正文部分,除了多了几个 <p></p> 之外和 txt 格式并没有什么区别,只要让 txt 和 epub 文本同样都是“无空行、无缩进、有 <p> 标签”,在 BC 中就能无视其他标题章节之类的差异,直接比对同步,然后利用 EPUB 文本拆分还原 把比较确认之后的 epub 文件还原)。

转换文本的【编码及换行符】(仅支持 UTF-8 编码和 GB2312 中文编码,仅支持 LF 和 CRLF 换行符)
顾名思义,不需要过多说明,自己操作一下就知道了。
唯一要注意的是,这个排版脚本中,除了这一项转编码的操作外,其他的所有操作都会导致文本的编码被统一转换成 UTF-8,换行符被统一转换成 LF(即 \n)。

【提取 epub 中的文本】,整体合并后转换为 txt(转出来的 txt 将按照第一项的论坛格式自动排版)
也是顾名思义,执行这一项之后,epub 文件原封不动,会在 books 中生成对应 epub 的带 【EPUB 提取】前缀的 txt 文件。
这项操作基本等同于各种格式转换软件中的“epub 转 txt”功能,会完全移除 epub 中的 html 标签,可能唯一的区别就是结果文件会自动按照论坛格式进行排版。

规范部分常见【标点符号】,把英文标点转为中文标点,可更改【连续多行引号】的使用形式
这项操作原来是在 1.书籍校正.bat 这个命令中进行的,现在转移到此脚本中,主要效果:
- 将英文标点转为中文标点(不影响纯英文内容)。
- 去除部分标点间的空格。
- 将全角的英文数字及部分数学符号等改为半角。
- 更改连续多行的引号使用形式。
选择了一项之后会打印出比较多的操作提示,如果是第一次使用最好往上翻一翻了解一下详细的提示信息。
其中 全半角字母数字 的转换规则都写在 src/config/formatting.php 文件开头的 punctuationsMap 配置中,如有需要可以自行调整里面的内容。
该操作还会让你选择是否更改连续多行引号的使用形式,在:
“我是第一段话。
我是第二段话。
我是最后一段话。”
和
“我是第一段话。
“我是第二段话。
“我是最后一段话。”
这两种形式间可以任意转换。当然,也可以选择不转换,保持原样。

统一更改文本中的引号形式(在【弯引号】 “”‘’ 和【直角引号】「」『』 间进行转换)
按一些轻小说、港台书籍中的用法和个人的理解,弯引号和直角引号对应关系如下:
“” 对应 「」
‘’ 对应 『』
不过有些书里好像又是 “” 对应 『』 的,不太了解,反正现在就是按照上面的这种关系来进行互相转换。
除了看一些竖排书或者轻小说之外,个人建议是全部都使用弯引号,毕竟随便去国内的书店翻几本书,也不怎么会碰到哪本书里大面积使用直角引号的(某乎社区和某排版指北除外……)。

在文本的首尾添加【个人校对信息】(需要更改用户名)
就是给文本的首尾自动加这个信息:
=============================================
+欢迎阅读【个人论坛ID】个人校对电子书。转载请保留本声明,谢谢合作~
+仅因个人爱好订阅及整理,如果您喜欢,望您购买VIP章节或正版纸质书。
+本书仅供试阅,版权归原作者/网站/出版社所有,请勿用于任何商业用途~
+★☆更多校对、精校版电子书下载及阅读敬请访问:★☆
+——阡陌居:www.1000qm.vip
=============================================
可以先改一下 src/config/formatting.php 文件开头包含 "用户名" 的那一行,换成你自己的论坛 ID。

【请务必使用 BC 检查】转换文本中的【英文大小写】(首字母大写、全改成小写、全改成大写)
统一一些英文大小写的写法,貌似规范的文本中(论文、公文之类的也是),每个英文名词的首字母都是大写的。
这个功能可能同时会意外帮你发现一些用拼音替换的和谐词。
如果你在这一项选择 1,将首字母大写,还会按照 src/config/formatting.php 中的 fixedCaseWords 那个配置中写的一些固定专有名词进行转换,如果有需要可以自己继续往里堆。
其中有些计量单位 km kg mg 等,都应该规范为全小写,不过个人对这些也不怎么熟悉,可以参考:https://wenku.baidu.com/view/a2834aabad51f01dc381f15d 以及 https://wjk.usst.edu.cn/2022/0523/c13371a269710/page.htm 这两篇文章,往 fixedWords 变量里自行扩展。
这一项执行完后,【请务必使用 BC 检查】books 文件夹和 booksBak 文件夹中的内容,确认修改结果,个人水平有限,这一项很可能有不少误改。

【请务必使用 BC 检查】将文本中的【阿拉伯数字转为中文数字】
就是为了处理一些“他的队里有50人,这五十人都是精英”这样的同一行内的数字写法都不统一的情况,其实大部分情况下可以直接无视,不改这一项。
目前只支持把阿拉伯数字转成对应的中文,为了避免可能的误改,含“章卷节”以及“年月日”“时分秒”的地方都保持原样。
有些类似“国窖1573”“勃朗宁1911”之类的专有名词也会被误改,需要自行在 BC 比较时进行还原。
这一项执行完后,【请务必使用 BC 检查】books 文件夹和 booksBak 文件夹中的内容,确认修改结果,个人水平有限,这一项很可能有不少误改。

【请务必使用 BC 检查】移除正文中的【中文字符之间的空格】
会自动清除中文之间的空格,例如“啊 啊?啊啊 啊啊!啊”这样的, 含“章卷节”等字样的标题行不改。
注意有些歌词之类的空格可能不应该清除,另外往里填充标点符号也许会更好。
这一项执行完后,【请务必使用 BC 检查】books 文件夹和 booksBak 文件夹中的内容,确认修改结果,个人水平有限,这一项很可能有不少误改。

将 books 和 booksBak 中的书籍文件【按标点强制分行】
在比较某些书籍时,可能会碰到【版本 A】(假设放在 books 文件夹)和【版本 B】(假设放在 booksBak 文件夹)两边的内容中存在大量不一致的分段。
在【版本 A】中多句话塞到一行,在【版本 B】中则每句话都强制分行。这样在 BC 中比较时非常难以辨认和同步。
现在这个功能可以强制在两边的文件以一些结尾标点(句号、逗号等)作为分隔,添加临时的分行标记重新分行,让两边都以类似“现代诗”的形式呈现。
比较时只需要关注字词差异,不需要管不同的分行标记。比较完成后可再执行一次这个选项,移除临时的分行标记,将文本恢复原样。

关于修改 epub 文件的说明
上面所有涉及内容修改的操作(规范标点符号、英文大小写转换、阿拉伯数字转中文数字、移除中文间的空格等)都会直接在 epub 文件里生效,执行完毕后可以看到 books 中还是原来的 epub 文件,似乎什么也没改。
其实改动都应用到了 books 和 booksBak 文件夹中转换出来的带【EPUB合并文件】前缀的 txt 文件中,使用 BC 直接比较带有此前缀的 txt 文件,即可确认修改效果。
然后执行 6.EPUB 文本拆分还原(从 TXT 中拆分).bat 进行还原,会把带前缀的 txt 文件重新拆分成 epub,覆盖掉原有的文件。
最后,最好记得在所有排版操作结束后,使用 7.书籍清理(全部删除,包括备份、批注).bat 清理数据,保证工作目录中没有遗留文件。
|
评分
-
查看全部评分
|