具有多列标题的自定义环境

具有多列标题的自定义环境

我试图创建一个环境,围绕环境内容创建一个表格框架。

例如:

\begin{tabular}{|l|l|}
  \hline
  \multicolumn{2}{|c|}{Team sheet} \\
  \hline 
\end{tabular}

应该成为

\begin{example}Team sheet\end{example}

\newenvironment{example}{
  \begin{tabular}{|l|l|}
  \hline
  \multicolumn{2}{|c|}{
 }{
   } \\\hline \end{tabular}
 }

但是由于明显的括号配对问题,“拆分” \multicol 的括号并不像我想要的那样直接。那么我该如何解决这个问题呢?是否有可用于该命令的环境可以允许这种“拆分”?

答案1

实现此目的的最简单方法是将标题作为参数传递:

\newenvironment{example}[1]
  {\begin{tabular}{|l|l|}
   \hline
   \multicolumn{2}{|c|}{#1} \\
  }
  {\\\hline \end{tabular}}

并称之为

\begin{example}{Team sheet}
... the data ...
\end{example}

这也更好地体现了物体的作用。

可以使用包添加框架mdframed

答案2

您可以将内容保存在保存框中并在多列中使用它:

\documentclass{article}
\usepackage{array}
\newenvironment{example}{%
  \setbox0=\hbox\bgroup
 }{
  \egroup%
  \begin{tabular}{|l|l|}
  \hline
  \multicolumn{2}{|c|}{\box0}\\\hline
  \end{tabular}
 }

\begin{document}

\begin{example}
Team sheet
\end{example}

\end{document}

但是您也可以使用命令\fbox

相关内容