%^^A manfnt.dtx --- doc source file for manfnt.sty -*-LaTeX-*- % \iffalse meta-comment %% Copyright (C) 1998 - 99 by Axel Kielhorn, all rights reserved %% Copyright (C) 1999 by Denis Kosygin, all rights reserved. %% %% This program can be redistributed and/or modified under the terms %% of the LaTeX Project Public License Distributed from CTAN %% archives in directory macros/latex/base/lppl.txt; either %% version 1 of the License, or any later version. % \fi % \CheckSum{118} % \iffalse % Below we define the release date and version of manfnt for which % this documentation is written. % \fi \def\fileversion{0.2} \def\filedate{1999/07/01} % \iffalse % Keep the definitions above uncommented and before the rest of the % package code so that the docstrip sticks them first in manfnt.sty. % Use \def to avoid conflicts with definitions \fileversion and % \filedate in other packages. % Keep them near the beginning and only in one place so that it is % easy to find them and modify for new releases. % Do not hide them from doc module, so that the numbers in % documentation are consistent with the numbers in manfnt.sty. % Do not enclose them in macrocode environment, as it inserts them in % the documentation too early. The beginning of section `Code' is % hacked to reflect their presence in manfnt.sty % \fi % \newcommand{\fixme}[1][FIXME!]{\texttt{#1}} % \newcommand{\docdate}{1999/07/01} % \iffalse % \docdate definition is hidden from docstrip because it is relevant % only in the documentation. % Keep it before \maketitle, so that the documentation date is correct. % If this package is ever archived with version control, perhaps it is % worthwhile to hack the archiving program to automatically update % \docdate whenever the current file changes. % \fi % % \changes{0.1}{\fixme}{Initial version} % \changes{0.2}{1997/06/10}{More symbol names added. Commands % \cmd{\manfntsymbol} and \cmd{\texdbend} (with variations).} % % \title{The \texttt{Manfnt} package\\ % A quick way to access the symbols in manfnt\thanks{This manual % documents version \fileversion{} released on \filedate{}.}} % \author{Axel Kielhorn\thanks{With additions by Denis Kosygin.}} % \renewcommand{\today}{\docdate} % \maketitle % % \iffalse % Below we hide the driver from doc module. % We still follow the doc conventions in case we decide later to % include the driver in the manual or to extract it into a separate % file with docstrip. % \fi % \iffalse % \section{Driver for \texttt{manfnt}} % \begin{macrocode} %<*driver> \documentclass{ltxdoc} \usepackage{manfnt} \begin{document} \DocInput{manfnt.dtx} \end{document} % % \end{macrocode} % \fi % % \section{Introduction} % The \TeX{} and metafont manuals use some special symbols not found in % the normal CM-fonts. Most of these symbols will be of little use for % the average author, but some, like the ``Dangerous Bend'' sign may be % approriate for some textbooks. % % Since there is no easy way to access these symbols I wrote a small % package which I distributed with my \texttt{refman} package. I didn't % expect much response and was quite surprised to get a mail from Denis % Kosygin who suggested some improvements. He also suggested releasing % it a stand-alone package, thus forcing me to write some % documentation\texttt{:-)} % % \subsection*{A word of caution} % Please use the symbols from this package sparingly. % Their unusual shapes attract attention, which means also % that they distract the reader from the main text. For any advice % how to write well there is a brilliant example, where it was not % followed. Still, in general, restraining means of expression % improves the overall aesthetic quality. % % This point of view is reflected in the design of \texttt{manfnt}. % In particular, that was the reason, why there are no switches to % manfnt similar to \cmd{\textrm} or \cmd{\rmfamily}. % % \section{The symbols} % % \DescribeMacro{\manfntsymbol} % To access a symbol in manfnt by its % code say \cmd{\manfntsymbol}\marg{code}. Symbol codes are shown in % a table at the end of this manual. Recall that in \TeX{} octal % codes begin with |'| and hexadecimal codes with |"|. % % Some symbols with ``interesting'' shapes are named to alleviate the % burden of looking up their codes. Their names are listed at the end % of this manual. % % \subsection*{The dangerous bends} % \newcommand{\danger}{\marginpar[\hfill\dbend]{\dbend\hfill}} % \newenvironment{example}{\smallskip\begin{trivlist}\item[]} % {\end{trivlist}\smallskip} % As shown below, if \danger\cmd{\dbend} is used directly in a text, % \LaTeX{} will place the center of the sign plate on the baseline. As % the result, the sign pole may overlap with the contents of the next % line\footnote{The reason for such design can be seen in the \TeX{}book % by D.~Knuth \cite{book:knuth}. There in ``dangerous bend'' % paragraphs the ``ground level'' of the sign is the base of the % next line. Special arrangments (which are beyond the scope of % this manual) are needed to produce similar effect in a \LaTeX{} % document.}. % \begin{example} % \newlength{\myminipagesep} % \newlength{\myminipagewidth} % \setlength{\myminipagewidth}{.5\textwidth} % \addtolength{\myminipagewidth}{-2.5em} % \begin{minipage}{\myminipagewidth} % Here is an example of an unfortunate use of \dbend. The text on % the next line is partially obscured by the sign pole. % \end{minipage} % \hspace{1em}^^A % \addtolength{\myminipagewidth}{3.5em}^^A % \begin{minipage}{\myminipagewidth} %\begin{verbatim} %Here is an example of an unfortunate %use of \dbend. The text on the next %line is partially obscured by %the sign pole. %\end{verbatim} % \end{minipage} % \end{example} % A better approach is illustrated in the beginning of this paragraph, % where the dangerous bend sign is placed on the text margins. This was % achieved with the help of the command~\cmd{\danger}\footnote{In % general you should design your own commands for using this symbol, % which reflect the meaning you assign to it. Book~\cite{book:lamport} on % \LaTeX{} by~L.~Lamport explains how to place text on margins.}, % defined in \texttt{manfnt.dtx}: %\begin{verbatim} %\newcommand{\danger}{\marginpar[\hfill\dbend]{\dbend\hfill}} %\end{verbatim} % The first sentence of the current paragraph was entered into the % source as % \begin{example} %\begin{verbatim} % As shown below, if \danger\cmd{\dbend} is used directly in a text, % \LaTeX{} will place the center of the sign plate on the baseline. %\end{verbatim} % \end{example} % % \DescribeMacro{\textdbend} % \DescribeMacro{\textlhdbend} % \DescribeMacro{\textreversedvideodbend} % For rare occasions, when you do need to include \textdbend{} into a % line of text, \texttt{manfnt} provides command~\cmd{\textdbend}, % which raises the ``ground level'' of the sign to the base line making % it suitable for inclusion. For example, the dangerous bend sign in % the previous sentence was produced by~\cmd{\textdbend}. Commands % \cmd{\textlhdbend} and \cmd{\textreversedvideodbend} act similarly. % \iffalse % We delay the printing of bibliography and tables until the end of % the document. % Below we define few commands which are used only in tables. % We also make | an ordinary character again, since it has a special % meaning in tables. % \fi % \renewcommand{\caption}[1]{\textbf{\large #1}\bigskip\bigskip} % \newcommand{\subcaptionsep}{1ex} % \newcommand{\subtablesep}{2.5ex} % \newcommand{\subcaption}[1]{\textbf{#1}} % \DeleteShortVerb{\|} % \StopEventually{ % \bibliographystyle{plain} % \begin{thebibliography}{1} % \bibitem{book:knuth} D.\ E.\ Knuth. % \newblock {\em The \TeX{}book}. % \newblock Addison-Wesley, Reading, Massachusetts, 1994. % \bibitem{book:lamport} L.\ Lamport. % \newblock {\em \LaTeX: a document preparation system}, -- 2nd ed. % \newblock Addison-Wesley, Reading, Massachusetts, 1994. % \end{thebibliography} % \begin{table}[p] % \begin{center} % \caption{Symbols in manfnt} % \begin{tabular}{c|c|c|c|c|c|c|c|c|c} % \textit{x} % & \textit{'0} & \textit{'1} & \textit{'2} & \textit{'3} % & \textit{'4} & \textit{'5} & \textit{'6} & \textit{'7} % & \\ \hline % \textit{'00x} & % \manfntsymbol{'000} & \manfntsymbol{'001} & % \manfntsymbol{'002} & \manfntsymbol{'003} & % \manfntsymbol{'004} & \manfntsymbol{'005} & % \manfntsymbol{'006} & \manfntsymbol{'007} & \rule[-3ex]{0pt}{5ex} % \texttt{"0x} \\ \cline{1-9} % \textit{'01x} & % \manfntsymbol{'010} & \manfntsymbol{'011} & % \manfntsymbol{'012} & \manfntsymbol{'013} & % \manfntsymbol{'014} & \manfntsymbol{'015} & % \manfntsymbol{'016} & \manfntsymbol{'017} & % \texttt{"0y} \\ \hline % \textit{'02x} & % \manfntsymbol{'020} & \manfntsymbol{'021} & % \manfntsymbol{'022} & \manfntsymbol{'023} & % \manfntsymbol{'024} & \manfntsymbol{'025} & % \manfntsymbol{'026} & \manfntsymbol{'027} & % \texttt{"1x} \\ \cline{1-9} % \textit{'03x} & % \manfntsymbol{'030} & \manfntsymbol{'031} & % \manfntsymbol{'032} & \manfntsymbol{'033} & % \manfntsymbol{'034} & \manfntsymbol{'035} & % \manfntsymbol{'036} & \manfntsymbol{'037} & % \texttt{"1y} \\ \hline % \textit{'04x} & % \manfntsymbol{'040} & \manfntsymbol{'041} & % \manfntsymbol{'042} & \manfntsymbol{'043} & % \manfntsymbol{'044} & \manfntsymbol{'045} & % \manfntsymbol{'046} & \manfntsymbol{'047} & % \texttt{"2x} \\ \cline{1-9} % \textit{'05x} & % \manfntsymbol{'050} & \manfntsymbol{'051} & % \manfntsymbol{'052} & \manfntsymbol{'053} & % \manfntsymbol{'054} & \manfntsymbol{'055} & % \manfntsymbol{'056} & \manfntsymbol{'057} & % \texttt{"2y} \\ \hline % \textit{'06x} & % \manfntsymbol{'060} & \manfntsymbol{'061} & % \manfntsymbol{'062} & \manfntsymbol{'063} & % \manfntsymbol{'064} & \manfntsymbol{'065} & % \manfntsymbol{'066} & \manfntsymbol{'067} & % \texttt{"3x} \\ \cline{1-9} % \textit{'07x} & % \manfntsymbol{'070} & \manfntsymbol{'071} & % \manfntsymbol{'072} & \manfntsymbol{'073} & % \manfntsymbol{'074} & \manfntsymbol{'075} & % \manfntsymbol{'076} & \manfntsymbol{'077} & % \texttt{"3y} \\ \hline % \textit{'10x} & % \manfntsymbol{'100} & \manfntsymbol{'101} & % \manfntsymbol{'102} & \manfntsymbol{'103} & % \manfntsymbol{'104} & \manfntsymbol{'105} & % \manfntsymbol{'106} & \manfntsymbol{'107} & % \texttt{"4x} \\ \cline{1-9} % \textit{'11x} & % \manfntsymbol{'110} & \manfntsymbol{'111} & % \manfntsymbol{'112} & \manfntsymbol{'113} & % \manfntsymbol{'114} & \manfntsymbol{'115} & % \manfntsymbol{'116} & \manfntsymbol{'117} & % \texttt{"4y} \\ \hline % \textit{'12x} & % \manfntsymbol{'120} & \manfntsymbol{'121} & % \manfntsymbol{'122} & \manfntsymbol{'123} & % \manfntsymbol{'124} & \manfntsymbol{'125} & % \manfntsymbol{'126} & \manfntsymbol{'127} & % \texttt{"5x} \\ \cline{1-9} % \textit{'13x} & % \manfntsymbol{'130} & \manfntsymbol{'131} & % \manfntsymbol{'132} & \manfntsymbol{'133} & % \manfntsymbol{'134} & \manfntsymbol{'135} & % \manfntsymbol{'136} & \manfntsymbol{'137} & % \texttt{"5y} \\ \hline % \textit{'14x} & % \manfntsymbol{'140} & \manfntsymbol{'141} & % \manfntsymbol{'142} & \manfntsymbol{'143} & % \manfntsymbol{'144} & \manfntsymbol{'145} & % \manfntsymbol{'146} & \manfntsymbol{'147} & % \texttt{"6x} \\ \cline{1-9} % \textit{'15x} & % \manfntsymbol{'150} & \manfntsymbol{'151} & % \manfntsymbol{'152} & \manfntsymbol{'153} & % \manfntsymbol{'154} & \manfntsymbol{'155} & % \manfntsymbol{'156} & \manfntsymbol{'157} & % \texttt{"6y} \\ \hline % \textit{'16x} & % \manfntsymbol{'160} & \manfntsymbol{'161} & % \manfntsymbol{'162} & \manfntsymbol{'163} & % \manfntsymbol{'164} & \manfntsymbol{'165} & % \manfntsymbol{'166} & \manfntsymbol{'167} & % \texttt{"7x} \\ \cline{1-9} % \textit{'17x} & % \manfntsymbol{'170} & \manfntsymbol{'171} & % \manfntsymbol{'172} & \manfntsymbol{'173} & % \manfntsymbol{'174} & \manfntsymbol{'175} & % \manfntsymbol{'176} & \manfntsymbol{'177} & \rule[-3ex]{0pt}{5ex} % \texttt{"7y}\\\hline % & \texttt{"8} & \texttt{"9} & \texttt{"A} & \texttt{"B} % & \texttt{"C} & \texttt{"D} & \texttt{"E} & \texttt{"F} % & \texttt{y} % \end{tabular} % \end{center} % \end{table} % \begin{table}[p] % \begin{center} % \caption{Symbol names in \texttt{manfnt}} % \begin{tabular}{clcl} % \multicolumn{4}{l}{\subcaption{Pen nibs}}\\[\subcaptionsep] % \manhpennib & \cmd{\manhpennib} & % \mantiltpennib & \cmd{\mantiltpennib} \\ % \manvpennib & \cmd{\manvpennib} & & \\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Triangles}} \\[\subcaptionsep] % \mantriangleup & \cmd{\mantriangleup} & % \mantriangleright & \cmd{\mantriangleright}\\ % \mantriangledown & \cmd{\mantriangledown} & & \\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Kidney beans}} \\[\subcaptionsep] % \mankidney & \cmd{\mankidney} & % \manpenkidney & \cmd{\manpenkidney} \\ % \manboldkidney & \cmd{\manboldkidney} & % \manlhpenkidney & \cmd{\manlhpenkidney} \\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Circle variations}} \\[\subcaptionsep] % \manquartercircle & \cmd{\manquartercircle} & % \manfilledquartercircle & \cmd{\manfilledquartercircle} \\ % \manrotatedquartercircle & \cmd{\manrotatedquartercircle} & % \mancone & \cmd{\mancone} \\ % \manconcentriccircles & \cmd{\manconcentriccircles} & % \manconcentricdiamond & \cmd{\manconcentricdiamond} \\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Cubes}}\\[\subcaptionsep] % \mancube & \cmd{\mancube} & % \manimpossiblecube & \cmd{\manimpossiblecube}\\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Quadrifoliums}}\\[\subcaptionsep] % \manquadrifolium & \cmd{\manquadrifolium} & % \manrotatedquadrifolium & \cmd{\manrotatedquadrifolium}\\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Miscellaneous symbols}} % \\[\subcaptionsep] % \manstar & \cmd{\manstar} & % \manerrarrow & \cmd{\manerrarrow} \\[\subtablesep] % \multicolumn{4}{l}{\subcaption{Dangerous bend signs}}\\[\subcaptionsep] % \dbend & \cmd{\dbend} & % \reversedvideodbend & \cmd{\reversedvideodbend} \\[2ex] % \lhdbend & \cmd{\lhdbend} & \\[2ex] % \end{tabular} % \end{center} % \end{table} %} %\MakeShortVerb{\|} ^^A End of \StopEventually. Restore the settings. % % \section{Code} % \subsection{Identification part} % \iffalse % In principle, definitions of \fileversion and \filedate ought to be % here. Since we have moved them to the beginning of the file for % practical reasons, we need to hack the beginning of this section to % show that they are in manfnt.sty and to fix the line numbering of code. % The block below fakes the definitions of \fileversion and \filedate. % To trick docstrip we bury them in tags and hide the tags from % the doc module in meta-comments. % \fi % \iffalse %<*false> %\fi % \begin{macro}{\fileversion} % \begin{macro}{\filedate} % For technical reasons the definitions of \cmd{\fileversion} and % \cmd{\filedate} are left blank in the documentation. In the actual % \texttt{manfnt.sty} they are filled with current values (\fileversion{} and % \filedate{} respectively). % They are also shown on the title page of this manual. % \begin{macrocode} \def\fileversion{} \def\filedate{} % \end{macrocode} % \end{macro} % \end{macro} % \iffalse % % \fi % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{manfnt}[\filedate \fileversion LaTeX2e manfnt package] % \end{macrocode} % % \subsection{Options} % Currently no options are supported by this package. % % \subsection{Main code} % \subsubsection{Declaration of fonts} % \begin{macrocode} \DeclareFontFamily{U}{manual}{} \DeclareFontShape{U}{manual}{m}{n}{ <-> manfnt }{} % \end{macrocode} % \begin{macro}{\manfntsymbol} % Generally speaking \cmd{\manfntsymbol} must select font shape and % series too, in order to work correctly, since only normal shape and % medium series are provided. Instead we rely implicitely on default % behaviour of \LaTeX{} font substitution mechanism. % \begin{macrocode} \newcommand{\manfntsymbol}[1]{% {\fontencoding{U}\fontfamily{manual}\selectfont\symbol{#1}}} % \end{macrocode} % \end{macro} % % \subsubsection{Symbol names} % The names with few exceptions are derived from the corresponding % definitions in \texttt{manfnt.mf}. % \begin{macrocode} \newcommand{\manhpennib}{\manfntsymbol{21}} \newcommand{\mantiltpennib}{\manfntsymbol{22}} \newcommand{\manvpennib}{\manfntsymbol{23}} \newcommand{\mankidney}{\manfntsymbol{17}} \newcommand{\manboldkidney}{\manfntsymbol{18}} \newcommand{\manpenkidney}{\manfntsymbol{19}} \newcommand{\manlhpenkidney}{\manfntsymbol{20}} \newcommand{\manquartercircle}{\manfntsymbol{32}} \newcommand{\manfilledquartercircle}{\manfntsymbol{33}} \newcommand{\manrotatedquartercircle}{\manfntsymbol{34}} \newcommand{\mancone}{\manfntsymbol{35}} \newcommand{\manconcentriccircles}{\manfntsymbol{36}} \newcommand{\manconcentricdiamond}{\manfntsymbol{37}} \newcommand{\mantriangleright}{\manfntsymbol{120}}% Triangle for exercises \newcommand{\mantriangleup}{% Upper triangle for Addison-Wesley logo \manfntsymbol{54}} \newcommand{\mantriangledown}{% Lower triangle for Addison-Wesley logo \manfntsymbol{55}} \newcommand{\mancube}{\manfntsymbol{28}} \newcommand{\manimpossiblecube}{\manfntsymbol{29}} \newcommand{\manquadrifolium}{\manfntsymbol{38}}% \fouru \newcommand{\manrotatedquadrifolium}{\manfntsymbol{39}}% \fourc \newcommand{\manstar}{\manfntsymbol{30}}% Bicentennial star \newcommand{\manerrarrow}{\manfntsymbol{121}}% Arrow for errata lists \newcommand{\dbend}{\manfntsymbol{127}}% Z-shaped \newcommand{\lhdbend}{\manfntsymbol{126}}% Lefthanded (S-shaped) \newcommand{\reversedvideodbend}{\manfntsymbol{0}}% Reversed video % \end{macrocode} % % \subsubsection{Other commands} % \begin{macro}{\textdbend} % \begin{macro}{\textlhdbend} % \begin{macro}{\textreversedvideodbend} % User level commands \cmd{\textdbend}, \cmd{\textlhdbend} % and \cmd{\textreversedvideodbend} just provide the appropriate % argument to~\cmd{\text@dbend} which does the actual work. % \begin{macrocode} \newcommand{\textdbend}{\text@dbend{\dbend}} \newcommand{\textlhdbend}{\text@dbend{\lhdbend}} \newcommand{\textreversedvideodbend}{\text@dbend{\reversedvideodbend}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % % \begin{macro}{\test@dbend} % The source in \texttt{manfnt.mf} specifies \textdbend{} in cmr10 % settings as a box 500/36pt~wide, 270/36pt~high and 0pt~deep. % The actual image sticks out to~20/36pt${}+\epsilon$ above and % to~11pt below the box. % At 10pt size |\dbend| produces a box with height 7.5pt and zero depth. % The sign pole extends to 11pt below the base line\footnote{The % ``dangerous bend'' paragraphs in the \TeX{}book~\cite{book:knuth} are % typeset in 9pt size fonts with \cmd{\baselineskip} set to 11pt.}. % All this means that we need to raise the sign by 22/15 of its height. % \begin{macrocode} \newlength{\dbend@height} \newcommand{\text@dbend}[1]{% \settoheight{\dbend@height}{#1}% \divide\dbend@height by 15% \multiply\dbend@height by 22% \raisebox{\dbend@height}{#1}} % \end{macrocode} % This definition is clumsy but has an advantage of working. % Question by Denis Kosygin: % \begin{quote}\small % Can anyone explain why does %\begin{verbatim} %\newcommand{\text@dbend}[1]{\raisebox{22\height/15}{#1}} %\end{verbatim} % break? Sometimes it does what I mean, and sometimes it typesets % the argument raised to to 22\cmd{\height} followed by /15 on the % baseline. % \end{quote} % \end{macro} % % We end the file with an explicit |\endinput| which prevents the % docstrip program from putting character table into the generated % files. % \begin{macrocode} \endinput % \end{macrocode} %% \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 \~} %% % \DeleteShortVerb{\|} ^^A For table printing % \Finale %^^A End of file "manfnt.dtx"