Devanagari 텍스트에 대해 올바른 검색 가능한 텍스트 가져오기

Devanagari 텍스트에 대해 올바른 검색 가능한 텍스트 가져오기

AFAIK가 Devanagari 스크립트 산스크리트어 텍스트를 조판하는 데 권장되는 방법인 매우 최소한의 문서를 고려하십시오.

\documentclass{article}

\usepackage{fontspec}
\usepackage{polyglossia}
\setmainlanguage{sanskrit}
\newfontfamily\devanagarifont[Script=Devanagari]{Chandas}

\begin{document}
किं  बहुना । परस्परं द्वैधम् उत्पन्नम् ।
\end{document}

이것을 조판할 때 출력이 시각적으로 양호하더라도 PDF에서 텍스트를 복사하려고 하면 매번 잘못된 결과가 나타납니다. 나는 온라인에서 무료로 제공되는 4가지 글꼴을 사용하여 xelatex및 를 모두 사용해 보았습니다 .lualatex찬다스,노토 산스 데바나가리, 노토 세리프 데바나가리,아디실라:

  • 올바른 텍스트:

    • 킨 부나 . 다음 내용을 확인하세요.
  • xelatex:

    • 그래서. 여기에서는 잠이 들었습니다. (찬다스)
    • ɫкʌ bhuna . 다음과 같은 내용을 확인하세요. (노토 산스 데바나가리)
    • 괜찮아요. 다음 내용을 확인하세요. (노토 세리프 데바나가리)
    • 나는 부나 . 다음 내용을 확인하세요. (아디실라)
  • lualatex:

    • 나는 부나 . 여기에서 테스트 결과를 볼 수 있습니다. (찬다스)
    • 그게 다야. 다음 내용을 확인하세요. (Noto Sans Devanagari — 또한 출력이 깨졌습니다.)
    • 나는 부나 . 다음 내용을 확인하세요. (Noto Serif Devanagari — 또한 출력이 깨졌습니다.)
    • 그게 다야. 다음 내용을 확인하세요. (아디실라)

따라서 이들 중 어느 것도 정확하지 않지만 일부 조합의 경우 첫 음절만 문제가 있었습니다. (첫 음절인지는 중요하지 않습니다. 어느 곳에서나 동일한 문제가 있습니다.)

(여담: 이것은 TeX Live 2020을 사용했기 때문에 LuaHBTeX를 사용했습니다. 하지만 두 글꼴에 lualatex비해 출력이 올바르지 않습니다 .)xelatex

복사할 올바른 텍스트를 얻는 방법이 있습니까?

accsupp또한 패키지 등을 사용하여 모든 단어를 래핑하려고 시도했지만 \BeginAccSupp{ActualText=किं}किं\EndAccSupp{}그 결과 완전한 횡설수설이 발생했습니다.

답변1

TeX Live 2020에서 LuaLaTeX로 컴파일할 때 복사하여 붙여넣으면 다음과 같은 결과가 나타납니다.

킨 부나 . 다음 내용을 확인하세요.

다음 MWE에서 , 등을 정의하려는 경우 입력 시간도 절약할 수 있습니다 \devanagarifontsf.\devanagarifonttt

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

그러나 여전히 XeLaTeX에서 올바르게 복사하여 붙여넣을 수는 없습니다.

나는 일반적으로 babel내가 입력하는 언어를 자동 감지할 수 있는 를 사용하지만 솔루션은 매우 유사합니다.

Marcel Kruger가 댓글에서 말했듯이 최신 LuaLaTeX는 HarfBuzz 렌더링을 지원하지만 이를 선택해야 합니다.

관련 정보