diff options
author | Karl Berry <karl@freefriends.org> | 2006-01-12 23:52:18 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-01-12 23:52:18 +0000 |
commit | a7c735d4f363d5976d72ace4aa8d849df061dc2e (patch) | |
tree | 716d78a3e56d6a731699f7eb5cf206fa0a87e1dc | |
parent | df5594caf88785ce244cf271866f6491423f371c (diff) |
bitfield
git-svn-id: svn://tug.org/texlive/trunk@714 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r-- | Master/texmf-dist/tex/latex/bitfield/bitfield.sty | 131 |
1 files changed, 131 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/bitfield/bitfield.sty b/Master/texmf-dist/tex/latex/bitfield/bitfield.sty new file mode 100644 index 00000000000..a4cff46b612 --- /dev/null +++ b/Master/texmf-dist/tex/latex/bitfield/bitfield.sty @@ -0,0 +1,131 @@ +%% +%% This is file `bitfield.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% bitfield.dtx (with options: `package') +%% Dashed and layered boxes. +%% +%% File `bitfield.dtx'. +%% Copyright (C) 1997-2001 Reuben Thomas (rrt@sc3d.org) +%% Copyright (C) 2001 Roland Illig +%% This file is distributed under the LaTeX Project Public License, +%% and comes with no warranty. +%% +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{bitfield}[2001/12/12 v2.00 Bit field diagrams] +\RequirePackage{dashbox}[2001/12/11] +\RequirePackage{calc}[1998/07/07] +\RequirePackage{ifthen} +\newcommand{\bitalign}{\centering} +\newlength{\bitboxsep} \setlength{\bitboxsep}{\fboxsep} +\newlength{\bitboxdepth} \setlength{\bitboxdepth}{0.9ex} +\newlength{\bitboxheight} \setlength{\bitboxheight}{3.2ex} +\newlength{\bitskip} \setlength{\bitskip}{0.8ex} +\newlength{\bitrule} \setlength{\bitrule}{\fboxrule} +\newlength{\bitlabellift} \setlength{\bitlabellift}{0.4ex} +\newlength{\bitruleheight} \setlength{\bitruleheight}{0.6ex} +\newlength{\bitruleendlift} \setlength{\bitruleendlift}{0.2ex} +\newlength{\bitw@dth} +\newlength{\bitb@xwidth} +\newlength{\bitw@dthwidth} +\newlength{\bitruled@pth} + \setlength{\bitruled@pth}{\bitrule-\bitruleheight} +\newlength{\bitrule@ndheight} + \setlength{\bitrule@ndheight}% + {\bitruleheight*2-\bitrule-\bitruleendlift*2} +\newboolean{bitb@xfirst} +\newsavebox{\bitb@x} +\newcommand{\bitb@xcmd}{\framebox}% +\newcommand{\bitst@ckcmd}{\lbox}% +\newcommand{\bitl@belcmd}{\bitl@bel}% +\newcommand{\bitdec@destyle}[1]{% + \renewcommand{\bitb@xcmd}{\framebox}% + \renewcommand{\bitst@ckcmd}{\lbox}% + \renewcommand{\bitl@belcmd}{\bitpl@inlabel}% + \@tfor\reserved@a :=#1\do{% + \if d\reserved@a + \renewcommand{\bitb@xcmd}{\dashbox}% + \renewcommand{\bitst@ckcmd}{\dlbox}% + \else + \if r\reserved@a% + \renewcommand{\bitl@belcmd}{\bitrulel@bel}% + \fi + \fi}} +\newcommand{\bitle@der}{% + \cleaders\hrule height \bitruleheight depth \bitruled@pth% + \hfill} +\newcommand{\bitpl@inlabel}[2]{% + \makebox[#1]{\footnotesize #2}} +\newcommand{\bitrulel@bel}[2]{% + \makebox[#1]{% + \footnotesize% + \rule[\bitruleendlift]{\bitrule}{\bitrule@ndheight}% + \bitle@der\,#2\,\bitle@der% + \rule[\bitruleendlift]{\bitrule}{\bitrule@ndheight}}% + } +\newcommand{\bitl@bel}[4][0pt]{% + \sbox{\bitb@x}{#4}% + \setlength{\bitw@dthwidth}{\wd\bitb@x-\bitboxsep*2-\fboxrule*2}% + \addtolength{\bitw@dthwidth}{#1}% + \ifthenelse{\equal{#2}{}}{\relax}{\makebox[0pt][l]{% + \raisebox{\ht\bitb@x}{\raisebox{\bitlabellift}{% + {\hspace*{\fboxrule}\hspace*{\bitboxsep}% + \bitl@belcmd{\bitw@dthwidth}{#2}% + }}}}}% + \usebox{\bitb@x}% + }% +\newcommand{\m@kebits}[3]{% + \setlength{\bitb@xwidth}{\bitw@dth*#2}% + \ifthenelse{\boolean{bitb@xfirst}}% + {}% + {\addtolength{\bitb@xwidth}{\fboxrule}}% + \setboolean{bitb@xfirst}{false}% + \setlength{\fboxsep}{0pt}% + \bitl@bel{#1}{#2}{\bitb@xcmd[\bitb@xwidth]% + {\rule[-\bitboxdepth]{0pt}{\bitboxheight}% + \hspace*{\bitboxsep}\hfill#3\hfill\hspace*{\bitboxsep}}% + \hspace*{-\fboxrule}}% + } +\newcommand{\m@kestack}[3]{% + \setlength{\fboxsep}{0pt}% + \bitl@bel[-2\layersize]{#1}{#2}{\bitst@ckcmd{#3\hspace*{\fboxrule}}}% + } +\newcommand{\bits}[4][]{% + \bitdec@destyle{#1}% + \m@kebits{#2}{#3}{#4}} +\newcommand{\bitstack}[4][]{% + \bitdec@destyle{#1}% + \m@kestack{#2}{#3}{#4}} +\newcommand{\bitsubspaced}[3][]{% + \bitdec@destyle{#1}% + \renewcommand{\bitalign}{\relax}% + \begin{xbitfield}[#2\bitw@dth]{0pt}{#2}#3\end{xbitfield}% + \hspace*{-\fboxrule}} +\newcommand{\bitsub}[4][]{% + {\setlength{\bitskip}{-\fboxrule}% + \bitl@bel{#2}{#3}{\bitsubspaced[#1]{#3}{#4}}}} +\newcommand{\bitdots}{% + \parbox{\textwidth}{% + \centering\vbox to 2.5ex{% + \cleaders\vbox to 0.8ex{\vfill.\vfill}\vfill}}} +\newcommand{\bittext}[1]{% + \rule[-\bitboxdepth]{0pt}{\bitboxheight}#1} +\newenvironment{xbitfield}[3][4in]% + {\setlength{\bitw@dth}{(#1-#2*2)/#3}% + \begin{minipage}{#1}\bitalign% + \offinterlineskip% + \endlinechar=-1% + \renewcommand{\\}% + {\par\vspace{\bitskip}\setboolean{bitb@xfirst}{true}}% + \setboolean{bitb@xfirst}{true}% + }% + {\end{minipage}% + \setboolean{bitb@xfirst}{false}} +\newenvironment{bitfield}[2][4in]% + {\begin{xbitfield}[#1]{\layersize}{#2}}% + {\end{xbitfield}} +\endinput +%% +%% End of file `bitfield.sty'. |