我使用\fbox{}
LaTeX 在文本周围绘制一个框。如何实现如下所示的计算机位表示?
答案1
正如评论中提到的,您应该考虑,bytefield
为此类构造打包。它提供了许多开箱即用的复杂布局。有关更多详细信息,请从命令行texdoc bytefield
/提示符中键入)或访问texdoc.net. 一个例子(来自手册):
\documentclass{article}
\usepackage{bytefield}
\begin{document}
\begin{bytefield}[endianness=little,bitwidth=0.11111\linewidth]{8}
%\bitheader{0-7} \\
\bitbox{1}{Res} & \bitbox{1}{BE} & \bitbox{1}{CF}
& \bitbox{3}{$\mbox{Name\_Len}-1$} & \bitbox{2}{Len\_Len} \\
\end{bytefield}
\end{document}
答案2
评论
我使用全能者tikz
创建了一个命令\drawbits
,它采用逗号分隔的值列表,其中0
表示未设置的位,其他任何值(例如1
)表示设置位。
执行
\documentclass{article}
\pagestyle{empty}%for cropping
\usepackage{tikz}
\newcommand\drawbits[1]{%
\tikz[x=1.5ex,y=1.5ex,every path/.style={draw=black,semithick}]{%
\foreach \y [count=\i] in {#1} {
\expandafter\ifx\y0
\draw (\i,0) rectangle (\i+1,1);
\else
\draw (\i,0) rectangle (\i+1,1);
\filldraw[fill=black] (\i+0.2,0.2) rectangle (\i*1+0.8,0.8);
\fi
}%
}%
}
\begin{document}
My bits: \drawbits{0,0,1,1,0,1,0}
\large My bits: \drawbits{0,0,1,1,0,1,0}
\Large My bits: \drawbits{0,0,1,1,0,1,0}
\LARGE My bits: \drawbits{0,0,1,1,0,1,0}
\end{document}
输出
答案3
该包的替代方案bytefield
是使用古老的 Tikz:
\usepackage{tikz}
\newcommand\drawbits[1]{\tikz\draw[step=12pt] (0,0) grid (#1*12pt,12pt);}
将加载 Tikz 并定义一个名为的命令\drawbits
,该命令将绘制指定数量的位。例如:
Here are eight bits: \drawbits{8}.
生成: