Как подобрать пространство с помощью TECkit

Как подобрать пространство с помощью TECkit

Пытаюсь изменить существующую карту TECkit для санскрита, чтобы в конечном итоге сделать то, что я хочу (добавление первого прохода, удаляющего пробелы после согласных в транслитерации перед вторым и третьим проходами, преобразующими мой текст в деванагари), моим текущим камнем преткновения является то, как мне сопоставить пробел? Следующий 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}

с минимальным mytest.map( teckit_compiled к a mytest.tec):

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

дает мне следующие результаты: Пример

Так что, хотя я могу что-то делать с буквами, определять их классы и т. д., я все еще не нашел способа сопоставить пробел. Полагаю, что есть способ сделать это, но, может быть, его нет?

решение1

Отображение обычных пробелов (U+0020 или U+00A0), похоже, вообще не работает, но отображение других символов пробела Unicode работает. Неясно, будет ли это вам полезно или нет.

Поскольку вы отбрасываете пробелы, также возможно сделать обычный символ пробела другой категорией (catcode 12). Это позволит также отображать обычные пробелы. Я создал среду под названием , \translitкоторая устанавливает catcode пробела на 12 внутри него. Однако обратите внимание, что пробелы внутри макросов не будут отображаться правильно.

Вот полный документ, демонстрирующий некоторые из вариантов.

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

вывод кода

Файл карты:

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

Связанный контент