Trong T E, làm cách nào để tách chuỗi như \mana{X1 2W/UB R /G}
thành các phần và đưa chúng sang macro khác (trong trường hợp này) \m{X}\m{12}\m{W/U}\m{B}\m{R/G}
), nhóm theo quy tắc rất đơn giản, cụ thể là: a) các chữ số liên tiếp tạo thành một nhóm, b) dấu gạch chéo tạo một nhóm gồm hai ký tự lân cận, c) dấu cách sẽ bị tước hoàn toàn?TeX: phân tích cú pháp chuỗi và khoảng trống trong khoảng trắng
Tôi đã thử gói substr
nhưng không quá hữu ích, chỉ cho phép một người tìm thấy một số chất nền nhất định. Các vòng viết tay như
\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
không hoạt động khi chuỗi kết thúc trong khoảng trắng, tôi cũng không thành công với \futurelet
.
Nói chung, cách tiếp cận tác vụ phân tích chuỗi trong T E X là gì? Ví dụ: gói texmate
cho phép một người viết những thứ như |1 e4 e5 Nf3 Nc6|
và tự động rút các vị trí cờ tướng tương ứng. Nó làm như thế nào? Tôi có thể đọc gì về việc lặp qua các ký tự trong một chuỗi và các số khác TE X như thế này?
gì sai với câu trả lời của tôi không? Nó trông nhỏ hơn. –
Không có gì sai, nhưng tôi đã có thể tìm ra giải pháp này trước khi tôi có cơ hội nhìn vào bạn. –