xetex에서 베다 악센트를 얻는 데 문제가 있습니다.

xetex에서 베다 악센트를 얻는 데 문제가 있습니다.

나는 언급했다매미의 솔루션내 OSX에서 작동하는 베다 스와라 표시를 얻으려면. 시스템에서 내 MWE를 테스트하려면 글꼴을 설치해야 합니다.쇼비카그리고산스크리트어 2003- 미안합니다!

내가 사용한 MWE는 Cicada가 게시한 것과 동일합니다.

\documentclass[12pt,varwidth,border=6pt]{standalone}
\usepackage{fontspec}
\newcommand\mysktfont{Shobhika Regular}
\newfontface\fplain{\mysktfont}% no mapping
\newcommand\devtext{
\fontspec[Script=Devanagari,Mapping=itrans-dvn2]{\mysktfont}}%mapping transliteration to Devanagari
\newcommand\iast{
           \fontspec[Mapping=itrans-iast2]{\mysktfont}} %mapping transliteration to IAST transliteration scheme

 \newcommand{\Paragraph}[1]{\devtext{#1}
\par\medskip
{\iast{#1}}}

\begin{document}
\fplain
नम॑ः 

\Paragraph{
nama!ste^^^^1cda rudra ma-nyava! u-tota- iSha!ve- namaH. \\
 nama!ste^^^^1cda astu- dhanva!ne bA-hubhyA!mu-ta te- nama!H
}

\end{document}

나는 다음과 같이 시스템을 준비했습니다.

$ git clone https://github.com/Shreeshrii/xetex-itrans.git
$ cp itrans-iast.map itrans-iast2.map
$ # Edit itrans-iast2.map
$ Teckit_compile itrans-iast2
$ diff -du itrans-iast.map itrans-iast2.map 
--- itrans-iast.map 2020-02-02 05:58:51.000000000 -0800
+++ itrans-iast2.map    2020-02-02 06:00:15.000000000 -0800
@@ -153,6 +153,9 @@

 pass(Unicode)

+svarita > U+0951
+anudatta > U+0952
+
 a > asvara
 a a > Asvara
 A > Asvara


$ cp *.tec *.map /usr/local/texlive/texmf-local/fonts/misc/xetex/fontmapping/xetex-itrans/
usage: cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file target_file
       cp [-R [-H | -L | -P]] [-fi | -n] [-apvXc] source_file ... target_directory

$ sudo mkdir -p !$ 

$ sudo mkdir -p /usr/local/texlive/texmf-local/fonts/misc/xetex/fontmapping/xetex-itrans/ 
Password:

$ sudo cp *.tec *.map /usr/local/texlive/texmf-local/fonts/misc/xetex/fontmapping/xetex-itrans/


$ sudo mktexlsr 
mktexlsr: Updating /usr/local/texlive/2016/texmf-config/ls-R... 
mktexlsr: Updating /usr/local/texlive/2016/texmf-dist/ls-R... 
mktexlsr: Updating /usr/local/texlive/2016/texmf-var/ls-R... 
mktexlsr: Updating /usr/local/texlive/texmf-local/ls-R... 
mktexlsr: Done.

실행 결과 PDF 파일은 xelatex swara.texitrans 텍스트가 데바나가리로 변환되지 않음을 보여줍니다.

스와라 이미지.pdf

에서 생성된 로그 파일( swara.log) 에서 몇 가지 오류를 발견했습니다 xelatex. 전체 로그 파일이 업로드됩니다.여기

.................................................
Font mapping `itrans-dvn2.tec' for font `Shobhika Regular' not found.
.................................................
. fontspec info: "no-font-shape"
. 
. Could not resolve font Shobhika Regular/I (it probably doesn't exist).
.................................................
.................................................
. fontspec info: "defining-font"
. 
. Font family 'ShobhikaRegular(2)' created for font 'Shobhika Regular' with
. options [Mapping=itrans-iast2].
. 
. This font family consists of the following NFSS series/shapes:
. - 'normal' (m/n) with NFSS spec.: <->"Shobhika
. Regular/OT:script=latn;language=DFLT;mapping=itrans-iast2;"
. - 'small caps'  (m/sc) with NFSS spec.: - 'bold' (bx/n) with NFSS spec.:
. <->"Shobhika Regular/B/OT:script=latn;language=DFLT;mapping=itrans-iast2;"
. - 'bold small caps'  (bx/sc) with NFSS spec.: - 'bold italic' (bx/it) with
. NFSS spec.: <->"Shobhika
. Regular/BI/OT:script=latn;language=DFLT;mapping=itrans-iast2;"
. - 'bold italic small caps'  (bx/itsc) with NFSS spec.: 
.................................................

다음으로 설정한 후 Shobhika실행하여 글꼴이 실제로 내 Mac에 설치되어 있는지 확인했습니다 .xetex opentype-info.texmyfontnameShobhika Regular

Shobhika 글꼴에 대한 xetex opentype-info.tex 출력

내 소스의 글꼴 사양( swara.tex)에 있는 글꼴 기능 지시문이 다음을 참조 하지만 아래에 Mapping=itrans-dvn2이름이 지정된 맵 또는 tec 파일을 찾을 수 없습니다. 이는 로그 파일의 오류 중 하나입니다. @Cicada는 이 파일 생성에 대해 아무 말도 하지 않았으며 git repo에서도 볼 수 없습니다.itrans-dvn2*/usr/local/texlive/texmf-local/fonts/misc/xetex/fontmapping/xetex-itrans/

글꼴 이름을 에서 로 변경했습니다 Shobhika.Sanskrit 2003 실패했습니다. 전체 로그는여기

업데이트 1

스와라 표시를 제공하기 위해 파일 에 의존하지 않고 .tec해당 파일을 내 문서에 수동으로 삽입했습니다(다른 게시물에서 제안한 대로).

\documentclass[12pt,varwidth,border=6pt]{standalone}
\usepackage{fontspec}
\newcommand\mysktfont{Shobhika Regular}
\newfontface\fplain{\mysktfont}% no mapping
\newcommand\devtext{
\fontspec[Script=Devanagari,Mapping=itrans-dvn]{\mysktfont}}%mapping transliteration to Devanagari
\newcommand\iast{
           \fontspec[Mapping=itrans-iast]{\mysktfont}} %mapping transliteration to IAST transliteration scheme

\newcommand\svarita{^^^^0951}
\newcommand\anudatta{^^^^0952}
\newcommand\doublesvarita{^^^^1cda}

 \newcommand{\Paragraph}[1]{\devtext{#1}
\par\medskip
{\iast{#1}}}

\begin{document}
\fplain
नम॑ः 

\Paragraph{nama\svarita ste\doublesvarita\ rudra ma\anudatta nyava\svarita\ u\anudatta tota\anudatta\ iSha\svarita ve\anudatta\ namaH. \\
 nama\svarita ste\doublesvarita\ astu\anudatta\ dhanva\svarita ne bA\anudatta hubhyA\svarita mu\anudatta ta te\anudatta\ nama\svarita H}

\end{document}

그러면 빨간색 화살표로 지적한 한 가지 예외를 제외하고 스와라 표시가 있는 텍스트가 제공됩니다.

스와라 표시용 매크로가 포함된 이미지

नम와 사이의 이상한 원을 없앨 수 있는 방법이 있다면 문제가 해결될 것입니다.

업데이트 2

글꼴로 출력Siddhanta

Siddhanta 글꼴로 출력

답변1

나는 데바나가리(devanagari)에 대한 지식이 없지만 강세 기호 UDATTA(U+0951) 및 VISARGA(U+0903)의 입력 순서가 중요한 것처럼 보입니다. 입력 순서에 대한 토론이 있습니다.https://github.com/harfbuzz/harfbuzz/issues/2017

또한 노토 글꼴에 작은 문제가 있는 것처럼 보이며 싯단타가 더 나은 것 같습니다. (https://github.com/googlefonts/noto-fonts/issues/1551).

lualatex-dev를 사용하여(harfbuzz를 활성화한 상태에서) 현재 texlive에서 다음을 컴파일할 때(^^^^-표기법은 입력하기가 더 쉽기 때문에 존재합니다)

\documentclass{article}
\usepackage{fontspec}
\setmainfont{NotosansDevanagari}[Renderer=Harfbuzz,Script=Devanagari]

\setsansfont{siddhanta}[Renderer=Harfbuzz,Script=Devanagari]

\begin{document}
^^^^0928^^^^092e^^^^0951^^^^0903 नम॑ः

^^^^0928^^^^092e^^^^0903^^^^0951 नमः॑

\sffamily

^^^^0928^^^^092e^^^^0951^^^^0903 नम॑ः

^^^^0928^^^^092e^^^^0903^^^^0951 नमः॑

\end{document}

나는 다음과 같은 결과를 얻습니다.

여기에 이미지 설명을 입력하세요

관련 정보