class_docstr: An ASCII picture.
  The pictures are represented as a list of equal length strings.
class_docstr_tok: ["An","ASCII","picture",".","The","pictures","are","represented","as","a","list","of","equal","length","strings","."]
docstr: Put pictures on top of each other,
  from top to bottom.
  Returns string, baseline arguments for stringPict.
  The baseline is the baseline of the second picture.
  Everything is centered.
  Baseline is the baseline of the second picture.
  Strings are allowed.
  The special value stringPict.LINE is a row of '-' extended to the width.
docstr_tok: ["Put","pictures","on","top","of","each","other",",","from","top","to","bottom",".","Returns","string",",","baseline","arguments","for","stringPict",".","The","baseline","is","the","baseline","of","the","second","picture",".","Everything","is","centered",".","Baseline","is","the","baseline","of","the","second","picture",".","Strings","are","allowed",".","The","special","value","stringPict.LINE","is","a","row","of","'-","'","extended","to","the","width","."]
code: def stack(*args):
      """Put pictures on top of each other,
      from top to bottom.
      Returns string, baseline arguments for stringPict.
      The baseline is the baseline of the second picture.
      Everything is centered.
      Baseline is the baseline of the second picture.
      Strings are allowed.
      The special value stringPict.LINE is a row of '-' extended to the width.
      """
      # convert everything to stringPicts; keep LINE
      objects = []
      for arg in args:
          if arg is not stringPict.LINE and isinstance(arg, str):
              arg = stringPict(arg)
          objects.append(arg)
  
      # compute new width
      newWidth = max(
          obj.width() for obj in objects if obj is not stringPict.LINE
      )
  
      lineObj = stringPict(hobj("-", newWidth))
  
      # replace LINE with proper lines
      for i, obj in enumerate(objects):
          if obj is stringPict.LINE:
              objects[i] = lineObj
  
      # stack the pictures, and center the result
      newPicture = [
          center(line, newWidth)
          for obj in objects
          for line in obj.picture
      ]
      newBaseline = objects[0].height() + objects[1].baseline
      return "\n".join(newPicture), newBaseline
  
imports: import shutil
  from .pretty_symbology import hobj, vobj, xsym, xobj, pretty_use_unicode, line_width, center
  from sympy.utilities.exceptions import sympy_deprecation_warning
label_desc: Use image node_id 8 for calling the stringPict obj's underlying member method code with example usage: obj.stack() and returns: str,  newBaseline