docs: def _show_doc(cls, fmt_func, keys=None, indent=0, grouped=False,
                    func=None, include_links=False, *args, **kwargs):
          """
          Classmethod to print the formatoptions and their documentation
  
          This function is the basis for the :meth:`show_summaries` and
          :meth:`show_docs` methods
  
          Parameters
          ----------
          fmt_func: function
              A function that takes the key, the key as it is printed, and the
              documentation of a formatoption as argument and returns what shall
              be printed
          %(Plotter.show_keys.parameters)s
  
          Other Parameters
          ----------------
          %(Plotter.show_keys.other_parameters)s
  
          Returns
          -------
          %(Plotter.show_keys.returns)s
  
          See Also
          --------
          show_summaries, show_docs"""
          def titled_group(groupname):
              bars = str_indent + '*' * len(groupname) + '\n'
              return bars + str_indent + groupname + '\n' + bars
  
          func = func or default_print_func
  
          keys = cls._enhance_keys(keys, *args, **kwargs)
          str_indent = " " * indent
          if grouped:
              grouped_keys = DefaultOrderedDict(list)
              for fmto in map(lambda key: getattr(cls, key), keys):
                  grouped_keys[fmto.groupname].append(fmto.key)
              text = "\n\n".join(
                  titled_group(group) + cls._show_doc(
                      fmt_func, keys, indent=indent, grouped=False,
                      func=str, include_links=include_links)
                  for group, keys in six.iteritems(grouped_keys))
              return func(text.rstrip())
  
          if include_links or (include_links is None and cls.include_links):
              long_keys = list(map(lambda key: ':attr:`~%s.%s.%s`' % (
                  cls.__module__, cls.__name__, key), keys))
          else:
              long_keys = keys
  
          text = '\n'.join(str_indent + long_key + '\n' + fmt_func(
              key, long_key, getattr(cls, key).__doc__) for long_key, key in zip(
                  long_keys, keys))
          return func(text)