将列表呈现为“树”

将列表呈现为“树”

我想将“逐项”列表显示为树。例如,当前列表是:

  • 儿童 1
  • 儿童 2
  • 孩子 3

我希望它看起来像这样(但带有连续的线条):

|

|-- 孩子1

|-- 孩子2

|-- 孩子 3

我知道有可以在图片中创建树的软件包,但我想将其保留为文本中的简单列表,只需更改其外观即可。这可能吗?

答案1

dirtree包非常适合这种情况,并且输入非常简单:每行由前缀.、级别编号、项目文本和最终组成.

.<level> Text.

例如

\documentclass{article}
\usepackage{dirtree}
\begin{document}
\dirtree{% This % is required
.1 Root. 
.2 First Level.
.2 First level.
.3 Second level.
.3 Second level.
.2 First level.
}
\end{document}

代码输出

答案2

\documentclass[border=5pt]{standalone}
\usepackage{forest}
\begin{document}
\begin{forest}
 for tree={
font=\sffamily,
grow'=0,
child anchor=west,
parent anchor=south,
anchor=west,
calign=first,
edge path={
  \noexpand\path [draw, \forestoption{edge}]
  (!u.south west) +(7.5pt,0) |- node[fill,inner sep=1.25pt] {} (.child anchor)\forestoption{edge label};
},
before typesetting nodes={
  if n=1
    {insert before={[,phantom]}}
    {}
},
fit=band,
before computing xy={l=15pt},
}
[Corporate Operations
[Trade Finance
[Import LCs
[Issuance of Import LCs
[Pre-Advice of Import LCs]
 [Pre-Advice to Issue/List of Pre-Advised LCs]
[Issue of Sight Payment LCs]
[Issue of Usance LCs]
[Issue of Negotiation LCs]
[Issue of Mixed Payment LCs]
[Issue of Stand By LCs]
[Issue internet LCs]
]
]
]
]
\end{forest}
\end{document}

在此处输入图片描述

答案3

我最初发布这个解决方案来回答不同的问题。由于该问题引用了这个问题并且我的解决方案实际上是对这个问题的回答,所以我也将其发布在这里。


\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage{enumitem}
\usepackage{tikz}

\makeatletter
    \newlist{treelist}{itemize}{5}
    \setlist[treelist]{label=\treelist@label}

    \tikzset{treelist line/.style={thick, line cap=round, rounded corners}}
    \def\treelist@label{%
        \begin{tikzpicture}[remember picture, baseline={([yshift=-.6ex] treelist-bullet-\the\[email protected])}]
            \draw [treelist line] (0, 0) -- node (treelist-bullet-\the\enit@depth) {} ++(.5em, 0);
        \end{tikzpicture}%
        \ifnum\enit@depth>1
            \tikz[remember picture, overlay] \draw [treelist line] (treelist-bullet-\the\numexpr\enit@depth-1\relax.center) |- (treelist-bullet-\the\[email protected]);%
        \fi
    }
\makeatother

\begin{document}

\begin{treelist}
    \item
    Gas ideal (partículas idénticas que no interactúan, i.e.~la energía no tiene términos cruzados).
    \begin{treelist}
        \item
        Fermiones.
        \begin{treelist}
            \item
            Límite de gas no degenerado.
            Corresponde a temperaturas muy altas y densidades muy bajas, el resultado es el gas ideal clásico.

            \item
            Límite de gas degenerado.
            Es lo opuesto, temperaturas bajas y densidades altas.
            Aparece Pauli con su principio de exclusión. 
            \begin{treelist}
            \item
            Enanas blancas. 

            \end{treelist}

        \end{treelist}

        \item
        Bosones.
        \begin{treelist}
            \item
            Límite de gas no degenerado.
            Corresponde a temperaturas muy altas y densidades muy bajas, el resultado es el gas ideal clásico.
            \begin{treelist}
                \item
                Gas de fotones.

                \item
                Gas de fonones.

            \end{treelist}

            \item
            Límite de gas degenerado.
            Básicamente es un condensado de Bose-Einstein.
            \begin{treelist}
                \item
                Superfluidos.

                \item
                Superconductores.

            \end{treelist}

        \end{treelist}

    \end{treelist}

    \item
    Otros temas que no sean gas ideal. No vimos nada, creo.

\end{treelist}

\end{document}

上述代码的输出

5\newlist{treelist}{itemize}{5}设置了最大列表深度。如果您需要超过五级,只需增加此数字。如果您想进一步自定义这些列表的外观,您应该查看enumitem蒂克兹

相关内容