用 VIM 和 markdown 格式写学术论文

概要 相对于其它选择来说,markdown 格式方便人更专注于文章内容的写作。然而它用于写短文绰绰有余,论文排版则需要许多额外的功能。本文介绍了我使用 markdown 写论文的折腾过程,基本上扫清了论文写作中的常见需求:一键搜索并插入引用文献、文档内交叉引用、公式图表编号、LaTeX 输出与模板套用、Word 文档输出、一键后台编译多份文档、同义词查询、拼写语法检查等。 本文虽然主体已经完工,但可能不定期修改,以方便读者理解。如果觉得本文有用,欢迎收藏,并在写论文时回来看看有没有更新。 Update on Apr 29 2020: 增加了对 VIM 之外其它编辑器的一些推荐。 如有难以理解的部分,欢迎留言或者对此文件发 Pull Request。 下面是几个使用示例截屏: 一键搜索引用文献 拼写自动更正 同义词检索替换 编译预览结果 引言 去年这个时候我颇花了一点时间打造了一套 VIM 上使用 markdown 写论文的系统。现在我准备投靠 Emacs 和 org-mode,这套系统以后怕是不会再用了。在这里记下来我的配置,或许对于一些人会有用——毕竟 VIM 用户还是比 Emacs 用户多多了。而且这些的许多配置使用其它文本编辑器的人也可以借用。 为什么使用 markdown 写论文? 使用 markdown 的优点 markdown 是一种只保存必要文档结构,不保存格式和样式信息的文档格式,我们可以用同样一份 md 文档很方便地生成不同格式的最终文档。它语法简明,易读易写,作为纯文本文件,方便使用 git 进行版本控制。相较之下,其它的几种流行格式各有各的缺点 HTML 虽然可以将样式定义都放在 CSS 里,但是 HTML 本身手写起来麻烦且不易读。 …

Zotero 英文界面下中文字体异常的原因和解决办法

本文最后更新于 2020年4月28日 问题概述 当 Zotero 使用英文界面时,中文字体显示可能会出现异常,表现为大小粗细不一。此问题目前网上没有解答,我是第一个给出解答的人。 问题主要出现在英文操作系统下。但在中文系统下,如果用户不愿意使用中文界面而使用英文界面(这可以通过禁用 Zotero 的 intl.locale.matchOS 选项实现),也可能受到此问题的困扰。 问题表现如下图所示,Zotero 默认安装后,显示中文时出现了不同字体混搭,显示效果非常怪异。 经过下文所介绍的设置之后,问题得到解决,效果如下图 原因 操作系统中没有语言 fallback 顺序的设定。于是 zotero 使用软件自己的 fallback 顺序。先尝试英文,英文无法显示再 fallback 到其它语言。因其它语言的 fallback 顺序未设置,故为未定义行为。而默认顺序日文 ja 排序在中文 zh 之前,先落到日文字体上,无法显示的再落到中文字体。这样一行文字当中,有的字(大多为繁体字)使用日文字体显示,有的使用中文字体显示,造成了一行字体不一致。 详细的原因分析见文末讨论部分。 解决办法 2017年7月之后的解决办法 很遗憾的是,由于 Zotero 的更新,原来的较优美的解法(令中文优先于日文)已经不能使用。详见文末讨论部分。 暂时的简便解法是这样的,既然知道问题出在 Zotero 调用日文字体来渲染中文,那么我们把默认日文字体改掉就好了。 进入 Zotero 高级选项:Tools-Preferences-Advanced-Config Editor 搜索 font.default.ja,它的默认值应该是 sans-serif。 因而我们需要改掉日本默认的 sans-serif 字体。继续搜索 font.name-list.sans-serif.ja,然后将一个你喜欢的中文字体放在那一堆日文字体前面即可。我这里用的是微软雅黑。设置会立刻生效。 这种解法的缺点是日文文献可能会有显示问题,但是中文字体的汉字加上日文字体的假名,倒也不算特别不协调。实在在意的话,可以使用 Arial Unicode MS 之类的兼容中日两国所有字符的字体。 …