具有多行和不同灰度的结构/图形/表格(与提供的类似)

具有多行和不同灰度的结构/图形/表格(与提供的类似)

我想要一个如下所示的图形或表格:

在此处输入图片描述

我在这个帖子上发现了类似的结构:在 TikZ 中创建目录的图形表示

我可能会引用那里的代码:

\documentclass[border=2pt,tikz]{standalone}
\usetikzlibrary{calc,positioning,backgrounds,fit}
\renewcommand{\rmdefault}{ptm}
\begin{document}

\newcommand{\ut}{4mm}
\begin{tikzpicture}[bk/.style args={#1}{draw,fill=gray!20,minimum height=2.7*\ut,minimum width=#1*\ut,align=center}, part/.style={inner sep=0pt,outer sep=0pt,font={\Large\bfseries}, white,align=left, xshift=-8*\ut}, node distance=.5*\ut]

\node[bk=30](c1){Chapter 1\\\textit{Chapter 1 Title}};
\node[bk=9.75,below=of c1.south west, anchor=north west](c2){Chapter 2\\\textit{Chapter 2 Title}};
\node[bk=19.75,below=of c1.south east, anchor=north east](c3){Chapter 3\\\textit{Chapter 3 Title}};

\node[part,left=of {$(c1.west)!.5!(c2.west)$},anchor=west](P1){Part I\\\textit{Part I Title}};

\begin{scope}[on background layer]
\node[rectangle,fill=gray!70,fit=(c1)(c2)(P1),inner sep=10pt] {};
\end{scope}

\node[bk=30,below=of c2.south west,anchor=north west,yshift=-2em](c1){Chapter 4\\\textit{Chapter 4 Title}};
\node[bk=30,below=of c1.south west, anchor=north west](c2){Chapter 5\\\textit{Chapter 5 Title}};
\node[bk=30,below=of c2.south east, anchor=north east](c3){Chapter 6\\\textit{Chapter 6 Title}};

\node[part,left=of {$(c1.west)!.5!(c3.west)$},anchor=west](P2){Part II\\\textit{Part II Title}};

\begin{scope}[shift={(0,-10*\ut)},on background layer]
\node[rectangle,fill=gray!70,fit=(c1)(c3)(P2),inner sep=10pt] {};
\end{scope}

\node[bk=30,below=of c3.south,anchor=north,yshift=-2em](c1){Chapter 7\\\textit{Chapter 7 Title}};
\node[bk=9.75,below=of c1.south west, anchor=north west](c2){Chapter 8\\\textit{Chapter 8 Title}};
\node[bk=9.75,below=of c1.south east, anchor=north east](c3){Chapter 10\\\textit{Chapter 10 Title}};
\node[bk=9.5,left=of c3.west, anchor=east](c4){Chapter 9\\ \textit{Chapter 9 Title}};

\node[part,left=of {$(c1.west)!.5!(c2.west)$},anchor=west](P3){Part III\\\textit{Part III Title}};

\begin{scope}[shift={(0,-24*\ut)},on background layer]
\node[rectangle,fill=gray!70,fit=(c1)(c2)(P3),inner sep=10pt] {};
\end{scope}

\end{tikzpicture}

\end{document}

我该如何修改此代码以使其看起来像我想要的结构?提前致谢。

答案1

如果你想手写所有内容,这里有一个选项tcolorbox

\documentclass{article}
\usepackage[most]{tcolorbox}

\tcbset{every box/.style={fontupper=\sffamily, 
    colframe=black, notitle, sharp corners}}

\newtcolorbox{project}{colback=black!40}

\newtcolorbox{subproject}{colback=black!30}

\newtcolorbox{subsubproject}{colback=black!10}

\begin{document}

\begin{project}
Project P1: Long Name of Project 1.
\end{project}

\begin{project}
Project P2: Long Name of Project 2.
    \begin{subproject}
    Subproject S1: Long Name of subproject 1.
        \begin{subsubproject}
        Subsubproject 1: Long Name of subsubproject 1.
        \end{subsubproject}
        \begin{subsubproject}
        Subsubproject 2: Long Name of subsubproject 3.
        \end{subsubproject}
    \end{subproject}
    \begin{subproject}
    Subproject S2: Long Name of subproject 2.
        \begin{subsubproject}
        Subsubproject 3: Long Name of subsubproject 3.
        \end{subsubproject}
        \begin{subsubproject}
        Subsubproject 4: Long Name of subsubproject 4.
        \end{subsubproject}
    \end{subproject}
    \begin{subproject}
    Subproject S3: Long Name of subproject 3.
        \begin{subsubproject}
        Subsubproject 5: Long Name of subsubproject 5.
        \end{subsubproject}
    \end{subproject}
\end{project}

\begin{project}
Project P3: Long Name of Project 3.
\end{project}
\end{document}

在此处输入图片描述

相关内容