\documentclass[UTF8]{ctexart}
\xeCJKsetup{CJKmath=true}%公式里直接用中文
\usepackage{mathtools}
\usepackage[margin=1in]{geometry}

\newcommand\smt[1]{\smash[t]{#1}}
\newcommand\smb[1]{\smash[b]{#1}}
\newsavebox\Obox\newsavebox\Bbox\newsavebox\Tbox
\newsavebox\outbox
\newcommand\kkkkk[1]{%
\sbox\Obox{$
\renewcommand\smt[1]{##1}
\renewcommand\smb[1]{##1}
\displaystyle#1$}%
\sbox\Bbox{$
\renewcommand\smt[1]{##1}
\renewcommand\smb[1]{\smash[b]{##1}}
\displaystyle#1$}%
\sbox\Tbox{$
\renewcommand\smt[1]{\smash[t]{##1}}
\renewcommand\smb[1]{##1}
\displaystyle#1$}%
\sbox\outbox{%
\vphantom{\raise\dimexpr
\dp\Obox-\dp\Tbox-\ht\Obox+\ht\Bbox
\relax\box\Obox}%
\renewcommand\smt[1]{\smash[t]{##1}}%
\renewcommand\smb[1]{\smash[b]{##1}}%
$\displaystyle#1$}%
\box\outbox
}

\newcommand\case[1]{{}\begin{dcases}\relax#1\end{dcases}}
\newcommand\caseo[1]{\kkkkk{\case{#1}}}      %补全距，用于外层及中间
\newcommand\caset[1]{\smt{\kkkkk{\case{#1}}}}%去高度，用于顶上的
\newcommand\caseb[1]{\smb{\kkkkk{\case{#1}}}}%去深度，用于底下的
\newcommand\casetz[1]{\smt{\case{#1}}}       %最后一层专用(为节约资源)
\newcommand\casebz[1]{\smb{\case{#1}}}       %最后一层专用(为节约资源)

\begin{document}

\fboxsep=0pt

加 fbox 是为了看边界有没有问题。

二层：
\fbox{%
\caseo{
k\casetz{k\\kk}\\
kkk\casebz{k\\kk\\kkk\\kkkk}
}%
}

三层兼放公式中（太长临时调小了行距）：
\[\boxed{
\linespread{0.5}\selectfont
\sum f=
\caseo{
f\caset{
 k\casetz{k\\kk}\\
 kk\case{k\\kk}\\
 kkk\casebz{k\\kk\\kkk\\kkkk}
 }
\\
ff\caseo{
  k\casetz{k\\kk}\\
  kk\casebz{k\\kk\\kkk}
  }
\\
fff\caseb{
   k\casetz{k\\kk\\kkk\\kkkk}\\
   kk\\
   kkk\casebz{k\\kk}
   }
}
=\int k
}\]

$复数
\case{
实数\case{
    有理数\case{
        整数\case{自然数\\负整数}\\
        分数\case{真分数\\假分数}
        }
    \\
    无理数\case{正无理数\\负无理数}
    }
\\
虚数\case{纯虚数\\非纯虚数}
}$%
%
\quad V.S.\quad
复数%
\caseo{
实数\caset{
    有理数\caset{
        整数\casetz{自然数\\负整数}\\
        分数\casebz{真分数\\假分数}
        }
    \\
    无理数\casebz{正无理数\\负无理数}
    }
\\
虚数\casebz{纯虚数\\非纯虚数}
}

\newpage

\def\xxx{\rule[-2.5pt]{10pt}{10pt}}
\def\yyy{\rule[-7.5pt]{20pt}{20pt}}
\def\zzz{\rule[-12.5pt]{30pt}{30pt}}

四层：
\fbox{%
\caseo{
  \xxx
  \caset{
    \yyy
    \caset{
      \yyy
      \casetz{
        \yyy\\
        \xxx
      }
      \\
      \xxx
      \casebz{
        \yyy\\
        \xxx
      }
    }
    \\
    \yyy
    \caseb{
      \yyy
      \casetz{
        \yyy\\
        \zzz
      }
      \\
      \yyy
      \casebz{
        \zzz\\
        \xxx
      }
    }
  }
  \\
  \yyy
  \caseo{
    \zzz
    \caset{
      \yyy
      \casetz{
        \xxx\\
        \zzz
      }
      \\
      \yyy
      \casebz{
        \xxx\\
        \xxx
      }
    }
    \\
    \yyy
    \caseb{
      \yyy
      \casetz{
        \yyy\\
        \zzz
      }
      \\
      \xxx
      \casebz{
        \yyy\\
        \xxx
      }
    }
  }
  \\
  \yyy
  \caseb{
    \zzz
    \caset{
      \xxx
      \casetz{
        \zzz\\
        \yyy
      }
      \\
      \xxx
      \casebz{
        \yyy\\
        \xxx
      }
    }
    \\
    \zzz
    \caseb{
      \xxx
      \casetz{
        \yyy\\
        \zzz
      }
      \\
      \xxx
      \casebz{
        \yyy\\
        \zzz
      }
    }
  }
}%
}


\end{document}
