![Obtener el texto de búsqueda correcto para el texto devanagari](https://rvso.com/image/420759/Obtener%20el%20texto%20de%20b%C3%BAsqueda%20correcto%20para%20el%20texto%20devanagari.png)
Considere este documento bastante mínimo, que AFAIK es la forma recomendada de componer texto en idioma sánscrito en escritura devanagari:
\documentclass{article}
\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{sanskrit}
\newfontfamily\devanagarifont[Script=Devanagari]{Chandas}
\begin{document}
किं बहुना । परस्परं द्वैधम् उत्पन्नम् ।
\end{document}
Cuando escribo esto, incluso cuando el resultado es visualmente bueno, intentar copiar el texto del PDF siempre produce resultados incorrectos. Lo probé con xelatex
y lualatex
, con cuatro fuentes, todas generosamente disponibles en línea de forma gratuita:Chandas,Noto Sans Devanagari, Noto Serif Devanagari,Adishila:
Texto correcto:
- किं बहुना । परस्परं द्वैधम् उत्पन्नम् ।
xelatex
:- कं बहुना । परɕपरं जैधम् उɊपਯम् । (chandas)
- ɫकʌ बहुना । परȺरं द्वैधम् उत्पȡम् । (Noto Sans Devanagari)
- ȫक बहुना । परस्परं द्वैधम् उत्पन्नम् । (Noto Serif Devanagari)
- िकं बहुना । परस्परं द्वैधम् उत्पन्नम् । (Adishila)
lualatex
:- िकं बहुना । पर�परं द्वैधम् उ�पन्नम् । (chandas)
- िकं बहुना । परस्परं द्वैधम् उत्पन्नम् । (Noto Sans Devanagari - además, la salida está rota)
- िकं बहुना । परस्परं द्वैधम् उत्पन्नम् । (Noto Serif Devanagari - además, la salida está rota)
- िकं बzना । परस्परं द्वैधम् उत्पन्नम् । (Adishila)
Entonces, ninguno de estos es correcto, aunque para algunas combinaciones, solo la primera sílaba fue problemática. (No importa que sea la primera sílaba; किं en cualquier lugar tiene el mismo problema).
(Aparte: esto estaba usando TeX Live 2020, por lo que lualatex
usa LuaHBTeX... sin embargo, el resultado es incorrecto en comparación con xelatex
dos de las fuentes).
¿Existe alguna forma de copiar el texto correcto?
También intenté envolver cada palabra usando el accsupp
paquete, como, \BeginAccSupp{ActualText=किं}किं\EndAccSupp{}
etc., pero eso resulta en un completo galimatías.
Respuesta1
Cuando compilo con LuaLaTeX en TeX Live 2020, obtengo esto cuando copio y pego:
किं बहुना । परस्परं द्वैधम् उत्पन्नम् ।
Del siguiente MWE, que también debería ahorrarle algo de escritura si también desea definir \devanagarifontsf
, \devanagarifonttt
etc.
\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}
Sin embargo, esto todavía no se copia y pega correctamente desde XeLaTeX.
Normalmente uso babel
, que entre otras cosas puede detectar automáticamente el idioma en el que escribo, pero la solución es muy similar.
Como dijo Marcel Kruger en los comentarios, el LuaLaTeX moderno admite el renderizado HarfBuzz, pero debes seleccionarlo.