我搜索过该主题,但没有找到任何内容,所以我希望这不是重复的。
我有以下代码:
\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}