Beim Versuch, eine vorhandene TECkit-Map für Sanskrit zu ändern, um sie schließlich so zu machen, wie ich es möchte (indem ich in einem ersten Durchgang Leerzeichen nach Konsonanten in der Transliteration entferne, bevor der zweite und dritte Durchgang meinen Text in Devanāgarī konvertiert), ist mein derzeitiges Hindernis, wie ich ein Leerzeichen zuordnen kann. Das folgende 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}
mit a Minimal mytest.map
( teckit_compile
d zu a mytest.tec
):
LHSName "UNICODE"
RHSName "UNICODE"
pass(Unicode)
"o" > "x"
"g" > ""
" " > ""
U+0020 > ""
Ich kann zwar etwas mit Buchstaben machen und Klassen davon definieren usw., aber ich habe noch keine Möglichkeit gefunden, ein Leerzeichen zuzuordnen. Ich nehme an, es gibt eine Möglichkeit, das zu tun, aber vielleicht gibt es auch keine?
Antwort1
Das Zuordnen normaler Leerzeichen (U+0020 oder U+00A0) scheint überhaupt nicht zu funktionieren, das Zuordnen anderer Unicode-Leerzeichen jedoch schon. Es ist nicht klar, ob dies für Sie hilfreich wäre oder nicht.
Da Sie die Leerzeichen wegwerfen, ist es auch möglich, das normale Leerzeichen einer anderen Kategorie zuzuordnen (Catcode 12). Dadurch könnten auch normale Leerzeichen zugeordnet werden. Ich habe eine Umgebung namens erstellt, \translit
die den Catcode des Leerzeichens darin auf 12 setzt. Beachten Sie jedoch, dass Leerzeichen innerhalb von Makros nicht richtig zugeordnet werden.
Hier ist ein vollständiges Dokument, das einige der Optionen zeigt.
\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}
Kartendatei:
LHSName "UNICODE"
RHSName "UNICODE"
pass(Unicode)
"o" > "x"
"g" > ""
U+0020 > ""
U+00A0 > ""
U+2002 > ""
U+2003 > ""
U+2001 > ""
U+2004 > ""