评论

评论

我使用\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}.

生成:输出

相关内容