summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/cyrmemo
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/cyrmemo
Initial commit
Diffstat (limited to 'macros/latex209/contrib/cyrmemo')
-rw-r--r--macros/latex209/contrib/cyrmemo/cyracc.def272
-rw-r--r--macros/latex209/contrib/cyrmemo/cyrmemo.def81
-rw-r--r--macros/latex209/contrib/cyrmemo/cyrmemo.tex143
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