diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/cyrmemo |
Initial commit
Diffstat (limited to 'macros/latex209/contrib/cyrmemo')
-rw-r--r-- | macros/latex209/contrib/cyrmemo/cyracc.def | 272 | ||||
-rw-r--r-- | macros/latex209/contrib/cyrmemo/cyrmemo.def | 81 | ||||
-rw-r--r-- | macros/latex209/contrib/cyrmemo/cyrmemo.tex | 143 |
3 files changed, 496 insertions, 0 deletions
diff --git a/macros/latex209/contrib/cyrmemo/cyracc.def b/macros/latex209/contrib/cyrmemo/cyracc.def new file mode 100644 index 0000000000..ddc4aaaf75 --- /dev/null +++ b/macros/latex209/contrib/cyrmemo/cyracc.def @@ -0,0 +1,272 @@ +%% filename: cyracc.def +%% version: 2.2b +%% date: 2001/10/01 +%% +%% American Mathematical Society +%% Technical Support +%% Publications Technical Group +%% 201 Charles Street +%% Providence, RI 02904 +%% USA +%% tel: (401) 455-4080 +%% (800) 321-4267 (USA and Canada only) +%% fax: (401) 331-3842 +%% email: tech-support@ams.org +%% +%% Copyright 1996, 2001, 2009 American Mathematical Society. +%% +%% Unlimited copying and redistribution of this file are permitted as +%% long as this file is not modified. Modifications, and distribution +%% of modified versions, are permitted, but only if the resulting file +%% is renamed. +%% +%% ==================================================================== +%% +%% This file is intended for use only with Plain TeX and AMS-TeX. +%% It is not compatible with LaTeX. +%% +%% 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) +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/macros/latex209/contrib/cyrmemo/cyrmemo.def b/macros/latex209/contrib/cyrmemo/cyrmemo.def new file mode 100644 index 0000000000..cb2c52e97a --- /dev/null +++ b/macros/latex209/contrib/cyrmemo/cyrmemo.def @@ -0,0 +1,81 @@ +% ***** CYRMEMO.DEF ***** 11 Aug 85, bb +% +% This file contains the instructions necessary to produce the memos +% which describe the use of the AMS cyrillic font. PLAIN is presumed +% to be preloaded. The cyrillic 10-point font is required, as is +% the file CYRACC.DEF. + +\newfam\cyrfam +\font\tencyr=mcyr10 +\font\tensmc=amcsc10 \def\smc{\tensmc} + +\input cyracc.def + +\def\cyr{\tencyr\cyracc} + + +\newif\iffirstpage +\firstpagetrue +\newdimen\pagelgt +\pagelgt=9in +\newbox\letterhead +\setbox\letterhead=\vbox{\vskip 1pc + \vbox to 0pt{\halign{\hss{#}\hss\cr + \bf American Mathematical Society\cr + P.\thinspace O.~Box 6248\cr + Providence, RI 02940\cr}\vss}} +\vsize=\pagelgt +\advance\vsize by-\ht\letterhead + +\headline={\iffirstpage \centerline{\bf INTEROFFICE MEMORANDUM}\else + \line{\ssub \hfil \rdate\quad Page \folio}\fi} +\footline={\iffirstpage \rightline{\box\letterhead}\global\vsize=\pagelgt + \global\firstpagefalse \fi} + +\def \topitem#1#2{\leavevmode \hangindent 5pc \hbox to 5pc{\bf #1\hss}#2\par } + +\def \toname #1<{\gdef\mto{\topitem{To:}{#1}}} +\def \fromname #1<{\gdef\mfrom{\topitem{From:}{#1}}} +\def \longsub #1<{\gdef\lsub{\topitem{Subject:}{#1}}} +\def \shortsub #1<{\gdef\ssub{#1}} + +\def \date #1<{\gdef\mdate{\topitem{\bf Date:}{#1}} + \gdef\rdate{#1}} + +\def \topinfo{{\parindent=0pt + \parskip=.5\baselineskip + \def \\{\hfil\break } + \mdate + \mto + \mfrom + \lsub + \vskip\baselineskip }} + + +% Support verbatim listing of TeX source, as defined in TeXbook, p. 421 +% lifted from MANMAC.TEX, and modified slightly as for TUGboat + +\chardef\other=12 +\def\ttverbatim{\begingroup + \catcode`\\=\other \catcode`\{=\other + \catcode`\}=\other \catcode`\$=\other \catcode`\&=\other + \catcode`\#=\other \catcode`\%=\other \catcode`\~=\other + \catcode`\_=\other \catcode`\^=\other + \obeyspaces \obeylines \tt} + +\newdimen\ttrightskip +\ttrightskip=5pc + +\outer\def\begintt{$$\let\par=\endgraf \ttverbatim \parskip=\z@ + \catcode`\|=0 \rightskip=-\ttrightskip \ttfinish} +{\catcode`\|=0 |catcode`|\=\other % | is temporary escape character + |obeylines % end of line is active + |gdef|ttfinish#1^^M#2\endtt{#1|vbox{#2}|endgroup$$}} + +\catcode`\|=\active +{\obeylines \gdef|{\ttverbatim \spaceskip\ttglue \let^^M=\ \let|=\endgroup}} + +\newskip\ttglue +{\tentt \global\ttglue=.5em plus .25em minus .15em} +% this should be installed in each font + diff --git a/macros/latex209/contrib/cyrmemo/cyrmemo.tex b/macros/latex209/contrib/cyrmemo/cyrmemo.tex new file mode 100644 index 0000000000..2eeb85f715 --- /dev/null +++ b/macros/latex209/contrib/cyrmemo/cyrmemo.tex @@ -0,0 +1,143 @@ +\input cyrmemo.def + +\date 12 August 1985< +\fromname Barbara N. Beeton\\ + Computer Services Division< + +\toname Users of AMS cyrillic in \TeX< + +\longsub \TeX82 Cyrillic input instructions< +\shortsub \TeX82 Cyrillic input< + +\topinfo + +The AMS cyrillic fonts have been designed so that input using the +``new'' (post-1982) Math.~Reviews cyrillic transliteration will be +converted directly to cyrillic text. An alternate input form is +available for most cyrillic letters which are not transliterated by +the equivalent single roman letters. Numerals and punctuation follow +the normal input conventions for roman. Cyrillic is indicated to +\TeX\ by the command |{\cyr...}|. + +The table below is in alphabetical order as given in the table published +in the 1983 MR Author Index. The three paired columns contain:\ \ % +(1)~cyrillic; +(2)~transliteration-style input; +(3)~alternate input, if any. + +\bigskip + +\parindent=0pt +\parskip=0pt +\baselineskip=15pt + +\newbox\BoxA +\newbox\BoxB + +\def\TwoUp{\centerline{% + \valign{##\vfil\cr + \box\BoxA\cr + \noalign{\hfil\vrule\hfil} + \box\BoxB\cr}}} + +\newbox\TestBox +\setbox\TestBox=\hbox{\quad\cyr Zh} +\newdimen\cyrwd +\cyrwd=\wd\TestBox +\setbox\TestBox=\hbox{\enskip\tt xCdprime} +\newdimen\ttawd +\ttawd=\wd\TestBox +\setbox\TestBox=\hbox{\enskip\tt N0} +\newdimen\ttbwd +\ttbwd=\wd\TestBox + + +\settabs \+\hskip\cyrwd &\hskip\cyrwd\quad + &\hskip\ttawd &\hskip\ttawd\quad + &\hskip\ttbwd &\hskip\ttbwd\cr + +% \def\1 #1,#2;#3,#4;#5,#6<{\+{\cyr\ignorespaces#1}% +% &{\cyr\ignorespaces#2\hfil}% +% &\ignorespaces#3\hfil &\ignorespaces#4\hfil +% &{\tt\ignorespaces#5\hfil}&{\tt\ignorespaces#6\hfil}} + +\setbox\BoxA=\vbox{\hsize=.45\hsize \tt +\+{\cyr A}&{\cyr a}& |A| & |a| & & \cr +\+{\cyr B}&{\cyr b}& |B| & |b| & & \cr +\+{\cyr V}&{\cyr v}& |V| & |v| & & \cr +\+{\cyr G}&{\cyr g}& |G| & |g| & & \cr +\+{\cyr D}&{\cyr d}& |D| & |d| & & \cr +\+{\cyr Dj}&{\cyr dj}& |Dj| & |dj| & D1 & d1\cr +\+{\cyr \'G}&{\cyr \'g}& |\'G| & |\'g| & & \cr +\+{\cyr E}&{\cyr e}& |E| & |e| & & \cr +\+{\cyr \"E}&{\cyr \"e}& |\"E| & |\"e| & & \cr +\+{\cyr \=E}&{\cyr \=e}& |\=E| & |\=e| & E2 & e2\cr +\+{\cyr Zh}&{\cyr zh}& |Zh| & |zh| & Z1 & z1\cr +\+{\cyr Z}&{\cyr z}& |Z| & |z| & & \cr +\+{\cyr I}&{\cyr i}& |I| & |i| & & \cr +\+{\cyr \=I}&{\cyr \=\i}& |\=I| & |\=\i| & I1 & i1\cr +\+{\cyr \"I}&{\cyr \"\i}& |\"I| & |\"\i| & & \cr +\+{\cyr J}&{\cyr j}& |J| & |j| & & \cr +\+{\cyr \u I}&{\cyr \u\i}& |\u I| & |\u\i| & & \cr +\+{\cyr K}&{\cyr k}& |K| & |k| & & \cr +\+{\cyr L}&{\cyr l}& |L| & |l| & & \cr +\+{\cyr Lj}&{\cyr lj}& |Lj| & |lj| & L1 & l1\cr +\+{\cyr M}&{\cyr m}& |M| & |m| & & \cr +\+{\cyr N}&{\cyr n}& |N| & |n| & & \cr +\+{\cyr Nj}&{\cyr nj}& |Nj| & |nj| & N1 & n1\cr +\+{\cyr O}&{\cyr o}& |O| & |o| & & \cr +\+{\cyr P}&{\cyr p}& |P| & |p| & & \cr +} % end \BoxA + +\setbox\BoxB=\vbox{\hsize=.45\hsize \tt +\+{\cyr R}&{\cyr r}& |R| & |r| & & \cr +\+{\cyr S}&{\cyr s}& |S| & |s| & & \cr +\+{\cyr T}&{\cyr t}& |T| & |t| & & \cr +\+{\cyr \'C}&{\cyr \'c}& |\'C| & |\'c| & C1 & c1\cr +\+{\cyr \'K}&{\cyr \'k}& |\'K| & |\'k| & & \cr +\+{\cyr U}&{\cyr u}& |U| & |u| & & \cr +\+{\cyr \u U}&{\cyr \u u}& |\u U| & |\u u| & & \cr +\+{\cyr F}&{\cyr f}& |F| & |f| & & \cr +\+{\cyr Kh}&{\cyr kh}& |Kh| & |kh| & H & h\cr +\+{\cyr Ts}&{\cyr ts}& |Ts| & |ts| & C & c\cr +\+{\cyr Ch}&{\cyr ch}& |Ch| & |ch| & Q & q\cr +\+{\cyr \Dzh}&{\cyr \dzh}& |\Dzh| & |\dzh| & D2 & d2\cr +\+{\cyr Sh}&{\cyr sh}& |Sh| & |sh| & X & x\cr +\+{\cyr Shch}&{\cyr shch}& |Shch| & |shch| & W & w\cr +\+{\cyr \Cdprime}&{\cyr \cdprime}& |\Cdprime| & |\cdprime| & P2 & p2\cr +\+{\cyr Y}&{\cyr y}& |Y| & |y| & & \cr +\+{\cyr \Cprime}&{\cyr \cprime}& |\Cprime| & |\cprime| & P1 & p1\cr +\+{\cyr \`E}&{\cyr \`e}& |\`E| & |\`e| & E1 & e1\cr +\+{\cyr Yu}&{\cyr yu}& |Yu| & |yu| & J2 & j2\cr +\+{\cyr Ya}&{\cyr ya}& |Ya| & |ya| & J1 & j1\cr +\+{\cyr \Dz}&{\cyr \dz}& |\Dz| & |\dz| & D3 & d3\cr +\+{\cyr N0}& & & & N0 & \cr +\+{\cyr <}& & |<| & & & \cr +\+{\cyr >}& & |>| & & & \cr +\+\hbox to \hsize{}\cr +} % end \BoxB + +\TwoUp + +\bigskip +\normalbaselines + +\noindent In addition to the input codes shown in the table, the code +|\cydot| is used between letters that ordinarily become ligatures to +indicate that they are really separate letters. For example, +|t\cydot s|${}\mapsto{}${\cyr t\cydot s} (in transliteration, t\cydot s) +as opposed to |ts|${}\mapsto{}${\cyr ts}. + +\medskip + +\noindent {\bf Technical notes:}\ \ The names of the AMS cyrillic fonts +begin with the letters ``|MC|'' (for ``Math Society cyrillic''). Only +|MCYR| (lightface) is available at present, but several other styles +are under construction: |MCB| (bold), |MCSS| (sans serif), +|MCSSB| (bold sans serif), and others may be added from time to time. +These fonts were prepared using {\smc Metafont79}. +In addition to the font files, the file |CYRACC.DEF| must also be +input for the complete cyrillic alphabet to be usable according to these +instructions. + +\vfil\end |