用 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 本身手写起来麻烦且不易读。 …

浅谈Word中的主题与样式

样式与主题 样式与主题都是Word中用于快速调整大批量文本格式的有力工具。不免很多人因此困惑该用哪一个。花了一点时间研究之后,我准备总结一下我的一点经验。 样式是一个古老的功能,很早开始就内置于Word当中。通过它们你可以快速地设定全篇文档不同层次文本的所有格式,是长篇文档排版必备。样式集存储在不同的模板中。默认样式存储于normal.dotm。 主题则是Office2007开始提供的新功能。主题包括哪些方面呢:字体(注意它仅有正文字体和标题字体两重设置,没有格式设置也没有其它”强调文字””标题2″等其它样式的设置)、颜色、图表形式、PPT背景。主题是没有默认主题的。主题存储在thmx文件中。 那么总结一下,样式主要是用于设置文本的,主题主要是用于视觉效果的统一。因此,对于PowerPoint,主题更为重要;而对于Word,样式集更为重要。(所以你可以看见,在PowerPoint里,一个大大的设计选项卡专门用于主题设置。而两者的共同点:快速套用微软已经设计好的大批设置,不用在自己细调设置使它们协调。  (插一句,那么,在PowerPoint与Word样式集对应的存储在模板中的纯格式内容是什么呢?是幻灯片母版。) 层次1 主题,对Office三大件都可设置 层次2 Word的样式集,PowerPoint的母版 什么时候用样式?什么时候用主题? 如果你只需要写一份Word文稿,样式集可以提供你更详细的设置。主题可酌情选用,不用也可。 主题在做一系列文稿时(比如你既需要提交报告,又需要做展示PPT,还要在Excel里做两个表格),使用主题可以使你的不同类型文档具有统一的风格。 如果你需要调整SmartArt图形的风格,主题也是有用的。 那么,两者可不可以一起使用呢?可以。它们本就不是一个层面的东西。主题是更高层次的。之所以会要将两者进行比较,原因是:这两者有一些调节范围是重叠的,比如字体。 这就引出要注意的问题了:样式与主题有一个相同点就是:如果你更改过文本的任何格式,再调用它们时将不会达到你理想的效果。比如说,如果你设置过字体,那么样式的字体就不会应用于其中。如果你更改过段落缩进,那么样式中的段落缩进也不会再应用于其上。所以,重复使用主题和样式的时候,就需要注意两者的次序问题。如果你使用了效果冲突的主题和样式,其中的一个的部分效果就会被掩蔽。我试验的结果好像是一般情况下主题掩蔽样式集,除少数情况外。但总而言之,无论是样式还是主题都不要频繁更改,因为word经常会出一些bug导致之前的样式有残余影响。 简要对比: 项目 样式 主题 文本 所有格式 只能设置字体 段落 能 不能 边框编号等 能 不能 颜色 能 能 效果 不能 能 SmartArt图形风格 不能 能 编辑文档时从网上下载 不能 能 新建文档时从网上下载 能(下载模板) 不能 着重点 复杂的文本格式 图形效果与整体风格搭配 再说另一个问题:主题和样式都被微软吹嘘为轻松获得专业设计水准的文档效果。但是实际呢?这些主题和样式集,在英文下的确效果不错。但是可惜的是,中文的主题还不错,而历史悠久的”样式集”质量就实在不敢恭维了。居然会出现宋体加粗或者中文字体斜体这样的排版大忌。Word的中文汉化水平一贯和软件的总体质量相差甚多。所以排版上没有常识也是可以想见的。所以真正懂点排版的同学,还是手调样式集为宜。

从Word公式编辑器的一个Bug的解决方法说到不推荐使用Ctrl空格切换中英文

Update: 原文中的链接已经失效,去除超链接 原文推荐使用 左alt+shift 切换中英文,在 Win10 系统中,已经无需专门按左Alt,右Alt可以起到相同作用 从Word公式编辑器的一个Bug的解决方法说到不推荐使用Ctrl空格切换中英文 中文版Word2007 2010的公式编辑器存在一个非常要命的Bug,目前微软也没有给出解决方法。我非常希望Word下一个补丁可以解决它。 言归正传,众所周知,录入数学公式时,函数正体,变量斜体。虚数i等常数按习惯(比如i是正体,e是斜体)。但是中文版Word2007/2010中的公式编辑器竟然不能将变量自动斜体,而需要用户手调。 (从网上的文章来看,联系客服的结果是,微软居然自以为得计,认为这是一个feature。如果想实现自动斜体,微软的建议是装英文版Word。我了个去,微软中国的软件工程师真的智商堪忧得很。公式中的中文不能斜体,不代表用中国人公式中的英文也不能斜体吧?把公式中的中英文分别对待在技术上有那么难吗?) 下面要说到这个问题的两个解决方法了。 第一个方法,也是我推荐的方法,就是切换到英文“语言”之后再录入公式。这时公式的显示就正常了。如果你确实有英文“语言”的话(我说的不是“中文(简体)美式键盘”,而是将那个CH图标切换为EN),按左Alt+Shift即可切换。 第二个方法,则纯属利用漏洞。点击公式设计面板上的“普通文本”按钮两次,则公式自动转为斜体。可以写一个宏来自动完成这个操作。 区别:使用第一种方法,中文不变斜体;第二种方法中文则会变斜体。 参考: http://yujiajin.wordpress.com/2008/09/28/ms-word-2007公式编辑器默认非斜体的解决方法/ http://hi.baidu.com/lambkin_guzhu/blog/item/cea8a9dd929717e577c6384a.html 下面要说到第二个问题了:如何切换中英文? 目前无外乎三种方法:输入法提供切换功能(比如说搜狗和微软拼音是按Shift切换);Ctrl空格切换“有无输入法”;上文提到的左Alt+Shift切换语言。 第一种方法的缺点是:有的输入法切换到英文状态后仍然是中文标点,在对标点有要求的时候就务须慎重。优点是方便快捷。 第二种方法的缺点是:对于有些笔记本电脑,容易误按成Fn+空格,而不少笔记本电脑的Fn+空格是有定义的,会造成不必要的麻烦。 第三种方法有一个很大的优点:那就是我们切换到英语之后,可以使用“美国英语-国际”键盘!这个键盘(或者说输入法吧)有一个极大的优点(我前面的日志提到过)就是可以方便地输入各种法语德语中字母的上标。比如说ê这个字只需要先按^再按e就可以录入。 综上,一般时候我们可以用输入法内置的中英文切换,而在Ctrl空格和Alt+Shift中,我更推荐后者。

WORD2007中文版翻译BUG一枚

波浪线下面一个等号,“≅”,这个符号转义符是\cong,即 congruence 的简写,也就是说这是全等号 但是在 Word 2007 的公式编辑器中,鼠标移到这个符号上面,会显示“约等于”!这可以算是一个中译的BUG了。 下面的几个算是译得不准: 约等于号\approx “≈” 被 Word 说成是“几乎等于(渐近于)”,好吧,这个解释也不算错。 而相似符号\sim “∼”却被 Word 说是“约等于号”,雷啊! \simeq,“≃”,Word 说是“渐近等于” 2020年4月更新: 经过查证,这并不是一个中文翻译错误。因为英文版 Word 里本来就是错的! 而微软犯这个错的原因是,Unicode 标准里对这些符号的解释就是错的,和数学家常用的意义不同。虽然另一个 ISO 标准中使用了正确的解释,但显然微软使用的 Unicode 解释。 对此的辨析见 https://math.stackexchange.com/questions/507609/when-to-use-congruent-vs-approximately