home *** CD-ROM | disk | FTP | other *** search
- %% @texfile{
- %% filename="cyracc.def",
- %% version="2.1",
- %% date="31-MAY-1991",
- %% filetype="TeX: option",
- %% copyright="Copyright (C) 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.",
- %% author="American Mathematical Society",
- %% address="American Mathematical Society,
- %% Technical Support Department,
- %% P. O. Box 6248,
- %% Providence, RI 02940,
- %% USA",
- %% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
- %% email="Internet: Tech-Support@Math.AMS.org",
- %% codetable="ISO/ASCII",
- %% checksumtype="line count",
- %% checksum="273",
- %% keywords="amsfonts, tex, cyrillic",
- %% abstract="This file contains definitions of accents and
- %% special characters required for use of cyrillic fonts
- %% arranged according to the AMS scheme.
- %% 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.0 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)
- % e1 = '013; e2 = '015
- % 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)
- % E1 = '003; E2 = '005
- % 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)
- %
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-