文章目录
一、LaTeX 简介
通过 ACM 论文模版学习 LaTeX 语法 【一、LaTeX简介和安装】
二、ACM 论文模版
ACM(Association for Computing Machinery)提供了一个标准的会议和期刊论文模板,用于撰写提交到其各类会议和期刊的论文。这些模板确保了论文的格式一致性,方便审稿人和读者。
2.1 模板内容
ACM模板包括以下内容:
- 标题页:包含论文标题、作者姓名、机构信息等。
- 摘要:简要描述论文的内容和贡献。
- 正文:包括引言、相关工作、方法、实验结果、讨论、结论等部分。
- 参考文献:列出所有引用的文献。
- 附录(如有):补充的实验数据、代码等。
2.2 下载地址
ACM的官方模板可以从以下网址下载:
- ACM Master Article Template: ACM Primary Article Templates
-
ACM Primary Article Template:ACM Primary Article Template
LaTeX 作者
acmart.cls
是用于LaTeX的ACM官方初级文章模板,整合了8个单独的ACM期刊和ACM论文集模板。primary] 模板有以下格式*: (最后更新日期:2024 年 6 月 4 日)
LATEX(2.08 版)
在使用 ACM LaTeX 文章模板之前,每个人都应阅读本文档第一部分的《TeX 用户指南》;计划使用自己的软件包的作者应阅读后面较长篇幅的《TeX 实施指南》。为确保 100% 的兼容性,请在创建文档前查看经批准可与主要文章模板一起使用的 LaTeX 软件包列表。已批准的 LaTeX 软件包页面还提供了有关如何提交其他 LaTeX 软件包以供审查和采用的信息。
这个新的合并模板包取代了以前所有独立的类文件和包,并提供了一个最新的 LATEX 包,其中包含可选调用。该软件包仅使用 TEXLive、MikTEX 和其他流行 TEX 发行版中包含的免费 TEX 软件包和字体。新的 ACM 模板使用新的字体集 (libertine),使用模板前需要在机器上安装该字体集。请在撰写论文前下载并安装 libertine 字体集。不能替换模板中使用的字体;不允许调整页边距。
新的 LATEX 软件包包含以下 ACM 模板的更新版本:
- ACM 期刊: ACM Small, ACM Large, ACM and TOG (also for SIGGRAPH authors publishing in TOG)
- ACM 论文集模板: ACM Standard and SIGPLAN
注意:期刊模板 所有期刊均使用 acmsmall,以下情况除外:
- acmlarge - Large single column format, used for DGOV, DTRAP, HEALTH, IMWUT, JOCCH, TAP
- acmtog - Large double column format, used for TOG
注意:大多数论文集作者(包括 ICPS 作者)将使用 "sigconf "论文集模板。如果您不确定使用哪种模板变体,请向您的活动或出版物联系人咨询。
在上述页面,您可以找到LaTeX和Word格式的模板下载链接,此外,还有模板的使用说明和常见问题解答。
2.3 模板格式
ACM提供的模板通常有两种格式:
- LaTeX:适用于那些熟悉LaTeX排版系统的作者,LaTeX模板文件包括.cls文件和示例.tex文件。
- Microsoft Word:适用于习惯使用Word进行文档编辑的作者,Word模板文件通常是.docx格式。
2.3.1 本地 ACM LaTeX 模版
acmart-primary.zip
压缩包解压后如图所示:
acmart.cls
acmart.cls
是一个 LaTeX 类文件,主要用于编写符合 ACM(Association for Computing Machinery,美国计算机协会)出版物格式的学术论文和文档。ACM 是计算机科学领域的重要学术组织,他们出版了一系列重要的学术期刊和会议论文集。为了统一论文格式,ACM 提供了 acmart.cls
类文件,以确保提交的论文符合他们的排版和格式要求。
acmart.cls
文件包含了一系列预定义的格式设置和命令,帮助作者按照 ACM 的规范编写和排版论文。以下是一些 acmart.cls
提供的功能和特点:
- 统一的文档结构:提供标准的文档结构,包括标题页、摘要、引言、正文、结论、参考文献等部分。
- 格式化工具:自动设置字体、段落、页边距、标题样式、图表和表格的格式。
- 引用和参考文献:与 BibTeX 配合使用,提供符合 ACM 格式的引用和参考文献样式。
- 包支持:兼容常用的 LaTeX 包,如图形处理、数学公式、代码高亮等。
- 会议和期刊模板:根据不同的会议和期刊提供特定的模板选项,以便快速配置符合特定需求的格式。
使用 acmart.cls
文件,作者可以更加方便地创建符合 ACM 要求的论文,避免因格式问题而被拒稿。
要使用 acmart.cls
,可以在 LaTeX 文档的开头使用如下命令:
\documentclass[sigconf]{acmart}
其中,sigconf
是一个示例选项,用于指定特定的会议或期刊格式。根据具体需求,可以选择不同的选项,如 manuscript
、acmsmall
、acmlarge
等。
具体使用方法和详细选项可以参考 ACM 官方提供的文档和示例。
此外, acmart.pdf
和 acmguide.pdf
是ACM(Association for Computing Machinery)提供的两份文档,旨在帮助作者按照ACM的标准撰写和提交论文。以下是对这两份文档的介绍:
acmart.pdf
《acmart.pdf》主要是ACM官方提供的LaTeX模板文档,供作者使用LaTeX编写符合ACM格式要求的论文。这个文档包括了:
- 模板使用说明:详细介绍了如何使用acmart模板,包括模板的基本结构、包的使用方法以及各种选项。
- 示例代码:提供了实际的LaTeX代码示例,帮助作者理解如何使用模板生成符合要求的文档。
- 格式要求:包括页面布局、字体、标题、摘要、参考文献格式等具体要求。
- 图表和公式:如何插入和格式化图表、公式等内容。
- 附录和参考资料:提供了附加的资源和链接,帮助作者更好地使用模板。
acmguide.pdf
《acmguide.pdf》是ACM的作者指南,详细描述了撰写和提交论文的具体要求和流程。主要内容包括:
- 投稿流程:从稿件的准备、提交、评审到最终的出版流程,详细介绍了每一步骤。
- 写作规范:包括论文的结构、写作风格、图表和公式的使用、参考文献的引用格式等。
- 版权和许可:关于版权转让、许可协议以及如何正确处理他人作品的版权问题。
- 道德规范:研究伦理、同行评审过程中的道德规范和避免学术不端行为的指南。
- 其他注意事项:如图表的分辨率要求、文件格式要求、页面限制等。
samples 文件夹
文件夹samples
则是提供了不同模版,我们只需要按照会议或期刊的要求选择相对应的模版即可。
2.3.2 OverLeaf ACM LaTeX 模版
ACM 与 Overleaf(一种基于云的免费协作式创作工具)合作,提供 ACM LaTeX 创作模板。
-
Overleaf 是一个协作平台: 作者可以轻松地邀请同事合作撰写文档。
-
作者可以使用 "富文本模式 "或常规的 "源码模式 "写作。这对于跨学科合作非常有用,因为有些作者喜欢用 LaTeX 书写,而另一些作者可能喜欢文字处理格式。
-
平台会在作者写作时自动编译文件,因此作者可以实时看到完成文件的样子。
-
通过该模板,作者可以在 Overleaf 平台上轻松向 ACM 投稿。
所有 ACM 作者均可使用 Overleaf 平台上的 ACM LaTeX 模板https://www.overleaf.com/gallery/tagged/acm-official#.WOuOk2e1taQ
2.4 使用说明
- LaTeX用户:下载后,解压缩文件,阅读README文档,按照示例.tex文件的格式撰写论文。使用时,需要确保您的LaTeX编译环境中安装了相应的宏包。
- Word用户:下载.docx文件,打开后根据模板中的样例文本填写您的内容。
2.5 sample-sigconf.tex
模板介绍
- ACM (Association for Computing Machinery) 的 LaTeX 模板通常用于撰写计算机科学和信息技术领域的论文和报告。这里我简要介绍一下 ACM LaTeX 模板的总体框架和基本结构。
- 我将使用
sample-sigconf.tex
模版排版MobiCom'23
的《AdaptiveNet: Post-deployment Neural Architecture Adaptation for Diverse Edge Environments》
,从而对于LaTeX中各个部分进行介绍和展示。
2.5.1 文档类型和导言区
(1)ACM 模板使用的文档类型一般是 sigconf
,即会议论文格式。
- 通常在导言区设置模板相关的参数和宏包,例如:
%% The first command in your LaTeX source must be the \documentclass
%% command.
% LaTeX 源代码中的第一条命令必须是 \documentclass 命令。
%%
%% For submission and review of your manuscript please change the
%% command to \documentclass[manuscript, screen, review]{acmart}.
% 提交和审阅稿件时,请将命令改为
% \documentclass[manuscript, screen, review]{acmart}.
%%
%% When submitting camera ready or to TAPS(The ACM Publishing System), please
%% change the command
%% to \documentclass[sigconf]{acmart} or whichever template is required
%% for your publication.
% 在提交印刷或TAPS(The ACM Publishing System,ACM 出版系统)时,
% 请将命令改为 \documentclass[sigconf]{acmart} 或您的出版物所需的模板。
%%
%%
% \documentclass[sigconf]{acmart}
\documentclass[sigconf,10pt]{acmart}
- LaTeX使用
%
作为注释符
(2) \BibTeX
命令用于在文档中排版 BibTeX 徽标
%% \BibTeX command to typeset BibTeX logo in the docs
% \BibTeX 命令用于在文档中排版 BibTeX 徽标
\AtBeginDocument{%
\providecommand\BibTeX{{%
Bib\TeX}}}
(3)权利管理信息相关命令
- 这些命令用于设置版权和权利管理信息。这些信息通常会在你完成权利表单后由 ACM 提供。
%% Rights management information. This information is sent to you
%% when you complete the rights form. These commands have SAMPLE
%% values in them; it is your responsibility as an author to replace
%% the commands and values with those provided to you when you
%% complete the rights form.
% 权利管理信息。 这些信息会在您填写权限表时发送给您。
% 这些命令中包含 SAMPLE 值;
% 作为作者,您有责任将这些命令和值替换为填写权限表时提供给您的值。
% \setcopyright{acmlicensed}
% \copyrightyear{2018}
% \acmYear{2018}
% \acmDOI{XXXXXXX.XXXXXXX}
\setcopyright{acmcopyright}
\copyrightyear{2023}
\acmYear{2023}
\acmDOI{10.1145/3570361.3592529}
-
\setcopyright{acmcopyright}:
- 用于指定版权类型。常见的值有
acmcopyright
、acmlicensed
、rightsretained
等。 - 示例:
\setcopyright{acmcopyright}
- 用于指定版权类型。常见的值有
-
\copyrightyear{2023}:
- 指定版权年份。
- 示例:
\copyrightyear{2023}
-
\acmYear{2023}:
- 指定 ACM 发表的年份。
- 示例:
\acmYear{2023}
-
\acmDOI{10.1145/3570361.3592529}:
- 设置论文的数字对象标识符 (DOI)。
- 示例:
\acmDOI{10.1145/3570361.3592529}
% \settopmatter{printacmref=false}
% \renewcommand\footnotetextcopyrightpermission[1]{}
-
\settopmatter 命令
-
\settopmatter
用于设置文档的顶部信息。例如,可以用来控制是否显示 ACM 的参考格式。 -
示例:
\settopmatter{printacmref=false}
-
printacmref=false
: 禁用 ACM 参考格式的打印。通常,这在审稿版本中使用,以避免泄露作者信息。
-
-
\renewcommand\footnotetextcopyrightpermission 命令
-
\renewcommand\footnotetextcopyrightpermission
用于自定义版权声明的页脚信息。 -
示例:
\renewcommand\footnotetextcopyrightpermission[1]{}
-
{}
: 清空版权声明页脚。通常在审稿版本中使用,以避免泄露作者信息。
-
执行前后对比图如下图所示:
(4)会议和出版物信息相关命令
- 这些命令用于设置会议和出版物的信息。
%% These commands are for a PROCEEDINGS abstract or paper.
% \acmConference 是一个用于设置会议信息的命令
% \acmConference[Conference acronym 'XX]{Make sure to enter the correct
% conference title from your rights confirmation emai}{June 03--05,
% 2018}{Woodstock, NY}
\acmConference[MobiCom '23]{The 29th Annual International Conference On Mobile
Computing And Networking}{2-6 Oct 2023}{Madrid, Spain}
%% Uncomment \acmBooktitle if the title of the proceedings is different
%% from ``Proceedings of ...''!
% 如果会议记录的标题与 ``Proceedings of ...''("......会议记录")不同,
% 则取消注释 \acmBooktitle
%%
%%\acmBooktitle{Woodstock '18: ACM Symposium on Neural Gaze Detection,
%% June 03--05, 2018, Woodstock, NY}
\acmBooktitle{The 29th Annual International Conference On Mobile Computing
And Networking (MobiCom '23), 2-6 Oct 2023, Madrid, Spain}
\acmISBN{978-1-4503-9990-6/23/10}
\acmPrice{}
-
\acmConference[Conference acronym 'XX]{Conference title}{Dates}{Location}:
- 用于设置会议信息。
- 参数依次为:会议缩写、会议标题、会议日期和地点。
- 示例:
\acmConference[MobiCom '23]{The 29th Annual International Conference On Mobile Computing And Networking}{2-6 Oct 2023}{Madrid, Spain}
-
\acmBooktitle{Book title}:
- 如果会议记录的标题与默认的 “Proceedings of …” 不同,可以使用此命令设置会议记录的标题。
- 示例:
\acmBooktitle{The 29th Annual International Conference On Mobile Computing And Networking (MobiCom '23), 2-6 Oct 2023, Madrid, Spain}
-
\acmISBN{978-1-4503-9990-6/23/10}:
- 设置出版物的 ISBN 号。
- 示例:
\acmISBN{978-1-4503-9990-6/23/10}
-
\acmPrice{}:
- 设置出版物的价格。通常为空。
- 示例:
\acmPrice{}
(5)提交信息相关命令
- 这些命令用于在向赞助活动提交文章时设置提交编号。
%%
%% Submission ID.
% 提交编号。
%% Use this when submitting an article to a sponsored event. You'll
%% receive a unique submission ID from the organizers
%% of the event, and this ID should be used as the parameter to this command.
% 在向赞助活动提交文章时使用此功能。
% 您将从活动组织者处收到一个唯一的提交 ID 该 ID 应作为此命令的参数。
%%\acmSubmissionID{123-A56-BU3}
- \acmSubmissionID{123-A56-BU3}:
- 设置文章的提交编号。
- 示例:
\acmSubmissionID{123-A56-BU3}
(6)在导言区还可以设置论文的标题、作者信息、摘要等:
\title{Paper Title}
\author{Author 1}
\affiliation{%
\institution{Institution}
\city{City}
\state{State}
}
\email{[email protected]}
例如要实现下图所示的信息:
- “title”命令有一个可选参数、 允许作者定义一个 “简短标题”,用于页面标题。
\title{AdaptiveNet: Post-deployment Neural Architecture Adaptation for Diverse Edge Environments}
- “author” 命令及其相关命令用于定义作者及其所属单位。
\author{Hao Wen}
\affiliation{%
\institution{Institute for AI Industry Research (AIR), Tsinghua University}
\city{Beijing}
\country{China}}
\author{Yuanchun Li}
\authornote{Yuanchun Li ([email protected]) is the corresponding author. Yuanchun Li and Yunxin Liu are also affiliated with Shanghai AI Laboratory.}
\affiliation{%
\institution{Institute for AI Industry Research (AIR), Tsinghua University}
\city{Beijing}
\country{China}}
\author{Zunshuai Zhang}
\affiliation{%
\institution{Shanghai University}
\city{Shanghai}
\country{China}}
\author{Shiqi Jiang}
\affiliation{%
\institution{Microsoft Research}
\city{Shanghai}
\country{China}}
\author{Xiaozhou Ye}
\affiliation{%
\institution{AsiaInfo Technologies (China), Inc.}
\city{Beijing}
\country{China}}
\author{Ye Ouyang}
\affiliation{%
\institution{AsiaInfo Technologies (China), Inc.}
\city{Beijing}
\country{China}}
\author{Ya-Qin Zhang}
\affiliation{%
\institution{Institute for AI Industry Research (AIR), Tsinghua University}
\city{Beijing}
\country{China}}
\author{Yunxin Liu}
\affiliation{%
\institution{Institute for AI Industry Research (AIR), Tsinghua University}
\city{Beijing}
\country{China}}
默认情况下,作者的全名列表会用于页面标题。通常,这个列表太长,会与页面标题的其他信息重叠。这个命令允许作者为此目的定义一个更简洁的作者名字列表。
\renewcommand{\shortauthors}{Wen et al.}
(7)LaTeX文档的宏包和自定义命令
%\usepackage{cite} %该宏包用于管理参考文献的引用格式
% \usepackage{times} %使用 Times 字体。
\usepackage{soul} %用于高亮文本、加下划线、加删除线等效果。
\usepackage{url} %用于处理 URL 链接的格式。
\usepackage[utf8]{inputenc} %设置文档的输入编码为 UTF-8
\usepackage{caption} %用于自定义图表的标题格式
\usepackage{tikz} %用于绘制复杂的图形
\usepackage{amsmath,amsfonts, bm} %用于数学排版,提供高级数学公式和符号;bm 用于粗体数学符号。
\usepackage{algorithm} %用于排版算法伪代码
\usepackage{algorithmicx} %用于增强算法伪代码的功能
\usepackage{algpseudocode} % 这个和algorithmic不兼容,用了就要报错,好多莫名其妙的错误!!!!!
\renewcommand{\algorithmicrequire}{ \textbf{Input:}} %将算法伪代码中的 require 关键字替换为 Input:。
\renewcommand{\algorithmicensure}{ \textbf{Output:}} %将算法伪代码中的 ensure 关键字替换为 Output:
\usepackage{graphicx} %用于插入图像。
\usepackage{textcomp} %提供附加的文本符号。
\usepackage{booktabs} %用于排版高级表格。
\usepackage{siunitx} %用于排版国际单位和数值。
\usepackage{xspace} %xspace 用于处理空格问题。
\usepackage{color} %用于处理颜色
\usepackage{colortbl} %用于表格中的颜色处理
\usepackage{multirow} %用于表格中的跨行单元格
\usepackage{multicol} %用于多栏排版
\usepackage{makecell} %用于创建带有换行功能的表格单元格
\usepackage{tabularx} %用于创建自动调整列宽的表格
\usepackage{listings} %用于排版代码
\usepackage{enumitem} %用于自定义列表的格式
\usepackage{adjustbox} %用于调整盒子的大小和位置
\usepackage{subcaption} %用于在图表内添加子标题
% inlined bib file
\usepackage{filecontents} %允许在文档中内联 bib 文件
\usepackage[colorinlistoftodos]{todonotes} %用于插入带颜色的 TODO 注释
\urlstyle{same} %设置 URL 的样式与正文一致
\definecolor{airforceblue}{rgb}{0.36, 0.54, 0.66} %定义了一种颜色,名称为 airforceblue。
\setlength{\marginparwidth}{2cm} %设置边注的宽度为 2 厘米
\newcommand{\name}{AdaptiveNet\xspace}
% 定义一个新命令 \name,其内容为 AdaptiveNet,并自动处理末尾空格
\newcommand{\ie}{\textit{i}.\textit{e}.~}
% 定义一个新命令 \ie,其内容为斜体的 i.e.,并带有一个空格。
\newcommand{\eg}{\textit{e}.\textit{g}.~}
% 定义一个新命令 \eg,其内容为斜体的 e.g.,并带有一个空格。
2.5.2 文档内容结构
ACM 模板的文档结构包括常见的部分:
\begin{document}
和\end{document}
之间是正文部分。\maketitle
用于生成标题和作者信息。\begin{abstract}
和\end{abstract}
之间编写摘要。- 主体部分可以使用
\section{}
、\subsection{}
等命令来组织章节和子章节。
例如:
\begin{document}
\maketitle
\begin{abstract}
This is the abstract of the paper.
\end{abstract}
\section{Introduction}
...
\subsection{Related Work}
...
\section{Methodology}
...
\section{Results}
...
\section{Conclusion}
\end{document}
...
3. 引用和参考文献
使用 ACM 模板时,参考文献可以采用 ACM 的格式,一般使用 BibTeX 进行管理和引用。在文档中引用文献条目可以使用 \cite{}
命令。
\bibliographystyle{ACM-Reference-Format}
\bibliography{references.bib}
4. 其他注意事项
- ACM 模板通常会预设一些排版样式和格式要求,比如字体大小、行距、页边距等,大部分情况下不需要额外设置。
- 图表的插入可以使用
\includegraphics{}
和figure
环境。 - 数学公式可以使用
$...$
或者\[ ... \]
包裹起来,也可以使用equation
等环境。
示例代码
以下是一个简单的示例代码,展示了一个基本的 ACM 模板结构:
\documentclass[sigconf,10pt]{acmart}
\AtBeginDocument{%
\providecommand\BibTeX{{%
Bib\TeX}}}
\setcopyright{acmcopyright}
\copyrightyear{2023}
\acmYear{2023}
\acmDOI{10.1145/3570361.3592529}
% \settopmatter{printacmref=false}
% \renewcommand\footnotetextcopyrightpermission[1]{}
\acmConference[MobiCom '23]{The 29th Annual International Conference On Mobile Computing And Networking}{2-6 Oct 2023}{Madrid, Spain}
\acmBooktitle{The 29th Annual International Conference On Mobile Computing And Networking (MobiCom '23), 2-6 Oct 2023, Madrid, Spain}
\acmISBN{978-1-4503-9990-6/23/10}
\acmPrice{}
%%\acmSubmissionID{123-A56-BU3}
\usepackage[utf8]{inputenc} %设置文档的输入编码为 UTF-8
\usepackage{caption} %用于自定义图表的标题格式
\urlstyle{same} %设置 URL 的样式与正文一致
\definecolor{airforceblue}{rgb}{0.36, 0.54, 0.66} %定义了一种颜色,名称为 airforceblue。
\setlength{\marginparwidth}{2cm} %设置边注的宽度为 2 厘米
\newcommand{\name}{AdaptiveNet\xspace}
\newcommand{\ie}{\textit{i}.\textit{e}.~}
\newcommand{\eg}{\textit{e}.\textit{g}.~}
\begin{document}
\begin{sloppypar} %解决两端对齐问题
\title{AdaptiveNet: Post-deployment Neural Architecture Adaptation for Diverse Edge Environments}
\author{Hao Wen}
\affiliation{%
\institution{Institute for AI Industry Research (AIR), Tsinghua University}
\city{Beijing}
\country{China}}
\author{Yuanchun Li}
\authornote{Yuanchun Li ([email protected]) is the corresponding author. Yuanchun Li and Yunxin Liu are also affiliated with Shanghai AI Laboratory.}
\affiliation{%
\institution{Institute for AI Industry Research (AIR), Tsinghua University}
\city{Beijing}
\country{China}}
\renewcommand{\shortauthors}{Wen et al.}
\maketitle
\begin{abstract}
This is the abstract of the paper.
\end{abstract}
\section{Introduction}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce at tellus vitae libero volutpat eleifend.
\subsection{Related Work}
Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.
\section{Methodology}
Nullam accumsan, eros in volutpat euismod, ante urna fermentum risus, non suscipit tellus ante et eros.
\section{Results}
Sed quis libero nec purus varius ultricies. Phasellus vel lectus vel tortor interdum eleifend.
\section{Conclusion}
In consequat justo at magna porttitor sollicitudin.
\bibliographystyle{ACM-Reference-Format}
\bibliography{references}
\end{sloppypar} %解决两端对齐问题
\end{document}
-
\begin{sloppypar}
-
作用:放宽段落的排版规则以减少或消除过长的行(overfull lines)。
-
详细说明:默认情况下,LaTeX 会严格遵循排版规则,将每一行调整为大致相等的长度。如果一行的内容过多,超出页面宽度,就会产生一个 “overfull hbox” 警告。在某些情况下,特别是当段落中包含长单词或 URL 时,这种严格的排版可能导致行溢出页面边界。
sloppypar
环境通过增加行之间的间距来放宽这些限制,从而减少或消除过长的行。\documentclass{article} \usepackage{url} \begin{document} \begin{sloppypar} This is a paragraph with a very long URL that might otherwise cause an overfull line: \url{http://www.example.com/very/long/url/that/causes/overfull/hbox/problems}. \end{sloppypar} \end{document}
在这个例子中,
sloppypar
环境会在 URL 处放松排版规则,使得 URL 不会导致行溢出页面边界。
以上是一个简单的 ACM 模板文档框架,可以根据具体需求和 ACM 模板的更新情况进行调整和扩展。
标签:LaTeX,usepackage,%%,模版,论文,ACM,文档,模板 From: https://blog.csdn.net/eternity_memory/article/details/140517687