IAST의 데바나가리어로 단다 얻기

IAST의 데바나가리어로 단다 얻기

IAST의 Devanagari에 있는 단다 기호를 얻으려고 합니다. 내 코드는

\documentclass[letterpaper,12pt]{article}
\usepackage{fontspec}
\newfontfamily{\san}[Script=Devanagari,Mapping=velthuis-sanskrit]{Shobhika}
\newfontfamily{\rom}[Mapping=itrans-iast]{Noto Serif}
\newcommand{\sd}{{\san|}}

\begin{document}
{\san
namaste|
}\\
{\rom 
namaste{\sd}
}\\
{\rom 
namaste|
}
\end{document}

\sd서문에서 선언한 것을 사용하면 \rom 환경에서 단다를 얻을 수 있습니다. 프리앰블의 일부 선언을 사용하여 \rom환경 에서 단다를 직접 얻을 수 있는 방법이 있습니까 ?\sd

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

답변1

다음 두 줄을 추가하여 문자를 |활성 문자로 선언하고(매크로처럼 처리되도록) 와 동일한 정의를 제공 할 수 있습니다.\sd

\catcode`|=\active
\let|=\sd

예제 수정:

\documentclass[letterpaper,12pt]{article}
\usepackage{fontspec}
\newfontfamily{\san}[Script=Devanagari,Mapping=velthuis-sanskrit]{Shobhika}
\newfontfamily{\rom}[Mapping=itrans-iast]{Noto Serif}
\newcommand{\sd}{{\san|}}

\begin{document}
{\san
namaste|
}

{\rom 
namaste{\sd}
}

{\rom 
namaste| (before)
}

\catcode`|=\active
\let|=\sd

{\rom 
namaste| (after)
}
\end{document}

산출:

예를 들어 출력

실제로는 해당 줄을 파일 맨 위에 두는 것이 좋습니다. \sd정의된 이후인지 확인하세요 (그리고 |데바나가리 단다 이외의 목적으로 사용되는 파일의 모든 문자 이후).

관련 정보