Как создать динамический лист ответов с пузырьками для экзамена с множественным выбором

Как создать динамический лист ответов с пузырьками для экзамена с множественным выбором

Я хочу создать лист ответов с пузырьками, где количество вопросов отображается с помощью \qCount. Оно всегда меньше 100. Возможно ли создать его динамически? Я не могу напечатать номера вопросов перед каждой строкой и не могу показать пузырьки внутри ячеек.

желаемый результат:Образец

МВЭ:

\documentclass[a4paper]{article}

\usepackage{tikz}

\newcommand{\repeatntimes}[2]{
   \newcount\i
   \i=0
   \newtoks\ans
   \loop
      \ans=\expandafter{\the\ans #2}
      \advance\i by 1
      \ifnum\i<#1\repeat
   \the\ans
}

\newcommand{\countRepeatntimes}[2]{
   \newcount\i
   \i=0
   \newtoks\ans
   \loop
      \advance\i by 1
      \ans=\expandafter{\the\ans #2}
      \ifnum\i<#1\repeat
   \the\ans
}

\newcommand{\generateTable}[1]{%
\countRepeatntimes{#1}{\indent
\repeatntimes{4}{\textcolor{lightgray}{\rule{0.9\baselineskip}{0.9\baselineskip}} }\par
}
}

\begin{document}
\def\qCount{80}
\generateTable{\qCount}
\end{document}

решение1

Я распечатал ступенчатый счетчик в цикле для номера задачи (и еще один счетчик для метки пузыря) и изменил квадрат \ruleна повернутый "0", масштабированный и растянутый соответствующим образом. Вы можете изменить размер с помощью числовых аргументов \scalebox{1.4}[1.5]{}. Я также сделал его двухколоночным.

ОТРЕДАКТИРОВАНО для предоставления образца заполненного блока.

\documentclass[a4paper,twocolumn]{article}

\usepackage{tikz,graphicx}
\usepackage[usestackEOL]{stackengine}

\newcommand{\repeatntimes}[2]{
   \newcount\i
   \i=0
   \newtoks\ans
   \loop
      \ans=\expandafter{\the\ans #2}
      \advance\i by 1
      \ifnum\i<#1\repeat
   \the\ans
}

\newcommand{\countRepeatntimes}[2]{
   \newcount\i
   \i=0
   \newtoks\ans
   \loop
      \advance\i by 1
      \ans=\expandafter{\the\ans #2}
      \ifnum\i<#1\repeat
   \the\ans
}

\newcounter{problem}
\newcounter{choice}
\newcommand{\generateTable}[1]{%
\countRepeatntimes{#1}{\stepcounter{problem}\makebox[2ex][r]{\theproblem.}%\indent
\setcounter{choice}{0}%
\repeatntimes{4}{\stepcounter{choice}\textcolor{black!35}{%
  \raisebox{-1.5pt}{\scalebox{1.5}[1.8]{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\tiny \Alph{choice}}}{\rotatebox{90}{0}}}}} }\par
}
}

\def\sampleblock{%
  \makebox[5.1ex]{}
  \stepcounter{choice}\textcolor{black!35}{%
   \raisebox{-1.5pt}{\scalebox{1.5}[1.8]{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\tiny \Alph{choice}}}{\rotatebox{90}{0}}}}}
  \stepcounter{choice}\textcolor{black!35}{%
   \raisebox{-1.5pt}{\scalebox{1.5}[1.8]{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\tiny \Alph{choice}}}{\rotatebox{90}{0}}}}}
  \stepcounter{choice}\textcolor{black!35}{%
   \smash{\raisebox{-1.5pt}{\scalebox{1.5}[1.8]{\stackinset{c}{}{c}{-1pt}{%
    \scalebox{6}[3.5]{\color{black}$\cdot$}}{\rotatebox{90}{0}}}}}}
  \stepcounter{choice}\textcolor{black!35}{%
   \raisebox{-1.5pt}{\scalebox{1.5}[1.8]{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\tiny \Alph{choice}}}{\rotatebox{90}{0}}}}}
\par}
\voffset=\dimexpr\voffset+.5in
\textheight=\dimexpr\textheight-.5in

\begin{document}

\smash{\Shortstack[l]{%
  Name \underline{\hspace{2.4in}} Class\underline{\hspace{1.2in}}
    Date\underline{\hspace{1.2in}}\\
  \textcolor{black!50}{\rule{5.9in}{2ex}}\\
  \rule[2ex]{10ex}{2ex}\sffamily\itshape\Huge Bubble Answer Sheet\\
  \strut\\
  \sampleblock\\
  \rule{0ex}{4pt}\\}%
}\vspace{-\baselineskip}\par
\def\qCount{80}
\generateTable{\qCount}
\end{document}

введите описание изображения здесь

введите описание изображения здесь


ДОБАВКА

В комментарии запрашивалась версия с круговыми вариантами выбора:

\documentclass[a4paper,twocolumn]{article}

\usepackage{tikz,graphicx}
\usepackage[usestackEOL]{stackengine}

\newcommand{\repeatntimes}[2]{
   \newcount\i
   \i=0
   \newtoks\ans
   \loop
      \ans=\expandafter{\the\ans #2}
      \advance\i by 1
      \ifnum\i<#1\repeat
   \the\ans
}

\newcommand{\countRepeatntimes}[2]{
   \newcount\i
   \i=0
   \newtoks\ans
   \loop
      \advance\i by 1
      \ans=\expandafter{\the\ans #2}
      \ifnum\i<#1\repeat
   \the\ans
}

\newcounter{problem}
\newcounter{choice}
\newcommand{\generateTable}[1]{%
\countRepeatntimes{#1}{\stepcounter{problem}\makebox[2ex][r]{\theproblem.}%\indent
\setcounter{choice}{0}%
\repeatntimes{4}{\stepcounter{choice}\textcolor{black!35}{%
  \raisebox{0.5pt}{\scalebox{1.0}{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\footnotesize \Alph{choice}}}{$\bigcirc$}}}} }\par
}
}

\def\sampleblock{%
  \makebox[5.1ex]{}
  \stepcounter{choice}\textcolor{black!35}{%
   \raisebox{-1.5pt}{\scalebox{1.0}{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\footnotesize \Alph{choice}}}{$\bigcirc$}}}}
  \stepcounter{choice}\textcolor{black!35}{%
   \raisebox{-1.5pt}{\scalebox{1.0}{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\footnotesize \Alph{choice}}}{$\bigcirc$}}}}
  \stepcounter{choice}\textcolor{black!35}{%
   \smash{\raisebox{-1.5pt}{\scalebox{1.0}{\stackinset{c}{}{c}{-2.5pt}{%
    \scalebox{8}{\color{black}$\cdot$}}{$\bigcirc$}}}}}
  \stepcounter{choice}\textcolor{black!35}{%
   \raisebox{-1.5pt}{\scalebox{1.0}{\stackinset{c}{}{c}{}{%
    \scalebox{.6}{\footnotesize \Alph{choice}}}{$\bigcirc$}}}}
\par}
\voffset=\dimexpr\voffset+.5in
\textheight=\dimexpr\textheight-.5in

\begin{document}

\smash{\Shortstack[l]{%
  Name \underline{\hspace{2.4in}} Class\underline{\hspace{1.2in}}
    Date\underline{\hspace{1.2in}}\\
  \textcolor{black!50}{\rule{5.9in}{2ex}}\\
  \rule[2ex]{10ex}{2ex}\sffamily\itshape\Huge Bubble Answer Sheet\\
  \strut\\
  \sampleblock\\
  \rule{0ex}{4pt}\\}%
}\vspace{-\baselineskip}\par
\def\qCount{80}
\generateTable{\qCount}
\end{document}

введите описание изображения здесь

Связанный контент