2

enter image description hereI need to write multiple brackets but not in mathematical mode; i need to write some texts inside, like the picture. I am trying everything but it seems impossible. I tried using package schemata, tkiz, showframe. I think i am probably not using in the right way.

Ethan Bolker
  • 9,333
  • 3
  • 42
  • 69
  • how did you use it? – naphaneal Mar 28 '16 at 12:46
  • \newsavebox{\leftbox} \newsavebox{\rightbox}% \NewDocumentCommand{\lrboxbrace}{s O{{} O{}} O{0.1\linewidth} m O{0.8\linewidth} m}{% %\lrboxbrace[][][]{}[]{} \begin{lrbox}{\leftbox}% Left box \IfBooleanTF{#1}% starred/unstarred {\begin{varwidth}{#4}#5\end{varwidth}} {\begin{minipage}{#4}#5\end{minipage}} \end{lrbox} \begin{lrbox}{\rightbox}% Right box \IfBooleanTF{#1}% starred/unstarred {\begin{varwidth}{#6}#7\end{varwidth}} {\begin{minipage}{#6}#7\end{minipage}} \end{lrbox} \ensuremath{\usebox\leftbox\left#2,\usebox\rightbox,\right#3}} – Poli Tolstov Mar 28 '16 at 13:47
  • I insert this comand by using the \usepackage{showframe} \usepackage{tikz,lipsum} – Poli Tolstov Mar 28 '16 at 13:48
  • the problem with the package schemata is that when i try to insert an bracket inside another it becomes tiny and is impossible to write a text inside – Poli Tolstov Mar 28 '16 at 13:50

1 Answers1

8

Perhaps this way might work, using a nesting of \BL[<bullet>]{entry} and , for bracing, \level{<row 1> \cr <row 2> ...}. Column width is defined by \levelwidth.

\documentclass{article}
\def\levelwidth{0.7in}
\newcommand\BL[2][$\bullet$]{#1\,\parbox[t]{\levelwidth}{\raggedright#2}}
\def\level#1{\unskip $\left\{\vcenter{\hbox{\shortstack{#1}}}\right.$\ignorespaces}
\begin{document}
\BL[]{Text here blah blah}
  \level{
    \BL{text text here here something} 
      \level{
        \BL{number}\cr
        \BL{other word}\cr
        \strut
      }
  \cr 
    \BL{another text here}
      \level{
        \BL{something}\cr
        \strut\cr
        \strut
      }
  }
\end{document}

enter image description here


FOLLOW UP

[NOTE: an even better version of this is presented at Is there a better way of setting this tree?

Here, I address two extensions: 1) if some rows employ different numbers of columns, and 2) if columns need to be different widths (my latest EDIT).

If there are to be some entries with different numbers of columns, I introduce \skipcol[<bullet>]{<column number>}, which should be employed (perhaps successively) after a \BL{} of the last filled column. The column number must be specified as an argument, since different columns can now have different widths. The [<bullet>] optional argument may be needed, since different bullets have different widths, as well.

The column widths must be pre-specified in the definitions: \levelwidth (left most column width), \levelwidthi (width after left-most brace), \levelwidthii (width after 2nd brace), \levelwidthiii, etc. in the way of roman numerals.

\documentclass{article}
\newcounter{levelcount}
\def\levelwidth{0.7in}
\def\levelwidthi{1.7in}
\def\levelwidthii{.9in}
\def\levelwidthiii{.3in}
\newcommand\BL[2][$\bullet$]{#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][$\bullet$]{\unskip\mbox{} %
  \hphantom{$\left\{\hbox{#1\,\parbox[t]{%
  \csname levelwidth\romannumeral#2\endcsname}{\mbox{}}}\right.$}%
  \ignorespaces}
\begin{document}
\BL[]{Text here blah blah}
  \level{
    \BL{text text here here something} 
      \level{
        \BL[$\spadesuit$]{number} \skipcol{3}\cr
        \BL[$\spadesuit$]{other word}
          \level{
             \BL{A}\cr
             \BL{B}
          }
        \cr
        \strut
      }
  \cr 
    \BL{another text here}
      \level{
        \BL[$\spadesuit$]{something}\cr
        \strut\cr
        \strut
      }\skipcol{3}
  \cr
    \BL{here is a 1-column entry, must use \textbackslash skipcol}
      \skipcol[$\spadesuit$]{2}\skipcol{3}
  }
\end{document}

enter image description here