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.

  • 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[<lbrace>][<rbrace>][<lwidth>]{<ltext>}[<rwidth>]{<rtext>} \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
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

  • even by using this i cant write a large text inside – Poli Tolstov Mar 28 '16 at 14:31
  • @PoliTolstov by "large" do you mean big letters or long strings of text? – Steven B. Segletes Mar 28 '16 at 14:37
  • wait...i think got it by changing some variables in the command – Poli Tolstov Mar 28 '16 at 14:38
  • long text, steven – Poli Tolstov Mar 28 '16 at 14:39
  • @PoliTolstov Does increasing the value of \def\levelwidth{0.7in} help, which is the column width? – Steven B. Segletes Mar 28 '16 at 14:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.