我正在尝试使用字符串解析宏,可以在以下答案中找到解析日期字符串时超出 TeX 容量 - TeX - LaTeX。
基本上,我有字符串 num01、num02 ... num09 - 我想从这些字符串中提取最后一个字符;例如,此代码可以工作(使用pdflatex
):
\documentclass{article}
\def\parseMyNumHelper num0#1\relax{\edef\MyNum{#1}}
\def\parseMyNum#1{\edef\temp{#1}%
\expandafter\parseMyNumHelper\temp\relax}
\begin{document}
\edef\myid{num01}
% \begin{minipage}
\parseMyNum{\myid}
\typeout{ ======== \temp === \MyNum }
% \end{minipage}
\end{document}
...日志输出结果如下:
...
======== num01=== 1
(./a.aux) )
...
但是,现在只需取消注释 begin/end{minipage}
语句;代码就会立即崩溃:
...
(./a.aux
)
! Missing number, treated as zero.
<to be read again>
\edef
l.12 \parseMyNum
{\myid}
...
...即使我继续观察\parseMyNum
,我也看不到任何奇怪的东西:
? i
insert>\show\parseMyNum
! Illegal unit of measure (pt inserted).
<to be read again>
\show
l.12 \parseMyNum
{\myid}
? i
insert>\typeout{ \meaning\parseMyNum }
macro:#1->\edef \temp {#1}\expandafter \parseMyNumHelper \temp \relax
> \parseMyNum=macro:
#1->\edef \temp {#1}\expandafter \parseMyNumHelper \temp \relax .
<insert> \show\parseMyNum
l.12 \parseMyNum
{\myid}
有没有想过为什么解析宏\parseMyNum
在 minipage 环境中会失败 - 以及如何拥有类似的字符串解析宏,在 minipage 和其他环境内外都能工作?
非常感谢您的任何回答,
干杯!
答案1
minipage
寻找其论点:\begin{minipage}{width}...