mathit in beamer_moml is too fat
philipphennig opened this issue · 2 comments
philipphennig commented
beamer_moml
uses Roboto Condensed
, which matches our style for beamer. But math variables (i.e. the \mathit
font) is set in regular roboto.
MWE:
import numpy as np
from matplotlib import pyplot as plt
from tueplots import bundles
plt.rcParams.update({"figure.dpi": 150})
plt.rcParams.update(bundles.beamer_moml())
def f_b(x):
return 2 ** (x / 2 - 2)
fig, ax = plt.subplots()
x = np.linspace(0, 12, num=120)
ax.plot(x, f_b(x), "-k")
ax.set_xlabel("$x$ (note that text is fine, mathit is not)")
ax.set_ylabel("$\log f(x)=6$")
I have no clue how to fix this. Anyone?
pnkraemer commented
Thanks for raising this!
I dont have a final solution, but maybe a starting point: the following code
import numpy as np
from matplotlib import pyplot as plt
from tueplots import bundles
preamble=r"""
\usepackage[sfdefault,condensed]{roboto}
\renewcommand{\familydefault}{\sfdefault} \usepackage{sansmath} \sansmath
"""
plt.rcParams.update({"figure.dpi": 150})
plt.rcParams.update(bundles.beamer_moml())
plt.rcParams.update({"text.usetex": True, "font.family": "sans-serif", "text.latex.preamble": preamble,
})
def f_b(x):
return 2 ** (x / 2 - 2)
fig, ax = plt.subplots()
x = np.linspace(0, 12, num=120)
ax.plot(x, f_b(x), "-k")
ax.set_xlabel("$x$ (note that text is fine, mathit is not)")
ax.set_ylabel("$\log f(x)=6$")
plt.show()
produces the following figure: a.pdf. At least everything is consistent.
What essentially happens is that a latex backend (using the roboto package) replaces the non-latex Roboto font. What is left is to make everything into Roboto light. This seems to be possible with some more digging.
What do you think?
pnkraemer commented
The following seems to work for me, using your snippet above:
def beamer_moml():
"""Fonts that are compatible with the beamer template of the method-of-machine-learning group in Tübingen."""
return {
"text.usetex": False,
"mathtext.fontset": "custom",
"mathtext.it": "sans:italic",
"font.sans-serif": ["Roboto Condensed"],
"font.weight": "light",
"axes.labelweight": "light",
"axes.titleweight": "light",
}
Does that do the trick for your use case?