T E Xでは、文字列など\mana{X1 2W/UB R /G}
をパーツに分割し、それらを別のマクロにフィードして(この場合、マクロ呼び出しをのようなものに置き換える\m{X}\m{12}\m{W/U}\m{B}\m{R/G}
)、非常に単純なルールでグループ化する方法を教えてください。数字はグループを形成します。b)スラッシュは2つの近くの文字のグループを作成します。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ハックについて何を読むことができますか?