在 IAST 中獲得梵文 danda

在 IAST 中獲得梵文 danda

我正在嘗試獲取 IAST 中天城文中的 danda 符號。我的程式碼是

\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 環境中取得 danda。有沒有一種方法可以直接在環境中取得 danda\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已定義之後(以及|文件中用於除梵文 danda 之外的任何目的的任何字符之後)。

相關內容