为公式环境内部创建框框架

为公式环境内部创建框框架

对于公式环境中要使用的内容列表,我想创建堆叠在一起的框。我基本上想写

$$ A := "Box with lines like 'A is a number', 'A is bigger than 3',... " $$

我想到的是

\newcommand{\mybox}[2]{\stackrel{\fbox{$#1$}}{\fbox{$#2$}}} 

但就我真正想要的而言,这简直糟透了。它只有两个盒子,而且它们甚至不接触。它们的长度取决于内容。它应该看起来更像一个架子。所有盒子的长度都应该合适(高度可能取决于内容)。此外,盒子的方向应该使得 := 位于垂直中心。但如果我想将我的构造用于两个以上的盒子,我必须做一些愚蠢的事情,例如

\mybox{statement 1}{\mybox{and statement 2}{statement 3}}

在此处输入图片描述

答案1

那么简单的表格怎么样?

\documentclass{article}
\usepackage{colonequals}

\begin{document}

\begin{equation}
  A \colonequals
  \begin{tabular}{|c|}
    \hline
    statement 1\\\hline
    and statement 2\\\hline
    statement 3\\\hline
  \end{tabular}
\end{equation}

\end{document}

结果:

通过表格框

编辑:制作一个 n 元函数:

\documentclass{article}
\usepackage{colonequals}

\usepackage{kvsetkeys}

\makeatletter
\newcommand*{\boxes}[1]{%
  \begingroup
    \toks@={%
      \begin{tabular}{|c|}%
      \hline
    }%
    \comma@parse{#1}\box@entry
    \the\toks@
    \end{tabular}%
  \endgroup
}
\newcommand*{\box@entry}[1]{%
  \toks@=\expandafter{\the\toks@
    #1\tabularnewline
    \hline
  }%
}
\makeatother

\begin{document}

\begin{equation}
  A \colonequals
  \boxes{
    statement 1,
    and statement 2,
    {statement 3, 4 and 5},% comma needs to be protected by braces
    another statement,
  }
\end{equation}

\end{document}

结果:

具有 n 元函数的框

表格内容首先写入令牌寄存器。这避免了单元格组和末尾空行的问题。

编辑:进一步阅读:

相关内容