进行任何类型的写作,我们都希望达到一种行云流水般的感觉,但是前提是需要我们有灵感。这或许是任何写作的首要因素。然而当灵感迟迟不愿意进入我们的头脑时,随手写一写可能是迎接它的一种好办法。当你使用Microsoft Word时,可能每写几句,就会习惯性的点点鼠标,寻找和释放一下Word的功能。或许你只是希望你的文字变得更“漂亮”一些,或许只是在寻找灵感的间隙动弹一下手指。不管怎样,Word都会听话地照做,让你脑中所有设计好的一切都立即呈现在你面前,这就是Word所见即所得的魅力。
使用LaTeX写作,所有的一切都变得不同了。它不需要你写几句就点点鼠标,也不需要你去即时处理那些“看得见的漂亮”,它只会让你专注于写作。本文并不处理LaTeX和Word的种种感情纠葛。本文的目的,就是让你感受到使用LaTeX时那种行云流水般的感觉。而且,更重要的是,让所有需要处理化学结构的同行,了解需要处理众多附带编号的结构式时的另一种选择。
准备工作:
- 下载并安装LaTeX。
- 选用一种自己喜欢的编辑器。笔者使用的是兼容Mac和iOS系统Texpad,如不需云端,一次付费24.99 EUR,终身使用。
- 使用TeX Live Utility安装必要的软件包。此文涉及的功能需安装chemstyle,auto-pst-pdf等。
刚打开编辑器时当然是一片空白,现在我们就逐步在里面补充上一些东西,让它做好后续持续性写作的准备。
为了让LaTeX更加懂我们的写作,我们需要设置几项参数:
documentclass[a4paper]{article} %此处设置页面大小及文档类型
usepackage[T1]{fontenc} %此处设置字体
usepackage{graphicx, auto-pst-pdf} %此处使.eps文件可转化成.pdf并应用自动编号功能
usepackage[journal=angew]{chemstyle} %此处设置图式的样式
以上四行的参数设置可以保证我们执行整个文档的格式统一性,其他的格式可以根据自己的喜好进行设置。此时,如果你在下一行键入“Hello Chemistry!”并执行排版,你并不会看到在生成的PDF的窗口显示出“Hello Chemistry!”字样,这是因为我们还并没有告诉LaTeX我们要正式开始文档的写作了。为了执行这项“通知”,我们需要键入以下命令:
begin{document} %告诉LaTeX此处开始便是文档内容了
Hello Chemistry! %同Hello World一样或许能带我们好运:)
end{document} %告诉LaTeX此处是文档的结尾
如上操作之后,点击“排版”按钮,我们便可以看到当前的效果了。
至此我们已经可以在一个设置好格式的文档中键入文字了,也可以开始行云流水般的写作体验了(如果你只是写纯文字的小说)。对于专业的化学文档来说还远远不够,我们接下来就需要来插入一些图式(Scheme)来说明如何对结构式进行自动编号。我们以一个经典的人名反应为例来进行说明。自动编号的核心步骤如下:
- 使用ChemDraw绘制结构式或反应式,并在对应结构式下方标注“标记代码”。该“标记代码”无固定格式要求,但是为了方便区分,可自定义一些格式,例如:反应条件箭头左方为反应物,可使用SM1, SM2, SM3...进行标记;同理,箭头右侧为生成物,可用PD1, PD2, PD3...进行标记;箭头上方如需要,也可用CT代表催化剂,RG代表试剂等。
- 保存为.cdx文件,以便后续修改。
- 保存为.eps文件,这样才能使LaTeX识别出“标记代码”并进行数字替换。
注意:此处所用的“标记代码”仅对一个特定的.eps文件有代表作用。例如你在图式1中标记苯甲酸为SM1,在图式2中仍然可以使用SM1标记苯酚,图式1和图式2需保存在2个不同的.eps文件。
使用ChemDraw绘制图式之后,如下图所示,其中3种化合物均使用了相应的“标记代码”。然后将其保存为scheme_BenzilicAcid.eps的文件。应当注意的是,所有的文件都应该处于同一个文件夹内。
begin{document}
section{Benzilic Acid Rearrangement} %给内容加上分级标题
Rearrangement of benzil to benzylic acid via aryl migration. %文本部分
begin{scheme}[ht]
schemeref[SM1]{benzil} %将benzil指定给.eps中的“标记代码”SM1
schemeref[RG1]{potassium hydroxide} %将potassium hydroxide指定给.eps中的“标记代码”RG1
schemeref[PD1]{benzylic acid} %将benzylic acid指定给.eps中的“标记代码”PD1
includegraphics[scale=0.8]{scheme_BenzilicAcid.eps} %指定该图式来源于文件scheme_BenzilicAcid.eps
caption{General scheme of benzilic acid rearrangement.} %命名该图示
end{scheme}
end{document}
如上操作之后,点击“排版”按钮,我们便可以看到当前的效果了。
描述一个化学反应当然不仅仅需要一个反应通式,还需要相应的反应机理和反应实例,让我们继续加上这些内容,比如说机理部分:
以及反应实例:
begin{document}
section{Benzilic Acid Rearrangement}
Rearrangement of benzil to benzylic acid via aryl migration.
begin{scheme}[ht]
schemeref[SM1]{benzil}
schemeref[RG1]{potassium hydroxide}
schemeref[PD1]{benzylic acid}
includegraphics[scale=0.8]{scheme_BenzilicAcid.eps}
caption{General scheme of benzilic acid rearrangement.}
end{scheme}
subsection{Mechanism} %给内容加上分级标题:机理部分
begin{scheme}[ht]
schemeref[SM1]{benzil}
schemeref[IM1]{nap anion}
schemeref[IM2]{migration anion}
schemeref[IM3]{benzilate anion}
schemeref[PD1]{benzylic acid}
includegraphics[scale=0.8]{mechanism_BenzilicAcid.eps}
caption{Proposed mechanism of benzilic acid rearrangement.}
Final deprotonation of the carboxylic acid drives the reaction forward. %文本部分
end{scheme}
subsection{Example} %给内容加上分级标题:反应实例
begin{scheme}[ht]
schemeref[SM1]{ex_BAR_diones}
schemeref[PD1]{ex_BAR_acidpd}
includegraphics[scale=0.8]{example_BenzilicAcid.eps}
caption{Proposed mechanism of benzilic acid rearrangement.}
end{scheme}
end{document}
这样以来,文档看起来就算是比较“饱满”的一页了:
如果调整图式顺序,相应的编号则会自动调整,例如我们把反应实例放在机理的前面:
总结:使用LaTeX进行写作有诸多方便之处。虽然前期会有一定的学习成本,例如各种代码用法的学习和记忆,然而一旦掌握,便会比使用Word更容易达到全身心写作的状态。本文所描述的对于化学文档中结构式的自动编号,大型文档的便利性高于小型文档。比如一篇含有上百个结构式的综述文章或者书籍,使用LaTeX进行自动编号处理则会节省很多后续修改的时间成本。在纯粹的写作过程中,不需要随时使用鼠标来进行功能操作。如果需要预览,可以在完成阶段性的写作之后进行排版,以方便我们后续的写作。
本文属于化学写作系列的一部分,会进行不定期的更新,更新内容则会展示在全文的末尾部分,以方便读者阅览。如在阅读和使用LaTeX进行写作的过程中有疑惑,欢迎与笔者一同探讨,共同进步。
欢迎各位关注,笔者将会不定期发布关于药物化学、有机化学、均相催化与化学写作的一些文字,以期与业内外人士交流学习。
参考文献:
- Joseph Wright, The chemstyle bundle — Schemes and style for chemistry, CTAN, Last accessed August 5th 2019.
- Jie Jack Li, Name Reactions, Springer, Berlin, Heidelberg, 2009.