diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-11 23:03:17 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-11 23:03:17 +0000 |
commit | ecf966f305f6aeff2bbdf42c82d8425921aa9eda (patch) | |
tree | db606a57e3619610e4c35cae849d41cf4e0937d5 /Master/texmf-dist/source/latex/bbding/bbding.dtx | |
parent | ac3c55a3216b5988f0e48ba9414ddb059f19a699 (diff) |
source 1
git-svn-id: svn://tug.org/texlive/trunk@105 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/bbding/bbding.dtx')
-rw-r--r-- | Master/texmf-dist/source/latex/bbding/bbding.dtx | 847 |
1 files changed, 847 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/bbding/bbding.dtx b/Master/texmf-dist/source/latex/bbding/bbding.dtx new file mode 100644 index 00000000000..81a05b74568 --- /dev/null +++ b/Master/texmf-dist/source/latex/bbding/bbding.dtx @@ -0,0 +1,847 @@ +%\manfnttrue % remove this line if the manualfont is not on your system +%\UsersGuidetrue % remove this line to print the full documentation. +% +%\iffalse metacomment +% (c)1995--96 Peter Møller Neergaard +% This files must be distributed, installed and used freely. You especially +% welcome to get inspiration (if possible) from the source code. +% +% For information about the copyright of the metafont sources for bbding, +% please refer to the file ..... +% +% Install by running tex with "bbding.ins". +% +% To get the documentation run latex twice on this file and then print the +% file bbding.dvi. Note that the documentation can be processed without +% the fontmetrices available, the symbols will however be missing. +% +% This file 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 +% \CheckSum{644} +% \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 \~} +% +% +% % I would not like to have the standard LaTeX commands in the index +% % This is taken from `doc.dtx' +% \DoNotIndex{\@,\@@par,\@beginparpenalty,\@empty} +% \DoNotIndex{\@flushglue,\@gobble,\@input} +% \DoNotIndex{\@makefnmark,\@makeother,\@maketitle} +% \DoNotIndex{\@namedef,\@ne,\@spaces,\@tempa} +% \DoNotIndex{\@tempb,\@tempswafalse,\@tempswatrue} +% \DoNotIndex{\@thanks,\@thefnmark,\@topnum} +% \DoNotIndex{\@@,\@elt,\@forloop,\@fortmp,\@gtempa,\@totalleftmargin} +% \DoNotIndex{\",\/,\@ifundefined,\@nil,\@verbatim,\@vobeyspaces} +% \DoNotIndex{\|,\~,\ ,\active,\advance,\aftergroup,\begingroup,\bgroup} +% \DoNotIndex{\mathcal,\csname,\def,\documentstyle,\dospecials,\edef} +% \DoNotIndex{\egroup} +% \DoNotIndex{\else,\endcsname,\endgroup,\endinput,\endtrivlist} +% \DoNotIndex{\expandafter,\fi,\fnsymbol,\futurelet,\gdef,\global} +% \DoNotIndex{\hbox,\hss,\if,\if@inlabel,\if@tempswa,\if@twocolumn} +% \DoNotIndex{\ifcase} +% \DoNotIndex{\ifcat,\iffalse,\ifx,\ignorespaces,\index,\input,\item} +% \DoNotIndex{\jobname,\kern,\leavevmode,\leftskip,\let,\llap,\lower} +% \DoNotIndex{\m@ne,\next,\newpage,\nobreak,\noexpand,\nonfrenchspacing} +% \DoNotIndex{\obeylines,\or,\protect,\raggedleft,\rightskip,\rm,\sc} +% \DoNotIndex{\setbox,\setcounter,\small,\space,\string,\strut} +% \DoNotIndex{\strutbox} +% \DoNotIndex{\thefootnote,\thispagestyle,\topmargin,\trivlist,\tt} +% \DoNotIndex{\twocolumn,\typeout,\vss,\vtop,\xdef,\z@} +% \DoNotIndex{\,,\@bsphack,\@esphack,\@noligs,\@vobeyspaces,\@xverbatim} +% \DoNotIndex{\`,\catcode,\end,\escapechar,\frenchspacing,\glossary} +% \DoNotIndex{\hangindent,\hfil,\hfill,\hskip,\hspace,\ht,\it,\langle} +% \DoNotIndex{\leaders,\long,\makelabel,\marginpar,\markboth,\mathcode} +% \DoNotIndex{\mathsurround,\mbox,\newcount,\newdimen,\newskip} +% \DoNotIndex{\nopagebreak} +% \DoNotIndex{\parfillskip,\parindent,\parskip,\penalty,\raise,\rangle} +% \DoNotIndex{\section,\setlength,\TeX,\topsep,\underline,\unskip,\verb} +% \DoNotIndex{\vskip,\vspace,\widetilde,\\,\%,\@date,\@defpar} +% \DoNotIndex{\[,\{,\},\]} +% \DoNotIndex{\count@,\ifnum,\loop,\today,\uppercase,\uccode} +% \DoNotIndex{\baselineskip,\begin,\tw@} +% \DoNotIndex{\a,\b,\c,\d,\e,\f,\g,\h,\i,\j,\k,\l,\m,\n,\o,\p,\q} +% \DoNotIndex{\r,\s,\t,\u,\v,\w,\x,\y,\z,\A,\B,\C,\D,\E,\F,\G,\H} +% \DoNotIndex{\I,\J,\K,\L,\M,\N,\O,\P,\Q,\R,\S,\T,\U,\V,\W,\X,\Y,\Z} +% \DoNotIndex{\1,\2,\3,\4,\5,\6,\7,\8,\9,\0} +% \DoNotIndex{\!,\#,\$,\&,\',\(,\),\+,\.,\:,\;,\<,\=,\>,\?,\_} +% \DoNotIndex{\discretionary,\immediate,\makeatletter,\makeatother} +% \DoNotIndex{\meaning,\newenvironment,\par,\relax,\renewenvironment} +% \DoNotIndex{\repeat,\scriptsize,\selectfont,\the,\undefined} +% \DoNotIndex{\arabic,\do,\makeindex,\null,\number,\show,\write,\@ehc} +% \DoNotIndex{\@author,\@ehc,\@ifstar,\@sanitize,\@title,\everypar} +% \DoNotIndex{\if@minipage,\if@restonecol,\ifeof,\ifmmode} +% \DoNotIndex{\lccode,\newtoks,\onecolumn,\openin,\p@,\SelfDocumenting} +% \DoNotIndex{\settowidth,\@resetonecoltrue,\@resetonecolfalse,\bf} +% \DoNotIndex{\clearpage,\closein,\lowercase,\@inlabelfalse} +% \DoNotIndex{\selectfont,\mathcode,\newmathalphabet,\rmdefault} +% \DoNotIndex{\bfdefault} +% +% % Exclude commands used for generating the index +% \DoNotIndex{\CodelineIndex,\DeleteShortVerb,\DisableCrossrefs} +% \DoNotIndex{\EnableCrossrefs,\OnlyDescription,\RecordChanges} +% +% \ifUsersGuide +% \OnlyDescription +% \DisableCrossrefs +% \else +% \RecordChanges +% \fi +% +% \GetFileInfo{bbding.sty} +% +% \title{The \bbding-package\thanks +% {This file has \fileversion\ and is dated \filedate}} +% \author{Karel Horak\thanks{Made the \METAFONT-source for the font.} \\ +% Peter Møller Neergaard\thanks{Implemented the \LaTeXe-package.} \\ +% \texttt{turtle}@\texttt{diku.dk} \quad \texttt{http://www.diku.dk/students/turtle}} +% +% \maketitle +% +% \begin{abstract} +% This package provides an easy-to-use interface to the \texttt{bbding} symbol +% set developed by \emph{Karel Horak}. The naming conventions is made +% close to \emph{Zapf-Dingbat} as it can be found in \package{Wordperfect +% 6.0}, however, sometimes shortening the names. +% \end{abstract} +% +% % Two column table of contents --- borrowed from ``doc.dtx'' +% \ifmulticols +% \addtocontents{toc}{\protect\begin{multicols}{2}} +% \fi +% +% {\parskip 0pt % We have to reset \parskip +% % (bug in \LaTeX) +% \tableofcontents +% } +% +% A special thought should be given to \emph{Mauro Orlandini} and \emph{Max +% Hailperin} who developed a macro for setting paragraphs in parallel. This +% saved me for a lot of work, when developing this manual. +% +% \section{Usage and Symbols} +% +% \noindent +% \bbding\ provides an easy to use interface to the |bbding|-symbolfont +% set. It is loaded by issusing the command +% |\usepackage{bbding}| in your document preamble. +% +% You have the symbols shown in the following tables at your disposal. All +% the symbols are used issuing the command written to the right of the symbol. +% +% \begin{figure} \small +% \begin{commandsInColumns}{2} +% \ScissorRight +% \ScissorRightBrokenBottom +% \ScissorRightBrokenTop +% \ScissorHollowRight +% \ScissorLeft +% \ScissorLeftBrokenBottom +% \ScissorLeftBrokenTop +% \ScissorHollowLeft +% \end{commandsInColumns} +% \caption{Scissors} +% \end{figure} + +% +% \begin{figure} \small +% \begin{commandsInColumns}{3} +% \HandRight +% \HandRightUp +% \HandCuffRight +% \HandCuffRightUp +% \HandLeft +% \HandLeftUp +% \HandCuffLeft +% \HandCuffLeftUp +% \HandPencilLeft +% \end{commandsInColumns} +% \caption{Hands} +% \end{figure} +% +% \begin{figure} \small +% \begin{commandsInColumns}{3} +% \PencilRight +% \PencilRightUp +% \PencilRightDown +% \PencilLeft +% \PencilLeftUp +% \PencilLeftDown +% \NibRight +% \NibSolidRight +% \NibLeft +% \NibSolidLeft +% \end{commandsInColumns} +% \caption{Writing tools} +% \end{figure} +% +% \begin{figure} \small +% \begin{commandsInColumns}{3} +% \XSolid +% \XSolidBold +% \XSolidBrush +% \Plus +% \PlusOutline +% \PlusCenterOpen +% \PlusThinCenterOpen +% \Cross +% \CrossOpenShadow +% \CrossOutline +% \CrossBoldOutline +% \CrossClowerTips +% \CrossMaltese +% \end{commandsInColumns} +% \caption{Crosses, plusses and the like} +% \end{figure} +% +% \begin{figure} \small +% \begin{commandsInColumns}{3} +% \DavidStar +% \DavidStarSolid +% \JackStar +% \JackStarBold +% \FourStar +% \FourStarOpen +% \FiveStar +% \FiveStarLines +% \FiveStarOpen +% \FiveStarOpenCircled +% \FiveStarCenterOpen +% \FiveStarOpenDotted +% \FiveStarOutline +% \FiveStarOutlineHeavy +% \FiveStarConvex +% \FiveStarShadow +% \SixStar +% \EightStar +% \EightStarBold +% \EightStarTaper +% \EightStarConvex +% \TwelweStar +% \SixteenStarLight +% \Asterisk +% \AsteriskBold +% \AsteriskCenterOpen +% \AsteriskThin +% \AsteriskThinCenterOpen +% \AsteriskRoundedEnds +% \FourAsterisk +% \EightAsterisk +% \end{commandsInColumns} +% \caption{All kind of stars} +% \end{figure} +% +% \begin{figure} \small +% \begin{commandsInColumns}{2} +% \FiveFlowerOpen +% \FiveFlowerPetal +% \SixFlowerOpenCenter +% \SixFlowerRemovedOpenPetal +% \SixFlowerAlternate +% \SixFlowerAltPetal +% \SixFlowerPetalDotted +% \SixFlowerPetalRemoved +% \EightFlowerPetalRemoved +% \EightFlowerPetal +% \FourClowerOpen +% \FourClowerSolid +% \Sparkle +% \SparkleBold +% \SnowflakeChevron +% \SnowflakeChevronBold +% \Snowflake +% \end{commandsInColumns} +% \caption{Flowers, snowflakes and the like} +% \end{figure} +% +% \begin{figure} \small +% \begin{commandsInColumns}{2} +% \CircleSolid +% \CircleShadow +% \HalfCircleRight +% \HalfCircleLeft +% \Ellipse +% \EllipseSolid +% \EllipseShadow +% \Square +% \SquareSolid +% \SquareShadowBottomRight +% \SquareShadowTopRight +% \SquareShadowTopLeft +% \SquareCastShadowBottomRight +% \SquareCastShadowTopRight +% \SquareCastShadowTopLeft +% \TriangleUp +% \TriangleDown +% \DiamondSolid +% \OrnamentDiamondSolid +% \RectangleThin +% \Rectangle +% \RectangleBold +% \end{commandsInColumns} +% \caption{Geometrical Shapes} +% \end{figure} +% +% \begin{figure} \small +% \begin{commandsInColumns}{3} +% \Phone +% \PhoneHandset +% \Tape +% \Plane +% \Envelope +% \Peace +% \Checkmark +% \CheckmarkBold +% \SunshineOpenCircled +% \ArrowBoldRightStrobe +% \ArrowBoldUpRight +% \ArrowBoldDownRight +% \ArrowBoldRightShort +% \ArrowBoldRightCircled +% \end{commandsInColumns} +% \caption{Miscellaneous} +% \end{figure} +% \clearpage +% \section{How to Install \texttt{bbding}} +% +% I suppose that you have already got the file |bbding10.mf| containing the \METAFONT-source for the +% \bbding-symbol set from your nearest CTAN-site. It should be placed in a +% directory, where it can be found by \METAFONT. In order to have the file +% working correctly with the sizechanging commands of \LaTeXe, you +% should add the following line to the beginning of the file:% +% \footnote{Unfortunately I am not a \METAFONT\ Wizard, so I do not know +% if this hack is the best way to get the file work correctly (see the +% code documentation for more information)---but it works!!!} +% \begin{code} +% |font_size = 10pt#;| +% \end{code} +% +% Then generate the font-metrices |bbding10.tfm| using \METAFONT\ (ask your +% system administrator for details). This is done from a command line issusing, say: +% \begin{code} +% |metafont \mode=|\meta{localmode}|; input bbding10| +% \end{code} +% where \meta{localmode} is one of the modes defined in your local setup +% file, |local.mf|, for \METAFONT. Move the resulting |bbding10.tfm| +% to a directory in the path, where \LaTeX\ looks for |.tfm|-files. If it +% had also generated the bitmap-file, move it to a location, where you +% favourite DVI-viewer can find it. +% +% As the last thing install the package file, by running \TeX\ +% with the file |bbding.ins|. This generates two files: |bbding.sty| and +% |Uding.fd|. |bbding.sty| is the packages file, which is loaded by +% \LaTeX\ and |Uding.fd| contains the loading information about the font. +% +% If the manualfont |manfnt.tfm|---which is only used to generate the logo +% for \METAFONT---is not installed at your system, you should +% remove the first line of this file +% \begin{code} +% |%\manfnttrue % remove this line if|\lttdots\hss +% \end{code} +% +% This file is documented using \package{doc}. This means that documentation +% and commented packagecode is contained in the single file +% |bbding.dtx|. If you want to see the full documentation, you should remove +% the second line of the file |bbding.dtx| +% \begin{code} +% |%\UsersGuidetrue % remove this line|\lttdots +% \end{code} +% and then run \LaTeX\ on the changed file. After this you should generate +% the change history using |makeindex|: +% \begin{code} +% |makeindex -s gglo.ist -o bbding.gls bbding.glo|\hss +% \end{code} +% After this process the file once more. +% +% \medskip +% \parmark[\copyright]% +% At last the borrowing formal stuff: You a encouraged to copy, use, delete +% etc.\ the package (|bbding.dtx|, |dingbat.fd| and |semantic.ins|) as much as +% your heart desires as long as you pass it on in complete. +% You are welcome to sneak in the code and get inspiration. You should just +% remember: {\small \copyright 1993 Karel Horak for the \METAFONT-source and +% \copyright 1995--1996 Peter Møller Neergaard for the style file} +% +% \StopEventually{ +% \ifmulticols +% \addtocontents{toc}{\protect\end{multicols}} +% \fi +% } +% +% \section{The Code of \texttt{bbding.dtx}} +% +% \ifmulticols +% \begin{multicols}{2}[\subsection{To e Done (In Priority)}] +% \else +% \subsection{To Be Done (Priority)} +% \fi +% +% \begin{columnItemize} +% \item Make sure, that the hack to make |bbding10.mf| work is right +% \item Add check for the existence of |manfnt.tfm| instead of using the +% flag |\ifmanfnt|. |\checkfont| in |ltxcheck.tex| should be the right +% place to get the inspiration (thanks to \emph{David Carlisle}). + +% \end{columnItemize} +% +% \ifmulticols +% \end{multicols} +% \fi +% +% \subsection{Overview of the Code} +% \changes{1.0}{1996/02/02}{Finished the naming and documentation} +% +% The code consits of five parts: +% +% \begin{itemize} +% \item A hack making it possible to process the rest of the file without +% the package yet installed. +% \item The package header for |bbding.sty|. +% \item The font definitions, which will be put in |Uding.fd| by +% \package{docstrip} and which alse should be used, when printing the +% documentation. +% \item The name definitions, which primarily is intended for +% |bbding.sty|. It is also used in the documentation, thereby making the +% processing of the documentaion possible without the documentation +% installed. +% \item The driver program for preparing the documentation. +% \end{itemize} +% +% \subsection{Stub for Users Guide and Documentation} +% +% First comes a little hack, that makes \LaTeX\ thinks it is loading the +% package \texttt{bbding.sty}. In this way the commands in the +% package can be used---without warnings---when printing the documentation. +% \begin{macrocode} +%<*documentation> + \makeatletter \def\@currname{bbding} +\def\@currext{sty} +%</documentation> +% \end{macrocode} +% |\@currname| and |\@currext| is internal \LaTeX-macros containg the name +% respectively extension of the package currently being loaded. The code is +% encapsulated in |<*documentation>|\lttdots|</documentation>| so that it is +% not included in the style-file, when installing the package. +% +% \subsection{Header of \texttt{bbding.sty}} +% +% First in |bbding.sty| comes the code that identifies the file as a +% \LaTeXe-package +% \begin{macrocode} +%<*sty> +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bbding}% + [1996/06/21 v1.0 Dingbats symbols% + ] +%</sty> +% \end{macrocode} +% +% \subsection{Defining the Fonts for Use} +% +% Before using the fonts the declaration of the font family should be done. +% This is (by convention) kept in |Uding.fd|, which starts by introducing +% itself to \LaTeX. Then the family |ding| is declared and defined in +% one shape (medium (|n|) weight and width) and it is told that all sizes +% comes from scaling the 10pt font. +% +% \begin{macrocode} +%<*fd> +\ProvidesFile{Uding.fd} + [1996/02/01 v1.0 BBding font definitions% + ] +\DeclareFontFamily{U}{ding}{} +\DeclareFontShape{U}{ding}{m}{n}{% + <-> bbding10 }{} +%</fd> +% \end{macrocode} +% +% |Uding.fd| is not loaded until the font is actually used, which is +% the first time that the command |\dingfamily| is used. This command is +% defined in the packagefile: +% +% \begin{macrocode} +%<*sty> +\newcommand{\dingfamily}{\fontencoding{U}\fontfamily{ding}\selectfont} +% \end{macrocode} +% +% \subsection{Definition of Each Symbol} +% +% \begin{macro}{\@chooseSymbol} +% It would unnormal to use more than one symbol at a time, so I +% define a macro for chosing one symbol in the font. This macro is +% called by each of symbolsmacros. This keeps the definitions of the +% names simple and probably saves memory. I see no reason to define a +% ``|\textding|'' command as symbols would be used only one (or perhaps +% two) at a time. +% \begin{macrocode} +\newcommand{\@chooseSymbol}[1]{{\dingfamily\symbol{#1}}} +% \end{macrocode} +% This macro does the fontchange locally by encapsulating it in a group and +% then sets the symbol with the desired number. +% \end{macro} +% +% Then comes the definition of for each symbol: +% As mentioned in the abstract the naming convention is inspired by the +% names used in \package{Wordperfect 6.0} font set 5. I have however +% shortened the +% names. I have made a sligtly difference from the \LaTeX\ convention +% by capitalizing the first letter of each word, which seems more +% readable to me. +% \begin{macrocode} +\newcommand{\ScissorRightBrokenBottom}{\@chooseSymbol{'000}} +\newcommand{\ScissorRight}{\@chooseSymbol{'001}} +\newcommand{\ScissorRightBrokenTop}{\@chooseSymbol{'002}} +\newcommand{\ScissorLeftBrokenBottom}{\@chooseSymbol{'003}} +\newcommand{\ScissorLeft}{\@chooseSymbol{'004}} +\newcommand{\ScissorLeftBrokenTop}{\@chooseSymbol{'005}} +\newcommand{\ScissorHollowRight}{\@chooseSymbol{'006}} +\newcommand{\ScissorHollowLeft}{\@chooseSymbol{'007}} +\newcommand{\Phone}{\@chooseSymbol{'010}} +\newcommand{\PhoneHandset}{\@chooseSymbol{'011}} +\newcommand{\Tape}{\@chooseSymbol{'012}} +\newcommand{\Plane}{\@chooseSymbol{'013}} +\newcommand{\Envelope}{\@chooseSymbol{'014}} +\newcommand{\HandCuffRight}{\@chooseSymbol{'015}} +\newcommand{\HandCuffLeft}{\@chooseSymbol{'016}} +\newcommand{\HandCuffRightUp}{\@chooseSymbol{'017}} +\newcommand{\HandCuffLeftUp}{\@chooseSymbol{'020}} +\newcommand{\HandRight}{\@chooseSymbol{'021}} +\newcommand{\HandLeft}{\@chooseSymbol{'022}} +\newcommand{\HandRightUp}{\@chooseSymbol{'023}} +\newcommand{\HandLeftUp}{\@chooseSymbol{'024}} +\newcommand{\Peace}{\@chooseSymbol{'025}} +\newcommand{\HandPencilLeft}{\@chooseSymbol{'026}} +\newcommand{\PencilRight}{\@chooseSymbol{'027}} +\newcommand{\PencilLeft}{\@chooseSymbol{'030}} +\newcommand{\PencilRightUp}{\@chooseSymbol{'031}} +\newcommand{\PencilLeftUp}{\@chooseSymbol{'032}} +\newcommand{\PencilRightDown}{\@chooseSymbol{'033}} +\newcommand{\PencilLeftDown}{\@chooseSymbol{'034}} +\newcommand{\NibRight}{\@chooseSymbol{'035}} +\newcommand{\NibLeft}{\@chooseSymbol{'036}} +\newcommand{\NibSolidRight}{\@chooseSymbol{'037}} +\newcommand{\NibSolidLeft}{\@chooseSymbol{'040}} +\newcommand{\Checkmark}{\@chooseSymbol{'041}} +\newcommand{\CheckmarkBold}{\@chooseSymbol{'042}} +\newcommand{\XSolid}{\@chooseSymbol{'043}} +\newcommand{\XSolidBold}{\@chooseSymbol{'044}} +\newcommand{\XSolidBrush}{\@chooseSymbol{'045}} +\newcommand{\PlusOutline}{\@chooseSymbol{'046}} +\newcommand{\Plus}{\@chooseSymbol{'047}} +\newcommand{\PlusCenterOpen}{\@chooseSymbol{'050}} +\newcommand{\PlusThinCenterOpen}{\@chooseSymbol{'051}} +\newcommand{\Cross}{\@chooseSymbol{'052}} +\newcommand{\CrossOpenShadow}{\@chooseSymbol{'053}} +\newcommand{\CrossOutline}{\@chooseSymbol{'054}} +\newcommand{\CrossBoldOutline}{\@chooseSymbol{'055}} +\newcommand{\CrossMaltese}{\@chooseSymbol{'056}} +\newcommand{\DavidStarSolid}{\@chooseSymbol{'057}} +\newcommand{\DavidStar}{\@chooseSymbol{'060}} +\newcommand{\FourAsterisk}{\@chooseSymbol{'061}} +\newcommand{\JackStar}{\@chooseSymbol{'062}} +\newcommand{\JackStarBold}{\@chooseSymbol{'063}} +\newcommand{\CrossClowerTips}{\@chooseSymbol{'064}} +\newcommand{\FourStar}{\@chooseSymbol{'065}} +\newcommand{\FourStarOpen}{\@chooseSymbol{'066}} +\newcommand{\FiveStarLines}{\@chooseSymbol{'067}} +\newcommand{\FiveStar}{\@chooseSymbol{'070}} +\newcommand{\FiveStarOpen}{\@chooseSymbol{'071}} +\newcommand{\FiveStarOpenCircled}{\@chooseSymbol{'072}} +\newcommand{\FiveStarCenterOpen}{\@chooseSymbol{'073}} +\newcommand{\FiveStarOpenDotted}{\@chooseSymbol{'074}} +\newcommand{\FiveStarOutline}{\@chooseSymbol{'075}} +\newcommand{\FiveStarOutlineHeavy}{\@chooseSymbol{'076}} +\newcommand{\FiveStarConvex}{\@chooseSymbol{'077}} +\newcommand{\FiveStarShadow}{\@chooseSymbol{'100}} +\newcommand{\AsteriskBold}{\@chooseSymbol{'101}} +\newcommand{\AsteriskCenterOpen}{\@chooseSymbol{'102}} +\newcommand{\AsteriskThin}{\@chooseSymbol{'103}} +\newcommand{\AsteriskThinCenterOpen}{\@chooseSymbol{'104}} +\newcommand{\EightStarTaper}{\@chooseSymbol{'105}} +\newcommand{\EightStarConvex}{\@chooseSymbol{'106}} +\newcommand{\SixStar}{\@chooseSymbol{'107}} +\newcommand{\EightStar}{\@chooseSymbol{'110}} +\newcommand{\EightStarBold}{\@chooseSymbol{'111}} +\newcommand{\TwelweStar}{\@chooseSymbol{'112}} +\newcommand{\SixteenStarLight}{\@chooseSymbol{'113}} +\newcommand{\SixFlowerPetalRemoved}{\@chooseSymbol{'114}} +\newcommand{\SixFlowerOpenCenter}{\@chooseSymbol{'115}} +\newcommand{\Asterisk}{\@chooseSymbol{'116}} +\newcommand{\SixFlowerAlternate}{\@chooseSymbol{'117}} +\newcommand{\FiveFlowerPetal}{\@chooseSymbol{'120}} +\newcommand{\SixFlowerPetalDotted}{\@chooseSymbol{'121}} +\newcommand{\FiveFlowerOpen}{\@chooseSymbol{'122}} +\newcommand{\EightFlowerPetal}{\@chooseSymbol{'123}} +\newcommand{\SunshineOpenCircled}{\@chooseSymbol{'124}} +\newcommand{\SixFlowerAltPetal}{\@chooseSymbol{'125}} +\newcommand{\FourClowerOpen}{\@chooseSymbol{'126}} +\newcommand{\FourClowerSolid}{\@chooseSymbol{'127}} +\newcommand{\AsteriskRoundedEnds}{\@chooseSymbol{'130}} +\newcommand{\EightFlowerPetalRemoved}{\@chooseSymbol{'131}} +\newcommand{\EightAsterisk}{\@chooseSymbol{'132}} +\newcommand{\SixFlowerRemovedOpenPetal}{\@chooseSymbol{'133}} +\newcommand{\SparkleBold}{\@chooseSymbol{'134}} +\newcommand{\Sparkle}{\@chooseSymbol{'135}} +\newcommand{\SnowflakeChevron}{\@chooseSymbol{'136}} +\newcommand{\SnowflakeChevronBold}{\@chooseSymbol{'137}} +\newcommand{\Snowflake}{\@chooseSymbol{'140}} +\newcommand{\CircleSolid}{\@chooseSymbol{'141}} +\newcommand{\Ellipse}{\@chooseSymbol{'142}} +\newcommand{\EllipseSolid}{\@chooseSymbol{'143}} +\newcommand{\CircleShadow}{\@chooseSymbol{'144}} +\newcommand{\EllipseShadow}{\@chooseSymbol{'145}} +\newcommand{\Square}{\@chooseSymbol{'146}} +\newcommand{\SquareSolid}{\@chooseSymbol{'147}} +\newcommand{\SquareShadowBottomRight}{\@chooseSymbol{'150}} +\newcommand{\SquareShadowTopRight}{\@chooseSymbol{'151}} +\newcommand{\SquareShadowTopLeft}{\@chooseSymbol{'152}} +\newcommand{\SquareCastShadowBottomRight}{\@chooseSymbol{'153}} +\newcommand{\SquareCastShadowTopRight}{\@chooseSymbol{'154}} +\newcommand{\SquareCastShadowTopLeft}{\@chooseSymbol{'155}} +\newcommand{\TriangleUp}{\@chooseSymbol{'156}} +\newcommand{\TriangleDown}{\@chooseSymbol{'157}} +\newcommand{\DiamondSolid}{\@chooseSymbol{'160}} +\newcommand{\OrnamentDiamondSolid}{\@chooseSymbol{'161}} +\newcommand{\HalfCircleRight}{\@chooseSymbol{'162}} +\newcommand{\HalfCircleLeft}{\@chooseSymbol{'163}} +\newcommand{\RectangleThin}{\@chooseSymbol{'164}} +\newcommand{\Rectangle}{\@chooseSymbol{'165}} +\newcommand{\RectangleBold}{\@chooseSymbol{'166}} +\newcommand{\ArrowBoldRightStrobe}{\@chooseSymbol{'167}} +\newcommand{\ArrowBoldUpRight}{\@chooseSymbol{'170}} +\newcommand{\ArrowBoldDownRight}{\@chooseSymbol{'171}} +\newcommand{\ArrowBoldRightShort}{\@chooseSymbol{'172}} +\newcommand{\ArrowBoldRightCircled}{\@chooseSymbol{'173}} +%</sty> +% \end{macrocode} +% When naming I have tried to keep a maxium of four words per name. I have +% however made a few exception to have a consistent naming. +% +% \subsection{Driver for the Documentation} +% +% The package-file (|bbding.dtx|) is ended by the \LaTeX-preamble to produce +% the documentation. By placing it at the end, all the commands in the +% package can be used when processing the documentation, though the +% package is not yet installed on the system. The fontmetrices and -bitmaps +% should however be generated before. +% \begin{macrocode} +%<*documentation> +\documentclass{ltxdoc} +\usepackage[latin1]{inputenc} +\usepackage[T1]{fontenc} + +\newif\ifmulticols + \IfFileExists{multicol.sty}{\multicolstrue}{} + +\newif\ifmanfnt +\newif\ifUsersGuide + +\newcommand{\lttdots}{\ensuremath{\mathtt{\ldots}}} +\newcommand{\CSname}[1]{\texttt{\protect\bslash#1}} +\newcommand{\package}[1]{\textsf{#1}} +\newcommand{\bbding}{\texttt{bbding}} + +\DeclareFontFamily{U}{manual}{} +\DeclareFontShape{U}{manual}{m}{n}{<-> manfnt }{} +\newcommand{\METAFONT}{% + \ifmanfnt + {\fontencoding{U}\fontfamily{manual}\selectfont + \symbol{47}\symbol{48}\symbol{49}\symbol{50}\-% + \symbol{51}\symbol{52}\symbol{53}\symbol{49}}% + \else METAFONT\fi} + + +\def\GetInfo#1{% + \def\filename{#1}% + {\def\ver##1(##2)##3\relax{% + \def\tc{##1}% + \def\td{##2}% + \ifx \td\empty % + \else % + \edef\td{$\csname ##2\endcsname$}% + \fi}% + \def\tb##1 v##2 ##3\end{% + \gdef\filedate{##1}% + \ver ##2()\relax% + \xdef\fileversion{\tc\expandafter\noexpand\td}% + \gdef\fileinfo{##3}}% + \edef\ta{\csname ver@#1\endcsname}% + \expandafter\tb\ta\end\relax}} + +\def\setn@me#1#2{$\backslash$#2} +{\catcode`\^^M=12% + \gdef\st@rtenv{\@ifnextchar^^M{\dropnext\setCommand}{\setCommand}}% + \gdef\setCommand#1#2^^M{% + \hbox to 1cm{#1}\hbox{\expandafter\setn@me\string#1} % + \@ifnextchar\end{}{\setCommand}% +}} + + +\newtoks\p@rm@rk +\newcommand{\setparagraphmark}[1]{\p@rm@rk={#1}} +\newcommand{\parmark}[1][\the\p@rm@rk]{% + \setbox0=\hbox{\huge #1}% + \clubpenalty=10000% + \noindent\hangindent=\wd0 \hangafter=-2% + \llap{\raise.35em\hbox{\vbox to0pt{\box0 \vss}\hfill}}} + +\newenvironment{code}{\begin{verse}\small}{\end{verse}} +\newenvironment{columnItemize}% + {\begin{list}% + {$\bullet$}% + {\settowidth{\labelwidth}{$\bullet$}% + \setlength{\leftmargin}{5mm}% + \setlength{\labelsep}{\leftmargin}% + \addtolength{\labelsep}{-\labelwidth}}}% + {\end{list}} + +\newcount\c@lumnsleft +\newcount\t@talcolumns +\newdimen\c@lumnwidth +\newenvironment{commandsInColumns}[1]{% + \t@talcolumns=#1\advance\t@talcolumns-1\c@lumnsleft=\t@talcolumns% + \c@lumnwidth=-2em\multiply\c@lumnwidth by \t@talcolumns% + \advance\c@lumnwidth by\hsize \divide\c@lumnwidth by #1% + \vskip\z@ % Ensures vertical mode + \catcode`\^^M=12% + \hbox\bgroup% + \st@rtenv% +} +{\ifnum\c@lumnsleft=\t@talcolumns \egroup + \else \egroup \fi} + +{\catcode`\^^M=12% + \gdef\st@rtenv{\@ifnextchar^^M{\dr@pnext\doNextComm@nd}{\doNextComm@nd}}% + \gdef\setComm@nd#1#2^^M{% + \hbox to \c@lumnwidth% + {\hbox to .5cm{#1\hss}\hbox{\expandafter\setn@me\string#1.}\hss}% + \advance\c@lumnsleft-1% + \ifnum\c@lumnsleft>0% + \hskip2em% + \else% + \egroup% + \hbox\bgroup% + \c@lumnsleft\t@talcolumns% + \fi% + \doNextComm@nd% + }} +\def\dr@pnext#1#2{#1} +\def\doNextComm@nd{\@ifnextchar\end{}{\setComm@nd}}% +\def\setn@me#1#2.{\CSname{#2}} + % Removes the first character (^^M) of the name generated by string + +{\catcode`\%=11 +\typeout{} +\typeout{NOTE: If LaTeX complains} +\typeout{\@spaces\@spaces Font U/manual/m/n/9 manfnt at 9.0 not loadable: ...} +\typeout{\@spaces\space\space then remove the very first line of this file} +\typeout{\@spaces\@spaces %\protect\manfnttrue\space ...} +\typeout{} +} + +\makeatother + +\begin{document} + \DocInput{bbding.dtx} +\end{document} +%</documentation> +% \end{macrocode} +% The documentpreamble loads \package{ltxdoc}, which is the standard +% \LaTeXe-class for documentation and issues commands about +% charactertables. Then it defines a bunch of commands (described below), +% that had eased my typing of the documentation. +% It issues some ``relaxing'' typeouts to the user, and at last it is ready +% to really process the documenation, which is done by +% loading itself once more using \package{docstrip}. +% +% The commands defined are +% \begin{description} +% \item[\CSname{ifmulticols}] conditional ensuring that \TeX\ branches over +% parts setting up multiple columns, when this is not provided. +% \item[\CSname{ifmanfnt}] conditional telling whether the manualfont used +% for the \emph{The \TeX-book} is available. The font is used to generate +% the \METAFONT-logo and it is declared to NFSS anyway, as it will only be +% loaded up on request. The user will have to manually set this conditional to +% false to avoid using the |manfnt|, which is done by removing the first +% line. I thought it safer to ask the user to remove something written, +% than adding something ``unwritten''.% +% \item[\CSname{ifUsersGuide}] conditional telling wether only the users +% guide is wanted. As with |\ifmanfnt| the user will have to remove the +% first line of the file to get the full documentation. +% \item[\CSname{lttdots}] gives ellipsis in a typewriter-font +% \item[\CSname{CSname}] typeset a commandname when it is not possible using +% the standard notation, \verb+|+\lttdots\verb+|+, from \package{ltxdoc} (eg.\ in +% headers). Intentionally given a name close to \TeX's |\csname|. +% \item[\CSname{package}] sets the name of \LaTeX-package. +% \item[\CSname{bbding}] gives the package-symbol (name in a typewriter-font) +% \item[\CSname{GetInfo}] defines the commands |\fileversion|, |\filedate| +% and |\fileinfo| with information about \bbding\ +% as provided in +% |\providespackage|. It is mainly borrowed from a command with the same +% name in \package{ltxdoc} but has been changed to type the additional +% greek letter in the package version provided in parenthesis. +% \item[\CSname{parmark} and \CSname{setparagraphmark}] is used to set a +% given symbol in front of a paragraph. |\setparagraphmark| defines the +% symbol to be used by |\parmark|, if no argument is given explicit. +% \item[\texttt{code}] Environment for displaying examples in the Users Guide. +% \item[\texttt{columnitemize}] Makes an itemizing where the bullet is not +% idented, which would make the text too narrow when using columns. +% \item[\texttt{commandsInColumns}] Is as specialized environment---nearly +% deserving its own package. I owe a special thanks to \emph{Mauro +% Orlandini} and \emph{Max Hailperin} for developing a much-like +% environment, which gave me much inspiration. +% +% The environment is used to show the commands of \bbding\ in +% columns. Inside the environment each line contains a entry, which is set +% across the page in the number of columns given by the parameter. On each +% line the first token not being a space is taken as the command. It is +% first set and then its name is set in a \texttt{typewriter} font. +% +% \textbf{Some notes on the code}: First thing in the environment is to +% calculate the width of the columns, +% \[ +% \CSname{c@lumnwidth} = \frac{\textrm{textwidth} - (\textrm{no.\ of columns}-1)*\textrm{column skip}}{\textrm{no.\ of columns}} +% \] +% Then the counters are initialised and \TeX\ is forced into vertical +% mode. Each line is being build in a |\hbox|, which is first started in +% the \emph{beginning definition} of the environment. When the given +% number of columns have been set, the box is ended (and thereby +% added to the vertical list) and a new one is started. +% +% |\setComm@nd| finds one line and sets in a |\hbox| with the calculated +% width. It is therefore declared in a group, where \emph{carriage return} +% (\verb+^^M+) is turned into a \emph{other} character. The actual setting is +% done by |\setn@me|, which matches out the relevant part produced by the +% primitive |\string|. After the command is set, it is tested if this line is +% done, ie.\ the correct number of columns have been set. In that case +% it is ended as described above, otherwise \LaTeX\ skips to the +% next column. At last |\doNextComm@nd| testes if there is a new command +% or it has reaced the |\end| of the environment. +% \end{description} +% +% \Finale \sloppy \PrintChanges +\endinput + + + + + + + + + + |