Cómo combinar un espacio con TECkit

Cómo combinar un espacio con TECkit

Al intentar cambiar un mapa TECkit existente para que el sánscrito finalmente haga lo que quiero (agregar un primer paso eliminando espacios después de las consonantes en la transliteración antes de que el segundo y tercer pase convierta mi texto a Devanāgarī), mi obstáculo actual es ¿cómo hago coincidir un espacio? El siguiente MWE

\documentclass{article}
\usepackage{polyglossia}
\usepackage{fontspec}
\setdefaultlanguage{english}
\setotherlanguage{sanskrit}
\newfontfamily\sanskritfont[Mapping=mytest]{Latin Modern Roman}
\begin{document}
Something that stays. \textsanskrit{Something to be transformed.}
\end{document}

con un mínimo mytest.map( teckit_compiled a a mytest.tec):

LHSName "UNICODE"
RHSName "UNICODE"
pass(Unicode)
"o" > "x"
"g" > ""
" " > ""
U+0020 > ""

me da los siguientes resultados: Ejemplo

Entonces, si bien puedo hacer algo con letras y definir clases de ellas, etc., todavía no he encontrado una manera de hacer coincidir un espacio. Supongo que hay una manera de hacerlo, pero ¿tal vez no la haya?

Respuesta1

La asignación de espacios regulares (U+0020 o U+00A0) no parece funcionar en absoluto, pero la asignación de otros caracteres de espacio Unicode sí. No está claro si esto le sería útil o no.

Dado que está desechando los espacios, también es posible convertir el carácter de espacio normal en otra categoría (catcode 12). Esto también permitiría mapear espacios regulares. Creé un entorno llamado \translitque establece el código cat del espacio en 12 dentro de él. Sin embargo, tenga en cuenta que los espacios dentro de las macros no se asignarán correctamente.

Aquí hay un documento completo que muestra algunas de las opciones.

\documentclass{article}
\usepackage{polyglossia}
\usepackage{fontspec}
\newcommand{\ENspace}{\symbol{"2002}}
\newcommand{\emspace}{\symbol{"2001}}
\newcommand{\thirdspace}{\symbol{"2004}}
\newcommand{\mymacro}{This is macro text!}

\setdefaultlanguage{english}
\setotherlanguage{sanskrit}
\newfontfamily\sanskritfont[Mapping=mytest]{Latin Modern Roman}

\newenvironment{translit}{%
\catcode` =12
\sanskritfont
}{}

\begin{document}
Something that stays. 

\textsanskrit{Something\emspace to\thirdspace be\ENspace transformed.}

The source text can also contain the space characters directly:

\textsanskrit{Something to be transformed.}

The next source line contains only regular spaces.

\begin{translit}Some more text to be transformed\end{translit}

But regular spaces within macros will not be transformed:

\begin{translit}Some more text \mymacro{} containing a macro\end{translit}

Some regular text.

\end{document}

salida de código

Archivo de mapa:

LHSName "UNICODE"
RHSName "UNICODE"
pass(Unicode)
"o" > "x"
"g" > ""
U+0020 > ""
U+00A0 > ""
U+2002 > ""
U+2003 > ""
U+2001 > ""
U+2004 > ""

información relacionada