سلام
با تشکر از پاسخ فنی دوست خوبم جناب باغبان عزیز
در روشی که من میخواهم بیان کنم سعی کردهام که خود ساختار برگه با همان رنگهای پیشفرض حفظ شود. برای انجام این کار ابتدا دو دستور داخلی زیر را برای انجام این تغییرات به کار گرفتهام:
\def\shfill#1{\gdef\@shfill{#1}}
\def\shcol#1{\gdef\@shcol{#1}}
و سپس ماکروی \myellipse
را به صورت زیر تعریف کردهام:
\newcommand{\myellipse}[1]{
\tikz{\node[draw,fill={\@shfill},inner sep=0pt,ellipse]{\textcolor{\@shcol}{~#1~}}}}
توجه کنید که جهت تغییر رنگ از دستور داخلی در ساختار تیکز بهره گرفتهام.
تعریف ماکروی \makesheet
را از روش جناب باغبان انتخاب کردهام با این تفاوت که دستور شرطی انتهای آن را مطابق تغییرات بالا و به صورت زیر ویرایش کردهام:
...
\shfill{black}\shcol{black}\myellipse{\j}%
\else%
\shfill{red!5!white}\shcol{red}\myellipse{\j}%
...
کد کلی شما به صورت زیر است:
\documentclass{article}
\usepackage[margin=1in]{geometry}
\usepackage{pgffor}
\usepackage[most]{tcolorbox}
\usepackage{tikz}
\usetikzlibrary{shapes}
\usepackage{multicol}
\usepackage[logo=on]{xepersian}
\settextfont{Yas}
\setdigitfont{Yas}
\newcounter{anscount}%
\newcounter{optioncount}
\newcounter{correctcount}
\makeatletter
\def\shfill#1{\gdef\@shfill{#1}}
\def\shcol#1{\gdef\@shcol{#1}}
\newcommand{\myellipse}[1]{
\tikz{\node[draw,fill={\@shfill},inner sep=0pt,ellipse]{\textcolor{\@shcol}{~#1~}}}}
\newcommand{\makesheet}[2][]{
\setcounter{anscount}{0}%
\foreach \k in {#1}{%
\stepcounter{anscount}%
\expandafter\xdef\csname ans\the\value{anscount}\endcsname{\k}%
}%
\begin{tcolorbox}[width=\textwidth]
\begin{multicols}{3}
\begin{center}
\noindent
\foreach \i in {1,...,#2}
{\fbox{\raisebox{3pt}{\makebox[1cm]{\i}}%
\ifcsname ans\i \endcsname%
\setcounter{correctcount}{\csname ans\i \endcsname}%
\else%
\setcounter{correctcount}{0}%
\fi%
\foreach \j in {1,2,3,4} {%
\setcounter{optioncount}{\j}%
\ifnum\value{optioncount}=\value{correctcount}%
\shfill{black}\shcol{black}\myellipse{\j}%
\else%
\shfill{red!5!white}\shcol{red}\myellipse{\j}%
\fi}}\\}
\end{center}
\end{multicols}
\end{tcolorbox}}
\makeatother
\begin{document}
\null\vfill
\pagestyle{empty}
\tcbset{colframe=red!50!black,colback=white}
\begin{tcolorbox}[width=\textwidth,colback=red!5!white,halign=center]
\LARGE{پاسخنامه خام}
\end{tcolorbox}
\makesheet[1,2,2,3,3,3,4,4,4,4,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,4,4,4,4,1,1,3,4,3,4,2,2,1,3,3,3,3,3,3,3,3,3,4,4,4,4,4,1,1,1,1,2,2,1,1]{60}%
\newpage
\begin{tcolorbox}[width=\textwidth,colback=red!5!white,halign=center]
\LARGE{پاسخنامه خام}
\end{tcolorbox}
\makesheet[1,3,2,4,2]{60}
\end{document}
خروجیهای شما در دو حالت تکیل شده و تکمیل نشدهی پاسخنامه و با نسخهی اولیهی تکلایو 2018 مطابق زیر است:
بهتر است این پرسش و پاسخ را در این زمینه ببینید.
موفق باشید.