答案1
您可能已经解决了您的问题。不过,我在此向将来需要类似模型的其他人提出建议。
\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzset{
Text/.style={font=\normalsize\sffamily,text centered, minimum size=1cm, text width=3cm},
}
\node[Text] (p-type) at (5.5, .25) {p-type Body};
\draw (0,0)rectangle (11,3);
\draw (0,3)--(2, 7)--(13, 7)--(11, 3)--(0,3);
\draw (11,0)--(11, 3)--(13, 7)--(13, 4)--(11,0);
\draw[fill = gray!50] (4.25,3) -- (1,3) -- (1,2.5) to [out=270,in=180] (1.5,2) -- (3.75,2) to [out=0,in=270] (4.25,2.5) -- (4.25,3);
\draw[fill = gray!50] (1,3)--(3, 7)--(6.25,7)--(4.25,3)--(1,3);
\node[Text] (n1) at (2.625, 2.3) {n+};
\draw[fill = gray!50] (10,3) -- (6.75,3) -- (6.75,2.5) to [out=270,in=180] (7.25,2) -- (9.5,2) to [out=0,in=270] (10,2.5) -- (10,3);
\draw[fill = gray!50] (6.75,3)--(8.75, 7)--(12,7)--(10,3)--(6.75,3);
\node[Text] (n2) at (8.375, 2.3) {n-};
\draw[<->] (7.5, 3.2)--(9.25,6.8);
\node[Text] (W) at (8.75, 5) {W};
\draw[<->] (4.28, 2.75)--(6.71,2.75);
\node[Text] (L) at (5.5, 2.5) {L};
\draw[fill= red!50] (4,3.5) rectangle (7,4.5);
\draw[fill = red!50] (7,3.5)--(7, 4.5)--(9,8.5)--(9,7.5)--(7, 3.5);
\draw[fill = red!50] (4,4.5)--(6, 8.5)--(9,8.5)--(7, 4.5);
\draw[->] (3.88, 4.2)--(3.88,3.7);
\node[Text] (L) at (3.6, 3.7) {$t_{ox}$};
\draw[->] (3.88, 2.3)--(3.88,2.8);
\draw[fill = blue!10] (4,3) rectangle (7,3.5);
\draw[fill = blue!10] (7,3)--(7, 3.5)--(9,7.5)--(9,7)--(7, 3);
\end{tikzpicture}
\end{document}