class_docstr: xkcd theme
  
  Parameters
  ----------
  base_size : int
      Base font size. All text sizes are a scaled versions of
      the base font size.
  scale : float
      The amplitude of the wiggle perpendicular to the line (in pixels)
  length : float
      The length of the wiggle along the line (in pixels).
  randomness : float
      The factor by which the length is randomly scaled. Default is 2.
  stroke_size : float
      Size of the stroke to apply to the lines and text paths.
  stroke_color : str | tuple
      Color of the strokes. Use `"none"` for no color.
docstr: Deep copy support for theme_xkcd
docstr_tok: ["Deep","copy","support","for","theme_xkcd"]
code: def __deepcopy__(self, memo):
      """
      Deep copy support for theme_xkcd
      """
      cls = self.__class__
      result = cls.__new__(cls)
      memo[id(self)] = result
      old = self.__dict__
      new = result.__dict__
  
      for key, item in old.items():
          if key == "_rcParams":
              continue
          new[key] = deepcopy(item, memo)
  
      result._rcParams = {}
      for k, v in self._rcParams.items():
          try:
              result._rcParams[k] = deepcopy(v, memo)
          except NotImplementedError:
              # deepcopy raises an error for objects that are
              # drived from or composed of
              # matplotlib.transform. TransformNode.
              # Not desirable, but probably requires upstream fix.
              # In particular, XKCD uses
              # matplotlib.patheffects.withStrok
              # -gdowding
              result._rcParams[k] = copy(v)
  
      return result
  
imports: from copy import copy, deepcopy
  from .elements import element_blank, element_line, element_rect, element_text
  from .theme import theme
  from .theme_gray import theme_gray
label_desc: Use image node_id 2 for calling the theme_xkcd obj's underlying member method code with example usage: obj.__deepcopy__(memo) and returns: result