summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/mflogo/mflogo.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/mflogo/mflogo.dtx')
-rw-r--r--macros/latex/contrib/mflogo/mflogo.dtx348
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 \~}