地址 | https://zhuanlan.zhihu.com/p/103519006
编辑 | 机器学习算法与自然语言处理
本文仅作学术分享,若侵权,请联系后台删文处理
如何优雅地(用TeX)写AI论文
副标题:博士这一年多里老板都教了我些什么。
以下都是些经验之谈:非数学公式部分可能更多是关于写作英文论文的经验,也就是一门学术英语写作课上大致会涉及的内容;而数学公式部分则跟个人审美非常相关,更多是要求同一篇论文里前后一致就好。祝大家新的一年里都能做出自己满意的研究并且被投稿的会议接收。希望这份心得能对大家有所帮助,也随时欢迎补充。
写作技巧和注意事项
- 不带连字符时,state of the art是一个名词短语;带连字符时,state-of-the-art是一个形容词。
- 如果有小学生能看懂的表达,就不要使用中学生才能看懂的同义表达:比如,utilize → use.
- 破折号的用法:statement A -- statement B (en dash外加前后有空格),或者 statement A---statement B (em dash外加前后无空格)。同一篇文章要前后一致。
- KL divergence的全称写作:Kullback--Leibler divergence (连接符是en dash,而不是hyphen);同理,类似情况的连接符都是en dash.
- 脚注的写法:一般情况下,脚注可以写在“脚注相关的地方后第一个非左标点符号(如左引号、左括号)”后面。footnote命令和它前面的标点符号之间没有空格。
- 例如:As this.footnote{This is a footnote.}
- Work和research作名词时不可数。
- 拉丁文和缩写的正确用法
- something, e.g., A 以及 something, i.e., B.
- CVPR模板里似乎支持eg和ie两个命令。
- etc.的人类版是et al.
- a priori整体是一个形容词(短语),大致表示“显然的”,用来形容推理的前置基础。比如,“一个显然的先验”写作"an a priori prior".
- 当然,为了避免用错,最好的方法是尽量别写拉丁文 :)
- something, e.g., A 以及 something, i.e., B.
- TeX里面左引号是``,如果打"A"会显示两边都是右引号。
- 非专有名词(named entity)无特殊情况不大写首字母。领域名称并非专有名词,应写作:natural language processing (NLP). 我能想象的特殊情况只有这种来得不是很显然的缩写:
- "REward Increment = Nonnegative Factor x Offset Reinforcement x Characteristic Eligibility" (REINFORCE)
- 无特殊情况尽量少用被动语态,尤其是不要为了避免"we"使用被动语态;复杂的句子尽量不用被动语态。
数学公式
- 向量和矩阵尽量mathbf加粗,希腊字母可以用boldsymbol或者usepackage{bm}后用bm加粗。(感谢 @灵芝片 补充)
- sum和Sigma是不一样的,正如prod和Pi是不一样的:sum和prod比Sigma和Pi大一圈。
- 如果使用英文单词做函数名或者变量名,比如score(x),写作$textit{score}(x)$:如果不加textit的话会非常丑。同理,单词做下标时也记得textit框起来。
- 条件概率P(x | y) 写作 $P(x mid y)$ 比直接写“|”美观不少。
- $<a, b>$ → $langle a, b rangle$
- 数学公式中的小写l,尽量写作$ell$ 而不是直接打l,避免跟其他字母或数字混淆(比如1和I)。
- 只有文中其他地方需要以Equation (a)形式提到的公式才编号。
- 如果你看到别人文章里公式末尾总有个莫名其妙的逗号或者圆点句号,不要担心自己错过了什么重要的东西,他只是为了让公式和上下文组成一个完整的句子。如果你选择加逗号和句号,请记得检查下每个公式都加了。
- 即使读者能非常轻松地脑补出来变量(的下标)是什么意思,也不能不在正文里说明这个变量是什么——万一脑补错了呢。
表格
- usepackage{booktabs}
- 尽量画三线表:如非特别必要,不要使用竖线。使用toprule, midrule, bottomrule来区分三线表的上、中、下三种线。是的,它们和hline的区别是:toprule和bottomrule比较粗,而且比midrule稍微长一点,看上去比较好看……
- 一般情况下,表格第一列文字左对齐,数字列右对齐。
- 不要把图表的说明(caption)在正文里再抄或复述一遍:说明是用来写“这个表格是什么”的,正文是用来写“这个表格说明了什么”的。
- 使用Table~ref{table:1}避免Table和1之间换了个行。
图示
- 尽量不要以颜色作为指代图示中线条的唯一特征:可以用“实线”、“虚线”等区分。这条规则产生于论文都是黑白打印的时代(有点老古董),尽管现在大家基本都是直接阅读pdf,但仍然存在习惯黑白打印再阅读的读者。
- 尽量插入矢量图,避免糊掉:一个简单的判断方法是图中的文字在pdf文件里能不能被选中。一个非常棒的矢量图绘制工具:https://draw.io,或者PowerPoint画完导出为pdf. 然后直接includegraphics{exported.pdf}就可以了。
参考文献
- usepackage{natbib}
- 三种ACL系列论文常见的引用格式
- citep{hochreiter1997long} → (Hochreiter and Schmidhuber, 1997)
- citet{hochreiter1997long} → Hochreiter and Schmidhuber (1997)
- citep[LSTM; ][]{hochreiter1997long} → (LSTM; Hochreiter and Schmidhuber, 1997)
- 在.bib文件里,用大括号把文章标题里的专有名词或缩写括起来,否则在参考文献里很多bibliography style(包括ACL和CVPR的模板,感谢
@灵芝片
更正)设置的默认行为是显示小写。比如
- title = {Microsoft {COCO} ... } 如果是title = {Microsoft COCO},会显示为"Microsoft coco".
- 如果论文发表在ACL/EMNLP/NAACL等ACL anthology收录的会议和期刊,直接从ACL anthology下载的.bib就自带了上述大括号。
- 一篇文章如果有发表的版本且有arXiv预印本,引用发表的版本——除非引用内容是正式发表后又在arXiv上进行更正的。
- 所有的引用条目的格式尽量前后一致,如“是否用了常见会议和期刊的缩写”,“是否包括了会议地点和会议月份”等。