将 \newcounter 中的值与 \newcount 中的值进行比较

将 \newcounter 中的值与 \newcount 中的值进行比较

我搜索过该主题,但没有找到任何内容,所以我希望这不是重复的。

我有以下代码:

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}

\begin{document}

\newcount\testA
\testA=1

\newcounter{testB}
\setcounter{testB}{1}

\ifnum\testA=\testB
TRUE
\else
FALSE
\fi

这不起作用。它会收到一条错误消息。我还尝试了:

\newcount\testA
\testA=1

\newcounter{testB}
\setcounter{testB}{1}

\ifnum\testA=\value{\testB} %edit: solution is \value{testB}
TRUE
\else
FALSE
\fi

这不起作用并收到错误消息“未定义”。

解决方法有效:

\newcount\testA
\testA=1

\newcounter{testB}
\setcounter{testB}{1}

\newcounter{temp}
\setcounter{temp}{\testA}

\arabic{temp}

\ifnum\temp=\testB
TRUE
\else
FALSE
\fi

如果不采用解决方法,我该如何让它工作?有没有直接的方法。

答案1

内部计数器的名称是\c@testB。如果删除反斜杠, \value 将会起作用。

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}

\begin{document}

\newcount\testA
\testA=1

\newcounter{testB}
\setcounter{testB}{1}

\makeatletter
\ifnum\testA=\c@testB
TRUE
\else
FALSE
\fi
\makeatother


\ifnum\testA=\value{testB}
TRUE
\else
FALSE
\fi
\end{document}

在此处输入图片描述

答案2

解决方案是使用

\ifnum\testA=\value{testB}

相关内容