0% found this document useful (0 votes)
32 views6 pages

Concrete

This document describes the 'concrete' style option for LaTeX, which sets up font shape definitions and a math version for typesetting documents similar to 'Concrete Math'. It includes instructions on font shapes for various sizes and styles, as well as implementation details for the new font selection scheme. The document is part of the NFSS package and is not to be altered without following specific distribution guidelines.

Uploaded by

Anonymous iqQEpS
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views6 pages

Concrete

This document describes the 'concrete' style option for LaTeX, which sets up font shape definitions and a math version for typesetting documents similar to 'Concrete Math'. It includes instructions on font shapes for various sizes and styles, as well as implementation details for the new font selection scheme. The document is part of the NFSS package and is not to be altered without following specific distribution guidelines.

Uploaded by

Anonymous iqQEpS
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

% \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