若您无意阅读下面的这番引入性介绍,想直接下载模板,请点这里

1 当前美赛模板通行情况的概述

美赛是许多大学生第一次接触 \(\mathrm{\LaTeX}\) 的机会,但是由于时间安排上的原因,很多人都是在赛前几天匆匆拾起 \(\mathrm{\LaTeX}\) 编译器决定用其排版论文。花了一下午安装编译器,又花了一晚上琢磨命令行里弹出来的各种莫名其妙的警告和错误……最终,一些队伍把美赛的时间浪费在对付「难用」的 \(\mathrm{\LaTeX}\) 系统上,失去了许多宝贵的时间。除此以外,网上流传的各种参差不齐的美赛 \(\mathrm{\LaTeX}\) 模板、 \(\mathrm{\LaTeX}\) 入门教程,也常常弄得为美赛做准备的初学者们晕头转向,无所适从。

目前互联网上最通行的美赛 \(\mathrm{\LaTeX}\) 模板是 mcmthesis,由王昭礼(www.latexstudio.net)和黄晨成(liamhuang0205)先后开发,并上传到CTAN而成为一个标准的文档类,可在最新的 \(\mathrm{\LaTeX}\) 发行版本——如 TeX Live、MikTeX 中直接使用(但是,大部分 \(\mathrm{\LaTeX}\) 新手却不知道自己的软件中已经有这样一个美赛模板了……)。这是一个比较专业、精良的模板,结构完整,接口也很完备。作者之一的黄晨成也非常耐心的撰写了一份优质的模板使用指南:如何使用美赛模板 mcmthesis。但是,该模板对于新手而言还有一定的问题:

  • 可以说,这几年来美赛组委会要求的摘要页和正文格式都没有太大的调整,但是从mcmthesis文档类提供的样例文档就可以看出其中有若干多余的成分——标题、作者名、定理证明、代码附录等。这些部分在目前绝大多数的美赛论文中是不需要——甚至是不应该出现的。由此导致的结果是:初学者接触到的第一份 \(\mathrm{\LaTeX}\) 排出来的美赛论文,并不是标准的美赛论文。(补充:mcmthesis 近期有更新,改进了这方面的问题。)
  • mcmthesis文档类提供了完备的接口(setup命令)来修改具体的参数,例如在该宏包下的控制序列
\mcmsetup{tcn = 12345, problem = B, titlepage = true, abstract = true}

就能够将该份论文的队伍控制号设定为12345、选题设置为B、标题页单独显示、多显示一次摘要,等等。但是,对于一般的参赛队伍而言,许多接口可能是非必需的,因为似乎目前所有的美赛论文都有着一致的页面设置要求,不太允许个性化的调整。这可能是由于mcmthesis的作者不太熟悉近几年来的一般美赛论文格式,也有可能是原作者认为应当将宏包的功能设置的更加完备一些。

  • 就我去年以来接触到的一些参赛队伍来看,许多打算使用 \(\mathrm{\LaTeX}\) 撰写论文的队伍实际上还没有弄清楚 \(\mathrm{\LaTeX}\) 中的一些基本概念。例如,很多队伍可能就不清楚文档类和宏包有何差异,或者以为\maketitle命令是所有 \(\mathrm{\LaTeX}\) 文档中都必须的(但在诸如 mcmthesis这样的模板中,就并不需要这个系统预定的命令,文档中将自动实现标题的显示)。而对于宏包的设计者而言,这些问题显然不在考虑之列——宏包作者已经明确表明, \(\mathrm{\LaTeX}\) 的学习需要一定时间,因此「不推荐毫无 LaTeX 使用经验的参赛者使用」。事实上,前面所提到的很多问题,不是由于参赛者「毫无经验」造成的,而是由于他们没能接触到比较好的 \(\mathrm{\LaTeX}\) 入门教材,因此对于这个工具只是一知半解,遇到问题毫无手段。这个问题,主要是由于国内 \(\mathrm{\LaTeX}\) 教材、资料相对「匮乏」、\(\mathrm{\LaTeX}\) 使用者较少所造成的。

总体而言,从这几年的经历来看,我的感受是:由于当前国内的 \(\mathrm{\LaTeX}\) 文化仍不深厚,导致许多初学者无法以正确的方式入门 \(\mathrm{\LaTeX}\) ,参赛者的 \(\mathrm{\LaTeX}\) 水平不够,即使是使用 mcmthesis 这样相当完备的模板仍然感到困难、错误频出。

2 easymcm 宏包说明

2.1 与 mcmthesis 的关系之说明

我本人是去年国庆期间开始学习 \(\mathrm{\LaTeX}\) 的。到 2018 年赛前时,我仍感自己的 \(\mathrm{\LaTeX}\) 水准不足,为此开始寻找合适的美赛 \(\mathrm{\LaTeX}\) 模板。当时我搜到的是mcmthesisv5.0版本,在LaTeXStudio网站上(该网站的维护者就是宏包作者之一的王昭礼)。下载下来后,发现其许多设置不完全符合当年组委会的要求,为此做了大量修改,同时也将模板中的mcmthesis.sty宏包文件进行了细致的检查和修改。最后,我将这个经过修改的文件随手丢在自己的博客页面上,起初也并没有预料到会有许多人下载使用。这就是之前那个所谓5.0y版本的宏包的来历。

比赛结束几个月后,我才在互联网上搜到 mcmthesis 原来是一个已经持续维护到 v6.2 版本的文档类,而我下载到和用于改进的那个 v5.0 版本只是 2013 年的一个比较原始的宏包。因此,我的博客上所给出的模板,事实上是从 mcmthesis 的老版本上偶然修改出来的一个比较粗糙的宏包文件。

2.2 easymcm宏包的简介

一年之后,2019 年美赛又将到来。本人作为一个曾经的美赛参赛者,希望自己博客上所发布的美赛模板能够继续帮助到新一年(乃至以后)的参赛者;为此,重新检查了 v5.0y 版本的宏包文件,加以完善和改进,并最终制成了一个新的宏包文件 easymcm.sty(不是文档类)。该宏包相对于前面所介绍的 mcmthesis 有以下的独特之处:

  1. easymcm 是由 mcmthesis 的老版本直接改进过来的,没有做标准化的处理,结构相当简单——没有太多的接口,基本功能都已具备,不需要用户做个性化的调整。
  2. easymcm 经改进后同时支持 pdflatexxelatex 等多种编译方式。考虑到目前许多参赛队伍仍然习惯于使用\(\mathbb{C}\TeX\)套装下的pdfTexify模式(本质就是 pdflatex)进行编译,这一改进是有一定意义的。
  3. easymcm.sty 与论文正文文件中都有完备详细的中文注释。对于 \(\mathrm{\LaTeX}\) 宏包的设计而言,这一做法是不必要的(甚至可能是愚蠢的,因为这显得不专业),但我认为美赛恰是许多大学生学习 \(\mathrm{\LaTeX}\) 的最佳机会——因此,这一安排使得初学者自己查看修改宏包内的若干参数成为可能。
  4. 作者仍在跟进每年的美赛消息,可以保证 easymcm 宏包提供的页面设计符合近几年的规范要求。(现在与 2020 年样式同步。)
  5. 宏包文件的结构裸露在外,并有比较详细的注释;各项样式命令都用比较「直白」的方式实现,方便用户自行调整(经得起大家「折腾」)。

论文摘要页预览

正文预览

本人制作和改进 easymcm这个美赛模板文件,并无任何功利企图,纯粹是为了分享给需要的人。我的想法仅仅是:目前中文互联网上的相关内容仍显缺乏,倘我的这一点点工作能够起到一定帮助,则其意义便已达成。同时,鉴于本模板文件的性质比较特殊,因此我将和原来一样,仅将这个模板文件扔在网上,供大家自行取用;本模板不会发布在 CTAN 等平台上。

至 2019 年年内,本人开始负责西安交大钱院学辅的技术事务,主导钱院学辅在 GitHub 的各个开源项目。考虑到本人本科毕业后将与大学内的诸多事物产生隔膜,进而对模板的维护造成不利影响(如现在的 mcmthesis 一样),故本人将项目移到钱院学辅名下,目前仍由本人负责。作者将在未来把项目的维护工作移交给钱院学辅的新一届同学们完成。

2.3 美赛模板下载地址

注:在之前的发布版本中,都附有一份所谓的「样例论文」;经过去年比赛的经验,作者发现此份样例论文没有起到太大作用,许多用户都视而不见。因此,在 2020 年的版本中,作者去除了这份样例论文,以压缩模板的大小。如您一定要看一看,请点这里下载(passcode: 73ep)——这份是 Unicode 版本的,在 \(\mathbb{C}{\mathrm{\TeX}}\) 套装下可能无法正常使用。

目前版本与 2020 年美赛论文样式适配。

最新版本:v5.1(2019.12.2 发布)

作者将持续关注比赛动态,若出现问题将及时更新。您可以在下一节「README 摘录」中找到模板的一些使用说明与作者的联系方式。

点此查看美赛 LaTeX 急救指南

祝各位美赛大捷,保 M 冲 O!

3 README 摘录

以下内容,直接摘自模板中的 README.md 文件。考虑到很多人还不知 Markdown 为何物,电脑上也无 Markdown 文档阅读/编辑器,故展示于此。

3.1 使用说明

本模板中包含的主要文件为两个:

  • easymcm.sty:宏包文件,定义了论文的各项样式、配置;
  • PAPER.tex:论文正文,用于撰写论文的具体内容。

后者可根据用户的需要修改为其他名称,例如队伍控制号为 1234567 的队伍可将 PAPER.tex 改名为 1234567.tex 再编译,这样将直接得到文件名符合官方要求的 1234567.pdf 文件。

在这两份文件中,均有详细的注释说明。若用户需要局部修改样式(如修改某处的字号、段间距),在 PAPER.tex 中对应位置用分组 + 命令的方式就可解决;若用户需要修改全局样式(如修改正文的默认段间距),则可先到 easymcm.sty 文件中检查是否有对应的命令进行设置,若有可直接修改其参数,若无可自行添加。

3.2 编译方式

本份模板允许使用 pdftexxetexluatex 等各个通行引擎编译,兼容老旧的 CTeX 套装。

若您使用 CTeX 套装,建议您在发布页面上下载带有 ANSI 字样的文件,否则文件中的中文注释将在 CTeX 套装的 WinEdt 编辑器中显示为乱码;反之,若您使用的是比较新的发行版本,请不要使用带有 ANSI 字样的版本。

3.3 联系作者

本模板目前由西安交大钱院学辅(@qyxf)负责,主要负责人仍然是黑山雁。若在使用过程中出现任何问题,可通过以下方式联系我们:

  • 在本模板的 GitHub 问题页面发布帖子(推荐,但需要注册 GitHub 账号);
  • 在钱院学辅的专门页面评论区发布帖子(推荐,不需要注册任何账号);
  • 在作者的博客页面发布评论(不推荐,需要注册博客园账号);
  • 通过作者的邮箱 yjr134@163.com 联系作者(不推荐,且作者可能不会回复你)。

另外,作者将在近期录制本模板的视频教程,敬请专注。

【持续更新】一个简洁、易用的美赛LaTeX模板: easyMCM的更多相关文章

  1. 【持续更新】一个简洁、易用的美赛 LaTeX 模板: easyMCM

    目录 1 当前美赛模板通行情况的概述 2 EasyMCM 宏包说明 2.1 与 mcmthesis 的关系之说明 2.2 easymcm宏包的简介 2.3 美赛模板下载地址 3 README 摘录 3 ...

  2. 一个简洁、好用的Pytorch训练模板

    一个简洁.好用的Pytorch训练模板 代码地址:https://github.com/KinglittleQ/Pytorch-Template 怎么使用 1) 更改template.py 替换 __ ...

  3. 美赛LaTeX急救指南

    目录 1 关于easymcm宏包的基本信息,以及编译系统的若干问题 2 图片.表格.数学公式.网址的处理 3 样式.字体字号.段落的设置 4 目录.交叉引用的相关问题 关于标题不能换行的问题:这里有解 ...

  4. 移动端目标识别(3)——使用TensorFlow Lite将tensorflow模型部署到移动端(ssd)之Running on mobile with TensorFlow Lite (写的很乱,回头更新一个简洁的版本)

    承接移动端目标识别(2) 使用TensorFlow Lite在移动设备上运行         在本节中,我们将向您展示如何使用TensorFlow Lite获得更小的模型,并允许您利用针对移动设备优化 ...

  5. Latex安装教程(附美赛论文latex模板)

    @ 目录 Latex简介 安装步骤 texlive下载 配置环境变量 配置Texsudio latex版本helloworld 美赛 latex模板 Latex简介 LaTeX(LATEX,音译&qu ...

  6. [0]尝试用Unity3d制作一个王者荣耀(持续更新)->游戏规划

    太得闲了于是想写个农药,虽然可能会失败但是还是要试一试. 因为是自学的不是Unity专业的可能表达语言会有些不标准!望见谅! 结构: 以组件式(比如说摇杆控制和玩家部分的编写是分离的,可以自由拼装)作 ...

  7. 干货!IT小伙伴们实用的网站及工具大集合!持续更新!

    1.Git 还在担心自己辛辛苦苦写的代码被误删了吗?还在担心自己改错了代码不能挽回吗?还在苦恼于多人开发合作找不到一个好的工具吗?那么用Git就对 了,Git是一个开源的分布式版本控制系统,用以有效. ...

  8. Android 常用开源库总结(持续更新)

    前言 收集了一些比较常见的开源库,特此记录(已收录350+).另外,本文将持续更新,大家有关于Android 优秀的开源库,也可以在下面留言. 一 .基本控件 TextView HTextView 一 ...

  9. 值得学习的C/C++开源项目 持续更新

    值得学习的C语言开源项目 持续更新 文章目录 值得学习的C语言开源项目 持续更新 - 1. Webbench - 2. Tinyhttpd - 3. cJSON - 4. CMockery - 5. ...

随机推荐

  1. 客户端Git代码的下载与提交

    (1)git clone 服务器用户名@服务器IP:~/Git目录/.git 功能:下载服务器端Git仓库中的文件或目录到本地当前目录. (2)对Git目录中的文件进行修改. (3)git statu ...

  2. flume 整合kafka

    背景:系统的数据量越来越大,日志不能再简单的文件的保存,如此日志将会越来越大,也不方便查找与分析,综合考虑下使用了flume来收集日志,收集日志后向kafka传递消息,下面给出具体的配置 # The ...

  3. LeetCode133:Clone Graph

    题目: Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. ...

  4. 国内云计算的缺失环节: GPU并行计算(转)

    [IT时代周刊编者按]云计算特有的优点和巨大的商业前景,让其成为了近年来的IT界最热门词汇之一.当然,这也与中国移动互联网的繁荣紧密相关,它们需要有相应的云计算服务作为支撑.但本文作者祁海江结合自身的 ...

  5. Microsoft.Office.Interop.Excel 导出Excel

    ; ; /// <summary> /// 使用 Excel.dll 导出 Excel /// </summary> /// <param name="list ...

  6. oracle 游标简单案例

    oracle  游标简单案例 一.案例: DECLARE IDO NUMBER; DABH CHAR); t_count ); CURSOR TJ_CURSOR IS SELECT IDO,DABH ...

  7. day 23 面向对象的命名空间与组合

    创建一个类就会创建一个类的名称空间,用来存储类中定义的所有名字,这些名字称为类的属性 而类有两种属性:静态属性和动态属性 1. 静态属性就是直接在类中定义的变量 2.动态属性就是定义在类中的方法. 其 ...

  8. Java Web相关技术(汇聚页)

    Java Web相关技术(汇聚页) 初学Java Web(2)——搭建Java Web开发环境

  9. 利用nginx实现负载均衡

    1.安装nginx和tomcat 我这里是使用docker安装的.安装流程可参照 dockerfile 这里安装了两个tomcat,端口分别是42000和42001.第二个tomcat的首页随便加了些 ...

  10. robot framework —— 变量文件

    何为变量文件? 变量文件中包含了测试数据中的变量.虽然变量可以通过变量表格中创建, 或者通过命令行设置, 不过这些方法有所局限, 而变量文件可以动态地创建任意类型的变量. 变量文件一般由Python模 ...