diff options
Diffstat (limited to 'macros/latex/contrib/mflogo/mflogo.dtx')
-rw-r--r-- | macros/latex/contrib/mflogo/mflogo.dtx | 348 |
1 files changed, 348 insertions, 0 deletions
diff --git a/macros/latex/contrib/mflogo/mflogo.dtx b/macros/latex/contrib/mflogo/mflogo.dtx new file mode 100644 index 0000000000..1fa1ab198f --- /dev/null +++ b/macros/latex/contrib/mflogo/mflogo.dtx @@ -0,0 +1,348 @@ +% \CheckSum{33} +% \iffalse +% +% mflogo.dtx --- LaTeX package for Metafont and MetaPost logos. +% +% Copyright (C) 1994--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. +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{mflogo} +\GetFileInfo{mflogo.sty} +\begin{document} + \DocInput{mflogo.dtx} +\end{document} +%</driver> +% \fi +% +% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \changes{1.0} {1994/05/02}{initial version} +% \changes{1.1} {1994/05/06}{changed assignments for bold series} +% \changes{1.1a}{1994/05/10}{revised documentation} +% \changes{1.1b}{1994/05/12}{revised documentation} +% \changes{1.1c}{1994/05/16}{renamed \cs{MPS} to \cs{MP}} +% \changes{1.1d}{1994/05/18}{updated TTN reference} +% \changes{1.2} {1994/05/21}{clean-up for public release} +% \changes{1.3} {1994/08/21}{update for June 94 LaTeX2e distribution, +% never released} +% \changes{1.4} {1994/12/26}{changed font selection, assume Knuth's +% local variants are available} +% \changes{1.4a}{1994/12/26}{use \cs{\@} to correct space factor +% after \cs{\MF} and \cs{\MP}} +% \changes{1.4b}{1994/12/26}{eliminated \cs{filename}, \cs{filedate}, +% use \cs{GetFileInfo}} +% \changes{1.5} {1995/05/14}{major documentation rewrite} +% \changes{1.5a}{1995/08/28}{minor documentation fixes} +% \changes{1.5b}{1995/08/29}{added copyright notice similar to PSNFSS} +% \changes{1.5c}{1995/12/04}{replaced \cs{\-} by \cs{@dischyph} +% to fix problem in tabbing environment} +% \changes{2.0} {1999/03/10}{use the LaTeX Project Public License} +% +% +% \title{The \texttt{mflogo} package} +% \author{Ulrik Vieth} +% \date{1999-03-10 v2.0} +% +% \maketitle +% +% \section{Introduction} +% +% This \LaTeX{} package provides the font declarations needed to +% access the \texttt{logo} font family in terms of \textsf{NFSS2}, +% the no-longer-new font selection scheme used in \LaTeXe{}. +% It also provides a package file that ilustrates how to define the +% \MF{} and \MP{} logos and some appropriate font changing commands +% in these terms. +% +% Using this package, there should no longer be a need to define +% special macros for the slanted version of these logos, and +% it should be possible to avoid such errors as on page~2 of +% \textit{The \LaTeX{} Companion} where the \MF{} logo appears +% in upright shape within an italics context of a book title. +% +% \DescribeMacro{\logofamily} +% \DescribeMacro{\textlogo} +% Once you have installed the font definition file +% \texttt{ulogo.fd} provided here, you can use low-level \LaTeX{} +% font commands to access the \texttt{logo} fonts in your +% documents, even if you do not plan to use the package file +% \texttt{mflogo.sty}. Apart from defining the \MF{} and \MP{} +% logos in terms of \LaTeX{} font commands this package file also +% provides a declarative font changing command |\logofamily| and +% a font changing command |\textlogo| that takes one argument. +% +% +% \section{The \MF{} source files} +% +% In this package, we assume that your \TeX{} distribution includes +% the \MF{} sources for the \texttt{logo} font family, available +% from the directory \texttt{/systems/knuth/lib} on CTAN archives. +% These consists of the \MF{} program file \texttt{logo.mf} and a +% number of \MF{} driver files for various font shapes and sizes, +% all of which are described in \textit{The \MF{}book}. +% (Please note that the file \texttt{logo.mf} has been updated by +% DEK in 1993, adding the letters `\textlogo{P}' and~`\textlogo{S}' +% for the \MP{} logo. If \TeX{} complains about missing characters +% in some of the \texttt{logo} fonts while processing this +% documentation, you should consider updating your copy +% of~\texttt{logo.mf} and regenerating all the \texttt{logo} +% fonts.) +% +% We also assume that your installation has the additional variants +% of the \texttt{logo} fonts (\texttt{logosl9} and \texttt{logod10}) +% from the directory \texttt{/systems/knuth/local/lib}. +% Many modern \TeX{} distributions already have them included, +% but in case you don't have them, it shouldn't be too difficult +% to retrieve them individually. +% +% Finally, in order to provide a reasonably orthogonal range of +% sizes and shapes, this package uses another non-standard variant +% of the \texttt{logo} fonts (\texttt{logosl8}), which is derived +% from the existing variants by analogy.^^A +% \footnote{This is just a simple matter of replacing `9' by `8'.} +% +% The \MF{} source for this font shape is distributed separately +% with this package since we want to avoid the overhead of +% \textsc{DOCSTRIP} headers in such a trivial file, which would +% result if it were generated from the same |.dtx| file as the +% \LaTeX{} font definitions and the package file. +% +% +% \StopEventually{} +% +% +% \section{Hello, World!} +% +% First, we announce the package and the font definition file. +% +% \begin{macrocode} +%<package>\NeedsTeXFormat{LaTeX2e}[1994/06/01] +%<package>\ProvidesPackage{mflogo} +%<Ulogo>\ProvidesFile{ulogo.fd} +%<+package>[1999/03/10 v2.0 LaTeX package for Metafont and MetaPost logos] +%<-package>[1999/03/10 v2.0 LaTeX font defs for Metafont and MetaPost logos] +% \end{macrocode} +% +% +% \section{The font definition file: \texttt{Ulogo.fd}} +% +% The first thing to do is to declare a new font family +% \texttt{logo} using an appropriate encoding scheme. According to +% \textit{The \MF{}book} the \texttt{logo} fonts have the font +% encoding scheme \texttt{"AEFMNOT only"} (or maybe +% \texttt{"AEFMNOPST only"} after the recent changes). Clearly, +% this is a well-defined encoding scheme, but not one of those +% presently supported in \LaTeX{}. One might be tempted to define +% some new encoding scheme~`MF', but the letter~`M' is already +% reserved for 256-character math fonts. Therefore, we will use the +% encoding scheme~`U' for the font family~\texttt{logo}. +% \begin{macrocode} +%<*Ulogo> +\DeclareFontFamily{U}{logo}{} +% \end{macrocode} +% +% \subsection{Font shape declarations for medium series} +% +% Now, we will discuss the font shape declarations for the medium +% series. We will support sizes in the range from 8\,pt up to +% magstep~5, which should be sufficient to cover the range from +% |\footnotesize| to~|\Huge|. We assign the \texttt{logosl} fonts +% to |\itshape| because their slant parameter matches that of +% Computer Modern Italics rather than that of Computer Modern +% Slanted.^^A +% \footnote{This might be due to the fact that the \texttt{logosl} +% fonts were first used in combination with Computer Modern +% Italics in the running heads of \textit{The \MF{}book}. +% Thus they may have been tuned for this purpose.} +% For |\slshape| we provide a silent font substitution. +% \begin{macrocode} +\DeclareFontShape{U}{logo}{m}{n}{ + <8> <9> gen * logo + <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logo10 +}{} +\DeclareFontShape{U}{logo}{m}{it}{ + <8> <9> gen * logosl + <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logosl10 +}{} +\DeclareFontShape{U}{logo}{m}{sl}{ + <-> ssub * logo/m/it +}{} +% \end{macrocode} +% +% \subsection{Font shape delarations for bold series} +% +% Finally, we turn to the font shape declarations for the bold +% and bold extended series. At present, there are no slanted +% versions of bold \texttt{logo} fonts, but they could be created +% easily, if desired. However, we do not attempt to create them +% here, because the resulting name would be too long to fit into +% 8~characters and it isn't clear how it should be abbreviated. +% +% We assign the \texttt{logobf} font shape to the semibold condensed +% series because there are some indications that it was designed +% to match Computer Modern Sans Serif Demibold Condensed, the +% font that was used in chapter headings in the \TeX{} and \MF{} +% manuals. In sizes below 10\,pt, we simply substitute medium +% series because we want to avoid scaling down fonts below their +% design size. +% \begin{macrocode} +\DeclareFontShape{U}{logo}{sbc}{n}{ + <8> <9> sub * logo/m/n + <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logobf10 +}{} +% \end{macrocode} +% +% Since we assume that the extra variants of the \texttt{logo} fonts +% are available at your installation, we will use the \texttt{logod} +% font shape in the bold and bold extended series. +% +% As the name \texttt{logod} implies a demibold version, this +% decision may seem a little odd, but there is a good reason +% behind it: As mentioned before, \texttt{logobf} was originally +% designed to match the semibold condensed version of Computer +% Modern Sans Serif. It also fits well in combination with the +% bold extended version of that font family because the weight +% of these two versions is not too different. However, when +% used in combination with the bold or bold extended version +% of Computer Modern Roman, the \texttt{logobf} font turns out +% to be slightly too heavy, and the \texttt{logod} font seems +% to be a more appropriate alternative.^^A +% \footnote{The history of the \texttt{logod} font is not very +% clear. It was first released together with updates for +% \TeX{} and \MF{} in March~1992. It might have been used +% in DEK's book \textit{Literate Programming} where bold +% extended Computer Modern Roman is used in headings.} +% +% For this reason, we assign the \texttt{logod} font to the bold +% series (only available in Computer Modern Roman) and set up +% a silent font substitution for the bold extended series, based +% on the assumption that Computer Modern Roman will be used in +% |bfseries| much more frequently than Computer Modern Sans Serif. +% However, when using bold extended Computer Modern Sans Serif, +% \texttt{logod} will be the wrong choice and one would prefer +% \texttt{logobf} instead. +% +% Unfortunately, there doesn't seem to be a completely satisfactory +% solution to this conflict of interests, short of modifying the +% standard font definitions for the Computer Modern family in +% a way that bold extended CM Sans Serif would be classified as +% ultrabold compared to bold extended CM Roman. +% \begin{macrocode} +\DeclareFontShape{U}{logo}{b}{n}{ + <8> <9> sub * logo/m/n + <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88> logod10 +}{} +\DeclareFontShape{U}{logo}{bx}{n}{ + <-> ssub * logo/b/n +}{} +%</Ulogo> +% \end{macrocode} +% +% +% \section{The package file: \texttt{mflogo.sty}} +% +% After having discussed the font definition file, we now turn +% to the package file that shows how to access the \texttt{logo} +% font family by defining high-level macros based on the low-level +% \LaTeX{} font commands. +% +% \begin{macro}{\logofamily} +% First, we define the declarative font changing command |\logofamily|. +% This is accomplished using the low-level font commands +% |\fontencoding| and |\fontfamily| followed by |\selectfont|. +% If |\logofamily| is encountered in math mode, an error message +% will be issued. +% +% In the definition of |\logofamily| we now use |\DeclareRobustCommand| +% provided in the production \LaTeXe{} releases dated |1994/06/01| +% or later. +% \begin{macrocode} +%<*package> +\DeclareRobustCommand\logofamily{% + \not@math@alphabet\logofamily\relax + \fontencoding{U}\fontfamily{logo}\selectfont} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textlogo} +% Next, we define a font changing command |\textlogo| with one +% argument using |\DeclareTextFontCommand| also provided in the +% latest \LaTeXe{} release. +% \begin{macrocode} +\DeclareTextFontCommand{\textlogo}{\logofamily} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\MF} +% \begin{macro}{\MP} +% Finally, we define macros for the \MF{} and \MP{} logos. Since +% the letters `\textlogo{P}' and~`\textlogo{S}' needed for the +% \MP{} logo were added as recently as 1993, this will only work +% if you have an up-to-date version of the \texttt{logo} fonts. +% To update them, you just have to install the new version of the +% \MF{} program file \texttt{logo.mf} and regenerate the +% \texttt{logo} fonts using exactly the same \MF{} driver files as +% before. +% +% There should be no doubt that |\MF| is the standard abbreviation +% for the \MF{} logo. For \MP{}, we use the abbreviation |\MP|, +% which also seems to be the standard abbreviation used for \MP{} +% input files and the program itself. +% +% According to an e-mail message from John Hobby, he personally +% prefers the spelling ``MetaPost'' (in plain roman) instead of +% the \texttt{logo} font, but since it was Don Knuth himself who +% introduced the alternate spelling, it is acceptable to use +% the \texttt{logo} font for \MP{} as well, if you prefer that. +% \changes{1.4a}{1994/12/26}{use \cs{\@} to correct space factor +% after \cs{MF} and \cs{MP}} +% \changes{1.5c}{1995/12/04}{replaced \cs{\-} by \cs{@dischyph} +% to fix problem in tabbing environment} +% \begin{macrocode} +\def\MF{\textlogo{META}\@dischyph\textlogo{FONT}\@} +\def\MP{\textlogo{META}\@dischyph\textlogo{POST}\@} +%</package> +% \end{macrocode} +% In order to fix the space factor after the logos in all uppercase +% letters, we better add |\@|, which expands to |\spacefactor\@m|, +% at the end of our macro definitions. This is exactly how it is +% done for the |\TeX| and |\LaTeX| logos in the \LaTeXe{} sources +% (see |ltspace.dtx| and |ltlogos.dtx|). +% +% In closing, it should be pointed out that the above definitions of +% the \MF{} and \MP{} logos will make them honor all font changing +% commands just like the \TeX{} logo does and always did. Thus both +% logos will finally behave identically with respect to font changes, +% thanks to \LaTeXe{} and \textsf{NFSS2}. +% \end{macro} +% \end{macro} +% +% \Finale +% +\endinput +% +%% \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 \~} |