这新的 ACM 模板引入了新的环境,如“示例”、“定义”等。现在你可以写:
\begin{example}
\label{myex}
Assume BLA BLA
\end{example}
输出应为:
例 4.1假设 BLA BLA
但是如果你用\cref{myex}
它来交叉引用,它就会出现“定理”标签而不是“示例”:
In \cref{myex}, we explained BLA BLA
输出为:
In theorem 4.1. we explained BLA BLA
我不想修改主.cls
文件,而是想更新评论之类的。我尝试了一些技巧,包括这但没有成功。
更新:
最小可编译代码:
\documentclass[sigconf]{acmart}
\usepackage{cleveref}
\Crefname{example}{Example}{Examples}
\begin{document}
\begin{example}
\label{myex}
Assume bla bla
\end{example}
In \cref{myex}, we show
\end{document}
答案1
解决方案[建议来自christian-hupfer ]:
通过使用 来指定您想要使用的计数器\label
。像这样:
\label[example]{myex}
类似地,如果您使用另一个环境(例如“定义”),您可以像这样否决计数器:
\label[definition]{mydef}
答案2
我建议您执行以下操作:
在您的 TeX 发行版中查找该文件
acmart.cls
。(在我的系统上,TeX 发行版是 MacTeX2016,该文件位于/usr/local/texlive/2016/texmf-dist/tex/latex/acmart/acmart.cls
。)复制此文件,并将该副本命名为(例如)
acmartclever.cls
。请勿编辑或以其他方式修改直接访问该文件acmart.cls
。在文本编辑器中打开文件
acmartclever.cls
。(您用于 tex 文件的编辑器就可以了。)对字符串进行全局搜索和替换
acmart.cls
- 该字符串应该有 11 个实例 - 并用 替换该字符串acmartclever.cls
。在文件的第 40 行,将字符串替换
\ProvidesClass{acmart}
为\ProvidesClass{acmartclever}
。类似地,在文件的第 43 行,将字符串替换
\def\@classname{acmart}
为\def\@classname{acmartclever}
。转到文件的第 2188 行并插入指令
\usepackage{cleveref}
紧接着写着 的那一行
\theoremstyle{acmplain}
。你可能会问,为什么不放在文件后面呢?这是因为声明后面\theoremstyle{acmplain}
是一组长列表的类定理环境定义,例如theorem
、conjecture
、proposition
、lemma
、corollary
、example
和definition
。cleveref
即使所有类定理环境共享相同的计数器,它也足够聪明,可以将环境与标签关联起来。但是,为了执行这些巧妙的关联,cleveref
必须加载前建立了类定理环境。如果你习惯于
cleveref
使用部分或全部选项nameinlink
、capitalize
和进行加载noabbrev
,那么你应该现在就指定它们,即编写类似\usepackage[nameinlink,capitalize,noabbrev]{cleveref}
或者,更灵活的是,只需在指令中指定的选项列表中提供部分或全部这些选项
\documentclass
。将该文件保存
acmartclever.cls
在主 tex 文件所在的目录中。在你的主 tex 文件中,第一行现在应该是
\documentclass[<options>]{acmartnew}
TeXing 快乐!
完整的 MWE:
\documentclass[sigconf,capitalize]{acmartclever} % note the option 'capitalize': it will
% be passed to 'cleveref'
\begin{document}
\setcounter{section}{2} % just for this example
\begin{example}\label{myex}
Assume bla bla
\end{example}
In \cref{myex}, we showed that \dots
\end{document}
答案3
我已将 cleveref 添加到使用的软件包列表中。此版本正式发布后,问题已解决