我有这个宏\code
,它可以生成一个框。我想创建一个表格“环境”,其作用类似于enumerate
将项目放入网格中。
\documentclass{article}
\usepackage{tabularx}
\usepackage{multirow}
\def\code#1{\hbox{\vtop{\tt\def\\{\egroup\hbox\bgroup}\hbox\bgroup#1\egroup}}}
\def\twocolenum#1{{
\newcounter{cnt}
\setcounter{cnt}{0}
\newbox{\cell}
\newcolumntype{I}{>{\bgroup\setbox\cell=\hbox\bgroup}l<{\egroup\ifdim\wd\cell=0pt\else\stepcounter{cnt}\hskip1em\llap{(\alph{cnt})}\hskip1ex\usebox{\cell}\the\ht\cell\fi\egroup}}
\begin{tabular}{II}
#1
\end{tabular}
}}
\begin{document}
\twocolenum{
\multirow{2}{*}{\code{x = 0; \\ while (x >= 0) \{ \\ \ \ \ \ x++; \\ \}}} & bIt \\
& cIt \\
dIt & eIt \\
}
\end{document}
我期望的是 的网格(a) (b) \\ (c) \\ (d) (e)
。这可行,但由于某种原因,包含 的单元格\code
似乎具有高度0pt
,因此代码与空单元格和d
单元格重叠。我知道我所做的一切都是黑客行为,但我能以某种方式修复行为以避免重叠吗?