2  写作环境搭建

2.1 选择最合适的写作工具

综合来看,现今技术写作有 Word、markdown、Gitbook、bookdown、LaTeX 等选择,都是比较成熟的工具,都可以输出比较完美的作品。不过各个工具各有自己的特色,这里就谈一谈每一种工具最适合的使用场景。

毫无疑问,正儿八经写,必须得用 LaTeX,编辑器我推荐使用 Visual Studio Code,非常好用,毕竟如此现代化,输入公式也十分方便。

如果只是写写草稿,我觉得用 Joplin 或是 Zettlr 搭配 markdown 都不错,各有优缺点。Zettlr 原本就是为读书卡片设计的,文件是在你的硬盘上,你自己管理,并且原生就对 bibtex 支持得很好,方便导出及引用,并且使用说明齐全。而 Joplin 原生并不支持 bibtex 的插入,不过有一个插件 plugin-bibtex 可以实现类似的功能,大体上能正常工作,但却总是有一个烦人的 google link 跟在参考文献后面,并不是标准的样式。Zettlr 只是一个单纯的 markdown 编译器,而 Joplin 却可以方便你在移动端编辑你的笔记,类似于 Evernote 的方式。

我依然习惯直接在 Joplin 里打草稿(毕竟方便全平台编辑嘛),需要引用参考文献的时候,也直接用 citation key 来引用,然后正式生成文章的时候,从 Joplin 导出 markdown 文件,再用 pandoc 或是 bookdown 之类的工具来生成文档。

除了使用 Zettlr 和 Joplin 作为写作主力外,我还使用 Evernote 来作初稿的整理,因为这个作为富文本编辑器来说,有独特的优势,对需要做笔记的东西,我也习惯用它来从扫描版的 pdf 截图、或是把书本上的内容拍照,再统一用 Evernote 内置的文字识别工具转换成文字,这样就不用手打键盘一行行地敲字。

Zettlr 我喜欢用来做读书笔记,通过手机拍照截取需要的内容,并注明好参考文献的出处,精确到页数。也可以利用文字识别,把需要引用的内容摘录成文字,方便下次使用。Zettlr 可以很方便地引用 Zotero 生成的 bibtex 文件。

用 markdown 的好处:对比 LaTeX 来说,不用经常在写作者与程序员之间切换,可以专注于写作本身,毕竟 markdown 的易用性接近 Word,写作的时候,根据不用操心编译的问题。

使用纯文本的好处很多: 1. 方便版本管理,尤其是diff一下,这种特别适合写作周期长,但是每次修改不多的情况。 2. 很合适有代码基础的人,尤其是适合程序员和数学类专业,这类专业对图表的诉求远没有代码强。 3. 适合同步发布到多个地方或是平台,比如说 Jekyll 或是 Hugo。

最近开始流行的代码结果交互式写作工具,也是一个不错的选择,前提是你需要这么复杂的工具。比如说,R Markdown 就是结合了两者优点的产物,网上也有 R Markdown 写作毕业论文的成功典范:An Oxford University Thesis Template for R Markdown(RStudio 有开源版本和收费版本)。

虽然有人已经用 Markdown 来写一些比较复杂的东西,但是各种 Markdown 编辑工具语法不统一、不具备交叉引用功能、交叉引用功能需要安装 pandoc-filter 等第三方工具,各种问题混在一起,不推荐在没有认真研究过 markdown 时就直接用它来写作比较复杂的内容。后续我会开一篇专门来介绍 markdown 科技文章写作的技巧。

最后,对于大部分人来讲,选用 Word 也是不一个错的选择,如果你是在做一锤子买卖,用 Word 可以省时省力,如果你需要长时间甚至于一辈子干这个事情,那用 LaTex 、GitBook 或 bookdown(R markdown) 更省力气。

结论: 1. 小的技术文章,直接用 Word。 2. 篇幅稍长、交叉引用不多、参考文献不多、时效性有限的科技文章,使用 markdown。 3. 大部头作品,直接用 GitBook 或是 bookdown,方便快速写作与输出文档。 4. 需要自己正儿八经排版,还是使用 LaTeX 靠谱,绝对经受住了考验。

2.2 书的结构

技术书籍是有一些专门的约定的,熟悉这些约定,可以帮忙你更加快速地输出内容。一旦形成一个格式范本以后,就可以直接使用直接套用,甚至于像做笔记一样来输出书本内容。

2.2.1 书的尺寸

书籍有很多尺寸,就常用的有 A4、A5这两种尺寸,如果是美国书籍,还有 6 英寸、7英寸以及 letter 等尺寸,看看 Oreilly 那些技术出版社出版的技术书籍就知道,书籍的尺寸实在太各异了。

对于自己写书、自己排版的技术笔记或书籍来说,如果是中文内容,选用 A4 是最方便的,毕竟在中国,A4 的打印机随便都是。

如果你是选择生成 html 的输出,则不用关心书籍尺寸这个事情。

2.2.2 书的结构

技术书籍的结构,比起传统文学书籍来说,结构略为复杂一些。

一般的文学作品,也就是分章撰写即可,每一章的主题或是剧情相对独立,并且在每一章的结尾还需要留下引子,吸引观众继续看一章的内容。而技术书籍或是论文,恰恰相反,每一章需要是相对独立闭环的内容,每一章不能过长,最好能讲清楚一个小的技术主题,并且在每一章的结尾,需要把本章的内容讲述完整,可以对后一章的内容作为展望,但是不能想吸引读者去读下一章而留下什么“诱惑”。对于技术书籍来说,吸引读者读下去的,不应该是春秋笔法,而是内容本身以及实用性。

技术书籍,一般分为序言、前言、目录、部分、章、章以下标题、附录、索引、参考文献、后记(跋语)等,在章节里面,必须时还需要有大量的脚注来进行说明。

前言也称“前记”、“序”、“叙”、“绪”、“引”、“弁言”,写在书籍或文章前面的文字。书籍中的前言,刊于正文前,主要说明基本内容、编著(译)意图、成书过程、学术价值及著译者的介绍等。技术书籍一定要花时间在这里好好写感谢的段落,如果你接受了别人的帮助,一定要记得写上。

接下来的第一章,一般综述全书的内容,以及全书需要解决的难题,或是全书需要处理的核心问题。在学位论文里,第一章一般叫“绪论”。这篇绪章的任务是交代自己的选题、论文的主攻方向、文献检索过程和情况(即前人这方面已经做了些什么)、自己的论文在哪些方面有所创新(或所有整理)、使用的研究方法、论文大致的结构,以及其他需要说明的关于论文的问题。如果不是学位论文而是专业学术著作,一般来说也是要交代清楚这些背景,方便读者迅速切入。

对于技术书籍来说,参考文献是必不可少的,否则你就属于态度傲慢的那批作者。参考文献务必做到准确,你看的是什么资料,就引用该版本的内容,切忌看了B版本而引用A作为参考文献来源,因为不同版本之间的区别是非常大的。有关参考文献的详细介绍,可以参考第 @ref(bibliography-tips) 章。

西方文化传导过来的一个特色内容,就是在技术书籍的每一章前面会写上一个开场白(prologue)的内容,可以是一个小句子也可以是一段话,也未必需要是名家名言,也可以是一些作者自己喜欢的内容。比如说《统计推断》(George Casella 和 Roger L.Berger 2010)这本书的 prologue 就全部使用了福尔摩斯的名言,相当有趣,也突显出了作者别致的写作风格和生活情趣,在阅读学术味道如此重的教材,偶尔思绪能转移一下,也是一种享受。与 prologue 对应的还有 epilogue,不过好像在技术类书籍里比较少见,起码我没留意到。至于 prologue 的来源,最早应该是起源于莎士比亚的戏剧《暴风雨》中,有一句名言:“凡是过去,皆为序章(What’s past is prologue)。” prologue 最早是使用在戏剧作品里,后来慢慢地在非小说类作品里使用起来了,据维基百科的介绍,估计是阿根廷作家 Macedonio Fernandez 的小说 The Museum of Eterna’s Novel 里开始使用的(我没有去考证,欢迎知情的读者反馈)。

George Casella, 和 Roger L.Berger. 2010. 统计推断: 翻译版·原书第2版. 翻译 张忠占 和 傅莺莺. 北京: 机械工业出版社.

对于比较厚的技术书籍来说,分成几个部分(Part)来写是一个比较合适的选择,每个部分下面分为若干章(Chapter),每一章下面按节(Section)、小节(Subsection)三级层次来做结构。这样的结构,是最符合技术书籍规范与格式的形式,也是最容易让读者查找内容的形式。

对于技术书籍来说,有一些重要的内容,但是你又不想放到正文,可以放在附录里,比如说 Lyons 版本的《数字信号处理》(Lyons 等 2015)里,就有好多附录,这些附录是用来说明一些有关复数、分贝、方差等的技术细节,这些内容对于某些读者来说很重要,但是如果放在正文里,又会让正文的重点不突出、叙述不流畅、行文思路混乱,这一部分内容,放在附录是最好的。

Lyons, Richard G., 张建华, 许晓东, 和 孙松林. 2015. 数字信号处理. 北京: 电子工业出版社.

对于技术书籍来说,还有一部分内容是很重要的,那就是索引。不管是为自己写的技术参考手册,还是为他人写的技术书籍,索引都是为了快速通过关键词来查找相关内容的手段。对于英文技术书籍来说,索引是比较容易编写的,但是对于中文书籍来说,这部分内容好像标准比较混乱(希望有读者可以帮我纠正)。

一个技术书籍,大致按这个结构,就可以写出一部非常完整的作品,既方便自己整理,也方便与他人交流。这些规则看起来复杂,但是用现代的工具来写作,却非常简单,会在后续几个章节介绍一些工具及其对应的使用技巧,来完成这个艰难的工作。

注意:如果你要写开场白(prologue),千万不要从别人的书本里摘录名人语句,一定要是你自己亲眼从原始文献里看到的,你能找到出处的内容。

2.3 封面制作

书籍封面的制作,是一个非常专业的工具,需要专业的美术与设计参与。但是如果只是生成 pdf 的自出版书籍,完全可以自已用一些很常见的工具来制作漂亮的书籍封面,技术难度不大,效果好不好完全取决于你自已的审美与偏好。

书籍封面的组成:封面、菲页,用英文来说是 book cover、title page。

封面可以用专门的绘图软件来做,再生成pdf插到书籍的 pdf 最开始页;也可以直接用 title page的方式来生成。

这两个都可以搞成一个序列,形成自己的风格。

封面绘制工具:INKSACPE或是 adobe 在线,或是找一个在线的 book cover 网页模板制作;还有一种方式更简单,用 Powerpoint 来制作一个封面,导出为 pdf。

LaTeX 也有一些非常完美的封面模板宏包,非常适合用来做自出版的封面,可以单独输出,也可以合并成一张 book cover,比如说 Latex CreateSpace BookCover

这里有一个模板地址:LaTeX book cover

2.4 小结

本章介绍了撰写书籍的基本工具,以及书的基本结构,方便对书籍形成一个基本的概念。