-
Notifications
You must be signed in to change notification settings - Fork 2
/
sanskrit.sty
126 lines (98 loc) · 2.8 KB
/
sanskrit.sty
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
%% This is meant only for formatting the documentation for
%% brahmic.dtx. It is not meant as production-ready code and is not
%% supported.
\ProvidesPackage{sanskrit}
\RequirePackage{fontspec}
\newfontfamily\@nagarifont[Script=Devanagari,Mapping=deva-san]{Murty Hindi}
\newfontfamily\@nagarifontraw[Script=Devanagari]{Murty Hindi}
\def\liningnumerals{\addfontfeatures{Numbers=Lining}}
\newcommand{\textdeva}[1]{{\@nagarifont#1}}
\DeclareRobustCommand{\S}{\@ifstar{\textup}{\textbf}}%
\newcommand{\D}{\textdeva}
\newif\if@starred
\@starredfalse
\def\@ifstarred#1{\@ifstar{\@starredtrue#1}{\@starredfalse#1}}
\DeclareRobustCommand{\N}{\@ifstarred\N@}
\def\zap@hyphen#1-#2{%
#1%
\ifx#2\@empty\else\expandafter\zap@hyphen\fi
#2}
\newcommand{\N@}[2][]{%
\begingroup
\protected@edef\@tempa{\if###1###2\else#1\fi}%
\if@starred\else
\protected@edef\@tempa{\expandafter\zap@hyphen\@tempa-\@empty}%
\fi
\textdeva{\@tempa} \S{#2}%
\endgroup
}
\DeclareRobustCommand{\NS}{\NS@}
\newcommand{\NS@}[2][]{%
\begingroup
\protected@edef\@tempa{\if###1###2\else#1\fi\space}%
\protected@edef\@tempa{\expandafter\zap@space\@tempa\@empty}%
\textdeva{\@tempa} \S{#2}%
\endgroup
}
\def\C{%
\@ifstar{\@starredtrue\@devcpd}{\@starredfalse\@devcpd}%
}
\def\@devcpd#1{%
\textdeva{\zap@hyphen#1-\@empty}~%
\if@starred\expandafter\textbf\fi{#1}%
}
\newcommand{\@sastrut}{%
\hbox{%
\vrule\@height.5\baselineskip
% \@depth.3\baselineskip
\@width\z@
}%
}
\newcommand{\SA}[2]{%
$\mathop{\S{\@sastrut#1}}\limits^{\mathrm{#2}}$%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% %%
%% ROOTS %%
%% %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\DeclareRobustCommand{\rt}{\@ifstarred\@rt}
\DeclareRobustCommand{\rt@star}{%
\@ifstar{\@starredtrue\@rt}{\@starredtrue\@rt}%
}
\let\@rootnum\@empty
\newcommand{\@rt}[2][]{%
\begingroup
\def\@rootnum{#1}%
\if@starred\else √\fi
\rtnum\S{#2}%
\endgroup
}
\DeclareRobustCommand{\rtnum}[1][]{%
\if###1##%
\ifx\@rootnum\@empty\else
\if@starred\else\,\fi
\@rootnum.~%
\fi
\global\let\@rootnum\@empty
\else
#1.~%
\fi
}
\endinput
\newcommand{\@rt}[2][]{%
\begingroup
\def\@rootnum{#1}%
\if@starred\else √\fi
\S{#2}\rtnum
\endgroup
}
\DeclareRobustCommand{\rtnum}[1][]{%
\if###1##%
\ifx\@rootnum\@empty\else\tsup{\@rootnum}\fi
\global\let\@rootnum\@empty
\else
\tsup{#1}%
\fi
}
\endinput