我不知道如何制作一个包含 StrLen 的 foreach,这可能吗?
\documentclass[a4paper,12pt,hidelinks]{article}
\usepackage[utf8]{inputenc}
\usepackage[brazil]{babel}
\usepackage[T1]{fontenc}
\usepackage{filecontents}
\usepackage{csvsimple}
\usepackage{xstring}
\usepackage{alphalph}
\usepackage{etoolbox}
\usepackage{tikz}
\newcommand \nveics {2}
\newcommand \alfanumchassi {136564765}
\newcommand \alfanumchassib {36564765}
\ifdef{\alfanumchassi}{\StrLen{\alfanumchassi}[\chassi]}{}
\StrLen{\alfanumchassib}[\chassib]
% \foreach \n in {b,...,\alphalph{\nveics}}{
% \IfStrEq{\csname \x \endcsname}{s}{\global\renewcommand \furtodanoimovel {n}}{}
% }
\begin{document}
{\chassi}\\
{\chassib}\\
\end{document}
如果我注释“\StrLen{\alfanumchassib}[\chassib]”并取消注释“\foreach \n in {b,...,\alphalph{\nveics}}{...”,则会出现很多错误。
答案1
很难猜出你想做什么。
您拥有
\foreach \n
并使用\x
\csname\x\endcsname
可能是一个错误,因为它通常是未定义的\global\renewcommand
不会进行全球重新定义在您的代码中
\furtodanoimovel
没有定义,因此\renewcommand
无论如何都会引发错误。
以下版本或许能满足您的需求:
\documentclass{article}
\usepackage{xstring}
\usepackage{alphalph}
\usepackage{tikz}
\newcommand \nveics {4}
\foreach \x in {b,...,\alphalph{\nveics}}{
\IfStrEq{\x}{c}{\gdef\furtodanoimovel{n}}{}
}
\begin{document}
\texttt{\meaning\furtodanoimovel}
\end{document}
如你所见,宏\furtodanoimovel
已经定义好了。
答案2
非常抱歉,foreach 里面的脚本是错误的,正确的做法是将 \StrLen 放在里面,这给了我一个错误,我不知道如何制作它或在这种情况下使用类似于 \StrLen 的其他命令。
在 \foreach 中使用 \x 或 \n 有什么区别?我想我可以使用任何命令,如 \w、\z 或任何不存在的命令。