I need help with U8GLIB library
While this may not exactly answer your question, there may be some information about u8g2lib that you have not seen. The library source code is linked here: u8g2lib

Within that repository is the FAQ documentation which includes such gems as:


  Q: U8g2 requires a lot of memory. How to reduce this?
  - Visit https://github.com/olikraus/u8g2/wiki/u8g2optimization
  - Disable U8g2 features if possible (see u8g2.h)
  - Limit the font size. If possible avoid "f" fonts, instead use "r" or "n" fonts
  - If the I2C interface is not required, then uncomment #define U8X8_HAVE_HW_I2C in U8x8lib.h   (Background: Due to a problem in
  Wire.h, the I2C Arduino lib is always included)


and


  Q: How can I generate my own font. A: The font must be available in
  bdf file format. Then use bdfconv to generate the font data. The font
  data can be pasted into an existing file of your project. There is
  also a nice Windows Bitmap Font Editor "Fony"
  (http://hukka.ncn.fi/?fony)  which can export .bdf files. A copy of
  Fony 1.4.7 is available here: 
  https://github.com/olikraus/u8g2/tree/master/tools/font/fony


The tools/font directory includes several utilities, including what looks like one that converts OTF fonts to BDF format

Once you get a BDF format font, you use bdfconv to create the C file that holds the font array. One of the arguments for bdfconf is the -m 'map' option. You can place in there a list of Unicode ranges that limit which characters get included. So, you can create a font that has ONLY the characters you need.

For example -m '45-46,48-57,77,107,109,181,937' gets you minus, decimal, 0-9, 'M', 'k', 'm', mu, omega. Unicode character map at https://unicode-table.com/en/

The benefit to creating a font is that the u8g2lib library itself does all the mapping to bitmaps and calculating the character widths, etc. so you don't have to.