我正在尝试在 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
上面数学代码中的 ) 的位置D0
。lmodern
加载时,它不会重置对应的符号槽,因此不会排版任何内容,因为 使用的大符号字体lmodern
在该位置没有任何内容。
结论是
使用时
acmart
不加载任何设置文本字体或标准数学字体的字体包。
可以使用其他数学符号字体(例如stmaryrd
),以扩充可用的数学符号集,但请注意它们可能与主字体冲突。再举一个例子,amssymb
不应加载,因为newtxmath
已经覆盖了它。