创建带有项目符号和括号的分项列表以显示分层数据

创建带有项目符号和括号的分项列表以显示分层数据

笔记:

请注意,我已经看到了针对该帖子提出的问题提供的解决方案:

将括号放在逐项列表中

但这并不能解决我的问题,因为我有一个变量的嵌套结构,而且我发现提供的解决方案很混乱。

问题和我的不完整的解决方案

我有一组具有层次结构的变量。我想将它们显示在带括号的项目符号列表中,以显示此层次结构。

我可以通过以下代码部分获得所需的结果

\begin{equation*}
\left.
\begin{array}{@{}l}
    \left.
    \begin{array}{@{}l}
        \left.
        \begin{array}{@{}l }
        \text{Variable A}\\
        \text{Variable B}
        \end{array}\right\} \text{Level 1}\\
    \text{Variable C}\\
    \text{Variable D}\\
    \text{Variable E}\\
    \end{array}\right\} \text{Level 2}\\
\text{Variable F}\\
\text{Variable G}\\
\text{Variable H}\\
\end{array}
\right\}    \text{Level 3}
\end{equation*}

输出如下:

在此处输入图片描述

问题是我想要一个项目符号列表以便显示项目符号。此外,我必须在里面放置文本,\text{}因为我正在使用数组。

是否可以通过环境实现预期结果itemize,使得项目符号和括号也出现?

答案1

你可以用 Ti 注释列表Z. 使用样式可以减少不必要的重复。如果您使用包创建列表,这将继续有效enumitem

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,calligraphy,tikzmark,fit}
\tikzset{bracenode/.style 2 args={fit=#1,inner sep=0pt,alias=tmp,append after command={
  ([yshift=0.5ex]tmp.north east) edge[thick,decorate,decoration={calligraphic brace,raise=0.5ex}]
  ([yshift=-0.5ex]tmp.south east)
   -- #2
  ([yshift=-0.5ex]tmp.south east)
    }}}
\begin{document}
\begin{itemize}
 \item \tikzmarknode{A}{Variable A}
 \item \tikzmarknode{B}{Variable B}
 \item Variable C
 \item Variable D
 \item \tikzmarknode{E}{Variable E}
 \item Variable F
 \item Variable G
 \item \tikzmarknode{H}{Variable H}
 \begin{tikzpicture}[overlay,remember picture]
  \path node[bracenode={(A)(B)}{node[right=1ex](L1){Level 1}}]{}
   node[bracenode={(A)(E)(L1)}{node[right=1ex](L2){Level 2}}]{}
   node[bracenode={(A)(H)(L2)}{node[right=1ex](L3){Level 3}}]{};
 \end{tikzpicture}
\end{itemize}
\end{document}

在此处输入图片描述

相关内容