转换Tex编号中的Tex字符串

时间:2015-05-05 10:25:34

标签: string numbers latex tex

我在使用需要数值的参数中自动生成的Tex字符串时遇到问题(例如在ifthenelse比较中)。以下是最小代码示例:

\newcommand\testC{123}
\ifthenelse{\testC<0}{negative}{positive} % works fine !

\newcommand{\testD}{\luaexec{tex.write("123")}} % write to avoid the print carriage return - produces also 123 as \testC
\testD % prompt 132 just as \testC "apparently"
\ifthenelse{\testD<0}{negative}{positive} % error "! Missing number, treated as zero"

\newcounter{compteur}
\setcounter{compteur}{\testD} % error "! Missing number, treated as zero"
\ifthenelse{\thecompteur<0}{negative}{positive}

我找不到从字符串转换为算术比较(和其他操作)接受的数字的方法。

1 个答案:

答案 0 :(得分:2)

请注意,\usepackage{luacode}(需要<number>)不可展开,因此不能在(Lua)TeX在扩展后期望\documentclass{article} \usepackage{luacode} \usepackage{ifthen} \begin{document} \newcommand\testC{123} \ifthenelse{\testC<0}{negative}{positive} % works fine ! \newcommand{\testD}{\directlua{tex.sprint("123")}} % write to avoid the print carriage return - p$ \testD % prompt 132 just as \testC "apparently" \ifthenelse{\testD<0}{negative}{positive} % error "! Missing number, treated as zero" \newcounter{compteur} \setcounter{compteur}{\testD} % error "! Missing number, treated as zero" \ifthenelse{\value{compteur}<0}{negative}{positive} \end{document} 的地方使用它。

\value{compteur}

在测试中使用{{1}}会更好。