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?
1 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.
\documentclass{acmart}\begin{document}\[\bigcup_{0}^1\]\end{document}
shows the symbol.lmodern
package that I had included in my document. Turns out there was some conflict caused because of that. I removed this package and the code compiles fine, and the symbols appear fine too! Thanks againacmart
uses by default Linux Libertine; since it is intended for submissions to journals or conferences, one should not use font packages with it.fontenc
,listings
, andlmodern
. I hope the other two don't cause further problems.