我习惯使用\pato{R}{2015}{07}{27}{A}{1}{4}{black}
它\input
,sub-archive R20150727A1-4.tex
并且它对我有用。
我怎样才能执行一个新命令,比如说\otap{R20150727A1-4}
,解码和分配:
R--> first variable;
2015 --> second variable;
等等?
谢谢
答案1
这可能不太优雅,但它有效:
\def\scanonetonine#1#2#3#4#5#6#7#8#9{%
\def\myletter{#1}%
\def\myyear{#2#3#4#5}%
\def\mymonth{#6#7}%
\def\myday{#8#9}%
\scanrest
}
\def\scanrest#1#2#3#4{%
\def\myrest{#1#2#3#4}%
}
\def\otap#1{{%
\scanonetonine#1%
% now we can do anything with \my*, but let's just print them here
(\myletter)(\myyear)(\mymonth)(\myday)(\myrest)%
}}
有了这些定义,输出中\otap{R20150727A1-4}
会产生(R)(2015)(07)(27)(A1-4)
。由于最后一条命令中的组,这些宏在的扩展\otap
完成后消失。
%
行尾的符号都是必要的,以避免产生不需要的空白。