summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/contrib/timesmat.sty
blob: 94a4edd2044389d8b7ca1ff5046d074b723a80ef (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
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
\message{timesmat.sty - original by KHC, edited by DIL for pt sizes}
% This style uses Times Roman as much as possible in math mode.
% It is a replacement for times.sty, not an addition
%
\def\fileversion{PSNFSS 2.4}
\def\filedate{16.7.93}
\immediate\write\sixt@@n{File: `timesmat.sty'
\fileversion\ <\filedate> (KHC, DIL, SH)}
% Copyright 1993 by Kin Hoong Chung.
% 
% You are allowed to distribute this file.  You are not allowed to
% charge money for the distribution of this file.
% 
% May need further hacking, depending on the version of Times encoding
% that you use.  The version I use has the various capital Greek
% letters hacked in from Symbol.  This is not fully tested... it may
% be missing some other maths characters or text characters for TeX.
% Seems to be compatible with AMS-LaTeX.
% 
% Altered by Dave Laurenson (dil@castle.ed.ac.uk) to work with
% oldlfont.sty and 10pt, 11pt and 12pt document styles.
% The same changes also made by Sven Heemeyer. Thanks to both.
%
% merged together by S Rahtz July 1993
% ------------------------------------------------------------
% Known bugs:
% 
% Times italic maths characters should have their own TFM, AFM, etc, for
% better spacing of fonts.
% 
% Room for directly addressable maths mode fonts seems to be limited, I
% don't know why yet...
% 
% Postscript accents behave in a different way to CMR accents, so that
% there is \mathaccent fails.  Present correction merely replaces the
% Times accents with CMR ones.  Accents in maths mode should be Times accents.

% check if nfss exists
\@ifundefined{selectfont}
     {\@latexerr{`timesmat' style option can only be used
                  with the new font selection scheme}\@eha
      \endinput}{}
% 
\ifx\declare@font\undefined
  \input{psnfss.sup}\fi
% 
% load required PostScript (tm) fonts.
\def\load@courier{%
\postscript@fontdef{Courier}{courier}%
{pcrr}{pcrro}{pcrb}{pcrbo}{pcrr}{pcrr}
}
\def\load@helvetica{%
\postscript@fontdef[.85333]{Helvetica}{helvetica}%
{phvr}{phvro}{phvb}{phvbo}{phvrc}{phvro}
}
\def\load@times{%
\postscript@fontdef{Times}{times}%
{ptmr}{ptmri}{ptmb}{ptmbi}{ptmrc}{ptmro}
}
% 
\romanfont{times} %make default Roman font Times-Roman.
\sansfont{helvetica} %Sans serif is Helvetica
\typewriterfont{courier} %\tt is Courier

\def\default@family{times} %Tell AMS-LaTeX that Times-Roman is default.

% put back dotless i,j
% \def\i{{\family{cmr}\selectfont\char"10}}
\def\j{{\family{cmr}\selectfont\char"11}}

% Make Times the default maths font.
\late@define@mathgroup\mv@normal{0}
                 {times}{m}{n}
\late@define@mathgroup\mv@normal{1}
                 {times}{m}{it}
% Tell TeX that Times is the default maths font.

\expandafter\font\csname times/m/n/10\endcsname=ptmr
\textfont0=\csname times/m/n/10\endcsname
\scriptfont0=\csname times/m/n/10\endcsname
\scriptscriptfont0=\csname times/m/n/10\endcsname

\expandafter\font\csname times/m/it/10\endcsname=ptmri
\textfont1=\csname times/m/it/10\endcsname
\scriptfont1=\csname times/m/it/10\endcsname
\scriptscriptfont1=\csname times/m/it/10\endcsname

% make the \boldmath option work in Times.
\late@define@mathgroup\mv@bold{0}
                 {times}{bx}{n}
\late@define@mathgroup\mv@bold{1}
                 {times}{bx}{it}

% Put cmmi back into TeX, as a new maths alphabet, so that we can get
% back the Greek & other characters missing in Times.
\def\cmmath{\protect\pcmmath}
\def\pcmmath{\RIfM@\expandafter\cmmath@\else
                 \expandafter\nonmatherr@\expandafter\cmmath\fi}
\late@newmathalphabet\cmmath@
% find out which \textfont holds cmmi
\edef\@tempa{\number\cmmath@@group}%
% Tell TeX where cmmi is.
% Assumes \@ptsize is defined by article, report, book
\ifcase \@ptsize
  \textfont\@tempa=\csname cmm/m/it/10\endcsname
  \scriptfont\@tempa=\csname cmm/m/it/7\endcsname
  \scriptscriptfont\@tempa=\csname cmm/m/it/5\endcsname
\or
  \textfont\@tempa=\csname cmm/m/it/11\endcsname
  \scriptfont\@tempa=\csname cmm/m/it/7\endcsname
  \scriptscriptfont\@tempa=\csname cmm/m/it/5\endcsname
\or
  \textfont\@tempa=\csname cmm/m/it/12\endcsname
  \scriptfont\@tempa=\csname cmm/m/it/8\endcsname
  \scriptscriptfont\@tempa=\csname cmm/m/it/6\endcsname
\fi
% make sure bold version gets bold characters
\late@define@mathgroup\mv@normal{\@tempa}
                 {cmm}{m}{it}
\late@define@mathgroup\mv@bold{\@tempa}
                 {cmm}{b}{it}
\edef\@tempa{\hexnumber@\cmmath@@group}%

% cmmi and Times-italic have different positions for some punctuation marks
% \mathcode`\ ="8000 % \space
% \mathcode`\!="5021
% \mathcode`\'="8000 % ^\prime
% \mathcode`\(="4028
% \mathcode`\)="5029
% \mathcode`\*="22.4 % \ast
% \mathcode`\+="202B
\mathcode`\,="602C
% \mathcode`\-="2200
\mathcode`\.="002E
\mathcode`\/="002F
% \mathcode`\:="303A
% \mathcode`\;="603B
\mathcode`\<="303C
% \mathcode`\=="303D
\mathcode`\>="303E
% \mathcode`\?="503F
% \mathcode`\[="405B
% \mathcode`\\="026E % \backslash
% \mathcode`\]="505D
% \mathcode`\_="8000 % \_
% \mathcode`\{="4266
% \mathcode`\|="026A
% \mathcode`\}="5267
\mathchardef\ldotp="602E % ldot as a punctuation mark
 
% Put back the missing lowercase Greek characters.
\mathchardef\alpha="0\@tempa 0B
\mathchardef\beta="0\@tempa 0C
\mathchardef\gamma="0\@tempa 0D
\mathchardef\delta="0\@tempa 0E
\mathchardef\epsilon="0\@tempa 0F
\mathchardef\zeta="0\@tempa 10
\mathchardef\eta="0\@tempa 11
\mathchardef\theta="0\@tempa 12
\mathchardef\iota="0\@tempa 13
\mathchardef\kappa="0\@tempa 14
\mathchardef\lambda="0\@tempa 15
\mathchardef\mu="0\@tempa 16
\mathchardef\nu="0\@tempa 17
\mathchardef\xi="0\@tempa 18
\mathchardef\pi="0\@tempa 19
\mathchardef\rho="0\@tempa 1A
\mathchardef\sigma="0\@tempa 1B
\mathchardef\tau="0\@tempa 1C
\mathchardef\upsilon="0\@tempa 1D
\mathchardef\phi="0\@tempa 1E
\mathchardef\chi="0\@tempa 1F
\mathchardef\psi="0\@tempa 20
\mathchardef\omega="0\@tempa 21
\mathchardef\varepsilon="0\@tempa 22
\mathchardef\vartheta="0\@tempa 23
\mathchardef\varpi="0\@tempa 24
\mathchardef\varrho="0\@tempa 25
\mathchardef\varsigma="0\@tempa 26
\mathchardef\varphi="0\@tempa 27

% Put back other missing characters.
\mathchardef\imath="0110
\mathchardef\jmath="0\@tempa 7C
\mathchardef\ell="0\@tempa 60
\mathchardef\wp="0\@tempa 7D
\mathchardef\partial="0\@tempa 40
\mathchardef\flat="0\@tempa 5B
\mathchardef\natural="0\@tempa 5C
\mathchardef\sharp="0\@tempa 5D
\mathchardef\smile="3\@tempa 5E
\mathchardef\frown="3\@tempa 5F
\mathchardef\leftharpoonup="3\@tempa 28
\mathchardef\leftharpoondown="3\@tempa 29
\mathchardef\rightharpoonup="3\@tempa 2A
\mathchardef\rightharpoondown="3\@tempa 2B
\mathchardef\lhook="3\@tempa 2C \def\hookrightarrow{\lhook\joinrel\rightarrow}
\mathchardef\rhook="3\@tempa 2D \def\hookleftarrow{\leftarrow\joinrel\rhook}
\mathchardef\star="2\@tempa 3F
\mathchardef\vecMC="0\@tempa 7E
\def\vec{\mathaccent\the\vecMC }

% Get all the missing cmr characters back for maths mode
\def\cmrmath{\protect\pcmrmath}
\def\pcmrmath{\RIfM@\expandafter\cmrmath@\else
                 \expandafter\nonmatherr@\expandafter\cmrmath\fi}
\late@newmathalphabet\cmrmath@
% find out which \textfont holds cmr
\edef\@tempa{\number\cmrmath@@group}%
% Tell TeX where cmr is.
\ifcase\@ptsize
  \textfont\@tempa=\csname cmr/m/n/10\endcsname
  \scriptfont\@tempa=\csname cmr/m/n/7\endcsname
  \scriptscriptfont\@tempa=\csname cmr/m/n/5\endcsname%
\or
  \textfont\@tempa=\csname cmr/m/n/11\endcsname
  \scriptfont\@tempa=\csname cmr/m/n/7\endcsname
  \scriptscriptfont\@tempa=\csname cmr/m/n/5\endcsname%
\or
  \textfont\@tempa=\csname cmr/m/n/12\endcsname
  \scriptfont\@tempa=\csname cmr/m/n/8\endcsname
  \scriptscriptfont\@tempa=\csname cmr/m/n/6\endcsname
\fi
% make sure bold version gets bold characters
\late@define@mathgroup\mv@normal{\@tempa}
                 {cmr}{m}{n}
\late@define@mathgroup\mv@bold{\@tempa}
                 {cmr}{bx}{n}
\edef\@tempa{\hexnumber@\cmrmath@@group}%
 
% %Put back the missing capital Greek letters.
% \mathchardef\Gamma="7\@tempa 00
% \mathchardef\Delta="7\@tempa 01
% \mathchardef\Theta="7\@tempa 02
% \mathchardef\Lambda="7\@tempa 03
% \mathchardef\Xi="7\@tempa 04
% \mathchardef\Pi="7\@tempa 05
% \mathchardef\Sigma="7\@tempa 06
% \mathchardef\Upsilon="7\@tempa 07
% \mathchardef\Phi="7\@tempa 08
% \mathchardef\Psi="7\@tempa 09
% \mathchardef\Omega="7\@tempa 0A
 
% Postscript accents behave differently to the way TeX expects... and
% \mathaccent is a primitive command, so it cannot be changed!!!
\mathchardef\acuteMC="7\@tempa 13
\def\acute{\mathaccent\the\acuteMC }
\mathchardef\graveMC="7\@tempa 12
\def\grave{\mathaccent\the\graveMC }
\mathchardef\ddotMC="7\@tempa 7F
\def\ddot{\mathaccent\the\ddotMC }
\mathchardef\tildeMC="7\@tempa 7E
\def\tilde{\mathaccent\the\tildeMC }
\mathchardef\barMC="7\@tempa 16
\def\bar{\mathaccent\the\barMC }
\mathchardef\breveMC="7\@tempa 15
\def\breve{\mathaccent\the\breveMC }
\mathchardef\checkMC="7\@tempa 14
\def\check{\mathaccent\the\checkMC }
\mathchardef\hatMC="7\@tempa 5E
\def\hat{\mathaccent\the\hatMC }
\mathchardef\dotMC="7\@tempa 5F
\def\dot{\mathaccent\the\dotMC }

\ifx\csname amstex.sty\endcsname\relax
{}
\else
\def\Makeacce@#1#2{\def#1{\RIfM@\DN@{\mathaccent@
 {#2 }}\else\DN@{\nonmatherr@{#1}}\fi\next@}}

\Makeacce@\Hat{\the\hatMC }
\Makeacce@\Check{\the\checkMC }
\Makeacce@\Tilde{\the\tildeMC }
\Makeacce@\Acute{\the\acuteMC }
\Makeacce@\Grave{\the\graveMC }
\Makeacce@\Dot{\the\dotMC }
\Makeacce@\Ddot{\the\ddotMC }
\Makeacce@\Breve{\the\breveMC }
\Makeacce@\Bar{\the\barMC }
\def\Vec{\RIfM@\DN@{\mathaccent@{\the\vecMC }}}
\fi

% fix \bold in AMS-LaTeX so it produces bold Times-Roman text rather than
% bold Computer-Modern-Roman.  If you are not using AMS-LaTeX, you may get
% \bold as a new maths mode operator for free.
\late@newmathalphabet*{\timesrmbf}{times}{bx}{n}
\def\bold{\timesrmbf}

\def\hbar{{\mathchar'26\mkern-7muh}}
\def\neq{{\not\mkern1.5mu=}} \let\ne=\neq
\endinput