%JW> In article <11001369@MVB.SAIC.COM> PPARKER@TWSUVM.UC.TWSU.EDU writes: % >From: wiawkph@dutrun2.tudelft.nl (K.P. Hart) % >To everyone who _likes_ to use the black board bold letters: % >Here's a shortcut that I've been using for a while now: % >If in plain you say \input amssym.def % >or in LaTeX you say \documentstyle[...,amsfonts,...]{...} %JW> ^^^^^^^^ %JW> You must have NFSS LaTeX to use this option. %JW> How does one tell if one has NFSS LaTeX? Is there any way to use the %JW> amsfonts.sty file without NFSS LaTeX? Is there any other option as simple %JW> as the one mentioned by K. P. Hart for getting a blackboard-bold capital %JW> N? %You can check whether you have the NFSS by using \selectfont. If that is %defined you have NFSS. %Here is a style file I used with the old font selection scheme to get the %AMS characters: %%@texfile{% %% filename="mssym.sty", %% version="1.0", %% date="09-Dec-92", %% filetype="LaTeX: option", %% author="Piet van Oostrum'' %% address="Dept of Computer Science, Utrecht University, %% Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands.'', %% telephone="+31 30 531806'', %% email="Internet: piet@cs.ruu.nl", %% codetable="ISO/ASCII", %% keywords="latex, math symbol, amsfonts, msam, %% msbm", %% abstract="This is a \LaTeX{} option that defines symbol names for %% all the math symbols in the fonts MSAM and MSBM, of the AMSFonts (2.0+) %% package." %%} \expandafter\ifx\csname mssym.sty\endcsname\relax \expandafter\def\csname mssym.sty\endcsname{} \else\message{---already loaded}\endinput\fi \def\filename{mssym.sty} \def\fileversion{1.0} \def\filedate{09-Dec-1992} \immediate\write16{% LaTeX option `\filename' (\fileversion, \filedate)} %%% end of file header \def\RIfM@{\relax\protect\ifmmode} \def\boxz@{\box\z@} \def\setboxz@h{\setbox\z@\hbox} \def\wdz@{\wd\z@} \def\noaccents@{\def\accentclass@{0}} \def\Invalid@@{Invalid use of \string} \def\nonmatherr@#1{\err@ {\string#1\space allowed only in math mode}\@ehd} \@ifundefined{err@}{\def\err@{\@latexerr}}{} \def\hexnumber@#1{\ifnum#1<10 \number#1\else \ifnum#1=10 A\else\ifnum#1=11 B\else\ifnum#1=12 C\else \ifnum#1=13 D\else\ifnum#1=14 E\else\ifnum#1=15 F\fi\fi\fi\fi\fi\fi\fi} \def\msb@@ #1#2#3#4#5\cr#6{ms#6m#5} \def\msb@@@#1#2#3{\font\@msb\expandafter\msb@@\fontname\expandafter \the#22\cr#1#2#3=\@msb} \def\msb{\expandafter\ifx\the\textfont2\msb@font\else\msb@init\fi \the\textfont\msbfam\fam\msbfam} \newfam\msafam \newfam\msbfam \def\msb@init{\expandafter\let\expandafter\msb@font\the\textfont2 \msb@@@ a\textfont\msafam \msb@@@ a\scriptfont\msafam \msb@@@ a\scriptscriptfont\msafam \msb@@@ b\textfont\msbfam \msb@@@ b\scriptfont\msbfam \msb@@@ b\scriptscriptfont\msbfam} \msb@init {\catcode`\"=12 \edef\@tempa{\hexnumber@\msafam}% \edef\@tempb{\hexnumber@\msbfam}% \xdef\ulcorner{\delimiter"4\@tempa 70\@tempa 70 } \xdef\urcorner{\delimiter"5\@tempa 71\@tempa 71 } \xdef\llcorner{\delimiter"4\@tempa 78\@tempa 78 } \xdef\lrcorner{\delimiter"5\@tempa 79\@tempa 79 } \xdef\yen {\noexpand\mathhexbox\@tempa 55 } \xdef\checkmark{\noexpand\mathhexbox\@tempa 58 } \xdef\circledR {\noexpand\mathhexbox\@tempa 72 } \xdef\maltese {\noexpand\mathhexbox\@tempa 7A } \xdef\widehat#1{\noexpand\setboxz@h{$\noexpand\m@th#1$}% \noexpand\ifdim\noexpand\wdz@>\tw@ em\mathaccent"0\@tempb5B{#1}% \noexpand\else\mathaccent"0362{#1}\noexpand\fi} \xdef\widetilde#1{\noexpand\setboxz@h{$\noexpand\m@th#1$}% \noexpand\ifdim\noexpand\wdz@>\tw@ em\mathaccent"0\@tempb5D{#1}% \noexpand\else\mathaccent"0365{#1}\noexpand\fi} \global\mathchardef\dabar@="0\@tempa39 \xdef\dashrightarrow{\mathrel{\dabar@\dabar@\mathchar"0\@tempa4B}}% \xdef\dashleftarrow{\mathrel{\mathchar"0\@tempa4C\dabar@\dabar@}}% \global\let\dasharrow\dashrightarrow \gdef\newsymbol#1#2#3#4#5{% \@ifdefinable#1{% \edef\next@ {\ifcase #2 \or \hexnumber@{\msafam}\or \hexnumber@{\msbfam}\fi}% \ifx\next@\@empty \err@{\Invalid@@\newsymbol}\@ehd% \else \global\mathchardef#1"#3\next@#4#5 \fi}} } \let\rightleftharpoons\undefined \newsymbol\rightleftharpoons 130A \let\angle\undefined \newsymbol\angle 105C \let\hbar\undefined \newsymbol\hbar 207E \let\sqsubset\undefined \newsymbol\sqsubset 1340 \let\sqsupset\undefined \newsymbol\sqsupset 1341 \let\mho\undefined \newsymbol\mho 2066 \let\Box\undefined \newsymbol\Box 1203 \let\Diamond\undefined \newsymbol\Diamond 1206 \let\leadsto\undefined \newsymbol\leadsto 1320 \let\lhd\undefined \newsymbol\lhd 1343 \let\unlhd\undefined \newsymbol\unlhd 1345 \let\rhd\undefined \newsymbol\rhd 1342 \let\unrhd\undefined \newsymbol\unrhd 1344 \edef\Join{\mathrel{\mathchar"0\hexnumber@\msbfam 6F\mkern-13.8mu% \mathchar"0\hexnumber@\msbfam 6E}} \def\smash{\@ifnextchar[\@xsmash{\@xsmash[tb]}} \def\@xsmash[#1]{\def\smash@{#1}% \ifmmode\expandafter\mathpalette\expandafter\mathsm@sh\else \expandafter\makesm@sh\fi} \def\finsm@sh{\def\mb@t{\ht\z@\z@}\def\mb@b{\dp\z@\z@}% \expandafter\@tfor\expandafter\@tempa \expandafter:\expandafter=\smash@\do {\csname mb@\@tempa\endcsname}% \leavevmode\boxz@} \newsymbol\boxdot 1200 \newsymbol\boxplus 1201 \newsymbol\boxtimes 1202 \newsymbol\square 1003 \newsymbol\blacksquare 1004 \newsymbol\centerdot 1205 \newsymbol\lozenge 1006 \newsymbol\blacklozenge 1007 \newsymbol\circlearrowright 1308 \newsymbol\circlearrowleft 1309 \let\rightleftharpoons\undefined \newsymbol\rightleftharpoons 130A \newsymbol\leftrightharpoons 130B \newsymbol\boxminus 120C \newsymbol\Vdash 130D \newsymbol\Vvdash 130E \newsymbol\vDash 130F \newsymbol\twoheadrightarrow 1310 \newsymbol\twoheadleftarrow 1311 \newsymbol\leftleftarrows 1312 \newsymbol\rightrightarrows 1313 \newsymbol\upuparrows 1314 \newsymbol\downdownarrows 1315 \newsymbol\upharpoonright 1316 \let\restriction\upharpoonright \newsymbol\downharpoonright 1317 \newsymbol\upharpoonleft 1318 \newsymbol\downharpoonleft 1319 \newsymbol\rightarrowtail 131A \newsymbol\leftarrowtail 131B \newsymbol\leftrightarrows 131C \newsymbol\rightleftarrows 131D \newsymbol\Lsh 131E \newsymbol\Rsh 131F \newsymbol\rightsquigarrow 1320 \newsymbol\leftrightsquigarrow 1321 \newsymbol\looparrowleft 1322 \newsymbol\looparrowright 1323 \newsymbol\circeq 1324 \newsymbol\succsim 1325 \newsymbol\gtrsim 1326 \newsymbol\gtrapprox 1327 \newsymbol\multimap 1328 \newsymbol\therefore 1329 \newsymbol\because 132A \newsymbol\doteqdot 132B \let\Doteq\doteqdot \newsymbol\triangleq 132C \newsymbol\precsim 132D \newsymbol\lesssim 132E \newsymbol\lessapprox 132F \newsymbol\eqslantless 1330 \newsymbol\eqslantgtr 1331 \newsymbol\curlyeqprec 1332 \newsymbol\curlyeqsucc 1333 \newsymbol\preccurlyeq 1334 \newsymbol\leqq 1335 \newsymbol\leqslant 1336 \newsymbol\lessgtr 1337 \newsymbol\backprime 1038 \newsymbol\risingdotseq 133A \newsymbol\fallingdotseq 133B \newsymbol\succcurlyeq 133C \newsymbol\geqq 133D \newsymbol\geqslant 133E \newsymbol\gtrless 133F \newsymbol\vartriangleright 1342 \newsymbol\vartriangleleft 1343 \newsymbol\trianglerighteq 1344 \newsymbol\trianglelefteq 1345 \newsymbol\bigstar 1046 \newsymbol\between 1347 \newsymbol\blacktriangledown 1048 \newsymbol\blacktriangleright 1349 \newsymbol\blacktriangleleft 134A \newsymbol\vartriangle 134D \newsymbol\blacktriangle 104E \newsymbol\triangledown 104F \newsymbol\eqcirc 1350 \newsymbol\lesseqgtr 1351 \newsymbol\gtreqless 1352 \newsymbol\lesseqqgtr 1353 \newsymbol\gtreqqless 1354 \newsymbol\Rrightarrow 1356 \newsymbol\Lleftarrow 1357 \newsymbol\veebar 1259 \newsymbol\barwedge 125A \newsymbol\doublebarwedge 125B \newsymbol\measuredangle 105D \newsymbol\sphericalangle 105E \newsymbol\varpropto 135F \newsymbol\smallsmile 1360 \newsymbol\smallfrown 1361 \newsymbol\Subset 1362 \newsymbol\Supset 1363 \newsymbol\Cup 1264 \let\doublecup\Cup \newsymbol\Cap 1265 \let\doublecap\Cap \newsymbol\curlywedge 1266 \newsymbol\curlyvee 1267 \newsymbol\leftthreetimes 1268 \newsymbol\rightthreetimes 1269 \newsymbol\subseteqq 136A \newsymbol\supseteqq 136B \newsymbol\bumpeq 136C \newsymbol\Bumpeq 136D \newsymbol\lll 136E \let\llless\lll \newsymbol\ggg 136F \let\gggtr\ggg \newsymbol\circledS 1073 \newsymbol\pitchfork 1374 \newsymbol\dotplus 1275 \newsymbol\backsim 1376 \newsymbol\backsimeq 1377 \newsymbol\complement 107B \newsymbol\intercal 127C \newsymbol\circledcirc 127D \newsymbol\circledast 127E \newsymbol\circleddash 127F \newsymbol\lvertneqq 2300 \newsymbol\gvertneqq 2301 \newsymbol\nleq 2302 \newsymbol\ngeq 2303 \newsymbol\nless 2304 \newsymbol\ngtr 2305 \newsymbol\nprec 2306 \newsymbol\nsucc 2307 \newsymbol\lneqq 2308 \newsymbol\gneqq 2309 \newsymbol\nleqslant 230A \newsymbol\ngeqslant 230B \newsymbol\lneq 230C \newsymbol\gneq 230D \newsymbol\npreceq 230E \newsymbol\nsucceq 230F \newsymbol\precnsim 2310 \newsymbol\succnsim 2311 \newsymbol\lnsim 2312 \newsymbol\gnsim 2313 \newsymbol\nleqq 2314 \newsymbol\ngeqq 2315 \newsymbol\precneqq 2316 \newsymbol\succneqq 2317 \newsymbol\precnapprox 2318 \newsymbol\succnapprox 2319 \newsymbol\lnapprox 231A \newsymbol\gnapprox 231B \newsymbol\nsim 231C \newsymbol\ncong 231D \newsymbol\varsubsetneq 2320 \newsymbol\varsupsetneq 2321 \newsymbol\nsubseteqq 2322 \newsymbol\nsupseteqq 2323 \newsymbol\subsetneqq 2324 \newsymbol\supsetneqq 2325 \newsymbol\varsubsetneqq 2326 \newsymbol\varsupsetneqq 2327 \newsymbol\subsetneq 2328 \newsymbol\supsetneq 2329 \newsymbol\nsubseteq 232A \newsymbol\nsupseteq 232B \newsymbol\nparallel 232C \newsymbol\nmid 232D \newsymbol\nshortmid 232E \newsymbol\nshortparallel 232F \newsymbol\nvdash 2330 \newsymbol\nVdash 2331 \newsymbol\nvDash 2332 \newsymbol\nVDash 2333 \newsymbol\ntrianglerighteq 2334 \newsymbol\ntrianglelefteq 2335 \newsymbol\ntriangleleft 2336 \newsymbol\ntriangleright 2337 \newsymbol\nleftarrow 2338 \newsymbol\nrightarrow 2339 \newsymbol\nLeftarrow 233A \newsymbol\nRightarrow 233B \newsymbol\nLeftrightarrow 233C \newsymbol\nleftrightarrow 233D \newsymbol\divideontimes 223E \newsymbol\varnothing 203F \newsymbol\nexists 2040 \newsymbol\eth 2067 \newsymbol\eqsim 2368 \newsymbol\beth 2069 \newsymbol\gimel 206A \newsymbol\daleth 206B \newsymbol\lessdot 236C \newsymbol\gtrdot 236D \newsymbol\ltimes 226E \newsymbol\rtimes 226F \newsymbol\shortmid 2370 \newsymbol\shortparallel 2371 \newsymbol\smallsetminus 2272 \newsymbol\thicksim 2373 \newsymbol\thickapprox 2374 \newsymbol\approxeq 2375 \newsymbol\succapprox 2376 \newsymbol\precapprox 2377 \newsymbol\curvearrowleft 2378 \newsymbol\curvearrowright 2379 \newsymbol\digamma 207A \newsymbol\varkappa 207B \newsymbol\hslash 207D \newsymbol\backepsilon 237F \def\Bbb{\protect\Bbb@} \def\Bbb@#1{{\Bbb@@{#1}}} \def\Bbb@@#1{\msb\fam\msbfam#1} \endinput %% %% End of file `mssym.sty'. %-- %Piet* van Oostrum, Dept of Computer Science, Utrecht University, %Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands. %Telephone: +31 30 531806 Uucp: uunet!mcsun!ruuinf!piet %Telefax: +31 30 513791 Internet: piet@cs.ruu.nl (*`Pete')