TECkit으로 공간을 매칭하는 방법

TECkit으로 공간을 매칭하는 방법

결국 내가 원하는 것을 수행하기 위해 산스크리트어에 대한 기존 TECkit 맵을 변경하려고 합니다(두 번째 및 세 번째 패스가 내 텍스트를 Devanāgarī로 변환하기 전에 음역에서 자음 뒤의 공백을 제거하는 첫 번째 패스를 추가함). 현재 걸림돌은 공백을 어떻게 일치시키느냐 하는 것입니다. 다음 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) 매핑은 전혀 작동하지 않는 것 같지만 다른 유니코드 공백 문자 매핑은 작동합니다. 이것이 당신에게 도움이 될지 아닐지는 확실하지 않습니다.

공백을 버리기 때문에 일반 공백 문자를 다른 범주(catcode 12)로 만드는 것도 가능합니다. 이렇게 하면 일반 공간도 매핑될 수 있습니다. 저는 \translitspace의 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 > ""

관련 정보