%\CheckSum{146} % % \iffalse meta comment % % Copyright (c) Walter Schmidt 1997--2000 % % This program may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 % of this license or (at your option) any later version. % The latest version of this license is in % http://www.latex-project.org/lppl.txt % and version 1.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % This program consists of the files ccfonts.dtx, cc.fdd and % ccfonts.ins. % % \fi % % \iffalse %\NeedsTeXFormat{LaTeX2e}[1995/06/01] %<*driver> \ProvidesFile{ccfonts.drv} % %\ProvidesPackage{ccfonts} [2020/03/25 v1.2 (WaS)] % %<*driver> \documentclass[11pt]{ltxdoc} \usepackage{mflogo,url} \CodelineNumbered \begin{document} \DocInput{ccfonts.dtx} \end{document} % % \fi % % \GetFileInfo{ccfonts.drv} % \DeleteShortVerb{\|} % \MakeShortVerb{\+} % % \title{The \LaTeXe{} package \texttt{ccfonts}} % \author{Walter Schmidt\thanks{\texttt{walter.schmidt@arcormail.de}}} % \date{(\fileversion{} -- \filedate)} % \maketitle % \tableofcontents % % \section{Prerequisites} % In order to make use of the package +ccfonts+, the following fonts % and +.fd+ files are required: % \begin{itemize} % \item The Concrete text fonts with traditional encoding % (CTAN: \path{fonts/concrete/}) % \item The Concrete text fonts with European encoding % (CTAN: \path{fonts/ecc/}) % \item The mathematical Concrete fonts % (CTAN: \path{fonts/concmath/}) % \item The +.fd+ files for the traditional and mathematical % Concrete fonts (CTAN: \path{macros/latex/contrib/supported/concmath/}) % \item The +.fd+ files for the European Concrete fonts, % which are distributed and installed in conjunction % with the +ccfonts+ package % \end{itemize} % On CTAN the fonts are available in \MF{} format. % The Concrete typefaces are also provided in Type1 format from % Micropress Inc, see % \path{}. % % % \section{Using the package} % The \LaTeX{} macro package +ccfonts+ % supports typesetting with the font family `Concrete'. % Loading this package through % \begin{verse} % +\usepackage{ccfonts}+ % \end{verse} % will effect the following: % \begin{itemize} % \item The default roman font family is changed to \texttt{ccr}, % i.e.\ Concrete. % \item The default leading (+\baselineskip+) for the font sizes 8--12\,pt % is increased slightly. % \item The `Concrete' fonts are used in math mode, too. % \item The packages +amsfonts+ or +amssymb+, if loaded additionally, % will use the Concrete versions of the AMS symbol fonts. % % Notice that you may still have to specify the option +psamsfonts+ % for these packages, so as to prevent them from using design sizes % of the Euler Fraktur fonts, which may be % unavailable within your TeX system; this works flawlessly with % version 1.1 of the +ccfonts+ package now. (You need not care for this % subject, unless Euler Fraktur is actually used.) % \end{itemize} % % \subsection{Package options} % \newcommand{\oitem}[1]{\item[\texttt{#1}]} % \begin{description} % \oitem{boldsans} The semibold series of CM Sans is used % as a replacement for the missing bold series of Concrete. % (The default behaviour is to use the bold extended version of % CM Roman.) % \oitem{standard-baselineskips} disables the increased leading. % This can be useful, e.g., when typesetting in narrow columns. % \oitem{exscale} implements scaling of the math extension font. % For a discussion of this feature see the file +exscale.dtx+. % \oitem{slantedGreek} makes uppercase Greek letters slanted by default. % Regardless of this option, the new commands +\upDelta+ and +\upOmega+ % will always produce an upright \( \Delta \) and \( \Omega \). % \end{description} % % \subsection{Font encoding} % The package does \emph{not} change the default output font % encoding from OT1. Switching to the extended T1 and TS1 encodings % needs the following additional commands: % \begin{verse} % +\usepackage[T1]{fontenc}+\\ % +\usepackage{textcomp}+ % \end{verse} % % \section{Known problems} % \begin{itemize} % \item % There are no bold math fonts available. % \item % In order to enlarge the default +\baselineskip+, the size-changing % macros have been redefined, and they are no longer as robust as the % original definitions. This may result in \LaTeX\ errors with % `moving arguments'. As a workaround, you may protect any font-related % commands in moving arguments with a +\protect+ command. In case this % does not help, the package should be loaded with the option % \textsf{standard-baselineskips} which will prevent the commands from % being redefined; you will, however, have to care for an appropriate % line spacing by other means then. % \end{itemize} % % \section{NFSS classification of the Concrete typefaces} % \begin{center} % \begin{tabular}{|l|l|l|l|} % \hline % \textbf{encoding} & \textbf{family} & \textbf{series} & \textbf{shape(s)}\\ % \hline\hline % \multicolumn{4}{|c|}{\textit{Concrete}}\\ \hline % OT1, T1, TS1 & ccr & m & n, sl, it, sc \\ \hline % OT1 & ccr & c & sl\\ \hline \hline % \multicolumn{4}{|c|}{\textit{Concrete Math}}\\ \hline % OML & ccm & m & it \\ \hline \hline % OMS & ccsy & m & n \\ \hline % OMX & ccex & m & n \\ \hline \hline % \multicolumn{4}{|c|}{\textit{Concrete AMS A, B}}\\ \hline % U & msa & m & n \\ \hline % U & msb & m & n \\ \hline % \end{tabular} % \end{center} % Notice, that % \begin{itemize} % \item the series c (condensed) is available as slanted % and with a font size of 9\,pt only; % \item the Concrete AMS fonts are only defined % through the package \textsf{ccfonts}, % i.e., there are no related \texttt{.fd} files. % \end{itemize} % % \StopEventually{} % % \section{Implementation} % \subsection{Font setup for text mode} % We make \texttt{ccr} the default font family: % \begin{macrocode} %<*package> \renewcommand{\rmdefault}{ccr} % \end{macrocode} % % The +\baselineskip+ should be larger than with CM Roman. % In order to overwrite the +\baselineskip+ defined in the commands % like +\normalsize+, +\small+, etc., we use a trick from Frank Jensen's % package +beton+. % First we set up a table containing our +\baselineskip+ values: % \begin{macrocode} \def\cc@baselineskip@table {<\@viiipt>10<\@ixpt>11.5<\@xpt>13<\@xipt>14.5<\@xiipt>16} % \end{macrocode} % All the standard \LaTeX\ size-changing commands (+\small+, +\large+, % etc.)\ are defined in terms of the +\@setfontsize+ macro. This % macro is called with the following three arguments: +#1+~is the % size-changing command; +#2+~is the font size; +#3+~is the % +\baselineskip+ value. We modify this macro to check % the above +\cc@baselineskip@table+ for an alternative +\baselineskip+ % value: % \begin{macrocode} \def\cc@setfontsize#1#2#3% {\edef\@tempa{\def\noexpand\@tempb####1<#2}% \@tempa>##2<##3\@nil{\def\cc@baselineskip@value{##2}}% \edef\@tempa{\noexpand\@tempb\cc@baselineskip@table<#2}% \@tempa><\@nil \ifx\cc@baselineskip@value\@empty \def\cc@baselineskip@value{#3}% \fi \old@setfontsize{#1}{#2}\cc@baselineskip@value} % \end{macrocode} % Now we redefine +\@setfontsize+: % \begin{macrocode} \let\old@setfontsize=\@setfontsize \let\@setfontsize=\cc@setfontsize % \end{macrocode} % % \subsection{Options} % \subsubsection{Standard leading} % The +\baselineskip+ values specified in the above table should be % appropriate for most purposes, i.\,e., for one-column material in the % normal article/report/book formats. However, it is sometimes % desirable to use a smaller value for +\baselineskip+, e.\,g. in two-column % material. We therefore provide an option % to turn off the above automatic mechanism for +\baselineskip+ settings: % \begin{macrocode} \DeclareOption{standard-baselineskips}{% \let\@setfontsize=\old@setfontsize} % \end{macrocode} % % \subsubsection{The option \texttt{exscale}} % The code is simply copied from \texttt{exscale.sty}, % with \texttt{xccex} instead of \texttt{cmex}. % \begin{macrocode} \DeclareOption{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% }{} \newdimen\big@size \addto@hook\every@math@size{\setbox\z@\vbox{\hbox{$($}\kern\z@}% \global\big@size 1.2\ht\z@} \def\bBigg@#1#2{% {\hbox{$\left#2\vcenter to#1\big@size{}\right.\n@space$}}} \def\big{\bBigg@\@ne} \def\Big{\bBigg@{1.5}} \def\bigg{\bBigg@\tw@} \def\Bigg{\bBigg@{2.5}} } % \end{macrocode} % % \subsubsection{The option \texttt{slantedGreek}} % \begin{macrocode} \let\upDelta\Delta \let\upOmega\Omega \DeclareOption{slantedGreek}{% \DeclareMathSymbol{\Gamma}{\mathalpha}{letters}{0} \DeclareMathSymbol{\Delta}{\mathalpha}{letters}{1} \DeclareMathSymbol{\Theta}{\mathalpha}{letters}{2} \DeclareMathSymbol{\Lambda}{\mathalpha}{letters}{3} \DeclareMathSymbol{\Xi}{\mathalpha}{letters}{4} \DeclareMathSymbol{\Pi}{\mathalpha}{letters}{5} \DeclareMathSymbol{\Sigma}{\mathalpha}{letters}{6} \DeclareMathSymbol{\Upsilon}{\mathalpha}{letters}{7} \DeclareMathSymbol{\Phi}{\mathalpha}{letters}{8} \DeclareMathSymbol{\Psi}{\mathalpha}{letters}{9} \DeclareMathSymbol{\Omega}{\mathalpha}{letters}{10} } % \end{macrocode} % % \subsection{The option \texttt{boldsans}} % \begin{macrocode} \DeclareOption{boldsans}{% \@ifundefined{DeclareFontSeriesDefault}{% \renewcommand{\bfdefault}{sbc}}{% \DeclareFontSeriesDefault[rm]{bf}{sbc}}} % \end{macrocode} % % \subsubsection{Processing options} % Note that +\old@setfontsize+ must have been defined before! % \begin{macrocode} \ProcessOptions\relax % \end{macrocode} % % \subsection{Font setup for math mode} % \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} \DeclareMathAlphabet{\mathbf} {OT1}{ccr}{bx}{n} \DeclareMathAlphabet{\mathit} {OT1}{ccr} {m}{it} % \end{macrocode} % % In case the package +amsfonts+ is loaded additionally, % we must ensure that the Concrete versions of the % AMS symbol fonts are used. We execute the font definitions % AtBeginDocument, so that loading +amsfonts+ with the % option +psamsfonts+ cannot do any harm. Notice that the option may % be required for getting the Euler Fraktur fonts right. % \begin{macrocode} \AtBeginDocument{ \DeclareFontFamily{U}{msa}{} \DeclareFontShape{U}{msa}{m}{n}{% <5><6><7><8><9><10>gen*xccam% <10.95><12><14.4><17.28><20.74><24.88>xccam10}{} \DeclareFontFamily{U}{msb}{} \DeclareFontShape{U}{msb}{m}{n}{% <5><6><7><8><9><10>gen*xccbm% <10.95><12><14.4><17.28><20.74><24.88>xccbm10}{} } % \end{macrocode} % % % \subsection{Initialization} % We ensure that any package loaded after \texttt{ccfonts} % will find the new value of +\baselineskip+. % \begin{macrocode} \normalsize % % \end{macrocode} % % The next line of code prevents DocStrip from adding the % character table to all modules: % \begin{macrocode} \endinput % \end{macrocode} % \Finale %% \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 \~} %%