blob: 0dc31f3d36ab3d09d672106cb01c5942308d9526 (
plain)
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
|
% Copyright (C) 1991 Silvio Levy
%
% This file is free software: you can redistribute it and/or modify
% it under the terms of the GNU General Public License as published by
% the Free Software Foundation, either version 2 of the License, or
% (at your option) any later version.
%
% This file is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program. If not, see <http://www.gnu.org/licenses/>.
\def\ifnextchar#1#2#3{\let\tempe #1\def\tempa{#2}\def\tempb{#3}\futurelet
\tempc\ifnch}
\def\ifnch{\ifx\tempc\tempe\let\tempd\tempa\else\let\tempd\tempb\fi\tempd}
\def\gobble#1{}
\font\tengr=grreg10
\font\tengrbf=grbld10
\font\tengrtt=grtt10
\def\greekmode{%
\catcode`\<=13
\catcode`\>=13
\catcode`\'=11
\catcode`\`=11
\catcode`\~=11
\catcode`\"=11
\catcode`\|=11
\lccode`\<=`\<%
\lccode`\>=`\>%
\lccode`\'=`\'%
\lccode`\`=`\`%
\lccode`\~=`\~%
\lccode`\"=`\"%
\lccode`\|=`\|%
\tengr\def\bf{\tengrbf}\def\tt{\tengrtt}}
\newcount\vwl
\newcount\acct
\def\lt{<}
\def\gt{>}
{
\greekmode
\gdef>{\ifnextchar `{\expandafter\smoothgrave\gobble}{\char\lq\>}}
\gdef<{\ifnextchar `{\expandafter\roughgrave\gobble}{\char\lq\<}}
\gdef\smoothgrave#1{\acct=\rq137 \vwl=\lq#1 \dobreathinggrave}
\gdef\roughgrave#1{\acct=\rq103 \vwl=\lq#1 \dobreathinggrave}
\gdef\dobreathinggrave{\ifnum\vwl\lt\rq140 %if uppercase
\char\the\acct\char\the\vwl\else\expandafter\testiota\fi}
\gdef\testiota{\ifnextchar |{\addiota\doaccent\gobble}{\doaccent}}
\gdef\addiota{\ifnum\vwl=\lq a\vwl=\rq370
\else\ifnum\vwl=\lq h\vwl=\rq371 \else\vwl=\rq372 \fi\fi}
\gdef\doaccent{\accent\the\acct \char\the\vwl\relax}
}
\newif\ifgreek\greekfalse
\def\begingreek{\bgroup\greektrue\greekmode}
\def\endgreek{\egroup}
\let\math=$
{\catcode`\$=13
\gdef\greekdelims{\catcode`\$=13
\def${\ifgreek\endgreek\else\begingreek\fi}
\def\display{\math\math}\def\enddisplay{\math\math}}}
|