前提条件:文件名是lab00.tex
\def\fn{\jobname}
\StrLeft{\fn}{1}[\firstChar]
\IfStrEq{\firstChar}{l}{true}{false}
答案1
结果为“错误”,因为虽然该包声称比较“字符串”,但它实际上考虑了类别代码。
您的 中的第一个字符\jobname
是l
类别代码 12 ,这是 TeX 关于生成字符串的一般规则。但是,您正在将其与标准类别代码 11 进行比较l
。
你可以做
\def\fn{\jobname}
\StrLeft{\fn}{1}[\firstChar]
\IfStrEq{\firstChar}{\detokenize{l}}{true}{false}
因为\detokenize
使用相同的内部机制来输出类别代码为 12 的字符。