在 T E X 中,如何将字符串拆分为\mana{X1 2W/UB R /G}
多个部分并将它们提供给另一个宏(在这种情况下,用类似的东西替换宏调用\m{X}\m{12}\m{W/U}\m{B}\m{R/G}
),按照非常简单的规则进行分组,即:a)连续数字组成一个组,b)斜杠创建一组相邻的两个字符,c)要完全去除空格?
我尝试了这个substr
包,但它并没有太大帮助,只允许一个人找到某些子字符串。手写循环,例如
\def\lcpass#1.{}
\def\lcloop#1#2.{%
\ifempty{#2}%
#1%
\let\continue=\lcpass%
\else%
\let\continue=\lcloop%
\fi%
\continue#2.}
\def\lastchar#1{\lcloop#1.} % returns the last character of a string
当字符串以空格结尾时无法工作,我也没有成功使用\futurelet
.
一般来说,如何处理在 T E X 中解析字符串的任务?例如,该texmate
软件包允许人们编写类似的东西|1 e4 e5 Nf3 Nc6|
并自动绘制相应的国际象棋位置。它是如何做到的?关于循环字符串中的字符和其他类似的 T E X hack ,我能读到什么?