summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/misc/dpccyr.sty
blob: 3dd96abd66f2363d2ff895d9d8f307b61cfb16dd (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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
%%% ====================================================================
%%%  @LaTeX-style-file{
%%%     author          = "David Carlisle",
%%%     version         = "1.00",
%%%     date            = "09 December 1991",
%%%     time            = "17:33:06 BST",
%%%     filename        = "dpccyr.sty",
%%%     address         = "Computer Science Department
%%%                        Manchester University
%%%                        Oxford Road
%%%                        Manchester
%%%                        England
%%%                        M13 9PL",
%%%     telephone       = "+44 61 275 6139",
%%%     FAX             = "+44 61 275 6236",
%%%     checksum        = "39898 262 918 8382",
%%%     email           = "carlisle@cs.man.ac.uk (Internet)",
%%%     codetable       = "ISO/ASCII",
%%%     keywords        = "LaTeX, cyrillic, NFSS",
%%%     supported       = "yes",
%%%     docstring       = "
%%%
%%%     dpccyr.sty (cyrillic.sty)
%%%
%%%     Loads the UWcyr fonts for the NFSS.
%%%     This file may be installed as cyrillic.sty but should be
%%%     distributed as dpccyr.sty to avoid name clashes with other,
%%%     possibly better, cyrillic options.
%%%
%%%     The checksum field above was produced by
%%%     Robert Solovay's checksum utility.",
%%%  }
%%% ====================================================================
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%<*x>
% This file may be used without modification as a style (.sty) file.
%
% If you have Mittelbach's doc.sty, this file may be formatted with a
% command like:
%                latex dpccyr.sty
%
% If you have the Mittelbach/Duchier/Braams docstrip utility, you may
% produce a faster loading .sty file.  Rename this file to: dpccyr.doc
% Then run this file through *plain* TeX:
%                tex dpccyr.doc
% This should produce the file dpccyr.sty.
% If you do not have plain TeX on your system, you can trick LaTeX into
% doing the work as follows:
%                latex \def\fmtname{plain} \input dpccyr.doc
% Note that you may need to quote the arguments here to stop your
% operating system treating the \ characters incorrectly.
%
%                latex dpccyr.doc
% Will produce a typeset version of the documentation, as above.
%
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\plain{plain}\ifx\fmtname\plain\csname fi\endcsname
     \def\batchfile{dpccyr.doc}
     \input docstrip
     \preamble

     Do not distribute the stripped version of this file.
     The checksum in the header refers to the documented version.

     \endpreamble
%                                                   =======
     \generateFile{dpccyr.sty}{t}{\from{dpccyr.doc}{fontdef}}
%                                                   =======
%     You do not need the fontdef option if you LaTeX format already has
%     the cyrillic fontdefs (eg fontdef.max). So you may just need:
%    \generateFile{dpccyr.sty}{t}{\from{dpccyr.doc}{}}
     \endinput
\fi
%
\ifcat a\noexpand @\let\next\relax\else\def\next{%
    \documentstyle[dpccyr,doc]{article}\MakePercentIgnore}\fi\next
%
%\def\eatmodule<#1>{}\eatmodule
%</x>
% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% \textwidth=355pt   ^^A Allow macrocode text with 72 columns.
% \CodelineIndex     ^^A Code lines numbered.
% \DisableCrossrefs  ^^A No Cross references.
% \MakeShortVerb{\|} ^^A |\foo| works like \verb+\foo+
%
%
% \title{dpccyr.sty\\(cyrillic.sty)}
% \author{D. P. Carlisle}
% \date{09 December 1991}
% \begin{document}
% \maketitle
%
% This file defines the commands:\\
% |\cyr|        normal weight upright cyrillic\\
% |\cyr\it|     normal weight italic cyrillic\\
% |\cyr\sc|     normal weight caps and small caps cyrillic\\
% |\cyr\bf|     bold weight upright cyrillic\\
% |\cyrss|      normal weight sans-serif cyrillic\\
% |\mathcyr|    same as |\cyr|, but set up for math-mode
%
% It should perhaps be noted that I know nothing at all about the
% Cyrillic alphabet, this is just a basic set of declarations to allow
% these fonts to be used in a \LaTeX\ based on the NFSS.
%
% This file may be installed as {\tt cyrillic.sty}, however it should be
% distributed as {\tt dpccyr.sty} to avoid name clashes with other,
% possibly better Cyrillic styles.
%
% \typeout{End of the Introduction and Examples.}
% \typein[\answer]%
%   {Do you want an annotated listing of the macro definitions (y/n) ?}
% \def\next{y}\ifx\answer\next\else\expandafter\stop\fi
%
% \section{The Macros}
%
% If your \LaTeX\ format is built with a fontdef file, like {\tt
% fontdef.max}, which contains the cyrillic font definitions, you may
% modify the |\generateFile| command in the preamble to this document,
% not to include the {\tt fontdef} option. {\tt docstrip} will then
% remove the following section from the stripped {\tt .sty} version of
% this file.
%
%    \begin{macrocode}
%<*fontdef>
\new@fontshape{UWCyr}{m}{n}{%
   <5>wncyr5%
   <6>wncyr6%
   <7>wncyr7%
   <8>wncyr8%
   <9>wncyr9%
   <10>wncyr10%
   <11>wncyr10 at10.95pt%
   <12>wncyr10 at12pt%
   <14>wncyr10 at14.4pt%
   <17>wncyr10 at17.28pt%
   <20>wncyr10 at20.74pt%
   <25>wncyr10 at24.88pt}{}

\new@fontshape{UWCyr}{m}{it}{%
   <5>wncyi5%
   <6>wncyi6%
   <7>wncyi7%
   <8>wncyi8%
   <9>wncyi9%
   <10>wncyi10%
   <11>wncyi10 at10.95pt%
   <12>wncyi10 at12pt%
   <14>wncyi10 at14.4pt%
   <17>wncyi10 at17.28pt%
   <20>wncyi10 at20.74pt%
   <25>wncyi10 at24.88pt}{}

\new@fontshape{UWCyr}{m}{sc}{%
   <5>wncysc10 at5pt%
   <6>wncysc10 at6pt%
   <7>wncysc10 at7pt%
   <8>wncysc10 at8pt%
   <9>wncysc10 at9pt%
   <10>wncysc10%
   <11>wncysc10 at10.95pt%
   <12>wncysc10 at12pt%
   <14>wncysc10 at14.4pt%
   <17>wncysc10 at17.28pt%
   <20>wncysc10 at20.74pt%
   <25>wncysc10 at24.88pt}{}

\new@fontshape{UWCyr}{b}{n}{%
   <5>wncyb5%
   <6>wncyb6%
   <7>wncyb7%
   <8>wncyb8%
   <9>wncyb9%
   <10>wncyb10%
   <11>wncyb10 at10.95pt%
   <12>wncyb10 at12pt%
   <14>wncyb10 at14.4pt%
   <17>wncyb10 at17.28pt%
   <20>wncyb10 at20.74pt%
   <25>wncyb10 at24.88pt}{}

\extra@def{UWCyr}{}{}

\new@fontshape{UWCyss}{m}{n}{%
   <5>wncyss8 at5pt%
   <6>wncyss8 at6pt%
   <7>wncyss8 at7pt%
   <8>wncyss8%
   <9>wncyss9%
   <10>wncyss10%
   <11>wncyss10 at10.95pt%
   <12>wncyss10 at12pt%
   <14>wncyss10 at14.4pt%
   <17>wncyss10 at17.28pt%
   <20>wncyss10 at20.74pt%
   <25>wncyss10 at24.88pt}{}

\extra@def{UWCyss}{}{}
%</fontdef>
%    \end{macrocode}
%
% The main definitions:
%    \begin{macrocode}
\input cyracc.def
%    \end{macrocode}
%
% Set up the user level font commands:
%    \begin{macrocode}
\extra@def{UWCyr}{}{\mathcyracc}
\def\cyr{\fontfamily{UWCyr}\cyracc\selectfont}
\def\cyrss{\fontfamily{UWCyss}\cyracc\selectfont}

\subst@fontshape{UWCyr}{bx}{n}{UWCyr}{b}{n}

\newmathalphabet{\mathcyr}
\addtoversion{normal}{\mathcyr}{UWCyr}{m}{n}
\addtoversion{bold}{\mathcyr}{UWCyr}{b}{n}
%    \end{macrocode}

% A version of |\cyracc| using |\mathchar| instead of
% |\char|, so the symbols come from the correct font. Can use
% |\fam=7| trick rather than get the cyrillic fontfamily out of
% |\mathcyr@group| as these symbols are only used within the scope (or
% argument) of |\mathcr|. This ought to be in {\tt cyrac.def}
% as it applies to any math-mode use of these fonts, not just \LaTeX.

%    \begin{macrocode}
\def\mathcyracc{%
  \def\cydot{{\kern0pt}}%
  \mathchardef\cprime"707E
  \mathchardef\Cprime"705E
  \mathchardef\cdprime"707F
  \mathchardef\Cdprime"705F
  \def\dbar{dj}\def\Dbar{Dj}%
  \mathchardef\dz"701E
  \mathchardef\Dz"7016
  \mathchardef\dzh"700A
  \mathchardef\Dzh"7002
  \def\'##1{\if c##1\mathchar"700F
    \else \if C##1\mathchar"7007
    \else \mathaccent"7026 ##1\fi \fi }%
  \def\`##1{\if e##1\mathchar"700B
    \else \if E##1\mathchar"7003
    \else \errmessage{accent \string\` not defined in cyrillic}%
        ##1\fi \fi }%
  \def\=##1{\if e##1\mathchar"700D
    \else \if E##1\mathchar"7005
    \else \if \i##1\mathchar"700C
    \else \if I##1\mathchar"7004
    \else \errmessage{accent \string\= not defined in cyrillic}%
        ##1\fi \fi \fi \fi }%
  \def\u##1{\if \i##1\mathaccent"7024 i%
    \else \mathaccent"7024 ##1\fi }%
  \def\"##1{\if \i##1\mathaccent"7020 \mathchar"703D
    \else \if I##1\mathaccent"7020 \mathchar"7004
    \else \mathaccent"7020 ##1\fi \fi }%
  \def\!{\mskip-\thinmuskip}}
%    \end{macrocode}

% \end{document}
\endinput