0

I am trying to create two new macros:

  • braces: compiles some text between curly brackets
  • squakets: compiles text between two square brackets

I defined as follows.

\documentclass{article}

\newcommand{\braces}[2]{$\left\{\begin{tabular}{@{}c@{}}
    #1\\
    #2\\
    \end{tabular}\right\}$}    


\newcommand{\squakets}[1]{$\Big[ #1 \Big]$}

\begin{document}

\squakets{\squakets{\braces{$\sqrt{}$}{$\alpha$} \braces{$x$}{$\beta$}} \braces{$y$}{$\gamma$}} $\rightarrow$ \braces{$\sqrt{}$}{$\alpha$} -- \braces{$x$}{$\beta$} -- \braces{$y$}{$\gamma$}

\end{document}

Console still compiles, even though it warns me that:

Missing $ inserted.

I was curious of understanding how to fix this. I guess it is something related to the fact I am embedding multiple squakets command in one another, but can someone help figure that out?

RobertP.
  • 741

2 Answers2

1
\documentclass{article}

\usepackage{mleftright}

\newcommand*\braces[2]{\mleft\{{\begingroup#1\endgroup\atop#2}\mright\}}
\newcommand*\squakets[1]{\Bigl[#1\Bigr]}

\begin{document}

\[
  \squakets{\squakets{\braces{\sqrt{}}{\alpha} \braces{x}{\beta}} \braces{y}{\gamma}}
  \to
  \braces{\sqrt{}}{\alpha} - \braces{x}{\beta} - \braces{y}{\gamma}
\]

\end{document}
Manuel
  • 27,118
  • Thank you, @Manuel! However, your solution compiles something a bit different from what I had in mind. – RobertP. Jan 28 '18 at 03:05
0

Thank you for all of your help!

This is the solution I came up with:

\newcommand*{\braces}[2]{\ensuremath{\left\{\begin{tabular}{@{}c@{}}
        #1\\
        #2\\
        \end{tabular}\right\}}} 

As suggested in the comments above, \ensuremath{} instead of $...$ solves the issue.

RobertP.
  • 741