summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/concmath
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/concmath
Initial commit
Diffstat (limited to 'macros/latex/contrib/concmath')
-rw-r--r--macros/latex/contrib/concmath/CATALOGUE30
-rw-r--r--macros/latex/contrib/concmath/Makefile129
-rw-r--r--macros/latex/contrib/concmath/README114
l---------macros/latex/contrib/concmath/concmath1
-rw-r--r--macros/latex/contrib/concmath/concmath.dtx689
-rw-r--r--macros/latex/contrib/concmath/concmath.ins38
-rw-r--r--macros/latex/contrib/concmath/concmath.pdfbin0 -> 282515 bytes
7 files changed, 1001 insertions, 0 deletions
diff --git a/macros/latex/contrib/concmath/CATALOGUE b/macros/latex/contrib/concmath/CATALOGUE
new file mode 100644
index 0000000000..37e9c6ca2d
--- /dev/null
+++ b/macros/latex/contrib/concmath/CATALOGUE
@@ -0,0 +1,30 @@
+ <entry id="concmath"
+ datestamp="18 Mar 1999"
+ modifier="UV">
+ <about>
+ <name>concmath</name>
+ <title>Concrete Math fonts</title>
+ <author>
+ <name>Ulrik Vieth</name>
+ <email>vieth@thphy.uni-duesseldorf.de</email>
+ </author>
+ <home></home>
+ <license type="unknown"/>
+ <version>
+ <number>1999/03/18</number>
+ </version>
+ <xref refid="concrete ccfonts"/>
+ </about>
+ <description>
+ <abstract>
+ LaTeX package and font definition files to access the Concrete
+ math fonts, which were derived from Computer Modern math fonts
+ using parameters from Concrete Roman text fonts.
+ </abstract>
+ </description>
+ <distribution>
+ <ctan>macros/latex/contrib/other/concmath</ctan>
+ <ctan>fonts/concmath</ctan>
+ <texlive>fonts3</texlive>
+ </distribution>
+ </entry>
diff --git a/macros/latex/contrib/concmath/Makefile b/macros/latex/contrib/concmath/Makefile
new file mode 100644
index 0000000000..7b89e16d94
--- /dev/null
+++ b/macros/latex/contrib/concmath/Makefile
@@ -0,0 +1,129 @@
+## Makefile for the installation of the `concmath' package:
+##
+## 1999-03-10, Ulrik Vieth <vieth@thphy.uni-duesseldorf.de>
+##
+
+## This program is distributed in the hope that it will be useful,
+## but WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+## Usage:
+##
+## say 'make' or 'make all' to unpack the macros and typeset
+## the documentation
+##
+## say 'make install' to install the macros and documentation
+##
+
+
+### package specifics (don't change!):
+
+# package name, used in directories
+FORMAT = latex
+PACKAGE = concmath
+
+# file names, used in dependencies
+
+SRCFILES = \
+ $(PACKAGE).dtx \
+ $(PACKAGE).ins
+TEXFILES = \
+ ot1ccr.fd \
+ omlccr.fd \
+ omsccr.fd \
+ omlccm.fd \
+ omsccsy.fd \
+ omxccex.fd \
+ ucca.fd \
+ uccb.fd \
+ $(PACKAGE).sty
+DOCFILES = \
+ $(PACKAGE).dvi
+
+
+### customizable variables:
+
+# Where the TeX installation resides:
+TEXMF = `kpsewhich --expand-path='$$TEXMFMAIN'`
+#TEXMF = /usr/local/teTeX/share/texmf
+
+# standard directories
+SRCDIR = $(TEXMF)/source/$(FORMAT)/$(PACKAGE)
+TEXDIR = $(TEXMF)/tex/$(FORMAT)/$(PACKAGE)
+DOCDIR = $(TEXMF)/doc/$(FORMAT)/$(PACKAGE)
+
+# How to install the files:
+INSTALL = cp -p
+#INSTALL = install -c
+
+# How to cleanup the files:
+CLEAN = rm -f
+
+# How to update the directory database:
+TEXHASH = mktexlsr
+#TEXHASH = texhash
+
+# How to run LaTeX(2e) for docstrip'ing sources:
+DOCSTRIP = yes | latex
+
+# How to run LaTeX(2e) for documentation:
+LATEX = latex
+
+
+### unpack targets:
+
+default: all
+all: make-tex make-doc
+
+make-tex: $(TEXFILES)
+make-doc: $(DOCFILES)
+.PHONY: make-tex make-doc
+
+$(TEXFILES): $(SRCFILES)
+ $(DOCSTRIP) $(PACKAGE).ins
+
+$(DOCFILES): $(SRCFILES) $(TEXFILES)
+ $(LATEX) $(PACKAGE).dtx
+ $(LATEX) $(PACKAGE).dtx
+
+
+### install targets:
+
+install: install-tex install-doc post-install
+.PHONY: install
+
+install-tex: $(TEXFILES)
+ test -d $(TEXDIR) || mkdir $(TEXDIR)
+ (for f in $(TEXFILES); \
+ do $(INSTALL) $$f $(TEXDIR); done)
+.PHONY: install-tex
+
+install-doc: $(DOCFILES)
+ test -d $(DOCDIR) || mkdir $(DOCDIR)
+ (for f in $(DOCFILES); \
+ do $(INSTALL) $$f $(DOCDIR); done)
+.PHONY: install-doc
+
+# uninstall target:
+
+uninstall:
+ (for f in $(TEXFILES); \
+ do $(CLEAN) $(TEXDIR)/$$f; done)
+ (for f in $(DOCFILES); \
+ do $(CLEAN) $(DOCDIR)/$$f; done)
+.PHONY: uninstall
+
+
+# Update the directory database:
+post-install:
+ $(TEXHASH)
+.PHONY: post-install
+
+
+### clean targets:
+clean:
+ rm -f *.log *.aux *.toc *.lof *.lot *.bbl *.blg
+ rm -f *.idx *.ind *.ilg *.glo *.gls
+
+distclean: clean
+ rm -f $(TEXFILES) $(DOCFILES)
diff --git a/macros/latex/contrib/concmath/README b/macros/latex/contrib/concmath/README
new file mode 100644
index 0000000000..d1c0db6a9d
--- /dev/null
+++ b/macros/latex/contrib/concmath/README
@@ -0,0 +1,114 @@
+concmath --- LaTeX support for Concrete Math fonts.
+
+Copyright (C) 1995--99 Ulrik Vieth
+
+This software is free software; you can redistribute it and/or
+modify it under the terms of the LaTeX Project Public License
+as described in lppl.txt in the base LaTeX distribution; either
+version 1 of the License, or (at your option) any later version.
+
+This software is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+
+DESCRIPTION:
+
+This directory contains the documented sources of the `concmath'
+package for LaTeX(2e) that provides access to the Concrete Math
+typefaces, which were derived from the Concrete Roman typefaces
+designed by Donald E. Knuth.
+
+The Concrete Math fonts provide a collection of math italics,
+math symbol, and math extension fonts that complement the
+Concrete Roman fonts, so that the Concrete family of typefaces
+may be used as a complete replacement for Computer Modern.
+(Orginally, Concrete Roman was designed as a text font for use
+with the Euler math font, designed by Hermann Zapf.)
+
+Since Concrete is considerably darker than Computer Modern, this
+variant may be of particular interest for use in low-resolution
+printing or in display-oriented applications such as posters,
+transparencies, or online documents.
+
+To use this package, you will need the following sets of fonts:
+
+* Concrete Roman (located in CTAN:fonts/concrete)
+* Concrete Math (located in CTAN:fonts/concmath)
+
+To facilitate the installation, the Concrete Math fonts are made
+available through a symbolic link, so that the contents of
+CTAN:fonts/concmath is automatically included as a subdirectory
+if you download this directory as a `.zip' or `.tar.gz' archive.
+
+
+OVERVIEW:
+
+The `concmath' distribution consists of the following files:
+
+ README - some notes on the `concmath' package
+ Makefile - Makefile to install the `concmath' package
+ concmath.dtx - documented source of the `concmath' package
+ concmath.ins - LaTeX installation script
+
+Subdirectory `fonts':
+
+ README - some notes on the Concrete Math fonts
+ Makefile - Makefile to install the `concmath' fonts
+
+Subdirectory `fonts/mf':
+
+ xcc*.mf - Metafont drivers for various sizes and shapes
+
+Subdirectory `fonts/tfm':
+
+ xcc*.tfm - TeX font metrics for various sizes and shapes
+
+
+INSTALLATION:
+
+(1) Before installing the `concmath' package and typesetting the
+documentation, make sure that you have the Concrete Roman and
+Concrete Math fonts installed.
+
+If you are lucky, both sets may have already been provided as
+part of your TeX distribution. Otherwise, if you have to
+install the Concrete Math fonts yourself, proceed by changing to
+the `fonts' subdirectory and installing the fonts from there.
+
+- If you have a TDS-compatible TeX installation, you may try to
+ use the `Makefile' in the `fonts' subdirectory by calling:
+
+ cd fonts ; make install
+
+- For manual installation of the font sources and font metric
+ files, please consult the instructions in `fonts/README'.
+
+(2) After the fonts have been installed, return to this directory.
+To unpack the `concmath' package and to typeset the documentation,
+ proceed as follows:
+
+- If you have a TDS-compatible TeX installation, you may try to
+ use the enclosed `Makefile' by calling:
+
+ make ; make install
+
+- For manual installation, run
+
+ latex concmath.ins
+
+ to unpack the package file `concmath.sty' and the corresponding
+ font definition files (*.fd) from the source file `concmath.dtx'.
+
+ To typeset the documentation, run
+
+ latex concmath.dtx
+
+ twice to generate `concmath.dvi'.
+
+ Finally, to install the `concmath' package, copy the files
+ `concmath.sty' and all `*.fd' to TEXMF/tex/latex/concmath or
+ wherever else your installation keeps LaTeX(2e) `.sty' files.
+
+
+Happy TeXing!
diff --git a/macros/latex/contrib/concmath/concmath b/macros/latex/contrib/concmath/concmath
new file mode 120000
index 0000000000..170ae1b086
--- /dev/null
+++ b/macros/latex/contrib/concmath/concmath
@@ -0,0 +1 @@
+../../../../fonts/concmath \ No newline at end of file
diff --git a/macros/latex/contrib/concmath/concmath.dtx b/macros/latex/contrib/concmath/concmath.dtx
new file mode 100644
index 0000000000..c24897dde2
--- /dev/null
+++ b/macros/latex/contrib/concmath/concmath.dtx
@@ -0,0 +1,689 @@
+% \CheckSum{115}
+% \iffalse
+%
+% concmath.dtx --- LaTeX package for Concrete Math fonts.
+%
+% Copyright (C) 1995--99 Ulrik Vieth
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+%
+% \fi
+%
+% \iffalse
+%<*driver>
+\documentclass[fleqn]{ltxdoc}
+\usepackage[amssymb]{concmath}
+\usepackage{mflogo}
+\renewcommand\baselinestretch{1.1}
+\begin{document}
+ \DocInput{concmath.dtx}
+\end{document}
+%</driver>
+% \fi
+%
+%
+% \title{The \texttt{concmath} package}
+% \author{Ulrik Vieth}
+% \date{1999-03-10 v2.0}
+%
+% \maketitle
+%
+% \section{About this package}
+%
+% The \texttt{concmath} package for \LaTeXe{} provides access to
+% the Concrete Math fonts that were derived from the Concrete Roman
+% fonts designed by Don Knuth \cite{DEK:Concrete,DEK:TUB-Concrete}.
+% While the Concrete Roman fonts were originally developed as a
+% text fonts to be used in combination with the AMS Euler fonts in
+% math mode, the Concrete Math fonts provides a complementary set
+% of math fonts, so that the Concrete typefaces may be used as a
+% complete replacement for Computer Modern \cite{DEK:VolumeE}.
+%
+% Loading the \texttt{concmath} package without any options has the
+% effect of switching the default text font family to Concrete
+% Roman and redeclaring the default math symbol fonts and math
+% alphabets to use Concrete Math. In addition, the
+% \texttt{concmath} package also provides the following package
+% options that may be used to activate some extra features:
+%
+% \textbf{The `\textsf{exscale}' option:} This option provides
+% the functionality of the `\textsf{exscale}' package from the
+% \LaTeX{} base distribution, but using scaled sizes of the
+% Concrete version of the math extension font instead of Computer
+% Modern.
+%
+% \textbf{The `\textsf{amsfonts}' and `\textsf{amssymb}' options:}
+% These options provide the functionality of the standard
+% `\textsf{amsfonts}' and `\textsf{amssymb}' packages, but using
+% the Concrete versions of the AMS symbol fonts and math alphabets.
+%
+% \textbf{The `\textsf{sansbold}' option:} This option redefines
+% the default bold series to use semibold condensed, thereby
+% replacing the bold extended version of Computer Modern Roman by
+% the semibold condensed version of Computer Modern Sans Serif in
+% bold material such as titles and section headings. Since there
+% are different opinions among package writers as to which of these
+% choices is better suited for use in combination with Concrete
+% Roman, both have been used in various \LaTeX{} packages
+% \cite{latex-beton, latex-euler, latex-ccfonts} and both are
+% supported in this package as well.
+%
+% Before we eventually get to the implementation of the
+% \texttt{concmath} package and the corresponding font definition
+% files, we shall first review the history of the Concrete Roman
+% and Concrete Math font families. In particular, we shall discuss
+% the procedure how the Concrete Math fonts were derived from the
+% Concrete Roman fonts by applying systematic changes to the \MF{}
+% parameter files.
+%
+%
+% \section{History of the `Concrete Roman' fonts}
+%
+% When Don Knuth and his co-authors wrote \textit{Concrete
+% Mathematics} \cite{DEK:Concrete,DEK:TUB-Concrete}, they decided
+% to make their book typographically interesting by making it the
+% first one to use a new family of typefaces. The book was to be
+% set using the AMS Euler fonts designed by Hermann Zapf, replacing
+% the usual Computer Modern fonts in math mode. As for the text
+% font, the original intention was to use Computer Modern Roman as
+% usual. However, the combination of Computer Modern in text mode
+% and Euler in math mode soon turned out to be unsatisfactory, and
+% Don Knuth eventually set out to develop a heavier variant of
+% Computer Modern Roman that was better suited to match the
+% somewhat darker color of the Euler fonts.
+%
+% The result was a square-serif style typeface named Concrete
+% Roman, along with \textit{italics}, \textsl{slanted}, and
+% \textsc{small-caps} variants for emphasis and various mark-up
+% elements. Unlike Computer Modern Roman, Concrete Roman features
+% a relatively uniform stroke thickness and does not exhibit strong
+% contrasts between hairlines and stems, making it particularly
+% robust for use in low-resolution printing, but also in
+% display-oriented applications such as transparencies or posters.
+%
+% The original distribution of Knuth's Concrete fonts consisted
+% exclusively of text fonts. There was no bold series, nor were
+% there any math fonts, since the latter were to be taken from the
+% Euler fonts (or Computer Modern for the geometric math symbols).
+% While there does exists a Concrete Math Italics font shape,
+% \texttt{ccmi10}, this does not actually represent a math font and
+% was not designed to be used as such. It only serves as an extra
+% text font that provides access to the oldstyle numerals
+% \oldstylenums{0123456789} and miscellaneous text symbols, such as
+% the tie accent. However, given the meta-ness inherent in the
+% designs of the Computer Modern typefaces \cite{DEK:VolumeE}, it
+% is relatively easy to develop a complete set of Concrete math
+% fonts by applying some simple heuristics, as we shall see in the
+% following section.
+%
+%
+% \section{Design of the `Concrete Math' fonts}
+%
+% The Concrete Math fonts (also known as `\texttt{concmath}' fonts)
+% were developed by the author in early 1995, originally for use in
+% a poster presentation. When the use of magnified sizes of
+% Computer Modern math fonts printed at low resolution turned out
+% to be unsatisfactory for comfortable reading in poster sizes, the
+% need for a somewhat darker alternative became apparent. Since
+% the only existing alternative would have been to use the AMS
+% Euler fonts in math mode, which were deemed a little too exotic
+% for the intended application, the author set out to investigate
+% the possibilities of generating a complete set of Concrete Math
+% fonts by applying systematic changes to the \MF{} parameter
+% files.
+%
+% An initial comparison of the existing parameter files for
+% \texttt{ccr10} and \texttt{ccmi10} revealed that they were almost
+% identical except for the font identifier, the slant parameter,
+% several boolean variables, and the call to the \MF{} driver file.
+% Unlike in the case of \texttt{cmr10} and \texttt{cmmi10}, there
+% were no differences in the design parameters governing the
+% appearance of the character shapes, so it became almost trivial
+% to generate a full set of Concrete Math Italics fonts in the
+% usual range of sizes between 5\,pt and 10\,pt by starting from
+% the \texttt{ccr} parameter files and applying the necessary
+% systematic changes listed in Table~\ref{tab:cc-parameters} to
+% produce a math font.
+%
+% \begin{table}[tb]
+% \small
+% \begin{tabular}{lllllll}
+% font encoding:
+% & OT1 & OML & OMS & OMX
+% & U+msa & U+msb \\
+% font name:
+% & \texttt{ccr10} & \texttt{xccmi10} & \texttt{xccsy10} & \texttt{xccex10}
+% & \texttt{xccam10} & \texttt{xccbm10} \\
+% font identifier:
+% & \texttt{"CCR"} & \texttt{"CCMI"} & \texttt{"CCSY"} & \texttt{"CCEX"}
+% & \texttt{"CCAM"} & \texttt{"CCBM"} \\
+% parameters:
+% & --- & \texttt{ccr10} & \texttt{ccr10} & \texttt{ccr10}
+% & \texttt{ccr10} & \texttt{ccr10} \\
+% fontdimens:
+% & --- & --- & \texttt{cmsy10} & \texttt{cmex10}
+% & \texttt{cmsy10} & \texttt{cmsy10} \\
+% \textit{slant}: & 0 & 0.25 & 0.25 & 0 & 0 & 0.25 \\
+% \textit{variant\_g}:
+% & \textbf{false} & \textbf{true} & irrelevant & irrelevant
+% & irrelevant & irrelevant \\
+% \textit{math\_fitting}:
+% & \textbf{false} & \textbf{true} & \textbf{true} & \textbf{false}
+% & \textbf{true} & \textbf{true} \\
+% \textbf{generate}:
+% & \texttt{roman} & \texttt{mathit} & \texttt{mathsy} & \texttt{mathex}
+% & \texttt{amsya} & \texttt{amsyb} \\
+% \end{tabular}
+% \bigskip
+% \caption{\label{tab:cc-parameters}
+% Comparison of the parameters for the Concrete Math typefaces.}
+% \end{table}
+%
+% The resulting font shapes were called \texttt{xccmi} where the
+% prefix `\texttt{x}' was used to avoid any potential name
+% conflicts with font shapes from Don Knuth's distribution of the
+% Concrete fonts, particularly in the case of \texttt{ccmi10},
+% which despite its name is not a real math font, as discussed
+% earlier.
+%
+% After the Concrete Math Italics fonts were in place, the next
+% step was to create suitable math symbol and math extension fonts.
+% Once again, the author started with a comparison of the parameter
+% files of the corresponding Computer Modern fonts, which revealed
+% that \texttt{cmmi} and \texttt{cmsy} were identical except for
+% the font identifier, the driver file, and the extra |\fontdimen|
+% parameters in \texttt{cmsy} that are required for use as a math
+% symbol font in |\textfont2|. Similarly, the parameters of
+% \texttt{cmex} matched those of \texttt{cmr} except for the font
+% identifier, the driver file, and the |\fontdimen|s in
+% \texttt{cmex} for a math extension font in |\textfont3|.
+%
+% In both cases, the corresponding Concrete versions, named
+% \texttt{xccsy} and \texttt{xccex}, could be derived easily by
+% starting from \texttt{xccmi}, applying some systematic changes,
+% and merging in the code for the |\fontdimen| parameters from
+% \texttt{cmsy} or~\texttt{cmex}. Since the details of these
+% parameter calculations weren't documented anywhere, not even in
+% Knuth's \textit{Computer Modern Typefaces} \cite{DEK:VolumeE},
+% the author unfortunately had to rely on adapting whatever was
+% there and hoping that it would somehow work for Concrete Math
+% just as well.
+%
+% Finally, to round off the collection, the author also generated
+% Concrete versions of the AMS math symbol fonts \texttt{msam} and
+% \texttt{msbm}, which were called \texttt{xccam} and
+% \texttt{xccbm}. As in the previous cases, the \MF{} parameter
+% files of the fonts in question were compared to those of the
+% Computer Modern math fonts, and it was found that both AMS symbol
+% fonts were based on the \texttt{cmsy} parameters. The
+% corresponding Concrete versions were then generated by starting
+% from \texttt{xccsy} and applying the usual systematic changes.
+% In the case of \texttt{xccam}, which also contains some text
+% symbols `$\circledR$' and `$\circledS$' based on small-caps
+% parameters, the ``lower'' parameters were taken from
+% \texttt{cccsc10} in the 10\,pt version, but from \texttt{msam}
+% in the smaller sizes for lack of any other alternatives. While
+% this may not give optimal results for the circled letters, it
+% shouldn't have any adverse effect on the math symbols.
+%
+%
+% \StopEventually {
+% \section*{Acknowledgement}
+%
+% Many features implemented in this package have been influenced by
+% several other \LaTeX{} packages \cite{latex-beton, latex-euler,
+% latex-ccfonts} that provide a more or less similar functionality.
+% The author has tried to remain compatible with these packages
+% wherever possible, although some design decisions have been taken
+% that may lead to subtle differences. Potential users are invited
+% to analyze and compare these packages, and to choose whatever
+% suits them best. We hope that even if you found that another
+% package provides a better solution for your needs, you may have
+% still learned something interesting about the background of the
+% Concrete Roman and Concrete Math fonts from reading this
+% documentation.
+%
+% \begin{thebibliography}{1}
+% \bibitem{DEK:Concrete}
+% \textsc{Ronald L. Graham}, \textsc{Donald E. Knuth}, and
+% \textsc{Oren Patashnik}.
+% \newblock \textit{Concrete Mathematics}.
+% \newblock Addison-Wesley, 1989.
+% \bibitem{DEK:TUB-Concrete}
+% \textsc{Donald E. Knuth}.
+% \newblock \textit{Typesetting Concrete Mathematics}.
+% \newblock \textsl{TUGboat} 10\#1, 31--36, 1989.
+% \bibitem{DEK:VolumeE}
+% \textsc{Donald E. Knuth}.
+% \newblock \textit{Computer Mordern Typefaces}.
+% \newblock Volume~E of \textit{Computers \& Typesetting}.
+% \newblock Addison-Wesley, 1986.
+% \bibitem{latex-beton}
+% \textsc{Frank Jensen}.
+% \newblock The \texttt{beton} package.\\
+% \newblock \texttt{CTAN:macros/latex/contrib/supported/beton/}.
+% \bibitem{latex-euler}
+% \textsc{Frank Jensen}.
+% \newblock The \texttt{euler} package.\\
+% \newblock \texttt{CTAN:macros/latex/contrib/supported/euler/}.
+% \bibitem{latex-ccfonts}
+% \textsc{Walter Schmidt}.
+% \newblock The \texttt{ccfonts} package.\\
+% \newblock \texttt{CTAN:macros/latex/contrib/supported/ccfonts/}.
+% \end{thebibliography}
+% }
+%
+%
+% \section{The implementation}
+%
+% After having reviewed the history of the Concrete Roman and
+% Concrete Math fonts, we now turn to the implementation of the
+% \texttt{concmath} \LaTeX{} package and the corresponding font
+% definition files.
+%
+%
+% \subsection{Hello, World!}
+%
+% First, we announce the package and the font definition files.
+%
+% \begin{macrocode}
+%<package>\NeedsTeXFormat{LaTeX2e}[1996/12/01]
+%<package>\ProvidesPackage{concmath}
+%<OT1ccr>\ProvidesFile{ot1ccr.fd}
+%<OMLccr>\ProvidesFile{omlccr.fd}
+%<OMSccr>\ProvidesFile{omsccr.fd}
+%<OMLccm>\ProvidesFile{omlccm.fd}
+%<OMSccsy>\ProvidesFile{omsccsy.fd}
+%<OMXccex>\ProvidesFile{omxccex.fd}
+%<Ucca>\ProvidesFile{ucca.fd}
+%<Uccb>\ProvidesFile{uccb.fd}
+%<+package>[1999/03/10 v2.0b LaTeX package for Concrete math fonts]
+%<-package>[1999/03/10 v2.0b LaTeX font defs for Concrete math fonts]
+% \end{macrocode}
+%
+%
+% \subsection{Font definition files}
+%
+% \subsubsection{Concrete Roman}
+%
+% Here are the standard font definitions for Concrete Roman,
+% including the \textit{italics}, \textsl{slanted}, and
+% \textsc{small-caps} variants, which are usually only available
+% in~10\,pt size. While it would be a trivial exercise to create a
+% full set of slanted fonts by taking the \texttt{ccr} parameter
+% files and setting the slant parameter to~$1/6$ in the
+% \texttt{ccsl} parameter files, we shall only use the sizes
+% provided in Knuth's official distribution. As for the italics
+% and small-caps versions, there is no way to generate appropriate
+% smaller sizes without extensive tuning and testing to derive new
+% parameter sets.
+%
+% \begin{macrocode}
+%<*OT1ccr>
+\DeclareFontFamily{OT1}{ccr}{\hyphenchar\font45 }
+\DeclareFontShape{OT1}{ccr}{m}{n}{
+ <5> <6> <7> <8> <9> gen * ccr
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> ccr10}{}
+\DeclareFontShape{OT1}{ccr}{m}{sl}{
+ <5> <6> <7> <8> <9> ccsl9
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> ccsl10}{}
+\DeclareFontShape{OT1}{ccr}{m}{it}{
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> ccti10}{}
+\DeclareFontShape{OT1}{ccr}{m}{sc}{
+ <5> <6> <7> <8> <9>
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> cccsc10}{}
+% \end{macrocode}
+%
+% Next, here are the font substitutions for the bold series. Since
+% there is no bold series in Concrete, we will use the
+% corresponding Computer Modern fonts.
+%
+% \begin{macrocode}
+\DeclareFontShape{OT1}{ccr}{bx}{n} {<-> ssub * cmr/bx/n}{}
+\DeclareFontShape{OT1}{ccr}{bx}{sl}{<-> ssub * cmr/bx/sl}{}
+\DeclareFontShape{OT1}{ccr}{bx}{it}{<-> ssub * cmr/bx/it}{}
+% \end{macrocode}
+%
+% Next, here are the font substitutions for the semibold series.
+% As we shall see below, the \texttt{concmath} package provides a
+% `\textsf{boldsans}' option which redefines |\bfdefault| and thus
+% turns all bold material into semibold condensed (which will then
+% be substituted by semibold condensed sans serif). Since some
+% people prefer to use semibold condensed Computer Modern Sans
+% Serif in combination with Concrete Roman, this unusual
+% substitution allows to switch between both choices by selecting
+% or omitting a package option.
+%
+% \begin{macrocode}
+\DeclareFontShape{OT1}{ccr}{sbc}{n} {<-> ssub * cmss/sbc/n}{}
+\DeclareFontShape{OT1}{ccr}{sbc}{sl}{<-> ssub * cmss/sbc/n}{}
+\DeclareFontShape{OT1}{ccr}{sbc}{it}{<-> ssub * cmss/sbc/n}{}
+% \end{macrocode}
+%
+% Finally, here is the font shape declaration for the special
+% purpose condensed slanted font that was used in \textit{Concrete
+% Mathematics} for so-called `graffiti'. The \texttt{concmath}
+% package does not bother to provide macros for such kinds of
+% marginal notes, thus users who want to use this feature will have
+% to develop their own.
+%
+% \begin{macrocode}
+\DeclareFontShape{OT1}{ccr}{c}{sl}{<9> ccslc9}{}
+%</OT1ccr>
+% \end{macrocode}
+%
+%
+% \subsubsection{Concrete Roman Font Substitutions}
+%
+% For technical reasons it necessary to provide font substitutions
+% for Concrete Roman text symbols in the `OML' and `OMS' encodings.
+% Any references to \texttt{ccr} in these encodings will be
+% substituted by references to the corresponding Concrete math
+% italics and math symbol fonts.
+%
+% \begin{macrocode}
+%<*OMLccr>
+\DeclareFontFamily{OML}{ccr}{\skewchar\font127 }
+\DeclareFontShape{OML}{ccr}{m}{it} {<->ssub * ccm/m/it}{}
+\DeclareFontShape{OML}{ccr}{bx}{it} {<->ssub * ccm/b/it}{}
+\DeclareFontShape{OML}{ccr}{sbc}{it}{<->ssub * ccm/m/it}{}
+%</OMLccr>
+% \end{macrocode}
+% \begin{macrocode}
+%<*OMSccr>
+\DeclareFontFamily{OMS}{ccr}{\skewchar\font48 }
+\DeclareFontShape{OMS}{ccr}{m}{n} {<->ssub * ccsy/m/n}{}
+\DeclareFontShape{OMS}{ccr}{bx}{n} {<->ssub * ccsy/b/n}{}
+\DeclareFontShape{OMS}{ccr}{sbc}{n}{<->ssub * ccsy/m/n}{}
+%</OMSccr>
+% \end{macrocode}
+%
+%
+% \subsubsection{Concrete Math Italics}
+%
+% Now, we turn to the font definitions for Concrete Math Italics.
+% Since the \texttt{xccmi} parameters were derived from
+% \texttt{ccr} with some systematic changes, these fonts are
+% available in the same range of sizes, i.e.\ between 5\,pt and
+% 10\,pt.
+%
+% \begin{macrocode}
+%<*OMLccm>
+\DeclareFontFamily{OML}{ccm}{\skewchar\font127 }
+\DeclareFontShape{OML}{ccm}{m}{it}{
+ <5> <6> <7> <8> <9> gen * xccmi
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> xccmi10}{}
+\DeclareFontShape{OML}{ccm}{b}{it}{<-> ssub * cmm/b/it}{}
+% \end{macrocode}
+%
+% Similar to the 9\,pt slanted condensed text font for use in
+% `graffiti', there also exists a 9\,pt slanted condensed version
+% of Concrete Math Italics, stripped down to the oldstyle numerals
+% only. This font shape is included here only for completeness,
+% and users should be aware that it won't be usable as a math font.
+%
+% \begin{macrocode}
+\DeclareFontShape{OML}{ccm}{c}{it}{<9> ccmic9}{}
+%</OMLccm>
+% \end{macrocode}
+%
+%
+% \subsubsection{Concrete Math Symbols}
+%
+% Here are the font definitions for the Concrete Math Symbol fonts.
+% Since the \texttt{xccsy} parameters are identical to those of
+% \texttt{xccmi} except for the extra |\fontdimen| parameters
+% (which were adapted from \texttt{cmsy}), these fonts are
+% available in the same range of sizes as Concrete Roman and
+% Concrete Math Italics.
+%
+% Most of the geometric math symbols that depend only on the rule
+% thickness will probably turn out to be identical to their
+% Computer Modern counterparts. However, since the `OMS' encoding
+% also contains a few greek-like symbols such as `$\nabla$' and
+% `$\amalg$' that are clearly affected by the parameter changes, a
+% Concrete version of the math symbol font is obviously necessary.
+%
+% \begin{macrocode}
+%<*OMSccsy>
+\DeclareFontFamily{OMS}{ccsy}{\skewchar\font48 }
+\DeclareFontShape{OMS}{ccsy}{m}{n}{
+ <5> <6> <7> <8> <9> gen * xccsy
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> xccsy10}{}
+\DeclareFontShape{OMS}{ccsy}{b}{n}{<-> ssub * cmsy/b/n}{}
+%</OMSccsy>
+% \end{macrocode}
+%
+%
+% \subsubsection{Concrete Math Extension}
+%
+% Here are the font definitions for the Concrete Math Extension
+% fonts. Since the \texttt{xccex} parameters are identical to
+% those of \texttt{ccr} except for the extra |\fontdimen|
+% parameters (which are adapted from \texttt{cmex}), these fonts
+% are available in the same range of sizes as Computer Modern Math
+% Extension, i.e.\ between 7\,pt and 10\,pt. By default, the math
+% extension font is loaded only in a fixed size at 10\,pt.
+% However, the \texttt{concmath} package also provides an
+% `\textsf{exscale}' option to load the math extension font in
+% scaled sizes.
+%
+% \begin{macrocode}
+%<*OMXccex>
+\DeclareFontFamily{OMX}{ccex}{}
+\DeclareFontShape{OMX}{ccex}{m}{n}{<-> sfixed * xccex10}{}
+%</OMXccex>
+% \end{macrocode}
+%
+%
+% \subsubsection{Concrete AMS Symbols}
+%
+% Finally, here are the font definitions for the Concrete versions
+% of the AMS symbol fonts, \texttt{msam} and \texttt{msbm}. Since
+% the parameters of \texttt{xccam} and \texttt{xccbm} are directly
+% derived from \texttt{xccsy}, these fonts are provided in the full
+% range of sizes between 5\,pt and 10\,pt.
+%
+% As in the case of the Concrete Math Symbol font, most of the
+% geometric math symbols will probably remain unchanged from the
+% Computer Modern version, but letter-like symbols such as
+% `$\yen$', `$\mho$', `$\eth$' or `$\backepsilon$' will obviously
+% be subject to the parameter changes in the Concrete version,
+% making it necessary to have Concrete versions of the AMS symbol
+% fonts in the first place.
+%
+% Unfortunately, it appears that some of the characters in the AMS
+% symbol fonts do not work out very well in the Concrete version or
+% suffer from undesirable side-effects. One such problem is that
+% wide accents are getting much heavier than usual:
+% $$ \tilde{i} \quad \widetilde{ii} \quad \widetilde{iii}
+% \quad \widetilde{iiii} \quad \widetilde{iiiiii}
+% \quad \widetilde{iiiiiiii}
+% $$
+% Another problem is that some characters, such as `$\varkappa$' or
+% `$\digamma$', do not reflect the parameter changes for a Concrete
+% version and still exhibit noticeable contrasts between stems and
+% hairlines typical of Computer Modern fonts. It is possible that
+% this behavior may be due to sub-optimal or inappropriate \MF{}
+% coding. However, the author decided to refrain from changes to
+% the AMS font sources for the sake of compatibility.
+%
+%
+% \begin{macrocode}
+%<*Ucca>
+\DeclareFontFamily{U}{cca}{}
+\DeclareFontShape{U}{cca}{m}{n}{
+ <5> <6> <7> <8> <9> gen * xccam
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> xccam10}{}
+%</Ucca>
+% \end{macrocode}
+% \begin{macrocode}
+%<*Uccb>
+\DeclareFontFamily{U}{ccb}{}
+\DeclareFontShape{U}{ccb}{m}{n}{
+ <5> <6> <7> <8> <9> gen * xccbm
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> xccbm10}{}
+%</Uccb>
+% \end{macrocode}
+%
+%
+% \subsection{The \texttt{concmath} package}
+%
+% After we have discussed the font definition files, we now turn to
+% the \texttt{concmath} package itself, starting with the
+% declaration of package options.
+%
+%
+% \subsubsection{Declaring package options}
+%
+% As mentioned in the introduction, the \texttt{concmath} package
+% provides an `\textsf{exscale}' option that provides the
+% functionality of the `\textsf{exscale}' package from the \LaTeX{}
+% base distribution, but using the Concrete version of the math
+% extension font.
+%
+% Since it doesn't seem to be possible to nest a
+% |\DeclareFontShape| declaration within the |\AtBeginDocument|
+% hook, we have to make use of a global switch |\ifcc@exscale| and
+% put the relevant code directly into the package file to be
+% executed immediately after |\ProcessOptions|. Apart from this
+% minor complication, the code for this option is relatively
+% simple. We just load the default \LaTeX{} `\textsf{exscale}'
+% package and redeclare the |largesymbols| symbol font afterwards.
+%
+% \begin{macrocode}
+%<*package>
+\newif\ifcc@exscale \cc@exscalefalse
+\DeclareOption{exscale}{%
+ \cc@exscaletrue % something to do after \ProcessOptions
+ \AtBeginDocument{\RequirePackage{exscale}
+ \DeclareSymbolFont{largesymbols}{OMX}{ccex}{m}{n}}}
+% \end{macrocode}
+%
+% The declaration of `\textsf{amsfonts}' and `\textsf{amssymb}'
+% options is similar, but slightly easier. Here, wee simply load
+% the relevant \LaTeX{} package files and redeclare the AMS Symbol
+% fonts afterwards using the Concrete versions.
+%
+% \begin{macrocode}
+\DeclareOption{amsfonts}{%
+ \AtBeginDocument{\RequirePackage{amsfonts}
+ \DeclareSymbolFont{AMSa}{U}{cca}{m}{n}
+ \DeclareSymbolFont{AMSb}{U}{ccb}{m}{n}
+ \DeclareSymbolFontAlphabet{\mathbb}{AMSb}}}
+\DeclareOption{amssymb}{%
+ \AtBeginDocument{\RequirePackage{amssymb}
+ \DeclareSymbolFont{AMSa}{U}{cca}{m}{n}
+ \DeclareSymbolFont{AMSb}{U}{ccb}{m}{n}
+ \DeclareSymbolFontAlphabet{\mathbb}{AMSb}}}
+% \end{macrocode}
+%
+% Finally, here is the declaration of the `\textsf{boldsans}'
+% option that allows to globally turn bold titles and headings into
+% sans serif semibold condensed, if that is what you prefer to use
+% in combination with a Concrete Roman text font.
+%
+% \begin{macrocode}
+\DeclareOption{boldsans}{%
+ \renewcommand{\bfdefault}{sbc}}
+% \end{macrocode}
+%
+%
+% \subsubsection{Setting up defaults for text and math mode}
+%
+% Now, let's finish off the package file with the code to set up
+% the defaults to use Concrete Roman and Concrete Math. For the
+% text, we begin by setting the default text font family to
+% Concrete Roman.
+%
+% \begin{macrocode}
+\renewcommand{\rmdefault}{ccr}
+% \end{macrocode}
+%
+% For the math, we redeclare all the standard symbol fonts using
+% the Concrete versions. Since the encodings of these fonts are
+% exactly the same as those of their Computer Modern counterparts,
+% there is fortunately no need to repeat all the tedious
+% |\DeclareMathSymbol| commands from \texttt{fontmath.ltx}.
+%
+% \begin{macrocode}
+\DeclareSymbolFont{operators} {OT1}{ccr} {m}{n}
+\DeclareSymbolFont{letters} {OML}{ccm} {m}{it}
+\DeclareSymbolFont{symbols} {OMS}{ccsy}{m}{n}
+\DeclareSymbolFont{largesymbols}{OMX}{ccex}{m}{n}
+% \end{macrocode}
+% \begin{macrocode}
+\SetSymbolFont{operators} {bold}{OT1}{ccr} {bx}{n}
+\SetSymbolFont{letters} {bold}{OML}{ccm} {b}{it}
+\SetSymbolFont{symbols} {bold}{OMS}{ccsy}{b}{n}
+% \end{macrocode}
+%
+% After the math symbol fonts have been set up, we also have to
+% redeclare the math alphabets to use the newly defined Concrete
+% versions.
+%
+% \begin{macrocode}
+\DeclareSymbolFontAlphabet{\mathrm} {operators}
+\DeclareSymbolFontAlphabet{\mathnormal}{letters}
+\DeclareSymbolFontAlphabet{\mathcal} {symbols}
+\DeclareMathAlphabet {\mathbf}{OT1}{ccr}{bx}{n}
+\DeclareMathAlphabet {\mathit}{OT1}{ccr}{m}{it}
+% \end{macrocode}
+%
+% Finally, we have to adapt the definition of |\oldstylenums| from
+% the \LaTeX{} format to use the Concrete version of the oldstyle
+% numerals \oldstylenums{0123456789}. It is a little unfortunate
+% that there is still one last remaining hard-wired reference to
+% Computer Modern fonts in \texttt{latex.ltx}, making it necessary
+% to repeat the whole definition with trivial changes, but there's
+% little we can do about it.
+%
+% Since this package does not try to imitate the look and feel of
+% Knuth's \textit{Concrete Mathematics}, we don't bother about
+% setting up equation numbers to be printed using oldstyle numbers.
+% The latter is a design decision independent of the choice of
+% fonts that's probably better left to the individual application.
+%
+% \begin{macrocode}
+\def\oldstylenums#1{%
+ \begingroup
+ \spaceskip\fontdimen\tw@\font
+ \usefont{OML}{ccm}{\f@series}{it}%
+ \mathgroup\symletters #1%
+ \endgroup}
+% \end{macrocode}
+%
+%
+% \subsubsection{Executing options}
+%
+% After all the default values have been set up for Concrete Roman
+% and Concrete Math, all that's left to do is to process the
+% options and take special care of the `\textsf{exscale}' option.
+% The font shape declarations for the scaled version of the
+% Concrete Math Extension font are embedded directly in the package
+% file rather than an external font definition file, but they will
+% be executed only if the |\ifcc@exscale| flag has been set true
+% during the option processing.
+%
+% \begin{macrocode}
+\ProcessOptions
+\ifcc@exscale
+ \DeclareFontFamily{OMX}{ccex}{}
+ \DeclareFontShape{OMX}{ccex}{m}{n}{
+ <-8> sfixed * xccex7 <8> xccex8 <9> xccex9
+ <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> xccex10}{}
+\fi
+%</package>
+% \end{macrocode}
+% This concludes the implementation of the \texttt{concmath} package.
+%
+% \Finale
+\endinput
diff --git a/macros/latex/contrib/concmath/concmath.ins b/macros/latex/contrib/concmath/concmath.ins
new file mode 100644
index 0000000000..981ae5d195
--- /dev/null
+++ b/macros/latex/contrib/concmath/concmath.ins
@@ -0,0 +1,38 @@
+\input docstrip.tex
+
+\keepsilent
+\askonceonly
+
+\preamble
+
+Copyright (C) 1995--1999 Ulrik Vieth
+
+This file is part of the `concmath' package.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the LaTeX Project Public License
+as described in lppl.txt in the base LaTeX distribution; either
+version 1 of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+\endpreamble
+
+\usedir{tex/latex/concmath}
+
+\generate{%
+ \file{concmath.sty}{\from{concmath.dtx}{package}}
+ \file{ot1ccr.fd} {\from{concmath.dtx}{OT1ccr}}
+ \file{omlccr.fd} {\from{concmath.dtx}{OMLccr}}
+ \file{omsccr.fd} {\from{concmath.dtx}{OMSccr}}
+ \file{omlccm.fd} {\from{concmath.dtx}{OMLccm}}
+ \file{omsccsy.fd} {\from{concmath.dtx}{OMSccsy}}
+ \file{omxccex.fd} {\from{concmath.dtx}{OMXccex}}
+ \file{ucca.fd} {\from{concmath.dtx}{Ucca}}
+ \file{uccb.fd} {\from{concmath.dtx}{Uccb}}
+}
+
+\endbatchfile
+\endinput
diff --git a/macros/latex/contrib/concmath/concmath.pdf b/macros/latex/contrib/concmath/concmath.pdf
new file mode 100644
index 0000000000..ea30e51389
--- /dev/null
+++ b/macros/latex/contrib/concmath/concmath.pdf
Binary files differ