summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/bbding/bbding.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:03:17 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:03:17 +0000
commitecf966f305f6aeff2bbdf42c82d8425921aa9eda (patch)
treedb606a57e3619610e4c35cae849d41cf4e0937d5 /Master/texmf-dist/source/latex/bbding/bbding.dtx
parentac3c55a3216b5988f0e48ba9414ddb059f19a699 (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.dtx847
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
+
+
+
+
+
+
+
+
+
+