class_docstr: Convert strings to dvi files using TeX, caching the results to a directory.
  
  The cache directory is called ``tex.cache`` and is located in the directory
  returned by `.get_cachedir`.
  
  Repeated calls to this constructor always return the same instance.
class_docstr_tok: ["Convert","strings","to","dvi","files","using","TeX",",","caching","the","results","to","a","directory",".","The","cache","directory","is","called","``","tex.cache","``","and","is","located","in","the","directory","returned","by","`",".get_cachedir","`",".","Repeated","calls","to","this","constructor","always","return","the","same","instance","."]
docstr: Return the font family name and whether the font is reduced.
docstr_tok: ["Return","the","font","family","name","and","whether","the","font","is","reduced","."]
code: def _get_font_family_and_reduced(cls):
      """Return the font family name and whether the font is reduced."""
      ff = mpl.rcParams["font.family"]
      ff_val = ff[0].lower() if len(ff) == 1 else None
      if len(ff) == 1 and ff_val in cls._font_families:
          return ff_val, False
      elif len(ff) == 1 and ff_val in cls._font_preambles:
          return cls._font_types[ff_val], True
      else:
          _log.info(
              "font.family must be one of (%s) when text.usetex is "
              "True. serif will be used by default.",
              ", ".join(cls._font_families),
          )
          return "serif", False
  
imports: import functools
  import hashlib
  import logging
  import os
  from pathlib import Path
  import subprocess
  from tempfile import TemporaryDirectory
  import numpy
  import matplotlib
  from matplotlib import _api, cbook, dviread
label_desc: Use image node_id 2 for calling the TexManager obj's underlying member method code with example usage: obj._get_font_family_and_reduced(cls) and returns: ff_val,  False, cls,  True, str,  False