acmart:生成联合符号的问题 - 数学环境

acmart:生成联合符号的问题 - 数学环境

我正在尝试在 acmart 文档中使用 Union 符号。我尝试使用\bigcup_{lower}^{upper} value命令生成 union 符号,但 Latex 为该U符号留出了一个空白。其他符号也出现了同样的情况(Sigma 用于对一系列符号求和)。我已经包含了该asmath包,文档也编译了,唯一的问题是符号没有显示。有什么帮助可以告诉我如何将这些符号内联吗?

答案1

acmart课程确实

\newif\if@ACM@newfonts
\@ACM@newfontstrue
\IfFileExists{libertine.sty}{}{\ClassWarning{\@classname}{You do not
    have libertine package installed.  Please upgrade your
    TeX}\@ACM@newfontsfalse}
\IfFileExists{zi4.sty}{}{\ClassWarning{\@classname}{You do not
    have zi4 package installed.  Please upgrade your TeX}\@ACM@newfontsfalse}
\IfFileExists{newtxmath.sty}{}{\ClassWarning{\@classname}{You do not
    have newtxmath package installed.  Please upgrade your
    TeX}\@ACM@newfontsfalse}
\if@ACM@newfonts
\RequirePackage[tt=false]{libertine}
\RequirePackage[varqu]{zi4}
\RequirePackage[libertine]{newtxmath}
\RequirePackage[T1]{fontenc}
\fi

这意味着该类希望使用 Linux Libertine 作为标准文本,使用newtxmath适合 Libertine 的字体作为数学,使用 Inconsolata ( zi4) 作为等宽字体。只有当本地 TeX 系统没有必要的资源时,它才会使用默认的 LaTeX 字体。

该类还选择 T1 输出字体编码(除非系统有缺陷)。它始终加载amsmath

如果我们

\documentclass{acmart}

\begin{document}

\show\bigcup
\show\bigcupop

\[\bigcup\]

\end{document}

我们在终端上得到

> \bigcup=macro:
->\DOTSI \bigcupop \slimits@ .

> \bigcupop=\mathchar"13D0.

如果我们还添加lmodern,输出将是相同的,但日志文件将包含消息

Missing character: There is no <D0> in font lmex10!

这是因为newtxmath将 设置为大符号的字体使用 编码LMX,这与 使用的编码不同lmodern,后者假定数学字体采用标准编码。

问题在于:newtxmath定义\bigcupop为 位于 的大符号字体 (3上面数学代码中的 ) 的位置D0lmodern加载时,它不会重置对应的符号槽,因此不会排版任何内容,因为 使用的大符号字体lmodern在该位置没有任何内容。

结论是

使用时acmart不加载任何设置文本字体或标准数学字体的字体包。

可以使用其他数学符号字体​​(例如stmaryrd),以扩充可用的数学符号集,但请注意它们可能与主字体冲突。再举一个例子,amssymb不应加载,因为newtxmath已经覆盖了它。

相关内容