¿Existe una mejor manera de configurar este árbol?

¿Existe una mejor manera de configurar este árbol?

Creé un árbol con la ayuda de casesentornos. El MWE es este:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\begin{document}

\tiny
\hyphenpenalty10000%
\[
  \begin{cases}
    \parbox{1.5cm}{Doctrina de\\ los elementos}
    \begin{cases}
      \parbox{1.5cm}{Estética\\ trascendental}\\
      \parbox{1.5cm}{Lógica\\ trascendental}
      \begin{cases}
        \parbox{1.5cm}{Analítica\\ trascendental}
        \begin{cases}
          \begin{minipage}{6em}
            Analítica de los conceptos\\[2pt]
            Analítica de los principios
          \end{minipage}
        \end{cases}\\
        \parbox{1.5cm}{Dialéctica\\ trascendental}
        \begin{cases}
          \parbox{1.5cm}{Conceptos de\\ la razón pura}\\[6pt]
          \parbox{1.5cm}{Inferencias\\ dialécticas de\\ la razón pura}
          \begin{cases}
            \begin{minipage}{6em}\raggedright
                Paralogismos  de la razón pura\\[3pt]
                Antinomia de la razón\\
                Ideal de la razón pura
          \end{minipage}
          \end{cases}
        \end{cases}
      \end{cases}
    \end{cases}
    \vspace*{12pt}\\
    \parbox{1.5cm}{Doctrina\\ del método}
    \begin{cases}
      \begin{minipage}{6em}\raggedright
        Disciplina\\[2pt]
        Canon\\[2pt]
        Arquitectónica\\[2pt]
        Historia de la razón pura
    \end{minipage}
    \end{cases}
  \end{cases}
\]

\end{document}

El resultado es este: ingrese la descripción de la imagen aquí Sin embargo, no estoy muy contento con el resultado. Por ejemplo, en la penúltima 'columna', la primera llave está demasiado cerca de la segunda. Observe también los \\[2pt]códigos para ajustar el espaciado con fuerza.

Me pregunto si hay una mejor manera de configurar este árbol. (Probé algunos TikZ, pero fue en vano).

Respuesta1

Como sugerí en mi comentario, el uso de mi respuesta aquí,Múltiples corchetes o paréntesis con un texto dentro, puede eliminar los grupos exprimidos notados por el OP. Además, permite marcadores de elementos, así como definiciones de ancho de columna variable, por lo que no es necesario el salto de línea manual (aunque aquí, todas las columnas están fijadas a 0,6 pulgadas).

EDITADO para mejorar esa respuesta de dos maneras:

  1. Lo he cargado amsmathpara corregir problemas de ancho de tirantes escalados. REEDITADO porque incluso con amsmath, surgió el problema de que el ancho de a \left\{variaba con la altura del elemento asociado, lo que provocaba una desalineación. He introducido \def\fudgeheight{3}cuál es utilizado por un revisado \skipcolpara establecer la altura del fantasma \left\{. Con suerte, se podrá dejar en paz con ese valor.

  2. Dado que las marcas de elementos en cualquier columna determinada deben ser las mismas para lograr el espaciado adecuado, he permitido la definición de marcas de elementos para una columna completa a la vez, en lugar de exigir su especificación para cada \BLelemento. El valor predeterminado aún se puede anular con un argumento opcional.

Aquí está el MWE.

\documentclass{article}
\usepackage{amsmath}% FIXES WIDTH OF \left\{
\newcounter{levelcount}
\def\levelwidth   {.6in}%NOT USED HERE, WITHOUT LEADING TEXT
\def\levelwidthi  {.6in}
\def\levelwidthii {.6in}
\def\levelwidthiii{.6in}
\def\levelwidthiv {.6in}
\def\levelwidthv  {.6in}
\def\levelmarki  {$\dag$}
\def\levelmarkii {$-$}
\def\levelmarkiii{$+$}
\def\levelmarkiv {$\bullet$}
\def\levelmarkv  {*}
\def\fudgeheight{3}
\newcommand\BL[2][\csname levelmark\romannumeral\thelevelcount\endcsname]{#1\,\parbox[t]{%
  \csname levelwidth\romannumeral\thelevelcount\endcsname}{\raggedright#2}}
\def\level#1{\stepcounter{levelcount}%
  \unskip$\left\{\vcenter{\hbox{\shortstack{#1}}}\right.$%
  \addtocounter{levelcount}{-1}\ignorespaces}
\newcommand\skipcol[2][\relax]{%
  \ifx\relax#1\skipcolhelp{\csname levelmark\romannumeral#2\endcsname}%
  \else\skipcolhelp{#1}\fi}
\newcommand\skipcolhelp[1]{%
  \smash{\phantom{\level{\BL[#1]{\rule{1pt}{\fudgeheight\baselineskip}}}}}}
\begin{document}
\scriptsize
  \level{
    \BL{Doctrina de los elementos} 
      \level{
        \BL{Estetica trascendental}\skipcol{3}\skipcol{4}\skipcol{5}\cr
        \BL{Logica trascendental}
          \level{
             \BL{Analitica trascendental}
               \level{
                 \BL{Analitica de los conceptos}\cr
                 \BL{Analitica de los principios}\cr
               }\skipcol{5}\cr
             \BL{Dialectica trascendental}
               \level{\cr
                 \BL{Conceptos de la razon pura}\skipcol{5}\cr
                 \BL{Inferencias dialecticas de la rason pura}
                   \level{
                     \BL{Paralogismos de la razon pura}\cr
                     \BL{Antinomia de la razon}\cr
                     \BL{Ideal de la razon pura}
                   }
               }
          }
      }
  \cr 
    \BL{Doctrina del metodo}
      \level{
        \BL{Disciplina}\cr
        \BL{Architecture}\cr
        \BL{History de la razon pura}
      }\skipcol{3}\skipcol{4}\skipcol{5}
  }
\end{document}

ingrese la descripción de la imagen aquí

El OP prefiere la respuesta sin marcadores de elementos. Esto se logra fácilmente estableciendo

\def\levelmarki  {}
\def\levelmarkii {}
\def\levelmarkiii{}
\def\levelmarkiv {}
\def\levelmarkv  {}

en el preámbulo. Pero sin la señal visual proporcionada por los marcadores, es posible que deseemos una separación vertical adicional entre los elementos. Eso se puede hacer usando uno o dos adicionales \cragregados entre \BLelementos, como se muestra en este MWE a continuación.

\documentclass{article}
\usepackage{amsmath}% FIXES WIDTH OF \left\{
\newcounter{levelcount}
\def\levelwidth   {.6in}%NOT USED HERE, WITHOUT LEADING TEXT
\def\levelwidthi  {.6in}
\def\levelwidthii {.6in}
\def\levelwidthiii{.6in}
\def\levelwidthiv {.6in}
\def\levelwidthv  {.6in}
\def\levelmarki  {}
\def\levelmarkii {}
\def\levelmarkiii{}
\def\levelmarkiv {}
\def\levelmarkv  {}
\def\fudgeheight{3}
\newcommand\BL[2][\csname levelmark\romannumeral\thelevelcount\endcsname]{#1\,\parbox[t]{%
  \csname levelwidth\romannumeral\thelevelcount\endcsname}{\raggedright#2}}
\def\level#1{\stepcounter{levelcount}%
  \unskip$\left\{\vcenter{\hbox{\shortstack{#1}}}\right.$%
  \addtocounter{levelcount}{-1}\ignorespaces}
\newcommand\skipcol[2][\relax]{%
  \ifx\relax#1\skipcolhelp{\csname levelmark\romannumeral#2\endcsname}%
  \else\skipcolhelp{#1}\fi}
\newcommand\skipcolhelp[1]{%
  \smash{\phantom{\level{\BL[#1]{\rule{1pt}{\fudgeheight\baselineskip}}}}}}
\begin{document}
\scriptsize
  \level{
    \BL{Doctrina de los elementos} 
      \level{
        \BL{Estetica trascendental}\skipcol{3}\skipcol{4}\skipcol{5}\cr
        \BL{Logica trascendental}
          \level{
             \BL{Analitica trascendental}
               \level{
                 \BL{Analitica de los conceptos}\cr\cr
                 \BL{Analitica de los principios}\cr\cr
               }\skipcol{5}\cr
             \BL{Dialectica trascendental}
               \level{\cr
                 \BL{Conceptos de la razon pura}\skipcol{5}\cr
                 \BL{Inferencias dialecticas de la rason pura}
                   \level{
                     \BL{Paralogismos de la razon pura}\cr\cr
                     \BL{Antinomia de la razon}\cr\cr
                     \BL{Ideal de la razon pura}
                   }
               }
          }
      }
  \cr 
    \BL{Doctrina del metodo}
      \level{
        \BL{Disciplina}\cr\cr\cr
        \BL{Architecture}\cr\cr\cr
        \BL{History de la razon pura}
      }\skipcol{3}\skipcol{4}\skipcol{5}
  }
\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Schemata es un paquete diseñado para dibujar, bueno, esquemas básicamente. Define una serie de macros para facilitar el dibujo y ajuste de este tipo de diagrama.

La forma más sencilla de utilizarlo es seguir el manual. Primero cree un esquema básico usando solo \schemay \schemabox. Luego ajuste según sea necesario de derecha a izquierda, agregando \smallskipaproximadamente entre las hojas de la derecha. Luego cambie \schemasegún \Schemacorresponda, siempre trabajando de derecha a izquierda para evitar la necesidad de rehacer los ajustes. El manual explica este proceso mucho mejor de lo que puedo hacerlo aquí.

Aquí hay una versión aproximada del resultado final, basada en su MWE.

esquemas

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amssymb}
\usepackage{schemata}
\begin{document}
\Schema{4.5ex}{19ex}{%
}{%
  \Schema{-16.75ex}{9.25ex}{%
    \schemabox{Doctrina de\\los elementos}
  }{%
    \schemabox{%
      Estética\\trascendental
    }%
    \Schema{-8ex}{9ex}{%
      \schemabox{Lógica\\trascendental}
    }{%
      \schema{%
        \schemabox{Analítica\\ trascendental}
      }{%
        \schemabox{%
          Analítica de\\los conceptos
        }\smallskip
        \schemabox{%
          Analítica de\\los principios
        }
      }\smallskip
      \Schema{-5.5ex}{7.5ex}{% change this \schema to \Schema first
        \schemabox{%
          Dialéctica\\
          trascendental
        }%
      }{%
        \schemabox{%
          Conceptos de\\
          la razón pura
        }\smallskip
        \schema{%
          \schemabox{%
            Inferencias\\
            dialécticas de\\
            la razón pura\\
          }%
        }{%
          \schemabox{%
            \schemabox{%
              Paralogismos\\
              de la razón\\
              pura
            }\smallskip\\
            \schemabox{%
              Antinomia\\
              de la razón\\
              Ideal de la\\
              razón pura
            }%
          }%
        }
      }%
    }%
  }\smallskip
  \schema{%
    \schemabox{Doctrina\\del método}
  }{%
    \schemabox{%
      Disciplina\\
      Canon\\
      Arquitectónica\\
      Historia de la razón pura
    }
  }
}
\end{document}

Respuesta3

No puedo ofrecer una solución flexible, sino dos diferentes. El primero crea algo similar a su MWE original, pero con mejor espaciado. Coloqué todo en minipáginas para que se mantuviera uniforme, es posible que desees cambiar eso:

\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}
\usepackage{amsmath}
\begin{document}

\tiny
\hyphenpenalty10000%

\[
    \left\{
        \begin{aligned}
            &\begin{minipage}{1.5cm}\raggedright{Doctrina de\\ los elementos}\end{minipage}
            \left\{
                \begin{aligned}
                    &\begin{minipage}{1.5cm}\raggedright{Estética\\ trascendental}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Lógica\\ trascendental}\end{minipage}
                    \left\{
                        \begin{aligned}
                            &\begin{minipage}{1.5cm}\raggedright{Analítica\\ trascendental}\end{minipage}
                            \left\{
                                \begin{aligned}
                                    &\begin{minipage}{1.5cm}\raggedright{Analítica de\\ los conceptos}\end{minipage}
                                \\
                                    &\begin{minipage}{1.5cm}\raggedright{Analítica de\\ los principos}\end{minipage}
                                \end{aligned}
                            \right.
                        \\
                            &\begin{minipage}{1.5cm}\raggedright{Dialéctica\\ trascendental}\end{minipage}
                            \left\{
                                \begin{aligned}
                                    &\begin{minipage}{1.5cm}\raggedright{Conceptos de\\ la razón pura}\end{minipage}
                                \\
                                    &\begin{minipage}{1.5cm}\raggedright{Inferencias\\ dialécticas de\\ la razón pura}\end{minipage}
                                    \left\{
                                        \begin{aligned}
                                            &\begin{minipage}{1.5cm}\raggedright{Paralogismos\\ de la razón\\ pura}\end{minipage}
                                        \\
                                            &\begin{minipage}{1.5cm}\raggedright{Antinomia de la razón}\end{minipage}
                                        \\
                                            &\begin{minipage}{1.5cm}\raggedright{Ideal de la razón pura}\end{minipage}
                                        \end{aligned}
                                    \right.
                                \end{aligned}
                            \right.
                        \end{aligned}
                    \right.
                \end{aligned}
            \right.
        \\
            &\begin{minipage}{1.5cm}\raggedright{Doctrina\\ del método}\end{minipage}
            \smash[b]{\left\{
                \begin{aligned}
                    &\begin{minipage}{1.5cm}\raggedright{Disciplina}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Canon}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Arquitectónica}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Historia de la\\ razón pura}\end{minipage}
                \end{aligned}
            \right.}
        \end{aligned}
    \right.
\]

brackets completos

El segundo es más de mi gusto personal, pero tiene sus propios problemas. Funciona para este ejemplo, pero surgirán problemas cuando las ramas opuestas se superpongan, por lo que esto no es algo generalizable:

\[
    \left\{
        \begin{aligned}
            &\begin{minipage}{1.5cm}\raggedright{Doctrina de\\ los elementos}\end{minipage}
            \smash[t]{\left\{
                \begin{aligned}
                    &\begin{minipage}{1.5cm}\raggedright{Estética\\ trascendental}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Lógica\\ trascendental}\end{minipage}
                    \smash[b]{\left\{
                        \begin{aligned}
                            &\begin{minipage}{1.5cm}\raggedright{Analítica\\ trascendental}\end{minipage}
                            \smash[t]{\left\{
                                \begin{aligned}
                                    &\begin{minipage}{1.5cm}\raggedright{Analítica de\\ los conceptos}\end{minipage}
                                \\
                                    &\begin{minipage}{1.5cm}\raggedright{Analítica de\\ los principos}\end{minipage}
                                \end{aligned}
                            \right.}
                        \\
                            &\begin{minipage}{1.5cm}\raggedright{Dialéctica\\ trascendental}\end{minipage}
                            \smash[b]{\left\{
                                \begin{aligned}
                                    &\begin{minipage}{1.5cm}\raggedright{Conceptos de\\ la razón pura}\end{minipage}
                                \\
                                    &\begin{minipage}{1.5cm}\raggedright{Inferencias\\ dialécticas de\\ la razón pura}\end{minipage}
                                    \smash[b]{\left\{
                                        \begin{aligned}
                                            &\begin{minipage}{1.5cm}\raggedright{Paralogismos\\ de la razón\\ pura}\end{minipage}
                                        \\
                                            &\begin{minipage}{1.5cm}\raggedright{Antinomia de la razón}\end{minipage}
                                        \\
                                            &\begin{minipage}{1.5cm}\raggedright{Ideal de la razón pura}\end{minipage}
                                        \end{aligned}
                                    \right.}
                                \end{aligned}
                            \right.}
                        \end{aligned}
                    \right.}
                \end{aligned}
            \right.}
        \\
            &\begin{minipage}{1.5cm}\raggedright{Doctrina\\ del método}\end{minipage}
            \smash[b]{\left\{
                \begin{aligned}
                    &\begin{minipage}{1.5cm}\raggedright{Disciplina}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Canon}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Arquitectónica}\end{minipage}
                \\
                    &\begin{minipage}{1.5cm}\raggedright{Historia de la\\ razón pura}\end{minipage}
                \end{aligned}
            \right.}
        \end{aligned}
    \right.
\]

\end{document}

brackets más pequeños

Respuesta4

Usando TikZ, esta sería otra opción (siguiendoesta respuesta):

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{positioning,decorations.pathreplacing}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[spanish]{babel}

\begin{document}

\begin{tikzpicture}
\hyphenpenalty10000

\node (main) {};
\begin{scope}[node distance=1em, text width=4em, align=left]
    \node [right=of main, yshift=6em]   (a1) {Doctrina de los elementos};
    \node [right=of main, yshift=-6em]   (a2) {Doctrina del método};
\end{scope}
 \draw[decorate,decoration={brace, mirror}] (a1.north west) -- (a2.south west);

\begin{scope}[node distance=1em, text width=6em, align=left]
    \node [right=of a1, yshift= 2em] (b1) {Estética trascendental};
    \node [right=of a1, yshift= -2em] (b2) {Lógica trascendental};
\end{scope}
\draw[decorate,decoration={brace,mirror}] (b1.north west) -- (b2.south west);

\begin{scope}[node distance=1em, text width=2cm, align=left]
    \node [right=of b2, yshift= 6em] (c1) {Analítica trascendental};
    \node [right=of b2, yshift= -6em] (c2) {Dialéctica trascendental};
\end{scope}
\draw[decorate,decoration={brace,mirror}] (c1.north west) -- (c2.south west);

\begin{scope}[node distance=1em, text width=2cm, align=left]
    \node [right=of c1, yshift= 3em] (d1) {Analítica de los conceptos};
    \node [right=of c1, yshift= -3em] (d2) {Analítica de los principios};
\end{scope}
\draw[decorate,decoration={brace,mirror}] (d1.north west) -- (d2.south west);

\begin{scope}[node distance=1em, text width=5em, align=left]
    \node [right=of c2, yshift= 3em] (d3) {Conceptos de la razón pura};
    \node [right=of c2, yshift= -3em] (d4) {Inferencias dialécticas de la razón pura};
\end{scope}
\draw[decorate,decoration={brace,mirror}] (d3.north west) -- (d4.south west);

\begin{scope}[node distance=1em, text width=2cm, align=left]
    \node [right=of d4, yshift= 4em] (e1) {Paralogismos de la razón pura};
    \node [right=of d4] (e2) {Antinomia de la razón};
    \node [right=of d4, yshift= -4em] (e3) {Ideal de la razón pura};
\end{scope}
\draw[decorate,decoration={brace,mirror}] (e1.north west) -- (e3.south west);

\begin{scope}[node distance=1em, text width=2cm, align=left]
    \node [right=of a2, yshift= 4em] (b3) {Disciplina};
    \node [right=of a2, yshift= 2em] (b4) {Canon};
    \node [right=of a2, yshift= 0em] (b5) {Arquitectónica};
    \node [right=of a2, yshift= -3em] (b6) {Historia de la razón pura};
\end{scope}
\draw[decorate,decoration={brace,mirror}] (b3.north west) -- (b6.south west);

\end{tikzpicture}

\end{document}

El resultado es: ingrese la descripción de la imagen aquí

información relacionada