如何将以字符串形式给出的数字转换为“实数”?考虑以下 MWE:
\documentclass{article}
\usepackage{datenumber}
\usepackage{xstring}
\begin{document}
\newcommand{\tag}{\StrBefore{01.01.2000}{.}}
%\setdatenumber{2000}{10}{\tag}
\setdatenumber{2000}{10}{10}
\tag \\
\datedate
\end{document}
此处,\tag
设置为,01
如输出所示。但是如果我使用该行,\setdatenumber{2000}{10}{\tag}
我会收到错误“缺失数字,视为零”。我该如何避免这种情况?我发现的其他“将字符串转换为数字”问题似乎都在这里没有帮助。
答案1
问题是由于\StrBefore
不可扩展导致的,所以数字被打印出来但不能用于进一步的计算。作者xstring
增加了一个可选参数来\StrBefore
帮助解决这类问题:你可以传入一个控制序列的名称来[]
将此控制序列设置为的结果\StrBefore
:
\documentclass{article}
\usepackage{datenumber}
\usepackage{xstring}
\begin{document}
\StrBefore{01.01.2000}{.}[\tag]
\setdatenumber{2000}{10}{\tag}
\tag \\
\datedate
\end{document}