summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/plain/amsfonts/cyracc.def
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/plain/amsfonts/cyracc.def')
-rw-r--r--Master/texmf-dist/tex/plain/amsfonts/cyracc.def285
1 files changed, 285 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/plain/amsfonts/cyracc.def b/Master/texmf-dist/tex/plain/amsfonts/cyracc.def
new file mode 100644
index 00000000000..2b183b98be6
--- /dev/null
+++ b/Master/texmf-dist/tex/plain/amsfonts/cyracc.def
@@ -0,0 +1,285 @@
+%%% ====================================================================
+%%% @TeX-file{
+%%% filename = "cyracc.def",
+%%% version = "2.2b",
+%%% date = "26 February 1997",
+%%% time = "15:26:08 EST",
+%%% checksum = "¤50915 285 1398 10151",
+%%% author = "American Mathematical Society",
+%%% copyright = "Copyright (C) 1996 American Mathematical Society,
+%%% all rights reserved. Copying of this file is
+%%% authorized only if either:
+%%% (1) you make absolutely no changes to your copy,
+%%% including name; OR
+%%% (2) if you do make changes, you first rename it
+%%% to some other name.",
+%%% address = "American Mathematical Society,
+%%% Technical Support,
+%%% Electronic Products and Services,
+%%% P. O. Box 6248,
+%%% Providence, RI 02940,
+%%% USA",
+%%% telephone = "401-455-4080 or (in the USA and Canada)
+%%% 800-321-4AMS (321-4267)",
+%%% FAX = "401-331-3842",
+%%% email = "tech-support@ams.org (Internet)",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "amsfonts, tex, cyrillic",
+%%% supported = "yes",
+%%% abstract = "This file contains definitions of accents and
+%%% special characters required for use of cyrillic
+%%% fonts arranged according to the AMS scheme.",
+%%% docstring = "The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% }
+%%% ====================================================================
+%%
+%% The \font specification(s) should be made elsewhere, and should include
+%% \newfam\cyrfam
+%% \font\...cyr=wncyr... (e.g. \font\tencyr=wncyr10 )
+%% An appropriate definition for cyrillic, usable in math and text, is
+%% \def\cyr{\fam\cyrfam\...cyr\cyracc}
+%% More extensive instructions for using cyrillic fonts are included in
+%% the AMSFonts 2.2 User's Guide.
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\chardef\tempcat=\the\catcode`\@
+\catcode`\@=11
+
+% The first set of definitions is what will be in effect outside of cyrillic,
+% i.e., in transliterated text.
+
+% Definition of \cydot is not ideal; real dot should be in an accent font.
+\def\cydot{{\mathsurround=0pt$\cdot$}}
+
+% \ubar is the definition of \b from PLAIN; it may not work in math mode.
+\def\ubar#1{\oalign{#1\crcr\hidewidth
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}
+
+% Soft and hard signs are represented in transliteration by prime and
+% double prime respectively.
+\def\cprime{\/{\mathsurround=0pt$'$}}
+\def\Cprime{{\mathsurround=0pt$'$}}
+\def\cdprime{\/{\mathsurround=0pt$''$}}
+\def\Cdprime{{\mathsurround=0pt$\ubar{\hbox{$''$}}$}}
+
+\def\dbar{dj} % make real barred d when accent font available
+\def\Dbar{Dj} % ""
+
+% It would be nice to make these control sequences unnecessary; that will
+% probably require d to become active.
+\def\dz{dz}
+\def\Dz{Dz}
+\def\dzh{dzh\cydot }
+\def\Dzh{Dzh\cydot }
+
+
+% Stress marks are sometimes used in cyrillic text, mainly for pedagogic
+% reasons. These definitions support stress marks within {\cyr ...};
+% in transliteration, they are suppressed. Stress is indicated in
+% input by \! preceding a letter on which a stress mark is to appear;
+% an acute accent will appear in the output. Since \! is also a plain
+% command, for negative thin space in math mode, test for math mode and
+% include the plain definition as appropriate.
+
+\def\@gobble#1{}
+\def\@testgrave{\`}
+\def\@stressit{\futurelet\chartest\@stresschar }
+
+\def\@stresschar#1{%
+ \ifx #1y\def\result{\futurelet\chartest\@yligature}%
+ \else \ifx #1Y\def\result{\futurelet\chartest\@Yligature}%
+ \else \ifx\chartest\@testgrave \def\result{\accent"26 }%
+ \else \def\result{\accent"26 #1}%
+ \fi \fi \fi
+ \result }
+
+\def\@yligature{%
+ \ifx a\chartest \def\result{\accent"26 \char"1F \@gobble}%
+ \else \ifx u\chartest \def\result{\accent"26 \char"18 \@gobble}%
+ \else \def\result{\accent"26 y}%
+ \fi \fi
+ \result }
+
+\def\@Yligature{%
+ \ifx a\chartest \def\result{\accent"26 \char"17 \@gobble}%
+ \else \ifx A\chartest \def\result{\accent"26 \char"17 \@gobble}%
+ \else \ifx u\chartest \def\result{\accent"26 \char"10 \@gobble}%
+ \else \ifx U\chartest \def\result{\accent"26 \char"10 \@gobble}%
+ \else \def\result{\accent"26 Y}%
+ \fi \fi \fi \fi
+ \result }
+
+\def\!{\ifmmode \mskip-\thinmuskip \fi}
+
+
+% These are the definitions that will produce cyrillic letters within
+% {\cyr ...} for letters represented in input by control sequences and
+% accented latin letters.
+
+\def\cyracc{%
+ \def\cydot{{\kern0pt}}%
+ \def\cprime{\char"7E }\def\Cprime{\char"5E }%
+ \def\cdprime{\char"7F }\def\Cdprime{\char"5F }%
+ \def\dbar{dj}\def\Dbar{Dj}%
+ \def\dz{\char"1E }\def\Dz{\char"16 }%
+ \def\dzh{\char"0A }\def\Dzh{\char"02 }%
+ \def\'##1{\if c##1\char"0F %
+ \else \if C##1\char"07 %
+ \else \accent"26 ##1\fi \fi }%
+ \def\`##1{\if e##1\char"0B %
+ \else \if E##1\char"03 %
+ \else \errmessage{accent \string\` not defined in cyrillic}%
+ ##1\fi \fi }%
+ \def\=##1{\if e##1\char"0D %
+ \else \if E##1\char"05 %
+ \else \if \i##1\char"0C %
+ \else \if I##1\char"04 %
+ \else \errmessage{accent \string\= not defined in cyrillic}%
+ ##1\fi \fi \fi \fi }%
+ \def\u##1{\if \i##1\accent"24 i%
+ \else \accent"24 ##1\fi }%
+ \def\"##1{\if \i##1\accent"20 \char"3D %
+ \else \if I##1\accent"20 \char"04 %
+ \else \accent"20 ##1\fi \fi }%
+ \def\!{\ifmmode \def\result{\mskip-\thinmuskip}%
+ \else \def\result{\@stressit}\fi \result}}
+
+
+% If cyrillic strings are to be included in \mark's, the accents need
+% to be kept in unexpanded form until the \mark's are interpreted.
+% See note on \mark below for details.
+
+\def\keep@cyracc{\let\cyr=\relax \let\i=\relax
+ \let\ubar=\relax \let\cydot=\relax
+ \let\cprime=\relax \let\Cprime=\relax
+ \let\cdprime=\relax \let\Cdprime=\relax
+ \let\dbar=\relax \let\Dbar=\relax
+ \let\dz=\relax \let\Dz=\relax
+ \let\dzh=\relax \let\Dzh=\relax
+ \let\'=\relax \let\`=\relax \let\==\relax
+ \let\u=\relax \let\"=\relax \let\!=\relax }
+
+
+\catcode`\@=\tempcat
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ***** CYRACC.DEF *****
+%
+% Access to the cyrillic is through the MR 1980 transliteration scheme,
+% using TeX/Metafont ligature capability. (An alternate set of ligatures
+% exists, for accessing letters beyond the 26 located in the font positions
+% of the 26 roman letters. An authoritative list of the ligature rules is
+% given below, under the heading Ligatures.) Successful use of this file
+% requires appropriate cyrillic and accent fonts, arranged according to
+% the AMS/MR scheme.
+%
+% There are some weaknesses in this ligaturing and accent system.
+% The following are known to be less than satisfactory:
+%
+% the intermediate `ligatures' for shch access numerals;
+% primes (transliteration of hard/soft signs) use math mode;
+% underbar on `cap' double prime is too low (hard sign);
+% thorn d's don't yet exist;
+% \cydot uses math mode;
+% this scheme is not compatible with automatic Russian hyphenation.
+%
+%
+% Notes on the macros:
+%
+% The single space following each hex character code is necessary
+% to prevent the next input character from being gobbled.
+%
+%
+% Note on \mark :
+%
+% Control sequences such as these cyrillic accents should remain
+% unexpanded when generating \mark's; otherwise, the definition of
+% the expanded strings in effect when the \mark is used may be
+% inappropriate. By \let\...=\relax , the \... takes on the important
+% characteristic of a primitive that it will not be expanded further.
+% The following code has been shown to generate correct \mark entries
+% that can be used successfully in running heads:
+%
+% \newtoks\marktoks
+% \def\domark{\keep@cyracc \mark{\the\marktoks}}
+%
+% In running heads, the marks should be accessed using \the to expand
+% the tokens strings properly.
+%
+%
+% Ligatures
+%
+% This is a list of all the letter ligatures in the AMS cyrillic fonts,
+% and in other cyrillic fonts (such as those developed at the University
+% of Washington that use the AMS arrangement).
+%
+% LOWER CASE LIGATURES
+%
+% A. All-letter ligatures
+%
+% ch = `q
+% dj = '016
+% kh = `h
+% lj = '011
+% nj = '010
+% sh = `x; xc = `7 (shc); 7h = `w (shch)
+% ts = `c
+% ya = '037
+% yu = '030
+% zh = '031
+%
+% B. Ligatures with keyed numerals
+%
+% c1 = '017
+% d1 = '016 (dj); d2 = '012 (dzh); d3 = '036 (dz)
+% e0 = '033; e1 = '013; e2 = '015
+% i0 = '032; i1 = '014
+% j1 = '037 (ya); j2 = '030 (yu)
+% l1 = '011 (lj)
+% n1 = '010 (nj)
+% p1 = '176; p2 = '177
+% z1 = '031 (zh)
+%
+% UPPER CASE LIGATURES
+% A. All-letter ligatures
+%
+% CH, Ch = `Q
+% KH, Kh = `H
+% LJ, Lj = '001
+% NJ, Nj = '000
+% SH, Sh = `X; XH, Xh = `6 (SHC, SHc, Shc);
+% 6H, 6h = `W (SHCH, SHCh, SHch, Shch)
+% TS, Ts = `C
+% YA, Ya = '027
+% YU, Yu = '020
+% ZH, Zh = '021
+%
+% B. Ligatures with keyed numerals
+%
+% C1 = '007
+% D1 = '006 (DJ); D2 = '002 (DZH); D3 = '026 (DZ)
+% E0 = '023; E1 = '003; E2 = '005
+% I0 = '022; I1 = '004
+% J1 = '027 (YA); J2 = '020 (YU)
+% L1 = '001 (LJ)
+% N0 = '175 (Number sign); N1 = '000 (NJ)
+% P1 = '136; P2 = '137
+% Z1 = '021 (ZH)
+%
+% DEACTIVATED LIGATURES
+%
+% The dzh and DZH ligatures were originally built in the following manner,
+% but the results were not compatible with desired keyboarding schemes.
+%
+% dz = '036; '036(roman s)h = '012 (dzh)
+% DZ = '026; '026(roman S)H = '002 (DZH)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%