IAST'ta Devanagari'de danda almak

Sep 21 2020

Geçtiğimiz günlerde Devanagari'de bulunan danda sembolünü almaya çalışıyorum. Benim kodum

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

Ben kullandığınızda \sdben gerekçesinde ilan eden ben \ rom ortamında danda alabilirsiniz. Önsözdeki bazı bildirimleri kullanmadan \romçevrede danda'yı doğrudan elde etmenin bir yolu var mı \sd?

Yanıtlar

1 ShreevatsaR Oct 18 2020 at 15:28

Karakteri |aktif bir karakter olarak ilan edebilir (böylece bir makro gibi ele alınır) ve \sdşu iki satırı ekleyerek ona sizinki ile aynı tanımı verebilirsiniz :

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

Örneğinizi değiştirmek:

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

Çıktı:

Pratikte muhtemelen bu satırları dosyanın en üstüne koymak istersiniz; sadece sonradan \sdtanımlandığından emin olun (ve |dosyanızda Devanagari danda dışında herhangi bir amaçla kullanılan herhangi bir karakterden sonra ).