从之前的一篇文章中可以看出,表格环境:增加标题,我学习了一些在数组中增加计数器的基础知识。但是,我还不太了解如何为以下规定的规则设置计数器,这些规则来自链接的帖子,请填写表格。规则是,如果选择蓝色骰子,则 x 为 0,如果选择红色骰子,则 x 为 1,y 是所选骰子上的点数。选择具有较大值的骰子,平局则为红色。
Werner 在上一篇文章中提供的代码是:
\documentclass{article}
\usepackage{array}
\newcounter{bluecol}\newcounter{redrow}
\newcommand{\insertblue}{%
\relax\ifnum\value{bluecol}>0 blue${}=\number\numexpr7-
\value{bluecol}$\addtocounter{bluecol}{-1}\fi}
\newcommand{\insertred}{%
\stepcounter{redrow}red${}= \theredrow$}
\begin{document}
\setcounter{redrow}{0}
\setcounter{bluecol}{6}
\begin{tabular}{|>{\insertred}c*{6}{|>{\insertblue}c}|}
\hline
\multicolumn{1}{|c|}{} &&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
\hline
\end{tabular}
\end{document}
答案1
以下是更新内容我的答案使用来自用于array
/ 的计数器tabular
单元格的计数器:
\documentclass{article}
\usepackage{array}
\makeatletter
\def\insert@column{%
\the@toks \the \@tempcnta
\global\advance\c@tabcol\@ne
\ignorespaces \@sharp \unskip
\the@toks \the \count@ \relax}
\let\old@arraycr\@arraycr
\def\@arraycr{\global\c@tabcol\z@\global\advance\c@tabrow\@ne\old@arraycr}
\let\old@tabarray\@tabarray
\def\@tabarray{\global\c@tabrow\@ne\global\c@tabcol\z@\old@tabarray}
\makeatother
\newcounter{tabcol}\newcounter{tabrow}
\newcounter{bluecol}\newcounter{redrow}
\newcommand{\insertblue}{%
\relax\ifnum\value{bluecol}>0 blue${}= \number\numexpr7-\value{bluecol}$\addtocounter{bluecol}{-1}%
\else
\ifnum\value{tabrow}>\value{tabcol}%
$(1,\number\numexpr\value{tabrow}-1)$%
\else
$(0,\number\numexpr\value{tabcol})$%
\fi%
\fi}
\newcommand{\insertred}{%
\stepcounter{redrow}red = $\theredrow$}
\begin{document}
\setcounter{redrow}{0}
\setcounter{bluecol}{6}
\begin{tabular}{|>{\insertred}c*{6}{|>{\insertblue}c}|}
\hline
\multicolumn{1}{|c|}{} &&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
&&&&&& \\
\hline
\end{tabular}
\end{document}
tabrow
并tabcol
跟踪表格的行和列(均从 1 开始)。在表格的内部,\insertblue
判断红色 < 蓝色是否相等,并相应地设置元素。
\insertblue
插入blue
页眉仅有的在标题内。