<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: questioner</title>
    <description>The latest articles on DEV Community by questioner (@questioner).</description>
    <link>https://dev.to/questioner</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4004700%2F2a011075-784c-482e-bbc0-12cc347eb023.png</url>
      <title>DEV Community: questioner</title>
      <link>https://dev.to/questioner</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/questioner"/>
    <language>en</language>
    <item>
      <title>Creating Ebooks</title>
      <dc:creator>questioner</dc:creator>
      <pubDate>Sat, 27 Jun 2026 07:41:00 +0000</pubDate>
      <link>https://dev.to/questioner/creating-ebooks-1he2</link>
      <guid>https://dev.to/questioner/creating-ebooks-1he2</guid>
      <description>&lt;h1&gt;
  
  
  制作没有数字痕迹的电子书
&lt;/h1&gt;




&lt;h1&gt;
  
  
  手工制作的目录
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
输入

&lt;ul&gt;
&lt;li&gt;掌握Markdown的基本语法&lt;/li&gt;
&lt;li&gt;撰写素材文档&lt;/li&gt;
&lt;li&gt;校对素材文档&lt;/li&gt;
&lt;li&gt;制作封面图片和插图&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
准备

&lt;ul&gt;
&lt;li&gt;安装Calibre&lt;/li&gt;
&lt;li&gt;
配置Calibre

&lt;ul&gt;
&lt;li&gt;自动生成的目录&lt;/li&gt;
&lt;li&gt;章节分页符&lt;/li&gt;
&lt;li&gt;相对固定的输出格式&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
输出

&lt;ul&gt;
&lt;li&gt;把素材文档导入书库&lt;/li&gt;
&lt;li&gt;编辑元数据&lt;/li&gt;
&lt;li&gt;生成书籍并另存为&lt;/li&gt;
&lt;li&gt;
检查书籍的元数据

&lt;ul&gt;
&lt;li&gt;EPUB&lt;/li&gt;
&lt;li&gt;DOCX&lt;/li&gt;
&lt;li&gt;PDF&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;清理&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  输入
&lt;/h1&gt;

&lt;h2&gt;
  
  
  掌握Markdown的基本语法
&lt;/h2&gt;

&lt;p&gt;Markdown是通用、健壮、易学易读易写、便于移植的轻量级标记语言，教程见&lt;a href="https://www.markdownguide.org/cheat-sheet/" rel="noopener noreferrer"&gt;Markdown Guide&lt;/a&gt;和&lt;a href="https://daringfireball.net/projects/markdown/syntax" rel="noopener noreferrer"&gt;Daring Fireball&lt;/a&gt;。主要语法列举如下：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;    用至少一个空白行分隔不同段落（包括标题）。
    正常段落没有必要缩进（即空两格），需要时每4个空格（ ）或1个制表符（TAB）可缩进一级。
    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    &lt;span class="gs"&gt;**粗体**&lt;/span&gt;
    &lt;span class="ge"&gt;*斜体*&lt;/span&gt;
    &lt;span class="gs"&gt;***粗体和斜体**&lt;/span&gt;&lt;span class="err"&gt;*&lt;/span&gt;
&lt;span class="p"&gt;    1.&lt;/span&gt; 有序列表第一项
&lt;span class="p"&gt;    1.&lt;/span&gt; 有序列表第二项
&lt;span class="p"&gt;    1.&lt;/span&gt; 有序列表第三项
&lt;span class="p"&gt;    -&lt;/span&gt; 无序列表第一项
&lt;span class="p"&gt;    *&lt;/span&gt; 无序列表第二项
&lt;span class="p"&gt;    +&lt;/span&gt; 无序列表第三项
    &lt;span class="p"&gt;```&lt;/span&gt;&lt;span class="nl"&gt;段落之间的等宽字体代码块```
&lt;/span&gt;&lt;span class="sb"&gt;    ``段落内部嵌入的等宽字体代码``
    &amp;gt; 引用的第一个段落
    &amp;gt;
    &amp;gt; 引用的第二个段落
    &amp;gt;&amp;gt; 嵌套引用的段落
    &amp;lt;blockquote&amp;gt;段落之间的多行引用块&amp;lt;/blockquote&amp;gt;
    [外部超链接显示名](外部超链接地址)
    [外部超链接显示名](外部超链接地址 "鼠标悬停在链接上时显示的文字提示")
    ![图片无法加载时显示的文字描述](图片路径)
    ![图片无法加载时显示的文字描述](图片路径 "鼠标悬停在图片上时显示的文字提示")
    [^1]: 脚注
    * [目录中的二级标题显示名](#正文中的二级标题)
    * [目录中的二级标题显示名](#二级标题ID)
    &amp;lt;h2 id="二级标题ID"&amp;gt;正文中的二级标题&amp;lt;/h2&amp;gt;
    &amp;lt;h3 id="三级标题ID"&amp;gt;正文中的三级标题&amp;lt;/h3&amp;gt;
    \转义符
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  撰写素材文档
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;从这里开始，所有步骤建议在虚拟机内执行。&lt;/strong&gt;为避免泄露制作的日期和时间，应当关闭虚拟机的时间同步功能，修改虚拟机的系统时间。但是时间错误的情况下，依赖证书的网站连接将受到影响。可以先满足联网需求，在输出前才修改时间。在没有虚拟机的情况下，可以修改物理计算机的时间。&lt;/p&gt;

&lt;p&gt;在加密分区、容器新建文本文档，后缀名可以是txt、md等，文件名将是电子书的默认书名，但后续步骤中可以修改书名。&lt;/p&gt;

&lt;p&gt;按Markdown格式书写需要生成的电子书。在Windows系统中，建议使用记事本等简易的文本编辑器，不建议使用Microsoft Word。&lt;/p&gt;

&lt;p&gt;其他格式的现有文档、网页或电子书可以分别依靠&lt;a href="https://word2md.com/" rel="noopener noreferrer"&gt;Word to Markdown&lt;/a&gt;、&lt;a href="https://urltomarkdown.com/" rel="noopener noreferrer"&gt;URL to Markdown&lt;/a&gt;、&lt;a href="https://www.zamzar.com/convert/epub-to-md/" rel="noopener noreferrer"&gt;Zamzar Epub to Markdown&lt;/a&gt;、&lt;a href="https://convertio.co/ebook-converter/" rel="noopener noreferrer"&gt;Convertio eBook Converter&lt;/a&gt;等线上转换工具或Calibre等线下转换工具预处理，然后人工校对。&lt;/p&gt;

&lt;p&gt;目录可以在后续过程中自动生成，一般不需要按Markdown语法自行撰写。&lt;/p&gt;

&lt;p&gt;外部超链接地址应当经过处理，删除跟踪参数。&lt;/p&gt;

&lt;p&gt;Markdown的标准语法能够满足绝大多数需要。如有特殊需要，可使用html代码，或支持扩展语法的解析器。更详细的注意事项见&lt;a href="https://evelynchartres.com/create-clean-epubs-using-calibre/" rel="noopener noreferrer"&gt;Create Clean EPUBs using Calibre&lt;/a&gt;。&lt;/p&gt;

&lt;h2&gt;
  
  
  校对素材文档
&lt;/h2&gt;

&lt;p&gt;Markdown格式的文本可以使用以下工具检查是否存在语法错误。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;线上工具：&lt;a href="https://stackedit.io/app" rel="noopener noreferrer"&gt;StackEdit&lt;/a&gt;、&lt;a href="https://dillinger.io/" rel="noopener noreferrer"&gt;Dillinger&lt;/a&gt;、&lt;a href="https://rentry.co/" rel="noopener noreferrer"&gt;Rentry.co&lt;/a&gt;等&lt;/li&gt;
&lt;li&gt;线下工具：&lt;a href="https://www.zettlr.com/" rel="noopener noreferrer"&gt;Zettlr&lt;/a&gt;、&lt;a href="https://www.marktext.cc/" rel="noopener noreferrer"&gt;MarkText&lt;/a&gt;、&lt;a href="https://ghostwriter.kde.org/" rel="noopener noreferrer"&gt;ghostwriter&lt;/a&gt;等&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  制作封面图片和插图
&lt;/h2&gt;

&lt;p&gt;JPG/JPEG、TIF、PNG、WEBP四种图片可能含有EXIF数据，可能涉及修改时间、制作软件、拍摄设备、经纬度、速度等大量信息。应事先使用以下工具检查和清理：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;线上工具：&lt;a href="https://www.verexif.com/" rel="noopener noreferrer"&gt;Ver Exif&lt;/a&gt;等&lt;/li&gt;
&lt;li&gt;线下工具：&lt;a href="https://github.com/szTheory/exifcleaner/releases" rel="noopener noreferrer"&gt;ExifCleaner&lt;/a&gt;等&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;今后如以EPUB格式输出，图片的修改时间将在嵌入EPUB文件时改为输出的时间。&lt;/p&gt;

&lt;p&gt;Markdown的标准语法并不适合复杂的图文混排。为提高对不同系统的兼容性，图片路径应避免使用绝对路径。为避免从互联网下载，图片路径也应避免使用URL。建议把图片与素材文档放在同一个文件夹，在图片路径处直接写图片的文件名，例如image.jpg。文件名应当不包含个人信息，也不包含空格和括号。&lt;/p&gt;

&lt;p&gt;Markdown的标准语法也不支持文字居中。如需在图片上方或下方增加图片说明且水平方向居中，可使用以下两种写法：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;div align="center"&amp;gt;图片说明&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;&amp;lt;center&amp;gt;图片说明&amp;lt;/center&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  准备
&lt;/h1&gt;

&lt;h2&gt;
  
  
  安装Calibre
&lt;/h2&gt;

&lt;p&gt;Calibre是自由软件，可用于阅读、制作、编辑、转换电子书，下载地址&lt;a href="https://www.calibre-ebook.com/download" rel="noopener noreferrer"&gt;calibre-ebook.com&lt;/a&gt;。Windows 10以上可使用&lt;a href="https://calibre-ebook.com/download_windows" rel="noopener noreferrer"&gt;普通版&lt;/a&gt;或&lt;a href="https://calibre-ebook.com/download_portable" rel="noopener noreferrer"&gt;绿色版&lt;/a&gt;，Windows 8最高可使用&lt;a href="https://download.calibre-ebook.com/5.44.0" rel="noopener noreferrer"&gt;5.44版&lt;/a&gt;，Windows 7最高可使用&lt;a href="https://download.calibre-ebook.com/3.48.0" rel="noopener noreferrer"&gt;3.48版&lt;/a&gt;。混淆Calibre版本号的一个办法是故意使用&lt;a href="https://download.calibre-ebook.com/" rel="noopener noreferrer"&gt;旧版本&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;安装Calibre，通常无需更改默认参数。&lt;/p&gt;

&lt;p&gt;首次运行时，将显示配置向导：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;语言建议首先选择自己掌握的某门外语，其次可选择Simplified Chinese或Traditional Chinese，不建议选择Chinese。以下说明将提供中英双语。&lt;/li&gt;
&lt;li&gt;“书库”（Library）位置应选择便于清理的硬盘分区或U盘，重要书籍务必选择加密分区、容器内的空文件夹。绿色版的书库位置默认在绿色版所在的目录，在首次运行时无法在配置向导中修改，需要手动点击“书库”（Library），“切换/创建书库”（Switch/create library）。&lt;/li&gt;
&lt;li&gt;“设备”（Device）使用默认配置。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  配置Calibre
&lt;/h2&gt;

&lt;p&gt;进入主界面后，点击上方大按钮“偏好选项”（Preferences）。有时因为窗口较小没有显示，或者把窗口最大化，或者点击其他大按钮最右侧的竖排三个点┇。&lt;/p&gt;

&lt;h3&gt;
  
  
  自动生成的目录
&lt;/h3&gt;

&lt;p&gt;在“转换”（Conversion）处，选择“通用选项”（Common options）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;点击“目录”（Table of Contents），勾选“创建目录时允许重复的链接”（Allow duplicate links when creating the Table of Contents）。&lt;/li&gt;
&lt;li&gt;在一、二、三级目录（Level 1/2/3 TOC）的“XPath表达式”（XPath expression）框内分别输入//h:h1、//h:h2、//h:h3（英语半角冒号，不含顿号）。&lt;/li&gt;
&lt;li&gt;点击“应用”（Apply）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  章节分页符
&lt;/h3&gt;

&lt;p&gt;在“转换”（Conversion）处，选择“通用选项”（Common options）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;点击“结构检测”（Structure detection），填写“前置插入分页符的XPath表达式”（Insert page breaks before (XPath expression)）：

&lt;ul&gt;
&lt;li&gt;每个一、二级标题之间都分页：//*[name()='h1' or name()='h2']&lt;/li&gt;
&lt;li&gt;仅在每个一级标题之间分页：//*[name()='h1']&lt;/li&gt;
&lt;li&gt;各级标题之间都不分页：/&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;点击“应用”（Apply）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  相对固定的输入格式
&lt;/h3&gt;

&lt;p&gt;在“转换”（Conversion）处，选择“输入格式选项”（Input options）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;在“TXT输入”（TXT input）处

&lt;ul&gt;
&lt;li&gt;“格式化样式”（Formatting style）选择markdown。但在默认选择auto的情况下，通常也能自动准确地识别为markdown。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;点击“应用”（Apply）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  相对固定的输出格式
&lt;/h3&gt;

&lt;p&gt;在“转换”（Conversion）处，选择“输出格式选项”（Output options）：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;在“EPUB输出”（EPUB output）处

&lt;ul&gt;
&lt;li&gt;如需要将目录添加到正文之前，可勾选“将目录内嵌到书籍”（Insert inline Table of Contents），并填写“内嵌目录的标题”（Title for inserted ToC，默认是Table of Contents。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;在“DOCX输出”（DOCX output）处

&lt;ul&gt;
&lt;li&gt;按需调整“页面大小”（Paper size），默认letter是8.5 x 11 inch，合21.59 x 27.94厘米。&lt;/li&gt;
&lt;li&gt;按需调整“页面边距”（Page margin），默认是72.0 pt，合1 inch或2.54厘米。&lt;/li&gt;
&lt;li&gt;如需要将目录添加到正文之前，可不勾选“不将目录作为页面插入文档开头”（Do not insert the Table of Contents as a page at the start of the document），目录的标题只能是Table of Contents。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;在“PDF输出”（PDF output）处&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;按需调整“页面大小”（Paper size），默认Letter/ANSI A是8.5 x 11 inch，合21.59 x 27.94厘米。&lt;/li&gt;
&lt;li&gt;按需勾选“在文档末尾添加可打印的目录”（Add a printable Table of Contents at the end），并填写“目录的标题”（Title for ToC）。&lt;/li&gt;
&lt;li&gt;按需调整字体，避免使用小众字体。“衬线字体”（Serif family）可改为宋体（SimSun），但也可以使用非衬线字体；“非衬线字体”（Sans family）可改为微软雅黑（Microsoft YaHei）、黑体（Simhei），但也可以使用衬线字体。&lt;/li&gt;
&lt;li&gt;按需调整“默认字体大小”（Default font size），例如六号7.5 pt、小五9 pt、五号10.5 pt、小四12 pt、四号14 pt、小三15 pt、三号16 pt、小二18 pt、二号22 pt、小一24 pt、一号26 pt等，以适应不同的读者群。&lt;/li&gt;
&lt;li&gt;按需调整“页边距”（Page margins），默认是72.0 pt，合1 inch或2.54厘米。&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;按需勾选“在每页底部添加页码”（Add page numbers to the bottom of every page），在“页眉模板”（Header template）、“页脚模板”（Footer template）填写HTML代码片段，支持一次粘贴多行代码。例如，&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;页眉字体大小小于正文，奇数页页眉是带下划线的最高级标题（即一级标题）且默认左对齐，偶数页页眉是粗体的最低级标题（例如二级或三级标题）且强制右对齐，可使用页眉模板：&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;header style="font-size: smaller"&amp;gt;
&amp;lt;div class="odd-page"&amp;gt;&amp;lt;u&amp;gt;_TOP_LEVEL_SECTION_&amp;lt;/u&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;div class="even-page" style="text-align: right; width: 100%"&amp;gt;&amp;lt;b&amp;gt;_SECTION_&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;
&amp;lt;/header&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;页脚是“页码/总页数”，水平方向居中，上下无外边距，可使用页脚模板：&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;code&gt;&amp;lt;footer&amp;gt;&amp;lt;div style="margin: auto"&amp;gt;_PAGENUM_/_TOTAL_PAGES_&amp;lt;/div&amp;gt;&amp;lt;/footer&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;如指定页脚模板，那么“在每页底部添加页码”的选项将被忽略。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;注意：&lt;/strong&gt;字体、字体大小、页面大小、页边距、页眉、页脚等不同的参数组合就相当于印刷机的字模，可以成为识别制作者的一种特征。应尽量保证同一丛书的参数相同，不同丛书的参数相异，或尽量使用默认设置，即点击“恢复默认值”（Restore defaults）。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;点击“应用”（Apply）。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  完成配置
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;点击“关闭”（Close）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  输出
&lt;/h1&gt;

&lt;h2&gt;
  
  
  把素材文档导入书库
&lt;/h2&gt;

&lt;p&gt;在Calibre的主界面，执行以下步骤。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;点击“添加书籍”（Add books），“从单个文件夹添加”（Add books from a single folder）。&lt;/li&gt;
&lt;li&gt;选择写好的素材文档。导入过程即复制到书库内，此后的操作都将针对书库内的文档。素材文档如何修改不再影响最终制作出来的电子书。&lt;/li&gt;
&lt;li&gt;如已经修改素材文档，需要更新书库内的文档，可&lt;strong&gt;选中导入的书籍&lt;/strong&gt;，点击“添加书籍”（Add books），“添加文件到所选书籍中”（Add files to selected book records）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  编辑元数据
&lt;/h2&gt;

&lt;p&gt;在Calibre的主界面，执行以下步骤。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;选中导入的书籍，点击“编辑元数据”（Edit metadata），“逐个编辑元数据”（Edit metadata individually）。&lt;/li&gt;
&lt;li&gt;根据需要修改“书名”（Title）、“作者”（Author）、“丛书名”（Series）、“丛书编号”（Number）等，其中只有书名是必填项。注意修改相应的“排序书名”（Title sort）和“排序作者”（Author sort），可以与书名、作者一致或不一致。&lt;/li&gt;
&lt;li&gt;在“创建日期”（Published）处，点击右侧按钮“清除日期”（Clear date）。&lt;/li&gt;
&lt;li&gt;在“更换封面”（Change cover）处，点击“浏览”（Browse），选择事先备好的封面图片。也可以多次点击“生成封面”（Generate cover），每次都将以默认图片为背景自动生成一个包含书名、作者、丛书名、丛书编号的封面，因此作者、丛书名、丛书编号实际上可以分别用来填写联系方式、出品方、期号等其他信息。&lt;/li&gt;
&lt;li&gt;点击“确定”（OK）。&lt;/li&gt;
&lt;li&gt;如不希望元数据里残留Calibre的版本号，可找到以下路径的文档，并用任意文本编辑器打开后修改contributor字段：书库位置\作者\书名\metadata.opf&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  生成书籍并另存为
&lt;/h2&gt;

&lt;p&gt;在Calibre的主界面，执行以下步骤。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;选中导入的书籍，点击“转换书籍”（Convert books），“逐个转换”（Convert individually）。&lt;/li&gt;
&lt;li&gt;输出格式选择EPUB、DOCX或PDF。&lt;/li&gt;
&lt;li&gt;在“页面设置”（Page setup）处，选择输出设备的规格，一般无需调整。&lt;/li&gt;
&lt;li&gt;在“目录”（Table of Contents）处，由于之前已经修改默认配置，一般无需调整。&lt;/li&gt;
&lt;li&gt;在“TXT输入”（TXT input）处，由于之前已经修改默认配置，一般无需调整。&lt;/li&gt;
&lt;li&gt;在“输出”（input）处，由于之前已经修改默认配置，一般无需调整。&lt;/li&gt;
&lt;li&gt;点击“确定”（OK）并等待完成，其中PDF的输出过程会比较慢。&lt;/li&gt;
&lt;li&gt;选中导入的书籍，点击“保存到硬盘”（Save to disk）。

&lt;ul&gt;
&lt;li&gt;只需要一种输出格式时，选择“保存单一格式到硬盘”（Save single format to disk）。&lt;/li&gt;
&lt;li&gt;需要多种输出格式时，选择“保存到硬盘的单个文件夹”（Save to disk in a single folder）。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;如中途修改过素材文档或元数据，应当仔细检查内容、封面、插图是否正确。如不正确，可以执行清理步骤后重新操作。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  检查书籍的元数据
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;在要求不高的情况下，可以不使用Calibre，直接制作DOCX文件，并另存为PDF，然后使用以下推荐的工具删除大多数元数据。&lt;/strong&gt;但这个过程比较依赖经验，有可能残留除了元数据以外的痕迹，例如字体、样式、语言、区域、批注、修订、最近打开记录、自动恢复文件等。&lt;/p&gt;

&lt;p&gt;以下检查步骤仍针对Calibre生成的电子书。&lt;/p&gt;

&lt;h3&gt;
  
  
  EPUB
&lt;/h3&gt;

&lt;p&gt;一般来说，残留的痕迹包括：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title：书名&lt;/li&gt;
&lt;li&gt;Title for Sorting：书名&lt;/li&gt;
&lt;li&gt;Creator：作者&lt;/li&gt;
&lt;li&gt;Contributor：calibre (版本号)&lt;/li&gt;
&lt;li&gt;Language：Calibre的界面语言&lt;/li&gt;
&lt;li&gt;Timestamp：Calibre编辑元数据时设置的“创建日期”&lt;/li&gt;
&lt;li&gt;Series：Calibre编辑元数据时设置的“丛书名”&lt;/li&gt;
&lt;li&gt;Series Index：Calibre编辑元数据时设置的“丛书编号”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;如需检查和进一步清理上述痕迹，可使用开源软件&lt;a href="https://sigil-ebook.com/sigil/download/" rel="noopener noreferrer"&gt;Sigil EPUB Editor&lt;/a&gt;。使用前，需要安装新版&lt;a href="https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist" rel="noopener noreferrer"&gt;Microsoft Visual C++ Redistributable&lt;/a&gt;。运行后，进入菜单Tools的Metadata Editor，选中相关字段并点击Remove。但即使全部清空，仍会留下Sigil的版本号、使用Sigil修改元数据的日期（不含时间）。&lt;/p&gt;

&lt;h3&gt;
  
  
  DOCX
&lt;/h3&gt;

&lt;p&gt;一般来说，残留的痕迹包括：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title：书名&lt;/li&gt;
&lt;li&gt;Last Modified：输出日期和时间&lt;/li&gt;
&lt;li&gt;Created：输出日期和时间&lt;/li&gt;
&lt;li&gt;Author：作者&lt;/li&gt;
&lt;li&gt;Last Modified By：calibre&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;如需检查上述痕迹，可使用Microsoft Word自带的“检查文档”（Inspect document）功能，&lt;strong&gt;但进一步清理后的痕迹未必少于清理前&lt;/strong&gt;。建议在不打开Microsoft Word的情况下，右键点击文档，进入“属性”（Properties）的“详细内容”（Details），直接修改某些元数据。&lt;/p&gt;

&lt;h3&gt;
  
  
  PDF
&lt;/h3&gt;

&lt;p&gt;一般来说，残留的痕迹包括：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Title：书名&lt;/li&gt;
&lt;li&gt;Author：作者&lt;/li&gt;
&lt;li&gt;Creators：作者&lt;/li&gt;
&lt;li&gt;Creator：calibre 版本号&lt;/li&gt;
&lt;li&gt;Producer：calibre 版本号&lt;/li&gt;
&lt;li&gt;Creation Date：输出日期和时间&lt;/li&gt;
&lt;li&gt;Modification Date：输出日期和时间&lt;/li&gt;
&lt;li&gt;Metadata Date：输出日期和时间&lt;/li&gt;
&lt;li&gt;Languages：Calibre的界面语言&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;如需检查和进一步清理上述痕迹，可使用开源软件&lt;a href="https://pdf.metadata.care/download/" rel="noopener noreferrer"&gt;PDF Metadata Editor&lt;/a&gt;。&lt;/p&gt;

&lt;p&gt;也可使用自由软件&lt;a href="http://www.hexonic-software.com/index.php/hexonic-pdf-metadata-editor" rel="noopener noreferrer"&gt;Hexonic PDF Metadata Editor&lt;/a&gt;。使用前，需要安装&lt;a href="https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net35-sp1?wt.mc_id=install-docs" rel="noopener noreferrer"&gt;Microsoft .NET Framework 3.5&lt;/a&gt;。&lt;/p&gt;

&lt;h2&gt;
  
  
  清理
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;可找到以下路径，用专门软件直接擦除其中的全部文件：书库位置\作者\书名\&lt;/li&gt;
&lt;li&gt;在Calibre的主界面，选中导入的书籍，点击“删除书籍”（Remove books），“删除所选书籍”（Remove selected books）。&lt;/li&gt;
&lt;li&gt;可找到以下路径，根据文件夹的创建和修改时间判断该书籍对应的文件夹，用专门软件擦除其中的metadata.opf文档：书库位置\.caltrash\&lt;/li&gt;
&lt;li&gt;在Calibre的主界面，点击“删除书籍”（Remove books），“恢复最近删除的书籍”（Restore recently deleted），确认导入的书籍已被彻底删除、无法恢复。&lt;/li&gt;
&lt;li&gt;在Calibre的主界面，点击“书库”（Library），“书库维护”（Library maintenance），“检查书库”（Check library），勾选“同时压缩全文搜索数据库”（Also compact the Full text search database），依次点击“确定”（OK）、“是”（Yes），从而重建以下路径的文件：书库位置\metadata.db&lt;/li&gt;
&lt;li&gt;清理书库所在的硬盘分区或U盘。&lt;/li&gt;
&lt;li&gt;如使用虚拟机，恢复到历史状态。&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  以上内容的Markdown原始代码
&lt;/h1&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# 手工制作的目录&lt;/span&gt;
&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;输入&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#输入&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;掌握Markdown的基本语法&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#掌握Markdown的基本语法&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;撰写素材文档&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#撰写素材文档&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;校对素材文档&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#校对素材文档&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;制作封面图片和插图&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#制作封面图片和插图&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;准备&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#准备&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;安装Calibre&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#安装Calibre&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;配置Calibre&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#配置Calibre&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;        *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;自动生成的目录&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#自动生成的目录&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;        *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;章节分页符&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#章节分页符&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;        *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;相对固定的输出格式&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#相对固定的输出格式&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;输出&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#输出&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;把素材文档导入书库&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#把素材文档导入书库&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;编辑元数据&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#编辑元数据&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;生成书籍并另存为&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#生成书籍并另存为&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;检查书籍的元数据&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#检查书籍的元数据&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;        *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;EPUB&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#EPUB&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;        *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;DOCX&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#DOCX&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;        *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;PDF&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#PDF&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;    *&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;清理&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;#清理&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="gh"&gt;# 输入&lt;/span&gt;

&lt;span class="gu"&gt;## 掌握Markdown的基本语法&lt;/span&gt;

Markdown是通用、健壮、易学易读易写、便于移植的轻量级标记语言，教程见&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Markdown Guide&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://www.markdownguide.org/cheat-sheet/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;和&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Daring Fireball&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://daringfireball.net/projects/markdown/syntax&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。主要语法列举如下：

&lt;span class="p"&gt;````&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;    用至少一个空白行分隔不同段落（包括标题）。
    正常段落没有必要缩进（即空两格），需要时每4个空格（ ）或1个制表符（TAB）可缩进一级。
    # 一级标题
    ## 二级标题
    ### 三级标题
    #### 四级标题
    **粗体**
    *斜体*
    ***粗体和斜体***
    1. 有序列表第一项
    1. 有序列表第二项
    1. 有序列表第三项
    - 无序列表第一项
    * 无序列表第二项
    + 无序列表第三项
    ```段落之间的等宽字体代码块```
    ``段落内部嵌入的等宽字体代码``
    &amp;gt; 引用的第一个段落
    &amp;gt;
    &amp;gt; 引用的第二个段落
    &amp;gt;&amp;gt; 嵌套引用的段落
    &amp;lt;blockquote&amp;gt;段落之间的多行引用块&amp;lt;/blockquote&amp;gt;
    [外部超链接显示名](外部超链接地址)
    [外部超链接显示名](外部超链接地址 "鼠标悬停在链接上时显示的文字提示")
    ![图片无法加载时显示的文字描述](图片路径)
    ![图片无法加载时显示的文字描述](图片路径 "鼠标悬停在图片上时显示的文字提示")
    [^1]: 脚注
    * [目录中的二级标题显示名](#正文中的二级标题)
    * [目录中的二级标题显示名](#二级标题ID)
    &amp;lt;h2 id="二级标题ID"&amp;gt;正文中的二级标题&amp;lt;/h2&amp;gt;
    &amp;lt;h3 id="三级标题ID"&amp;gt;正文中的三级标题&amp;lt;/h3&amp;gt;
    \转义符
&lt;span class="p"&gt;````&lt;/span&gt;

&lt;span class="gu"&gt;## 撰写素材文档&lt;/span&gt;

&lt;span class="gs"&gt;**从这里开始，所有步骤建议在虚拟机内执行。**&lt;/span&gt;为避免泄露制作的日期和时间，应当关闭虚拟机的时间同步功能，修改虚拟机的系统时间。但是时间错误的情况下，依赖证书的网站连接将受到影响。可以先满足联网需求，在输出前才修改时间。在没有虚拟机的情况下，可以修改物理计算机的时间。

在加密分区、容器新建文本文档，后缀名可以是txt、md等，文件名将是电子书的默认书名，但后续步骤中可以修改书名。

按Markdown格式书写需要生成的电子书。在Windows系统中，建议使用记事本等简易的文本编辑器，不建议使用Microsoft Word。

其他格式的现有文档、网页或电子书可以分别依靠&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Word to Markdown&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://word2md.com/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;URL to Markdown&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://urltomarkdown.com/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Zamzar Epub to Markdown&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://www.zamzar.com/convert/epub-to-md/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Convertio eBook Converter&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://convertio.co/ebook-converter/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;等线上转换工具或Calibre等线下转换工具预处理，然后人工校对。

目录可以在后续过程中自动生成，一般不需要按Markdown语法自行撰写。

外部超链接地址应当经过处理，删除跟踪参数。

Markdown的标准语法能够满足绝大多数需要。如有特殊需要，可使用html代码，或支持扩展语法的解析器。更详细的注意事项见&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Create Clean EPUBs using Calibre&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://evelynchartres.com/create-clean-epubs-using-calibre/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。

&lt;span class="gu"&gt;## 校对素材文档&lt;/span&gt;

Markdown格式的文本可以使用以下工具检查是否存在语法错误。
&lt;span class="p"&gt;*&lt;/span&gt; 线上工具：&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;StackEdit&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://stackedit.io/app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Dillinger&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dillinger.io/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Rentry.co&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://rentry.co/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;等
&lt;span class="p"&gt;*&lt;/span&gt; 线下工具：&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Zettlr&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://www.zettlr.com/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;MarkText&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://www.marktext.cc/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;、&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;ghostwriter&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://ghostwriter.kde.org/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;等

&lt;span class="gu"&gt;## 制作封面图片和插图&lt;/span&gt;

JPG/JPEG、TIF、PNG、WEBP四种图片可能含有EXIF数据，可能涉及修改时间、制作软件、拍摄设备、经纬度、速度等大量信息。应事先使用以下工具检查和清理：
&lt;span class="p"&gt;*&lt;/span&gt; 线上工具：&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Ver Exif&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://www.verexif.com/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;等
&lt;span class="p"&gt;*&lt;/span&gt; 线下工具：&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;ExifCleaner&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://github.com/szTheory/exifcleaner/releases&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;等

今后如以EPUB格式输出，图片的修改时间将在嵌入EPUB文件时改为输出的时间。

Markdown的标准语法并不适合复杂的图文混排。为提高对不同系统的兼容性，图片路径应避免使用绝对路径。为避免从互联网下载，图片路径也应避免使用URL。建议把图片与素材文档放在同一个文件夹，在图片路径处直接写图片的文件名，例如image.jpg。文件名应当不包含个人信息，也不包含空格和括号。

Markdown的标准语法也不支持文字居中。如需在图片上方或下方增加图片说明且水平方向居中，可使用以下两种写法：
&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="sb"&gt;``&amp;lt;div align="center"&amp;gt;图片说明&amp;lt;/div&amp;gt;``&lt;/span&gt;
&lt;span class="p"&gt;
*&lt;/span&gt; &lt;span class="sb"&gt;``&amp;lt;center&amp;gt;图片说明&amp;lt;/center&amp;gt;``&lt;/span&gt;

&lt;span class="gh"&gt;# 准备&lt;/span&gt;

&lt;span class="gu"&gt;## 安装Calibre&lt;/span&gt;

Calibre是自由软件，可用于阅读、制作、编辑、转换电子书，下载地址&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;calibre-ebook.com&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://www.calibre-ebook.com/download&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。Windows 10以上可使用&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;普通版&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://calibre-ebook.com/download_windows&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;或&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;绿色版&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://calibre-ebook.com/download_portable&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;，Windows 8最高可使用&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;5.44版&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://download.calibre-ebook.com/5.44.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;，Windows 7最高可使用&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;3.48版&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://download.calibre-ebook.com/3.48.0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。混淆Calibre版本号的一个办法是故意使用&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;旧版本&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://download.calibre-ebook.com/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。

安装Calibre，通常无需更改默认参数。

首次运行时，将显示配置向导：
&lt;span class="p"&gt;
*&lt;/span&gt; 语言建议首先选择自己掌握的某门外语，其次可选择Simplified Chinese或Traditional Chinese，不建议选择Chinese。以下说明将提供中英双语。
&lt;span class="p"&gt;*&lt;/span&gt; “书库”（Library）位置应选择便于清理的硬盘分区或U盘，重要书籍务必选择加密分区、容器内的空文件夹。绿色版的书库位置默认在绿色版所在的目录，在首次运行时无法在配置向导中修改，需要手动点击“书库”（Library），“切换/创建书库”（Switch/create library）。
&lt;span class="p"&gt;*&lt;/span&gt; “设备”（Device）使用默认配置。

&lt;span class="gu"&gt;## 配置Calibre&lt;/span&gt;

进入主界面后，点击上方大按钮“偏好选项”（Preferences）。有时因为窗口较小没有显示，或者把窗口最大化，或者点击其他大按钮最右侧的竖排三个点┇。

&lt;span class="gu"&gt;### 自动生成的目录&lt;/span&gt;

在“转换”（Conversion）处，选择“通用选项”（Common options）：
&lt;span class="p"&gt;
*&lt;/span&gt; 点击“目录”（Table of Contents），勾选“创建目录时允许重复的链接”（Allow duplicate links when creating the Table of Contents）。
&lt;span class="p"&gt;*&lt;/span&gt; 在一、二、三级目录（Level 1/2/3 TOC）的“XPath表达式”（XPath expression）框内分别输入//h:h1、//h:h2、//h:h3（英语半角冒号，不含顿号）。
&lt;span class="p"&gt;*&lt;/span&gt; 点击“应用”（Apply）。

&lt;span class="gu"&gt;### 章节分页符&lt;/span&gt;

在“转换”（Conversion）处，选择“通用选项”（Common options）：
&lt;span class="p"&gt;
*&lt;/span&gt; 点击“结构检测”（Structure detection），填写“前置插入分页符的XPath表达式”（Insert page breaks before (XPath expression)）：
&lt;span class="p"&gt;    *&lt;/span&gt; 每个一、二级标题之间都分页：//&lt;span class="err"&gt;*&lt;/span&gt;[name()='h1' or name()='h2']
&lt;span class="p"&gt;    *&lt;/span&gt; 仅在每个一级标题之间分页：//&lt;span class="err"&gt;*&lt;/span&gt;[name()='h1']
&lt;span class="p"&gt;    *&lt;/span&gt; 各级标题之间都不分页：/
&lt;span class="p"&gt;*&lt;/span&gt; 点击“应用”（Apply）。

&lt;span class="gu"&gt;### 相对固定的输入格式&lt;/span&gt;

在“转换”（Conversion）处，选择“输入格式选项”（Input options）：
&lt;span class="p"&gt;
*&lt;/span&gt; 在“TXT输入”（TXT input）处
&lt;span class="p"&gt;    *&lt;/span&gt; “格式化样式”（Formatting style）选择markdown。但在默认选择auto的情况下，通常也能自动准确地识别为markdown。
&lt;span class="p"&gt;*&lt;/span&gt; 点击“应用”（Apply）。

&lt;span class="gu"&gt;### 相对固定的输出格式&lt;/span&gt;

在“转换”（Conversion）处，选择“输出格式选项”（Output options）：
&lt;span class="p"&gt;
*&lt;/span&gt; 在“EPUB输出”（EPUB output）处
&lt;span class="p"&gt;    *&lt;/span&gt; 如需要将目录添加到正文之前，可勾选“将目录内嵌到书籍”（Insert inline Table of Contents），并填写“内嵌目录的标题”（Title for inserted ToC，默认是Table of Contents。
&lt;span class="p"&gt;*&lt;/span&gt; 在“DOCX输出”（DOCX output）处
&lt;span class="p"&gt;    *&lt;/span&gt; 按需调整“页面大小”（Paper size），默认letter是8.5 x 11 inch，合21.59 x 27.94厘米。
&lt;span class="p"&gt;    *&lt;/span&gt; 按需调整“页面边距”（Page margin），默认是72.0 pt，合1 inch或2.54厘米。
&lt;span class="p"&gt;    *&lt;/span&gt; 如需要将目录添加到正文之前，可不勾选“不将目录作为页面插入文档开头”（Do not insert the Table of Contents as a page at the start of the document），目录的标题只能是Table of Contents。
&lt;span class="p"&gt;*&lt;/span&gt; 在“PDF输出”（PDF output）处
&lt;span class="p"&gt;    *&lt;/span&gt; 按需调整“页面大小”（Paper size），默认Letter/ANSI A是8.5 x 11 inch，合21.59 x 27.94厘米。
&lt;span class="p"&gt;    *&lt;/span&gt; 按需勾选“在文档末尾添加可打印的目录”（Add a printable Table of Contents at the end），并填写“目录的标题”（Title for ToC）。
&lt;span class="p"&gt;    *&lt;/span&gt; 按需调整字体，避免使用小众字体。“衬线字体”（Serif family）可改为宋体（SimSun），但也可以使用非衬线字体；“非衬线字体”（Sans family）可改为微软雅黑（Microsoft YaHei）、黑体（Simhei），但也可以使用衬线字体。
&lt;span class="p"&gt;    *&lt;/span&gt; 按需调整“默认字体大小”（Default font size），例如六号7.5 pt、小五9 pt、五号10.5 pt、小四12 pt、四号14 pt、小三15 pt、三号16 pt、小二18 pt、二号22 pt、小一24 pt、一号26 pt等，以适应不同的读者群。
&lt;span class="p"&gt;    *&lt;/span&gt; 按需调整“页边距”（Page margins），默认是72.0 pt，合1 inch或2.54厘米。
&lt;span class="p"&gt;    *&lt;/span&gt; 按需勾选“在每页底部添加页码”（Add page numbers to the bottom of every page），在“页眉模板”（Header template）、“页脚模板”（Footer template）填写HTML代码片段，支持一次粘贴多行代码。例如，&lt;span class="sb"&gt;

        * 页眉字体大小小于正文，奇数页页眉是带下划线的最高级标题（即一级标题）且默认左对齐，偶数页页眉是粗体的最低级标题（例如二级或三级标题）且强制右对齐，可使用页眉模板：

        &amp;gt; ```
        &amp;gt; &amp;lt;header style="font-size: smaller"&amp;gt;
        &amp;gt; &amp;lt;div class="odd-page"&amp;gt;&amp;lt;u&amp;gt;_TOP_LEVEL_SECTION_&amp;lt;/u&amp;gt;&amp;lt;/div&amp;gt;
        &amp;gt; &amp;lt;div class="even-page" style="text-align: right; width: 100%"&amp;gt;&amp;lt;b&amp;gt;_SECTION_&amp;lt;/b&amp;gt;&amp;lt;/div&amp;gt;
        &amp;gt; &amp;lt;/header&amp;gt;
        &amp;gt; ```

        * 页脚是“页码/总页数”，水平方向居中，上下无外边距，可使用页脚模板：

        &amp;gt; ``&amp;lt;footer&amp;gt;&amp;lt;div style="margin: auto"&amp;gt;_PAGENUM_/_TOTAL_PAGES_&amp;lt;/div&amp;gt;&amp;lt;/footer&amp;gt;``

        * 如指定页脚模板，那么“在每页底部添加页码”的选项将被忽略。

&lt;/span&gt;&lt;span class="p"&gt;*&lt;/span&gt; &lt;span class="gs"&gt;**注意：**&lt;/span&gt;字体、字体大小、页面大小、页边距、页眉、页脚等不同的参数组合就相当于印刷机的字模，可以成为识别制作者的一种特征。应尽量保证同一丛书的参数相同，不同丛书的参数相异，或尽量使用默认设置，即点击“恢复默认值”（Restore defaults）。
&lt;span class="p"&gt;
*&lt;/span&gt; 点击“应用”（Apply）。

&lt;span class="gu"&gt;### 完成配置&lt;/span&gt;
&lt;span class="p"&gt;
*&lt;/span&gt; 点击“关闭”（Close）。

&lt;span class="gh"&gt;# 输出&lt;/span&gt;

&lt;span class="gu"&gt;## 把素材文档导入书库&lt;/span&gt;

在Calibre的主界面，执行以下步骤。
&lt;span class="p"&gt;
*&lt;/span&gt; 点击“添加书籍”（Add books），“从单个文件夹添加”（Add books from a single folder）。
&lt;span class="p"&gt;*&lt;/span&gt; 选择写好的素材文档。导入过程即复制到书库内，此后的操作都将针对书库内的文档。素材文档如何修改不再影响最终制作出来的电子书。
&lt;span class="p"&gt;*&lt;/span&gt; 如已经修改素材文档，需要更新书库内的文档，可&lt;span class="gs"&gt;**选中导入的书籍**&lt;/span&gt;，点击“添加书籍”（Add books），“添加文件到所选书籍中”（Add files to selected book records）。

&lt;span class="gu"&gt;## 编辑元数据&lt;/span&gt;

在Calibre的主界面，执行以下步骤。
&lt;span class="p"&gt;
*&lt;/span&gt; 选中导入的书籍，点击“编辑元数据”（Edit metadata），“逐个编辑元数据”（Edit metadata individually）。
&lt;span class="p"&gt;*&lt;/span&gt; 根据需要修改“书名”（Title）、“作者”（Author）、“丛书名”（Series）、“丛书编号”（Number）等，其中只有书名是必填项。注意修改相应的“排序书名”（Title sort）和“排序作者”（Author sort），可以与书名、作者一致或不一致。
&lt;span class="p"&gt;*&lt;/span&gt; 在“创建日期”（Published）处，点击右侧按钮“清除日期”（Clear date）。
&lt;span class="p"&gt;*&lt;/span&gt; 在“更换封面”（Change cover）处，点击“浏览”（Browse），选择事先备好的封面图片。也可以多次点击“生成封面”（Generate cover），每次都将以默认图片为背景自动生成一个包含书名、作者、丛书名、丛书编号的封面，因此作者、丛书名、丛书编号实际上可以分别用来填写联系方式、出品方、期号等其他信息。
&lt;span class="p"&gt;*&lt;/span&gt; 点击“确定”（OK）。
&lt;span class="p"&gt;*&lt;/span&gt; 如不希望元数据里残留Calibre的版本号，可找到以下路径的文档，并用任意文本编辑器打开后修改contributor字段：书库位置&lt;span class="se"&gt;\作&lt;/span&gt;者&lt;span class="se"&gt;\书&lt;/span&gt;名&lt;span class="se"&gt;\m&lt;/span&gt;etadata.opf

&lt;span class="gu"&gt;## 生成书籍并另存为&lt;/span&gt;

在Calibre的主界面，执行以下步骤。
&lt;span class="p"&gt;
*&lt;/span&gt; 选中导入的书籍，点击“转换书籍”（Convert books），“逐个转换”（Convert individually）。
&lt;span class="p"&gt;*&lt;/span&gt; 输出格式选择EPUB、DOCX或PDF。
&lt;span class="p"&gt;*&lt;/span&gt; 在“页面设置”（Page setup）处，选择输出设备的规格，一般无需调整。
&lt;span class="p"&gt;*&lt;/span&gt; 在“目录”（Table of Contents）处，由于之前已经修改默认配置，一般无需调整。
&lt;span class="p"&gt;*&lt;/span&gt; 在“TXT输入”（TXT input）处，由于之前已经修改默认配置，一般无需调整。
&lt;span class="p"&gt;*&lt;/span&gt; 在“输出”（input）处，由于之前已经修改默认配置，一般无需调整。
&lt;span class="p"&gt;*&lt;/span&gt; 点击“确定”（OK）并等待完成，其中PDF的输出过程会比较慢。
&lt;span class="p"&gt;*&lt;/span&gt; 选中导入的书籍，点击“保存到硬盘”（Save to disk）。
&lt;span class="p"&gt;    *&lt;/span&gt; 只需要一种输出格式时，选择“保存单一格式到硬盘”（Save single format to disk）。
&lt;span class="p"&gt;    *&lt;/span&gt; 需要多种输出格式时，选择“保存到硬盘的单个文件夹”（Save to disk in a single folder）。
&lt;span class="p"&gt;*&lt;/span&gt; 如中途修改过素材文档或元数据，应当仔细检查内容、封面、插图是否正确。如不正确，可以执行清理步骤后重新操作。

&lt;span class="gu"&gt;## 检查书籍的元数据&lt;/span&gt;

&lt;span class="gs"&gt;**在要求不高的情况下，可以不使用Calibre，直接制作DOCX文件，并另存为PDF，然后使用以下推荐的工具删除大多数元数据。**&lt;/span&gt;但这个过程比较依赖经验，有可能残留除了元数据以外的痕迹，例如字体、样式、语言、区域、批注、修订、最近打开记录、自动恢复文件等。

以下检查步骤仍针对Calibre生成的电子书。

&lt;span class="gu"&gt;### EPUB&lt;/span&gt;

一般来说，残留的痕迹包括：
&lt;span class="p"&gt;
*&lt;/span&gt; Title：书名
&lt;span class="p"&gt;*&lt;/span&gt; Title for Sorting：书名
&lt;span class="p"&gt;*&lt;/span&gt; Creator：作者
&lt;span class="p"&gt;*&lt;/span&gt; Contributor：calibre (版本号)
&lt;span class="p"&gt;*&lt;/span&gt; Language：Calibre的界面语言
&lt;span class="p"&gt;*&lt;/span&gt; Timestamp：Calibre编辑元数据时设置的“创建日期”
&lt;span class="p"&gt;*&lt;/span&gt; Series：Calibre编辑元数据时设置的“丛书名”
&lt;span class="p"&gt;*&lt;/span&gt; Series Index：Calibre编辑元数据时设置的“丛书编号”

如需检查和进一步清理上述痕迹，可使用开源软件&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Sigil EPUB Editor&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://sigil-ebook.com/sigil/download/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。使用前，需要安装新版&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Microsoft Visual C++ Redistributable&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。运行后，进入菜单Tools的Metadata Editor，选中相关字段并点击Remove。但即使全部清空，仍会留下Sigil的版本号、使用Sigil修改元数据的日期（不含时间）。

&lt;span class="gu"&gt;### DOCX&lt;/span&gt;

一般来说，残留的痕迹包括：
&lt;span class="p"&gt;
*&lt;/span&gt; Title：书名
&lt;span class="p"&gt;*&lt;/span&gt; Last Modified：输出日期和时间
&lt;span class="p"&gt;*&lt;/span&gt; Created：输出日期和时间
&lt;span class="p"&gt;*&lt;/span&gt; Author：作者
&lt;span class="p"&gt;*&lt;/span&gt; Last Modified By：calibre

如需检查上述痕迹，可使用Microsoft Word自带的“检查文档”（Inspect document）功能，&lt;span class="gs"&gt;**但进一步清理后的痕迹未必少于清理前**&lt;/span&gt;。建议在不打开Microsoft Word的情况下，右键点击文档，进入“属性”（Properties）的“详细内容”（Details），直接修改某些元数据。

&lt;span class="gu"&gt;### PDF&lt;/span&gt;

一般来说，残留的痕迹包括：
&lt;span class="p"&gt;
*&lt;/span&gt; Title：书名
&lt;span class="p"&gt;*&lt;/span&gt; Author：作者
&lt;span class="p"&gt;*&lt;/span&gt; Creators：作者
&lt;span class="p"&gt;*&lt;/span&gt; Creator：calibre 版本号
&lt;span class="p"&gt;*&lt;/span&gt; Producer：calibre 版本号
&lt;span class="p"&gt;*&lt;/span&gt; Creation Date：输出日期和时间
&lt;span class="p"&gt;*&lt;/span&gt; Modification Date：输出日期和时间
&lt;span class="p"&gt;*&lt;/span&gt; Metadata Date：输出日期和时间
&lt;span class="p"&gt;*&lt;/span&gt; Languages：Calibre的界面语言

如需检查和进一步清理上述痕迹，可使用开源软件&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;PDF Metadata Editor&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://pdf.metadata.care/download/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。

也可使用自由软件&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Hexonic PDF Metadata Editor&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;http://www.hexonic-software.com/index.php/hexonic-pdf-metadata-editor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。使用前，需要安装&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;Microsoft .NET Framework 3.5&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net35-sp1?wt.mc_id=install-docs&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;。

&lt;span class="gu"&gt;## 清理&lt;/span&gt;
&lt;span class="p"&gt;
*&lt;/span&gt; 可找到以下路径，用专门软件直接擦除其中的全部文件：书库位置&lt;span class="se"&gt;\作&lt;/span&gt;者&lt;span class="se"&gt;\书&lt;/span&gt;名&lt;span class="err"&gt;\&lt;/span&gt;
&lt;span class="p"&gt;*&lt;/span&gt; 在Calibre的主界面，选中导入的书籍，点击“删除书籍”（Remove books），“删除所选书籍”（Remove selected books）。
&lt;span class="p"&gt;*&lt;/span&gt; 可找到以下路径，根据文件夹的创建和修改时间判断该书籍对应的文件夹，用专门软件擦除其中的metadata.opf文档：书库位置&lt;span class="se"&gt;\\&lt;/span&gt;.caltrash&lt;span class="err"&gt;\&lt;/span&gt;
&lt;span class="p"&gt;*&lt;/span&gt; 在Calibre的主界面，点击“删除书籍”（Remove books），“恢复最近删除的书籍”（Restore recently deleted），确认导入的书籍已被彻底删除、无法恢复。
&lt;span class="p"&gt;*&lt;/span&gt; 在Calibre的主界面，点击“书库”（Library），“书库维护”（Library maintenance），“检查书库”（Check library），勾选“同时压缩全文搜索数据库”（Also compact the Full text search database），依次点击“确定”（OK）、“是”（Yes），从而重建以下路径的文件：书库位置&lt;span class="se"&gt;\m&lt;/span&gt;etadata.db
&lt;span class="p"&gt;*&lt;/span&gt; 清理书库所在的硬盘分区或U盘。
&lt;span class="p"&gt;*&lt;/span&gt; 如使用虚拟机，恢复到历史状态。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>books</category>
      <category>forensics</category>
      <category>anonymous</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
