このツリーを設定するより良い方法はありますか?

このツリーを設定するより良い方法はありますか?

環境の助けを借りてツリーを作成しましたcases。MWE は次のようになります。

\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}

結果は次のようになります: ここに画像の説明を入力してください しかし、結果にはあまり満足していません。たとえば、最後から 2 番目の「列」では、最初の中括弧が 2 番目の中括弧に近すぎます。\\[2pt]間隔を強制的に調整するコードにも注意してください。

このツリーを設定するより良い方法があるのだろうか。(TikZ をいくつか試してみましたが、効果はありませんでした。)

答え1

私のコメントで示唆したように、ここでの私の回答の使用は、複数の括弧または丸括弧内にテキストが含まれているは、OP が気付いた圧縮されたグループを排除できます。さらに、アイテム マーカーと可変列幅の定義が可能になるため、手動での改行は不要です (ただし、ここではすべての列が 0.6 インチに固定されています)。

回答を 2 つの方法で改善するために編集しました。

  1. スケールされたブレースの幅の問題を修正するためにをロードしましたamsmath。 を使用した場合でもamsmath、 の幅が関連要素の高さによって変化し、位置ずれが発生するという問題が発生したため、再編集しました。 によって使用される を\left\{導入し、ファントム の高さを設定しました。うまくいけば、その値でそのままにしておくことができます。\def\fudgeheight{3}\skipcol\left\{

  2. 適切な間隔を確保するには、任意の列のアイテム マークは同じである必要があるため、各アイテムの指定を要求するのではなく、一度に列全体に対してアイテム マークを定義できるようにしまし\BLた。デフォルトは、オプションの引数を使用して上書きできます。

こちらが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}

ここに画像の説明を入力してください

OPはアイテムマーカーなしの回答を好みます。これは設定することで簡単に実現できます。

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

序文で、マーカーによって視覚的な手がかりが得られない場合、項目間に垂直方向の区切りを追加したい場合があります。これは、以下の MWE に示すように、項目間に 1 つまたは 2 つの\crs を追加することで実現できます。\BL

\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}

ここに画像の説明を入力してください

答え2

Schemata は、基本的にはスキーマを描画するために設計されたパッケージです。このタイプの図の描画と調整を容易にするための一連のマクロを定義します。

最も簡単な方法は、マニュアルに従うことです。まず、と のみを使用して基本的なスキーマを作成します\schema\schemabox次に、必要に応じて右から左に調整し、\smallskip右側の葉の間に または を追加します。次に、必要に応じて\schemaに変更します\Schema。調整をやり直す必要がないように、常に右から左に作業します。このプロセスは、ここで説明するよりもはるかにわかりやすくマニュアルで説明されています。

これは、MWE に基づいた、完成した結果の大まかな最初のパス バージョンです。

スキーマ

\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}

答え3

柔軟な解決策は提供できませんが、2 つの異なる解決策を提案できます。最初の解決策では、元の MWE に似たものを作成しますが、間隔が広くなっています。統一性を保つためにすべてをミニページに配置しましたが、変更したい場合があります。

\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.
\]

フルブレース

2 つ目の方法は、私の個人的な好みにより近いのですが、独自の問題があります。この例ではうまく機能しますが、反対のブランチが重なると問題が発生するため、一般化できるものではありません。

\[
    \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}

小さい矯正器具

答え4

を使用するとTikZ、これは別のオプションになります(この答え):

\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}

結果は次のとおりです。 ここに画像の説明を入力してください

関連情報