ACM 课程中公式模式中的括号消失

ACM 课程中公式模式中的括号消失

问题是,当使用lmodern带有 ACM 类的字体包时acmart.cls,括号往往会在最终输出中消失。如果没有lmodernacmart.cls则会出现错误。以下是 MWE:

\documentclass[sigconf, anonymous=true]{acmart}
\usepackage{lmodern}

\begin{document}

\title[XYZ]{XYZ}

\maketitle
\begin{equation}
Output = AES_{K}(0),AES_{K}(1),AES_{K}(2),...
\end{equation}
%
\bibliographystyle{ACM-Reference-Format}
\bibliography{PRNGbib}
\end{document}

我也使用了很多其他数学软件包。圆括号和花括号往往会在最终输出中消失,如下所示:

在此处输入图片描述

我已经尝试按照建议调整包裹顺序这里

答案1

您会在日志文件中收到警告:

Missing character: There is no <B9> in font lmsy9!
Missing character: There is no <B9> in font lmsy9!
Missing character: There is no <BA> in font lmsy9!
Missing character: There is no <B9> in font lmsy9!
Missing character: There is no <BA> in font lmsy9!
Missing character: There is no <B9> in font lmsy9!
Missing character: There is no <BA> in font lmsy9!

(实际输出的显示方式可能与 不同<B9><BA>

问题在于acmart文档类使用newtxmath选项加载,该选项为和libertine分配不同的数学代码,恰好为和分配不同的数学代码,这就解释了“缺少字符”警告。()"42B9)52BA)

标准数学代码分别为"4028"5029。您可能通过重新定义数学代码来解决此类问题:

\DeclareMathDelimiter{(}{\mathopen} {operators}{"28}{largesymbols}{"00}
\DeclareMathDelimiter{)}{\mathclose}{operators}{"29}{largesymbols}{"01}

完整代码如下:

\documentclass[sigconf, anonymous=true]{acmart}
\usepackage{lmodern}

\DeclareMathDelimiter{(}{\mathopen} {operators}{"28}{largesymbols}{"00}
\DeclareMathDelimiter{)}{\mathclose}{operators}{"29}{largesymbols}{"01}

\begin{document}

\title[XYZ]{XYZ}

\maketitle
\begin{equation}
Output = AES_{K}(0),AES_{K}(1),AES_{K}(2),...
\end{equation}

\bibliographystyle{ACM-Reference-Format}
\bibliography{PRNGbib}

\end{document}

但请注意,定义的数学代码与 所期望的数学代码之间可能存在其他不匹配的情况lmodern。此外,文档的某些部分可能仍然使用 Libertine。

在此处输入图片描述

最后的建议:该类acmart经过精心编写,符合 ACM 和附属会议的标准。通过加载与类中定义的字体不同的字体来更改输出的外观应该不是可以完成,这可能是拒绝提交的一个很好的理由。

答案2

OP 的问题不同,但任何试图同时使用lmodern和的人newtxmath都可能遇到相同的症状,与类别无关acmart。就我而言,我newtxmath仅使用了一些符号,最有效的解决方案是停止加载该包,而是从中复制出我需要的符号定义newtxmath.sty。例如(显然这会根据您需要的符号而有所不同):

% from <https://tex.stackexchange.com/q/452081/78411>
\makeatletter
\newif\iftx@libertine
\newif\iftx@minion
\newif\iftx@coch
\newif\iftx@ch
\newif\iftx@stxtwo
\makeatother

\DeclareSymbolFont{lettersA}{U}{ntxmia}{m}{it}
\SetSymbolFont{lettersA}{bold}{U}{ntxmia}{b}{it}
\DeclareFontSubstitution{U}{ntxmia}{m}{it}

\DeclareMathSymbol{\uprho}{\mathord}{lettersA}{26}
\DeclareMathSymbol{\upvarphi}{\mathord}{lettersA}{39}

\DeclareSymbolFont{AMSm}{U}{ntxsym}{m}{n}
\SetSymbolFont{AMSm}{bold}{U}{ntxsym}{b}{n}
\DeclareFontSubstitution{U}{ntxsym}{m}{n}

\DeclareMathSymbol{\Game}{\mathord}{AMSm}{97}
\DeclareMathSymbol{\ggg}{\mathrel}{AMSm}{239}
\DeclareMathSymbol{\circledast}{\mathbin}{AMSm}{254}

相关内容