Betrachten Sie dieses recht minimalistische Dokument, das meines Wissens nach die empfohlene Methode zum Setzen von Texten in Devanagari-Schrift und Sanskrit darstellt:
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{sanskrit}
\newfontfamily\devanagarifont[Script=Devanagari]{Chandas}
\begin{document}
किं बहुना । परस्परं द्वैधम् उत्पन्नम् ।
\end{document}
Wenn ich dies setze, führt der Versuch, den Text aus der PDF-Datei zu kopieren, jedes Mal zu falschen Ergebnissen, auch wenn die Ausgabe optisch einwandfrei ist. Ich habe es sowohl mit als xelatex
auch lualatex
mit vier Schriftarten versucht, die alle großzügigerweise kostenlos online verfügbar sind:Chandas,Noto Sans Devanagari, Noto Serif Devanagari,Adishila:
Richtiger Text:
- Mehr erfahren Aktuelle Nachrichten
xelatex
:- Mehr erfahren Beliebte Clips (Chandas)
- ɫकʌ बहुना । Jetzt kostenlos testen (Noto ohne Devanagari)
- Mehr anzeigen Aktuelle Nachrichten (Noto Serif Devanagari)
- Mehr erfahren Aktuelle Nachrichten (Adischila)
lualatex
:- Mehr erfahren Jetzt kostenlos herunterladen (Chandas)
- Mehr erfahren Aktuelle Nachrichten (Noto Sans Devanagari – außerdem ist die Ausgabe defekt)
- Mehr erfahren Aktuelle Nachrichten (Noto Serif Devanagari – außerdem ist die Ausgabe fehlerhaft)
- Mehr anzeigen Aktuelle Nachrichten (Adischila)
Keines davon ist also richtig, obwohl bei einigen Kombinationen nur die erste Silbe problematisch war. (Es spielt keine Rolle, dass es die erste Silbe ist; bei किं besteht überall das gleiche Problem.)
(Abgesehen davon: Hier wurde TeX Live 2020 verwendet, also LuaHBTeX … trotzdem ist die Ausgabe im Vergleich zu zwei der Schriftarten lualatex
falsch .)xelatex
Gibt es eine Möglichkeit, den richtigen Text zu kopieren?
Ich habe auch versucht, jedes Wort mit dem accsupp
Paket „like“ \BeginAccSupp{ActualText=किं}किं\EndAccSupp{}
usw. zu umschließen, aber das Ergebnis ist völliges Kauderwelsch.
Antwort1
Wenn ich mit LuaLaTeX auf TeX Live 2020 kompiliere, erhalte ich beim Kopieren und Einfügen Folgendes:
Mehr erfahren Aktuelle Nachrichten
\devanagarifontsf
Aus dem folgenden MWE, das Ihnen auch einiges an Tipparbeit ersparen sollte, wenn Sie auch , \devanagarifonttt
, usw. definieren möchten.
\documentclass{article}
\tracinglostchars=2
\usepackage{iftex}
\usepackage{polyglossia}
\ifluahbtex
\defaultfontfeatures{ Renderer=HarfBuzz, Ligatures=TeX }
\fi
\setmainlanguage{sanskrit}
%% Font available at:
%% https://www.google.com/get/noto/#serif-deva
\newfontfamily\devanagarifont[Script=Devanagari]{Noto Serif Devanagari}
\begin{document}
किं बहुना । परस्परं द्वैधम् उत्पन्नम् ।
\end{document}
Das Kopieren und Einfügen aus XeLaTeX funktioniert jedoch immer noch nicht ordnungsgemäß.
Normalerweise verwende ich babel
, das unter anderem die von mir eingegebene Sprache automatisch erkennen kann, aber die Lösung ist sehr ähnlich.
Wie Marcel Kruger in den Kommentaren sagte, unterstützt modernes LuaLaTeX die HarfBuzz-Darstellung, aber Sie müssen es auswählen.