9
bookdown 或者说 Pandoc 的伟大之处,就是把原先必须在 LaTeX 里做的事情,99.9% 都可以用 markdown 语法完成。剩下的 0.1%,例如公式、索引、控制换行、临时改变字体字号、强制分页等操作,所涉及的 LaTeX 命令都很简单($$
, \index{}
、\mbox{}
、\small
、\newpage
),偶尔用一下无伤大雅。只需找个漂亮的编辑器,在 bookdown 下写作就有不错的体验,而生成的 pdf 文档处处透露着 LaTeX 的优雅。平时自用一下,美得不行,仿佛梅开二度,枯木逢春。我为 bookdown 量身制作了 bookdownplus,pinyin 和 mindr 几个扩展包,沉浸在美妙之中不可自拔。
但是,直到这次真正给《学 R》排版,真正要送到印刷厂印个几千本的时候,光有 bookdown 的现成模板就不够用了。《学 R》是本中文书,LaTeX 对中文的支持先天不足,很多细小的问题,得自己一个一个抠。
比如中文里夹杂的英文词的中断换行(hyphenation),总是在不该断的地方瞎断。找不到完美的解决方案,最后我手动添加了 \mbox{}
凑合。
比如段首空两格。我明明记得原先是自动空两格的,不知哪一次升级以后,这个设置就不见了。好在这个不难解决。
比如脚注和上标。bookdown 里^[]
表示脚注,两个^
之间表示上标。问题是两个脚注连在一起怎么办?要是写成杨过^[]和小龙女^[]
,那两个^
之间的文字就变成了上标。我试来试去,最简单的就是在中间偷偷摸摸塞进去个空格,把上标结构破坏掉。想来英文不存在这个问题,到处都是空格。
10
所幸,我算是挺过来了。最后排出的文档,虽然不是尽善尽美,但已经达到了我能力的天花板。想要更多也没有了。
只是年轻的时候我从没想过,将来自己会跟排版这件事纠缠。那些投进去的时间和精力,花在别处,会不会更好?无论本职工作,还是业余爱好,我都不是干排版的啊。
可是,怪就怪在,排版里这些一个一个的坑,你不去亲自填,就没人给你填。就像自己的娃,打扮成啥样,全在爹妈。自己的书,正式的出版物,难看的排版,你能忍吗?诸葛亮是怎么死的?事无巨细事必躬亲累死的。可是难道诸葛亮自己想被累死吗?
回头看看来时的路,我把青春的尾巴献给了 R,LaTeX,Linux。Linux 已然渐行渐远,LaTeX 曾经聚聚散散,只有 R 自始至终在我身边,成为了长久的陪伴。而这次,LaTeX 想甩也甩不掉了,她借着 bookdown 这匹木马,藏在了 R 的深处,彻底把我攻陷。
用 LaTex 排出的《学 R》这本书,就当是青春的纪念。