The code in Misaligment in a rule inside a bitbox has got me almost all of where I need to go, but I also want to be able to color \bitboxes*.
I tried this variant of @egreg’s \colorbitbox:
\newcommand{\colorbitboxes*}[3]{%
\sbox0{\bitboxes*{#2}{#3}}%
\makebox[0pt][l]{\textcolor{#1}{\rule[-\dp0]{\wd0}{\ht0}}}%
\bitboxes*{#2}{#3}%
}
But unfortunately when I try to use that it fails with: You can't use ‘macro parameter character #’ in internal vertical mode.
I also can’t figure out how to pass arguments like [ltb] to \colorbitbox, which would be another way to get the output I want, albeit much more verbose, since I have twelve bits I want in there. When I try that, it says ! Missing number, treated as zero.
I know some LaTeX, but this is deep into voodoo for me, so I am stuck, any help would be greatly appreciated!
To expand on my comment, @Mike’s answer looks like this with my bytefield (code below):
\newcommand{\baselinealign}[1]{%
\centering
\strut#1%
}
\begin{bytefield}[bitwidth=1.9em, leftcurly=., leftcurlyspace=0pt, boxformatting={\baselinealign}]{16}
\hexhead \\
\begin{leftwordgroup}{\tiny\bfseries 00}
\colorbitbox{lightgreen}{1}{\tt 11} & \colorbitbox{lightgreen}{4}{\tt 872349ae} &
\colorbitbox{yellow}{1}{\tt 11} & \colorbitbox{yellow}{4}{$TxID$} &
\colorbitbox{lightred}{1}{\tt 10} & \colorbitbox{lightred}{2}{$type$} &
\colorbitbox{lightcyan}{1}{\tt 0f} & \colorbitbox{lightcyan}{1}{$n$} &
\colorbitbox{lightpurple}{1}{\tt 14}
\end{leftwordgroup} \\
\begin{leftwordgroup}{\tiny\bfseries 10}
\colorbitbox{lightpurple}{4}{{\tt 0000000c}\small{ (12)}} &
\colorbitbox[lbt]{lightpurple}{1}{$t_1$} & \colorbitbox[bt]{lightpurple}{1}{$t_2$} &
\colorbitbox[bt]{lightpurple}{1}{$t_3$} & \colorbitbox[bt]{lightpurple}{1}{$t_4$} &
\colorbitbox[bt]{lightpurple}{1}{$t_5$} & \colorbitbox[bt]{lightpurple}{1}{$t_6$} &
\colorbitbox[bt]{lightpurple}{1}{$t_7$} & \colorbitbox[bt]{lightpurple}{1}{$t_8$} &
\colorbitbox[bt]{lightpurple}{1}{$t_9$} & \colorbitbox[bt]{lightpurple}{1}{$t_{10}$} &
\colorbitbox[bt]{lightpurple}{1}{$t_{11}$} & \colorbitbox[rbt]{lightpurple}{1}{$t_{12}$}
\end{leftwordgroup} \\
\begin{leftwordgroup}{}
\wordbox[lrt]{1}{Arguments} \\
\skippedwords \\
\wordbox[lrb]{1}{}
\end{leftwordgroup}
\end{bytefield}



boxformatting={\baselinealign}in my bytefield, and the edges of the color are not quite reaching each other when I omit the left and right frames. So I guess I am still looking for a colorizedbitboxes*that is compatible with base alignment. – James Elliott May 23 '17 at 03:13\widthand\heightinstead of\dimexpr\width-0.4ptand\dimexpr\height-0.4pt(with the downside of partially overdrawing neighbouring frames, which can be fixed by drawing the necessary lines ([lt]for 4 bits, no frame)). But this doesn't help with the vertical alignment. So ... (see comment on your answer) – Mike May 23 '17 at 20:12