[Tex/LaTex] acmart: problem generating the union symbol – math environment

amsmathequationsformattinginline()math-mode

I am trying to use the Union symbol in an acmart document. I tried using \bigcup_{lower}^{upper} value command to generate the union symbol but Latex leaves an empty space for the U symbol. The same is happening for other symbols also (Sigma for summing over a series). I have included the asmath package and the document compiles also, the only problem is that the symbols are not displayed.
Any help on how I can get these symbols inline?

Best Answer

The acmart class does

\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

This means that the class wants to use Linux Libertine for standard text, the newtxmath fonts adapted to Libertine for math and Inconsolata (zi4) for the monospaced font. It resorts to the default LaTeX fonts only if the local TeX system doesn't have the necessary resources.

The class also selects the T1 output font encoding (unless the system is defective). It always loads amsmath.

If we do

\documentclass{acmart}

\begin{document}

\show\bigcup
\show\bigcupop

\[\bigcup\]

\end{document}

we get, on the terminal,

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

> \bigcupop=\mathchar"13D0.

If we also add lmodern, the output would be the same, but the log file would contain the message

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

This is because newtxmath sets as font for large symbols one that uses the LMX encoding, which is different from the encoding used by lmodern, which assumes the standard encodings for math fonts.

Here's the problem: newtxmath defines \bigcupop to be in the large symbol fonts (the 3 in the mathcode above) at position D0. When lmodern is loaded, it doesn't reset the correspondence symbol-slot and so nothing is typeset, because the large symbols font used by lmodern has nothing at that position.

The conclusion is

when using acmart don't load any font package that sets the text fonts or the standard math fonts.

Additional math symbol fonts (for instance stmaryrd) that augment the set of math symbols available may be used, but beware that they could clash with the main fonts. As another example, amssymb should not be loaded, because newtxmath already covers it.