Como combinar um espaço com TECkit

Como combinar um espaço com TECkit

Tentando alterar um mapa TECkit existente para sânscrito para eventualmente fazer o que eu quero (adicionar uma primeira passagem removendo espaços após consoantes na transliteração antes da segunda e terceira passagens converter meu texto para Devanāgarī) meu obstáculo atual é como faço para combinar um espaço? O seguinte 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}

com um mínimo mytest.map( teckit_compiled para a mytest.tec):

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

me dá os seguintes resultados: Exemplo

Portanto, embora eu possa fazer algo com letras e definir classes delas e assim por diante, ainda não encontrei uma maneira de combinar um espaço. Suponho que haja uma maneira de fazer isso, mas talvez não haja?

Responder1

O mapeamento de espaços regulares (U+0020 ou U+00A0) parece não funcionar, mas o mapeamento de outros caracteres de espaço Unicode funciona. Não está claro se isso seria útil para você ou não.

Como você está jogando fora os espaços, também é possível transformar o caractere de espaço regular em outra categoria (catcode 12). Isso permitiria que espaços regulares também fossem mapeados. Eu criei um ambiente chamado \translitque define o catcode do espaço para 12 dentro dele. Observe, entretanto, que os espaços nas macros não serão mapeados corretamente.

Aqui está um documento completo mostrando algumas das opções.

\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}

saída de código

Arquivo de mapa:

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

informação relacionada