Concrete

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 6

% \iffalse meta-comment

%
% Copyright (C) 1989,1990,1991 by Frank Mittelbach, Rainer Schoepf.
% All rights reserved.
%
% This file is part of the NFSS (New Font Selection Scheme) package.
%
% IMPORTANT NOTICE:
%
% You are not allowed to change this file. You may however copy this file
% to a file with a different name and then change the copy if you obey
% the restrictions on file changes described in readme.mz.
%
% You are allowed to distribute this file under the condition that it is
% distributed together with all files mentioned in readme.mz3. If you
% receive only some of these files from someone, complain!
%
% You are NOT ALLOWED to distribute this file alone. You are NOT ALLOWED
% to take money for the distribution or use of either this file or a
% changed version, except for a nominal charge for copying etc.
%
% For error reports in case of UNCHANGED versions see readme files.
%
% Please do not request updates from us directly. Distribution is done
% through Mail-Servers and TeX organizations.
%
% \fi

\def\fileversion{v1.0g}
\def\filedate{91/11/27}
\def\docdate {90/01/28}

%\iffalse % this is a METACOMMENT !


%
%% File `concrete.doc'.
%% Copyright (C) 1989,1990,1991 Frank Mittelbach and Rainer Sch\"opf,
%% all rights reserved.
%
%\fi
%% \CheckSum{90}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%% Digits \0\1\2\3\4\5\6\7\8\9
%% Exclamation \! Double quote \" Hash (number) \#
%% Dollar \$ Percent \% Ampersand \&
%% Acute accent \' Left paren \( Right paren \)
%% Asterisk \* Plus \+ Comma \,
%% Minus \- Point \. Solidus \/
%% Colon \: Semicolon \; Less than \<
%% Equals \= Greater than \> Question mark \?
%% Commercial at \@ Left bracket \[ Backslash \\
%% Right bracket \] Circumflex \^ Underscore \_
%% Grave accent \` Left brace \{ Vertical bar \|
%% Right brace \} Tilde \~}
%%
%
% \title{The {\tt concrete} style option}
% \author{Frank Mittelbach \and Rainer Sch\"opf}
%
% \section{Introduction}
%
% This style option sets up some font shape defintion and one math
% version to allow setting documents similar to the book ``Concrete
% math''.
%
% The current version of this file should serve only as a model. It isn't
% finished and will eventually change but I don't like to do work
% which is already done elsewhere. Therefore this has to wait until I get
% hold of a copy of Don Knuth macros for typesetting~\cite{?}.
%
% \StopEventually{}
%
% \section{The Implementation}
%
% We start by writing to the VDU and the transcript file.
% \begin{macrocode}
\typeout{Style Option: `concrete'
\fileversion\space <\filedate> (FMi and RmS)}
\typeout{English Documentation
\@spaces\@spaces\space <\docdate> (FMi and RmS)}
% \end{macrocode}
% But we should also check if the new fontselection is actually in
% force otherwise the user will get a lot of uninstructive error
% messages later on.
% \begin{macrocode}
\@ifundefined{selectfont}
{\@latexerr{`concrete' style option could only be used
with the new font selection scheme}\@eha
\endinput}{}
% \end{macrocode}
%
% Now we define the font shapes for the concrete roman font family
% designed by {\sc Don Knuth}. First the normal shape in medium weight
% and width (others aren't available anyway).
% We assume that for \LaTeX{} use at least the standard magifications
% are available.
% \changes{v1.0f}{90/01/28}{Fifth argument for `new@fontshape.}
% \begin{macrocode}
\new@fontshape{ccr}{m}{n}{%
<5>ccr5%
<6>ccr6%
<7>ccr7%
<8>ccr8%
<9>ccr9%
<10>ccr10%
<11>ccr10 at10.95pt%
<12>ccr10 at12pt%
<14>ccr10 at14.4pt%
<17>ccr10 at17.28pt%
<20>ccr10 at20.74pt%
<25>ccr10 at24.88pt}{}
% \end{macrocode}
%
% The {\it italic\/} shape in concrete roman is only provided for the
% 10pt size. Again we assume that at least for 11 and 12 pt magnified
% fonts are available. For the smaller or larger sizes we substitude
% the normal shape.
% \begin{macrocode}
\new@fontshape{ccr}{m}{it}{%
<5>1ccr5%
<6>1ccr6%
<7>1ccr7%
<8>1ccr8%
<9>1ccr9%
<10>ccti10%
<11>ccti10 at10.95pt%
<12>ccti10 at12pt%
<14>1ccr10 at14.4pt%
<17>1ccr10 at17.28pt%
<20>1ccr10 at20.74pt%
<25>1ccr10 at24.88pt}{}
% \end{macrocode}
%
% Also {\sc a caps and small caps} shape for 10pt is provided.
% \begin{macrocode}
\new@fontshape{ccr}{m}{sc}{%
<5>1ccr5%
<6>1ccr6%
<7>1ccr7%
<8>1ccr8%
<9>1ccr9%
<10>cccsc10%
<11>cccsc10 at10.95pt%
<12>cccsc10 at12pt%
<14>1ccr10 at14.4pt%
<17>1ccr10 at17.28pt%
<20>1ccr10 at20.74pt%
<25>1ccr10 at24.88pt}{}
% \end{macrocode}
%
% There is also a slanted shape in 9pt with condensed width and medium
% weight which is used for``graffiti'' throughout the book which will
% be defined below. Again we provide substitudes for other sizes.
% Since this font does not exist in ten point size it would be nearly
% impossible to use it via the standard \LaTeX{} mechanism with
% commands like \verb+\small+ etc.\ (who knows to what pointsize
% \verb+\small+ belongs to? Therefore we add later on a macro to
% address this font directly.
% \begin{macrocode}
\new@fontshape{ccr}{c}{sl}{%
<5>1ccr5%
<6>1ccr6%
<7>1ccr7%
<8>1ccr8%
<9>ccslc9%
<10>1ccr10%
<11>1ccr10 at10.95pt%
<12>1ccr10 at12pt%
<14>1ccr10 at14.4pt%
<17>1ccr10 at17.28pt%
<20>1ccr10 at20.74pt%
<25>1ccr10 at24.88pt}{}
% \end{macrocode}
%
% \begin{macrocode}
\extra@def{ccr}{}{}
% \end{macrocode}

% From the Euler fonts designed by Hermann Zapf we need the families
% `euler cursive'. (Others will follow in the finial version of this
% option.)
% \begin{macrocode}
\new@fontshape{eur}{m}{n}{%
<5>eurm5%
<6>eurm6%
<7>eurm7%
<8>eurm8%
<9>eurm9%
<10>eurm10%
<11>eurm10 at10.95pt%
<12>eurm10 at12pt%
<14>eurm10 at14.4pt%
<17>eurm10 at17.28pt%
<20>eurm10 at20.74pt%
<25>eurm10 at24.88pt}{}
% \end{macrocode}
% We will have to set a \verb+\skewchar+ but I don't know the right
% value.
% \begin{macrocode}
\extra@def{eur}{\skewchar#1'177}{}
% \end{macrocode}
%
% Don Knuth re-designed some of the math extension symbols to blend
% better with the euler fonts. So we have a font called `Euler
% compatible extension font' available in 7 to 10pt.
% \begin{macrocode}
\new@fontshape{euex}{m}{n}{%
<5>1euex7%
<6>1euex7%
<7>euex7%
<8>euex8%
<9>euex9%
<10>euex10%
<11>1euex10%
<12>1euex10%
<14>1euex10%
<17>1euex10%
<20>1euex10%
<25>1euex10}{}
% \end{macrocode}
%
% \begin{macrocode}
\extra@def{euex}{}{}
% \end{macrocode}
%
%
% \begin{macro}{\graffiti}
% \begin{macro}{\pgraffiti}
% As I remarked above
%
% I don't think that it is really necessary to make a robust
% version but \ldots
% \begin{macrocode}
\def\graffiti{\protect\pgraffiti}
% \end{macrocode}
% Note that this command has no arguments, it simply calls or
% protects (depending on the current meaning of \verb+\protect+)
% the \verb+\pgraffiti+ macro. \marginpar{\graffiti This macro now
% sets everything necessary to switch to the {\tt ccslc} font. It
% therefore serves as a good example how to access special fonts
% for special applications with the new font selection scheme.}
% \changes{v1.0g}{91/11/27}{Changed `family, etc. to `fontfamily etc.}
% \begin{macrocode}
\def\pgraffiti{\fontfamily{ccr}\fontseries{c}%
\fontshape{sl}\fontsize{9}{10pt}\selectfont}
% \end{macrocode}
% \end{macro}
% \end{macro}
%
%
% \begin{macro}{\mv@euler}
% \begin{macrocode}
\new@mathversion\mv@euler
% \end{macrocode}
% Now we define the basic {\em math groups\/} for the new version,
% i.e.\ the groups 0 to 3.
% \begin{macrocode}
\define@mathgroup\mv@euler{0}
{ccr}{m}{n}
\define@mathgroup\mv@euler{1}
{eur}{m}{n}
\define@mathgroup\mv@euler{2}
{cmsy}{m}{n}
% \end{macrocode}
% \end{macro}
%
% \begin{macro}{\euex@group}
% We also add a special math group to the euler version which
% contains the redesigned math symbols. Since we don't assume that
% this version has to live in coexistance with the `normal' or `bold'
% version we don't add this group to the other versions.
% \begin{macrocode}
\new@mathgroup\euex@group
\define@mathgroup\mv@euler\euex@group
{euex}{m}{n}
% \end{macrocode}
% \end{macro}
%
%
% To set up the math version properly we have to reset some
% \verb+\mathcode+s. We have to take, for example, digits in math
% from the math group number one, i.e.\ from the euler cursive font.
% If we do this globally switching back to, let's say, \LaTeX{}s
% normal version will produces an undesired effect: we will then get
% oldstyle numerals in math.
%
% We will leave this problem open at the moment until there is more
% experience with this new font selection scheme. After all, it does
% not seem a very good idea to use such incompatible math versions
% together in one document.
%
% So here we are, re-arranging some of the internal tables:
% \begin{macrocode}
\mathcode`\0="7130
\mathcode`\1="7131
\mathcode`\2="7132
\mathcode`\3="7133
\mathcode`\4="7134
\mathcode`\5="7135
\mathcode`\6="7136
\mathcode`\7="7137
\mathcode`\8="7138
\mathcode`\9="7139
% \end{macrocode}
%
% And here are some example for using the symbols from the special
% extension font. We use \verb+\hexnumber@+ to get the unknown assignment to
% \verb+\euex@group+ as a hexadecimal number into the macro \verb+\@tempa+.
% \begin{macrocode}
\edef\@tempa{\hexnumber@\euex@group}
\mathchardef\intop="1\@tempa 52
\mathchardef\ointop="1\@tempa 48
\mathchardef\sum="1\@tempa 50
\mathchardef\prod="1\@tempa 51
% \end{macrocode}
%
% \begin{macro}{\@makefnmark}
% Since numbers for footnotes are text numbers and not math
% formulas we prefer shapes comming from Concrete roman (like
% 12345) instead of $12345$. So we have to change the footnote mark
% generation to avoid using math mode.
% \begin{macrocode}
\def\@makefnmark{\raise 1ex\hbox{\scriptsize\@thefnmark}}
% \end{macrocode}
% \end{macro}
%
%
% \begin{macrocode}
\mathversion{euler}
% \end{macrocode}
%
% \Finale

\endinput

You might also like