一年一度的美国大学生数学建模竞赛(MCM/ICM)又要开始了。在比赛中,将有一部分同学选择用LaTeX排版论文,以使论文获得更好的视觉效果;但是,就既往经验来看,其中的很大一部分同学,还并没有熟练地掌握LaTeX的相关技巧,只是比较生硬的套用网上所给的论文模板(例如通行的mcmthesis,以及本站发布的easymcm),一旦出现一些小问题就会不知所措

此份文档为一份比较详细的 LaTeX 排版问答集锦,内容集中于比赛时可能出现的种种情况。主要着眼于西安交大钱院学辅维护的 easymcm 宏包。读者可将此份文档存留、收藏;待遇到问题无法自行解决时,再来到这份文档中查找解决方案。

此份文档将根据我所了解到的问题继续补充。如未找到答案,请到钱院学辅设置的美赛专栏上发言。

1 安装与编译问题

Q1.1: 我使用 CTeX套装进行排版,编译时系统报错:

! LaTeX Error: File ` lastpage.sty ' not found.

(或 xcolor.sty 等其他常见宏包)是缺少宏包吗?应如何解决呢?

您使用的应是非完整的CTeX套装,缺少宏包且不能自动联网安装。如一定要使用 CTeX 套装(不推荐,见下),在安装时,应下载带有Full字样的安装包,如下图所示(截图来自清华镜像)。

极不推荐使用老旧的 CTeX 套装,请安装最新发行版(例如 TeX Live 2019),安装教程可见这里这里。与 CTeX 套装相关的其他问题,作者将不再回复。

Q1.2:原来安装了 CTeX 套装,后来(先卸载了套装,再)安装了最新的 TeX 发行版(如 TeX Live)后编译出错,是什么原因?

CTeX 套装与其他 TeX 发行版共存本就有诸多问题,此外 CTeX 还有可能修改系统环境变量、导致无法在命令行中调用其他 TeX 发行版的程序。

一般问题是环境变量缺失,请据此为线索自行搜索解决方案,并确保 CTeX 套装完全删除干净。

Q1.3: 编译时显示 easymcm.sty 文件未找到?

首先检查 easymcm.sty 文件是否与被编译的 PAPER.tex 或其他文件在同一目录下。如果仍不能找到,请检查编译时所在的目录是否是当前目录(可检查 IDE 或终端开头输出的若干信息)。

一种常见的可能是:没有解压 zip 文件,直接通过 Windows 系统文件管理器中集成的 zip 查看器打开了 PAPER.tex。请解压后再用。

另外,似乎这个问题大多是在 \(\rm\mathbb{C}\TeX\) 套装下出现的。如实在无法解决,建议安装最新的 TeX Live,以解决此问题(并避免产生其他更多问题)。

Q1.4: 我在编译宏包时出现了以下报错信息:

! Missing \endcsname inserted.

这是由于您不慎编译了 easymcm.sty 宏包文件。请编译 PAPER.tex。(您可能是在使用 WinEdt 软件,因为其他的 IDE 都不会允许这样做。)

Q1.5: 目前通行的mcmthesis是一个“文档类”,而本站发布的easymcm是一个“宏包”。请问这二者有何区别?

文档类(文件后缀名为.cls)是一整套预定义的文档样式,其决定了诸如标题样式、纸张大小、章节格式等属性,相当于是文档的“框架”。由LaTeX定义的基本文档类包括articlebookreport等。而宏包(文件后缀名为.sty)如同编程语言中的“库文件”,可为文档提供若干补充的命令、功能和设置。这是一般的情况。不过,在实际使用时,文档类和宏包却可以发挥类同的作用,这主要是因为LaTeX系统对文档类/宏包文件的内容、格式未做太过严格的限定,因此许多功能既可以通过文档类实现,也可以通过宏包实现。mcmthesis采用的文档类样式,实现较复杂,但更为精细。本站的easymcm宏包二次开发自mcmthesis的老版本,仍然是一个宏包文件,结构简单,便于使用。

在实际使用时,文档类通过\documentclass命令确定,宏包通过\usepackage命令引用。一份可编译的tex文档可以引用多个宏包,也可以不引用任何宏包,但必须确定一种文档类。

2 图片、表格、数学公式、网址的处理

Q2.1: 我还不太会插入图标和表格……

请在使用 LaTeX 排版论文前花一点时间认真学习各项基本功能,如图表处理等。请认真阅读 latex-zh-cn(各发行版本中均有,使用 texdoc 命令即可获得——这是什么意思?,若找不到请点这里下载),其中的内容已足够你在文档中获得图表。

Q2.2: 较大的表格,不易用 LaTeX 命令编写。请问是否有解决方案?

一般而言,有两种解决方案:

  1. 使用有关工具将ExcelMatlab等表格(矩阵)格式转换为LaTeX命令,或直接在可视化界面中编辑表格并转换为LaTeX命令。一个可用的工具是Excel2LaTeX(LaTeXStudio上的中文介绍与下载CTAN上的发布页面),另一个可以在线转换的网页是TablesGenerator点此进入,我推荐这一方式)。其中的若干门道,这里就不再介绍了,用户可以自行尝试。
  2. 将表格截图后以图片形式插入到LaTeX中。这是最方便的做法,问题在于截图是位图格式的,对文档的显示效果可能有一定的影响。同时,在插入截图时,还应采取这样的“古怪”方式:
\begin{table}[!htbp]
\centering
\caption{Name of the table}\label{tb:XXX}
\includegraphics[width=Xcm]{XXX.jpg}
\end{table}

由此,显示出的标题将是“Table X: Name of the table”,而不是“Figure”。figure 环境与 table 环境都是浮动对象,没有本质上的区别,主要区别就是标题名称。

Q2.3: easymcm自带的样例论文中,所有的表格几乎都是三线表。不能使用更复杂的样式吗?

三线表是科技论文中的通用表格形式,简洁明快,在美赛论文中的确不推荐用其他类型的表格。但是,如果需要处理特别复杂的表格,必须在表格中用若干竖线分隔,则还是用默认的表格样式为好。不建议新手自己用代码写复杂表格,请按照Q2.2中所提供的解决方案来生成复杂表格的 LaTeX 代码。关于三线表的更多信息,可以查看三线表宏包 booktabs 的说明文档(使用 texdoc 命令查看,见 Q2.1 的回答)。可换页表格需调用 longtable 宏包。

Q2.4: LaTeX中的公式代码太繁琐了,记不住、用不熟,怎么破?

如果您已经比较熟悉 LaTeX 中数学公式的基本语法,以及若干的数学环境,只是对具体的符号代码感到苦恼,可以准备一份公式代码表在手头以供查阅。各种纸质的、在线的 LaTeX 教程中,都有这样的公式符号代码表。

如果您对基本的公式语法都感到陌生,则建议您利用其他可视化编辑器生成 LaTeX 代码。使用 Office 套装处理文档的用户,应该比较熟悉 MathType 公式编辑器了,其内置有生成 TeX 代码的模块,具体的配置方法可在网上容易地找到(前提是,您使用的是完整版的 MathType,不是在试用期结束后残存的“精简版”)。另外,还有一个较好的在线公式编辑器,语言可调整为中文,也可以充当一个公式表:如果您遗忘了某些符号,或记不清矩阵、积分号等的使用方法,可直接在界面上寻找对应按钮,点击就能生成规范的LaTeX代码。

还可参考我在钱院学辅信息站编写的 LaTeX 公式语法速成文章。

Q2.5: 插入由\texttt引导的网址时,出现了不能换行的问题。如何解决?

打字机字族ttfamilyTeX的底层定义中,默认是不能换行的。(参考这个知乎上的回答)使用 easymcm 模板时,为了自动换行,请在论文正文及参考文献区采用 \url 命令将需要引用的网址括起来,例如一个含网址的 bibitem 应写成这样:

\bibitem{XXX} Easymcm: A useful template for MCM/ICM. 2019.1.22. \url{https://www.cnblogs.com/xjtu-blacksmith/p/9737960.html}

效果如下图所示,可见自动换行的问题已解决了。特别注意,\url 是一个抄录环境——也就是说,在其中不需要将_^$等字符做转义处理。

3 样式、字体字号、段落的设置

Q3.1:模板中与官方 Word 模板为何有微小差异(如字体颜色、字号、字体不是「纯正」的 Times New Roman 等)?

  1. \(\rm\LaTeX\) 与 Word 机制不同,默认值也不同。想要将一个页面的各项参数设置得和 Word 中「一模一样」,需要额外设置许多属性,不甚现实。使用 \(\rm\LaTeX\),即是追求较 Word 更好的排版效果(用 L 反而付出更多工作量),若视觉效果相同反倒失去意义。
  2. 关于红色字体:根据往年情况,Word 模板中的红色意指「在此填入自己的内容」,填入后宜改为黑色(因此不必去「设置字体为红色」)。目前 easymcm 与其他模板一致,采用此种解释。
  3. 关于局部的字号差异:最终提交者为 PDF,本质上是矢量图,根本无从核查某处「字号为多少」。Word 模板设置字号容易,\(\rm\LaTeX\) 中稍繁,故模板中只是近似配置,勿担忧。(关于某条线、某个段落间距之类,同理。)
  4. easymcm 已经发行三年,最初发布时默认字体甚至不是 Times 字体(袭用基底 mcmthesis v5.0 的 Palatino 字体),未有因「论文样式有偏差」而导致比赛结果受影响的汇报(具体例子:作者本人使用该模板参赛,获 M 奖)。事实证明,论文内容决定最终评审意见,论文样式只要达到清晰、基本合规即可,细节不必过分追求,更不必为此焦虑;当下成百上千人(前几年则有更多人)与你使用同样模板参赛,足以使你安心。

如一定要修改,请在各个相关评论区寻找已有回复,不再解答。

Q3.2:为何正文页码为 2?(或:为何目录没有页眉?)

目录无页眉,又仍计为第一面(实质是「凑页」),故产生如此现象。没有要紧影响,暂时采用此种样式;可能会在下一个版本中修改。

欲修改,请到 sty 文件中的最后部分,将 \thispagestyle{empty} 命令去除,或将其改为 \thispagestyle{fancy}

Q3.3: 如何调整段间距

在导言区修改 \parskip 的数值即可。如命令

\setlength{\parskip}{2\baselineskip}

就将行距设置为两倍的基础行距(也可填入具体长度,如 2pt2cm 等)。不建议随意调整。

Q3.4: 为调整页边距,我在导言区加载了 geometry 宏包后页面显示有问题,请问哪里出了问题?

easymcm 中已经加载过 geometry 宏包了,再次加载会出错(有如在C++程序中多次引用头文件的错误)。不推荐用户修改相关参数。如一定要修改,则应打开 easymcm.sty 并修改引用 geometry 宏包时所设定的参数——该宏包是第一个被引用的宏包,容易找到。

Q3.5: 如何修改目录、正文标题的样式?

不推荐用户修改,修改目录不是简单的事情。如果您希望藉此「提高水平」,在比赛前有充足的时间和精力,请查找其他资料,比如通过 texdoc 命令阅读 titlesectitletoc 等宏包的使用方法。

4 交叉引用的相关问题

Q4.1: 编译后,生成了空白的目录(或显示为 ?? 的引用标记),请问发生了什么?!

重复编译几次即可。

Q4.2: 我的论文章节太多,导致目录生成了两页。如何将其压缩到一页以内?

美赛论文理应短小精悍、结构突出,一篇20页的论文不应有太过繁密的章节划分。目录应当控制在一页以内,因此easymcm宏包中未考虑目录超出一页的情形。如果目录被迫超出一页(即实在无法删减章节),有下列解决方案:

  1. 不显示三级标题,只显示二级标题。在导言区加入\setcounter{tocdepth}{2} 即可。
  2. 定制目录样式,去掉目录中section级别标题的默认顶部间距。方法在网上可查到,但不推荐,因目录样式定制不是一件容易的事情。
  3. 如您坚持认为自己的论文必须有两页目录,请参考一位博友所引用的解决方案:知乎页面

美赛LaTeX急救指南的更多相关文章

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

    目录 1 当前美赛模板通行情况的概述 2 easymcm宏包说明 2.1 与mcmthesis的关系之说明 2.2 easymcm宏包的简介 2.3 美赛模板下载地址 3 常见问题的解决方案 若您无意 ...

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

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

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

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

  4. 一个自己稍作修改了的美赛论文 LaTeX 模板

    警告:这是旧版模板的发布页面.本站已经发布了最新版的美赛模板 easymcm(2020 年美赛可用),请到该页面查看: https://www.cnblogs.com/xjtu-blacksmith/ ...

  5. 2019建模美赛B题(派送无人机)M奖论文

    昨天上午出了建模美赛的结果,我们小组获得的是M奖,感觉挺开心的.我一直觉得拿O奖那种是个概率事件,需要天时地利人和的各种因素都合适才行,所以看到自己是M奖,感觉自己的能力已经得到了认可就很满意了.今天 ...

  6. Python编程之美:最佳实践指南PDF高清完整版免费下载|百度云盘|Python新手到进阶

    百度云盘:Python编程之美:最佳实践指南PDF高清完整版免费下载 提取码:1py6 内容简介 <Python编程之美:最佳实践指南>是Python用户的一本百科式学习指南,由Pytho ...

  7. 一个自己稍作修改了的美赛论文LaTeX模板

    原模板(5.0)来自LaTeX工作室(latexstudio.net),我按照比赛规范做了一点小小的修改(5.0y),并加上了比原来更详细一些的注释,方便使用. 仅仅分享一下方便大家使用,模板的原创者 ...

  8. 数模美赛准备——我的第一个LaTex文档

    软件下载地址:清华大学镜像网站(点击下载) https://mirrors.tuna.tsinghua.edu.cn/ctex/legacy/2.9/ 上述网站页面 根据个人需求下载不同的版本安装完成 ...

  9. 13.DoS防御----BeEF浏览器渗透----暴力破解之美杜莎---DNS指南

    DoS防御 启用ICMP,UDP,TCP泛洪过滤 登录路由器管理后台 高级-安全部分 BeEF浏览器渗透 用kali进行客户端攻击 钓鱼攻击 打开beef 浏览器打开beef cd /usr/shar ...

随机推荐

  1. Linux SSH无密码登录

    Linux服务器常见的登录方式有两种:密码登录.秘钥登录.工作中我们最常使用的是用秘钥登录的方法,因为使用秘钥登录更高效.更安全. 如何实现SSH无密码登录: 原理:无密码ssh登录的主要操作为将本机 ...

  2. 使用Linq对Hashtable和Dictionary<T,T>查询的效率比较

    近期做版本迭代任务,有一个在店铺头部展示店主所在的城市名称和省份名称的需求,店主信息表中保存了店主所在的城市Id和省份Id,由于原有业务复杂,要尽量减少Sql执行时间,所以不考虑join城市地区详细表 ...

  3. Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad

    Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad 方法一:安装单独组件 ...

  4. 解决win10不显示coreldraw x4/5/6菜单栏

    1.下载插件 https://pan.baidu.com/s/1nQ1kgUNSD7-9sjUbv5M6XA 复制链接下载插件 2.导入插件到工作区 3.设置工具栏显示 4.把工具栏拖动到菜单栏位置, ...

  5. React跨域

    React跨域 一.使用http-proxy-middleware中间件解决跨域问题 1.安装包: npm install http-proxy-middleware --save-dev 2.配置: ...

  6. spring boot 使用application.properties 进行外部配置

    application.properties大家都不陌生,我们在开发的时候,经常使用它来配置一些可以手动修改而且不用编译的变量,这样的作用在于,打成war包或者jar用于生产环境时,我们可以手动修改环 ...

  7. hexo安装总结

    博客原文地址:Claiyre的个人博客 如需转载,请在文章开头注明原文地址 hexo真心是一个不错的东西呢,安装简单(然而对博主来说并不是这样,伤心脸),主题样式简洁优雅,还有多种选择. 流程如下 安 ...

  8. 深入理解Java接口和抽象类

    对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的时候会以为它们可以随意互换使用, ...

  9. docker微服务部署之:七、Rancher进行微服务扩容和缩容

    docker微服务部署之:六.Rancher管理部署微服务 Rancher有两个特色用起来很方便,那就是扩容和缩容. 一.扩容前的准备工作 为了能直观的查看效果,需要修改下demo_article项目 ...

  10. tcp ip三次握手链接和四次挥手断开

      先来个整体的流程图       一 三次握手目的是为了建立连接... 1 核心的就是client端和service端,进行数据"报文" 交换 2 报文,目的是互相通知,确认链接 ...