通过多个表格列表编号

通过多个表格列表编号

我想要创建一个类似于下图的数学练习册。我已包含一些我尝试运行的代码 - 标记为 MWE。

我的问题是我想继续一个我已经开始的列表 - 一个名为的列表:ptestlist。我遇到的问题是,我试图使用tabularx来形成 A 列和 B 列,以及答案选项。我计划在resume=ptest每个后续表格中恢复列表。编号必须是自动的,这样问题编号的任何增加或减少都会重新计算。

我原本的想法是简单地将我的输入ptestlist到一个multirow单元格中并像往常一样继续表格,但我收到了一个错误。

在此处输入图片描述

MWE:(或者至少是我的尝试)

\documentclass[letterpaper,twoside,openright]{memoir}
\usepackage{enumitem}
    \newlist{ptestlist}{enumerate}{2}
    \setlist[ptestlist]{label={\arabic*.},itemsep=5mm,labelsep=3mm,topsep=1cm}

\usepackage{multirow}
\usepackage{multicol}
\usepackage{tabularx}
    \newcolumntype{Y}{>{\centering\arraybackslash}X}

\begin{document}

\begin{center}
{\LARGE Part Two --- Quantitative Reasoning}
\end{center}

\textbf{Directions:} Choose the best answer from the four choices given.

\hrulefill
%-----------        Questions           --------------% 
\begin{multicols}{2}

\begin{tabularx}{\columnwidth}{YXX}

\multirow{2}{c}{
\begin{ptestlist}[series=ptest] 
    \item ?
\end{ptestlist} }
&
\underline{Column A}
& 
\underline{Column B} 
\\
&
$ 5 + 2 \times ( 4 + 3 )$
&
$19$
\\
\end{tabularx}
\end{multicols}
\end{document}

[更新]

好的。所以我认为我已经回答了自己的问题,但又遇到了另一个问题。不过,这可能需要一个新的问题帖子 - 我在这里问过:从表格底部锚定表格(Tabularx)

首先,我发现的解决方案相当简单。我只是没有这样想过。见下文。但我的新问题是将问题编号与“A 列”和“B 列”下的答案选项对齐(如上图所示)。问题编号专门与答案选项对齐,而不是与我的 MWE 中的形状对齐。

MWE(解决方案):

\documentclass[letterpaper,twoside,openright]{memoir}
\usepackage[bmargin=1in]{geometry}
\setlength{\parindent}{0pt}

\usepackage{enumitem}
    \newlist{ptestlist}{enumerate}{2}
    \setlist[ptestlist]{label={\arabic*.},itemsep=5mm,labelsep=3mm,topsep=1cm}

\usepackage{multirow}
\usepackage{multicol}
\usepackage{tabularx}
    \newcolumntype{Y}{>{\centering\arraybackslash}X}

\usepackage{tikz}

\begin{document}

\begin{center}
{\LARGE Part One --- Word Problems}
\end{center}

\textbf{Directions:} Choose the best answer from the four choices given.

\hrulefill
%-----------        Questions           --------------% 
\setlength{\columnsep}{50pt}
\begin{multicols}{2}
\begin{ptestlist}[series=ptest,labelsep=0pt]
\item \begin{tabularx}{3in}{YY}
      \underline{Column A}
      &
      \underline{Column B}
      \\
      $6 + 4 - 5 \times 6$
      &
      34
      \\
      \end{tabularx}

\item \begin{tabularx}{3in}{YY}
      \multicolumn{2}{c}
      {
      \begin{tikzpicture}
      \draw (-1.85,0) node [rectangle,draw,minimum size=1in,
                            label=below:$2x$,label=right:$x$] (rsquare) {};
      \draw (1.75,0) node [rectangle,draw,minimum size=.8in,
                            label=below:$2y$,label=right:$y$] (lsquare) {};
      \end{tikzpicture}
      } \\
      \underline{Column A}
      &
      \underline{Column B}
      \\
      34
      &
      34
      \\
      \end{tabularx}

\item \begin{tabularx}{3in}{YY}
      \underline{Column A}
      &
      \underline{Column B}
      \\
      34
      &
      34
      \\
      \end{tabularx}

\item \begin{tabularx}{3in}{YY}
      \underline{Column A}
      &
      \underline{Column B}
      \\
      34
      &
      34
      \\
      \end{tabularx}
\end{ptestlist}

\end{multicols}
\end{document}

答案1

修改 3:原帖者希望获得一个运行计数器,让其他用户能够输入其他问题,而不会扰乱整个代码框架。这可能吗?

是的,这是可能的。此新解决方案将通过将计数器保存为tmpc然后将其恢复为来自动进行编号ptestlisti,如下所示

\newcounter{tmpc}                  % defined in the preamble

\begin{ptestlist}[series=ptest]
\setcounter{ptestlisti}{\thetmpc}  % -- restore to 
   \item ...
   \item ...
\end{ptestlist} 
\setcounter{tmpc}{\theptestlisti}  % -- save to tmpc

输出如下

在此处输入图片描述

代码

\documentclass[letterpaper,twoside,openright]{memoir}
\usepackage[paper size={25cm,25cm}]{geometry}
\usepackage{enumitem,tikz,lipsum}
\newlist{ptestlist}{enumerate}{2}
\setlist[ptestlist]{label={\arabic*.},itemsep=5mm,labelsep=3mm,
topsep=0cm,parsep=-0.5cm}

\usepackage{multirow}
\usepackage{multicol}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}
\newcolumntype{Y}{>{\raggedright\arraybackslash}m{0.1\columnwidth}}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{1pt}

\newcommand{\extraspace}{
\vspace{10pt}
\rule{0.8\columnwidth}{1pt}
\vspace{10pt}
}

\newcounter{tmpc}

\begin{document}

\begin{center}
{\LARGE Part Two --- Quantitative Reasoning}
\end{center}

\textbf{Directions:} Choose the best answer from the four choices given.

\hrulefill
%-----------        Questions           --------------% 
\begin{multicols}{2}
\begin{center}
\begin{tikzpicture}
\draw[] (0,0) ellipse (2 and 1);
\end{tikzpicture} 
\end{center}

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}[series=ptest]
   \item
\end{ptestlist} 
\setcounter{tmpc}{\theptestlisti}
}
&\underline{Column A}& \underline{Column B} \\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
\end{tabularx} 

\extraspace

\begin{center}
\begin{tikzpicture}
\draw[] (0,0) rectangle (2,2);
\end{tikzpicture} 
\end{center}

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}[series=ptest]
\setcounter{ptestlisti}{\thetmpc}
   \item
   \item
\end{ptestlist} 
\setcounter{tmpc}{\theptestlisti}
}
&\underline{Column A}& \underline{Column B} \\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
\end{tabularx} 

\extraspace

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}[series=ptest]
\setcounter{ptestlisti}{\thetmpc}
   \item
   \item
\end{ptestlist} 
\setcounter{tmpc}{\theptestlisti}
}
&\underline{Column A}& \underline{Column B} \\
& new insert \\
& new insert
\end{tabularx} 

\extraspace

\begin{center}
\begin{tikzpicture}
\draw[] (0,0) grid (2,2);
\end{tikzpicture} 
\end{center}

\vspace{10pt}

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}
\setcounter{ptestlisti}{\thetmpc}
   \item
   \item
   \item
\end{ptestlist} 
\setcounter{tmpc}{\theptestlisti}
}
&\underline{Column A}& \underline{Column B} \\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
\end{tabularx}

\extraspace

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}
\setcounter{ptestlisti}{\thetmpc}
   \item
   \item
\end{ptestlist} 
\setcounter{tmpc}{\theptestlisti}
}
&\underline{Column A}& \underline{Column B} \\
& follow up\\
& follow up\\
\end{tabularx}

\extraspace

\lipsum[1-2]
\end{multicols}
\end{document}

错误是由于c说明符造成的。应该给出长度,因为其内容是环境。

\multirow{2}{c}{contents}

编辑:正如下面 karlkoeller 的评论中提到的,如果在里面添加另一个tabularx带有 resumed 的ptestlist,编号就会出错。但是,再次阅读手册后,可以使用下面的命令解决编号问题,因为会生成与本例中调用的enumitem计数器对应的并行计数器。enumiptestlisti

\setcounter{ptestlisti}{3}   % will continue counting with 4

在此处输入图片描述

修改 2:使解决方案接近 OP 所发布的内容。宏extraspace是在问题/表格环境之间添加水平线和填充空间。

代码

\documentclass[letterpaper,twoside,openright]{memoir}

\usepackage{enumitem,tikz,lipsum}

\newlist{ptestlist}{enumerate}{2}
\setlist[ptestlist]{label={\arabic*.},itemsep=5mm,labelsep=3mm,
topsep=0cm,parsep=-0.5cm}

\usepackage{multirow}
\usepackage{multicol}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{m{#1}}
\newcolumntype{Y}{>{\raggedright\arraybackslash}m{0.1\columnwidth}}
\setlength{\columnsep}{20pt}
\setlength{\columnseprule}{1pt}

\newcommand{\extraspace}{
\vspace{10pt}
\rule{0.8\columnwidth}{1pt}
\vspace{10pt}
}

\begin{document}

\begin{center}
{\LARGE Part Two --- Quantitative Reasoning}
\end{center}

\textbf{Directions:} Choose the best answer from the four choices given.

\hrulefill
%-----------        Questions           --------------% 
\begin{multicols}{2}

\extraspace

\begin{center}
\begin{tikzpicture}
\draw[] (0,0) ellipse (2 and 1);
\end{tikzpicture} 
\end{center}

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}[series=ptest]
   \item
   \item
   \item
\end{ptestlist} 
}
&\underline{Column A}& \underline{Column B} \\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
\end{tabularx} 

\extraspace

\begin{center}
\begin{tikzpicture}
\draw[] (0,0) rectangle (2,2);
\end{tikzpicture} 
\end{center}

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}[series=ptest]
\setcounter{ptestlisti}{3}
   \item
   \item
   \item
\end{ptestlist} 
}
&\underline{Column A}& \underline{Column B} \\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
\end{tabularx} 

\extraspace

\begin{center}
\begin{tikzpicture}
\draw[] (0,0) grid (2,2);
\end{tikzpicture} 
\end{center}

\vspace{10pt}

\begin{tabularx}{\columnwidth}{YXX}
\multirow{2}{1cm}{
\begin{ptestlist}
\setcounter{ptestlisti}{6}
   \item
   \item
   \item
\end{ptestlist} 
}
&\underline{Column A}& \underline{Column B} \\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
& $ 5 + 2 \times ( 4 + 3 )$& $19$\\
\end{tabularx}

\extraspace

\lipsum[1-2]
\end{multicols}
\end{document}

相关内容