我正在为 RISC-V 处理器编写技术文档。这需要写下很多像这样的小表格(它们是计算机的寄存器,其中指定了每个字段的首字母缩写):
我可以使用表格来做到这一点,但我在参考手册中看到参考手册他们改用图形。有什么建议/示例可以快速绘制这些图形吗?
非常感谢您的提示
答案1
自制解决方案。可以改变的长度\bitwidth
来改变每个条目周围的水平缓冲区空间的比例。
\documentclass{article}
\usepackage[usestackEOL]{stackengine}
\newlength\bitwidth
\setlength\bitwidth{5pt}
\newcounter{bitnum}
\newcommand\bitbox[2][\thebitnum]{\setcounter{bitnum}{#1}%
\begingroup\fboxsep=1pt\relax\stackunder{\stackon{\fbox{%
\hspace{\dimexpr\wd0+.5\bitwidth}#2%
\hspace{\dimexpr\wd0+.5\bitwidth}\strut}}{#1}}{1}%
\hspace{-\fboxrule}\addtocounter{bitnum}{-1}\endgroup\ignorespaces}
\newcommand\bytebox[3][\thebitnum]{%
\setcounter{bitnum}{#1}\begingroup\fboxsep=1pt\relax\setbox0=\hbox{#3}%
\stackunder{\def\stackalignment{r}\stackon[0pt]{\def\stackalignment{l}%
\stackon{\fbox{\makebox[\wd0+#2\bitwidth]{#3\strut}}}{\smash{~#1}}}%
{\the\numexpr#1-#2+1~}}{#2}\hspace{-\fboxrule}%
\endgroup\setcounter{bitnum}{\numexpr#1-#2}\ignorespaces}
\newcommand\continuebox{\begingroup\fboxsep=1pt\relax%
\stackunder[\fboxsep]{\stackon[\fboxsep]{\strut}{\rule{8pt}{\fboxrule}}}%
{\rule{8pt}{\fboxrule}}\endgroup%
}
\begin{document}
\bitbox[31]{SD}
\bytebox{8}{WPRI}
\bitbox{TSR}
\bitbox{TW}
\bytebox{2}{MPP[1:0]}
\bytebox{2}{WPRI}
\continuebox\dots\continuebox
\bytebox[15]{16}{XS[15:0]}
\end{document}
答案2
经过几天的使用,我绝对可以建议使用注册包来自 Matthew Lovell。这是一个完整的解决方案,为以紧凑但可读的方式记录寄存器提供了良好的支持。
这个非常简单,但可以添加更多奇特的东西(重置值,颜色......)。