<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://qingliezhiquan.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%E6%80%8E%E6%A0%B7%E7%94%A8_Emacs_%E8%B0%83%E7%94%B5%E5%AD%90%E4%B9%A6%E6%A0%BC%E5%BC%8F%EF%BC%9A%E6%A0%BC%E5%BC%8F%E5%87%8C%E4%B9%B1%E9%80%9A%E7%94%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88</id>
	<title>怎样用 Emacs 调电子书格式：格式凌乱通用解决方案 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://qingliezhiquan.com/mediawiki/index.php?action=history&amp;feed=atom&amp;title=%E6%80%8E%E6%A0%B7%E7%94%A8_Emacs_%E8%B0%83%E7%94%B5%E5%AD%90%E4%B9%A6%E6%A0%BC%E5%BC%8F%EF%BC%9A%E6%A0%BC%E5%BC%8F%E5%87%8C%E4%B9%B1%E9%80%9A%E7%94%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88"/>
	<link rel="alternate" type="text/html" href="https://qingliezhiquan.com/mediawiki/index.php?title=%E6%80%8E%E6%A0%B7%E7%94%A8_Emacs_%E8%B0%83%E7%94%B5%E5%AD%90%E4%B9%A6%E6%A0%BC%E5%BC%8F%EF%BC%9A%E6%A0%BC%E5%BC%8F%E5%87%8C%E4%B9%B1%E9%80%9A%E7%94%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88&amp;action=history"/>
	<updated>2026-08-11T09:25:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://qingliezhiquan.com/mediawiki/index.php?title=%E6%80%8E%E6%A0%B7%E7%94%A8_Emacs_%E8%B0%83%E7%94%B5%E5%AD%90%E4%B9%A6%E6%A0%BC%E5%BC%8F%EF%BC%9A%E6%A0%BC%E5%BC%8F%E5%87%8C%E4%B9%B1%E9%80%9A%E7%94%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88&amp;diff=7941&amp;oldid=prev</id>
		<title>Mwroot: Created page with &quot;==背景== 333px  找了本电子书，是 pdf 格式的，无法导出为好格式的 txt。想起好久没玩 Emacs 的 regexp 怕生疏了，于是就用 Emacs 调一下 txt 电子书的格式。  注意，通常并不建议使用 Emacs 调整电子书格式，因为直接重新找资源是更自然、方便、合理的方案。  友情提示：下列图片，点开看全图更易理解，因为白边区域易与...&quot;</title>
		<link rel="alternate" type="text/html" href="https://qingliezhiquan.com/mediawiki/index.php?title=%E6%80%8E%E6%A0%B7%E7%94%A8_Emacs_%E8%B0%83%E7%94%B5%E5%AD%90%E4%B9%A6%E6%A0%BC%E5%BC%8F%EF%BC%9A%E6%A0%BC%E5%BC%8F%E5%87%8C%E4%B9%B1%E9%80%9A%E7%94%A8%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88&amp;diff=7941&amp;oldid=prev"/>
		<updated>2025-09-29T02:18:31Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==背景== &lt;a href=&quot;/blog/File:%E6%BA%90pdf%E6%A0%BC%E5%BC%8F%E7%B2%BE%E7%BE%8E%E4%BD%86%E8%BD%ACtxt%E5%90%8E%E6%8D%A2%E8%A1%8C%E5%87%8C%E4%B9%B1.png&quot; title=&quot;File:源pdf格式精美但转txt后换行凌乱.png&quot;&gt;333px&lt;/a&gt;  找了本电子书，是 pdf 格式的，无法导出为好格式的 txt。想起好久没玩 Emacs 的 regexp 怕生疏了，于是就用 Emacs 调一下 txt 电子书的格式。  注意，通常并不建议使用 Emacs 调整电子书格式，因为直接重新找资源是更自然、方便、合理的方案。  友情提示：下列图片，点开看全图更易理解，因为白边区域易与...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==背景==&lt;br /&gt;
[[File:源pdf格式精美但转txt后换行凌乱.png|333px]]&lt;br /&gt;
&lt;br /&gt;
找了本电子书，是 pdf 格式的，无法导出为好格式的 txt。想起好久没玩 Emacs 的 regexp 怕生疏了，于是就用 Emacs 调一下 txt 电子书的格式。&lt;br /&gt;
&lt;br /&gt;
注意，通常并不建议使用 Emacs 调整电子书格式，因为直接重新找资源是更自然、方便、合理的方案。&lt;br /&gt;
&lt;br /&gt;
友情提示：下列图片，点开看全图更易理解，因为白边区域易与网页底色混淆。&lt;br /&gt;
&lt;br /&gt;
==观察==&lt;br /&gt;
[[File:换行凌乱.png|480px]]&lt;br /&gt;
&lt;br /&gt;
在 pdf 中，全选并粘贴进 Emacs，得到初版 txt。&lt;br /&gt;
&lt;br /&gt;
打开 whitespace-mode，发现每一行大概有 58 字，坑爹的是每一行末尾有一个行尾符 $。通常的纯文本，都只在段尾才有一个行尾符 $。那怎么办呢？&lt;br /&gt;
&lt;br /&gt;
==步骤==&lt;br /&gt;
; 1. 标记段尾&lt;br /&gt;
[[File:在段尾插入锚点.png|490px]]&lt;br /&gt;
&lt;br /&gt;
: 把以句号、省略号、后引号、问号、后括号、破折号、感叹号结尾的地方，全打上 rjsyffj 这个标记，rjsyffj 是一句诗：人间四月芳菲尽。打上标记后，在把全书所有断行合并成一行，段尾也有了 rjsyffj 这个明显的标记。&lt;br /&gt;
: &amp;lt;code&amp;gt;\(。\|……\|”\|？\|）\|——\|！\)$ → \&amp;amp;rjsyffj&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 2. 标记章节&lt;br /&gt;
[[File:把章名摘出来.png|490px]]&lt;br /&gt;
&lt;br /&gt;
: 这句就是把第某章前面加两个空行，后面也加一个空行，再打上 rjsyffj 这个标记，把全书所有断行合并成一行之后，章节名也有了 rjsyffj 这个明显的标记。^J 是在 Emacs 中按 C-q C-j 出现的，意思是换行。&lt;br /&gt;
: &amp;lt;code&amp;gt;\(第.章\)  → ^J^J\&amp;amp;^Jrjsyffj &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 3. 合并全书成一行&lt;br /&gt;
[[File:合并全书为一行安插了诗句锚点.png|490px]]&lt;br /&gt;
&lt;br /&gt;
: 把所有断行合并成一行。相当于这几十万字的电子书变成了一行，但由于段尾在第 1 步中做了 rjsyffj 这个标记，所以这一大行，下一步把段尾替换出来就形成了美观的分段。&lt;br /&gt;
: &amp;lt;code&amp;gt;delete-indentation&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 4. 提取段尾&lt;br /&gt;
[[File:把锚点替换为段尾符就实现了分段.png|490px]]&lt;br /&gt;
&lt;br /&gt;
: 在rjsyffj处换行&lt;br /&gt;
&lt;br /&gt;
; 5. 收尾&lt;br /&gt;
[[File:去除凌乱换行后成功分段.png|900px]]&lt;br /&gt;
&lt;br /&gt;
: 删除多余的空格，取消 whitespace-mode，与原 pdf 对比看是否有误&lt;br /&gt;
&lt;br /&gt;
==评价==&lt;br /&gt;
\|表“或”的用法比较有意思。先加 magic letter，替换再找回的思路，高效。Emacs 命令 delete-indentation，强大。想到用&amp;lt;code&amp;gt;。……”？）——！&amp;lt;/code&amp;gt;这七个符号定位段尾的方法，真棒。&lt;br /&gt;
&lt;br /&gt;
表面上，本文针对的是处理电子书。实际上，对于从 pdf 导出来的 word 文档或 txt 文档，其全篇断行凌乱无序的，基本都可以通过这种找段尾、打标记、合并行、替换标记为理想的格式的思路，实现文档美化。&lt;/div&gt;</summary>
		<author><name>Mwroot</name></author>
	</entry>
</feed>