对我来说,所描述的行为似乎是bytefield
v2.2 软件包的一个错误。也许我搞错了,standalone
v1.2 也存在错误。或者只是我做错了。
排版这个最小的例子
\documentclass{standalone}
\usepackage{bytefield}
\begin{document}
\begin{bytefield}[bitwidth=2.1em]{2}
\bitheader{0-1} \\ \bitbox{1}{0} \bitbox{1}{2}
\end{bytefield}
\end{document}
使用 pdflatex 会产生过于紧密的位场:
顶部边框太紧,其他边框也有点太紧,因为它们会切掉一个边框像素。我认为这是个bytefield
错误,并试图找到解决方法。
正如建议的那样这个问题,可以增加独立边框,这至少可以部分显示字节场数字:
\documentclass[border=1pt 0pt 1pt 10cm]{standalone}
产生这个:
这解决了底部/左侧/右侧边框的问题,但没有解决顶部边框的问题。这似乎是一个standalone
错误。
使用\documentclass[border=2mm]{standalone}
扩展所有边框可达到预期效果。当前的解决方法是将所有边框扩展约 2 毫米,以使字节字段数字可见。
对我来说,这种解决方法非常不幸,因为我在自动化环境中使用独立类创建大量 PDF - 其中只有少数是字节字段。因此,我必须增加全部边界,因为字节场环境不接受border
作为可选参数。
还有其他解决方法吗?
答案1
这里的问题是,顶部的索引号不是边界框字节字段表。您只需bytefield
在普通文档中使用环境并\frame{...}
在其周围添加即可看到这一点。生成的框架也会剪切索引号。
这是由造成的bytefield
,我猜测是因为包含picture
环境没有考虑索引号高度。
之后,其他 TeX 工具都无能为力standalone
,因为官方尺寸不是由“墨水”决定的,而是由官方边界框决定的。只有 ghostscript 等渲染工具可以通过查看生成的“墨水”来重新计算正确的边界框。
解决方法是在其周围添加边框。您的代码示例不起作用,因为您需要将数字添加到括号中,以保护空格不受 的选项处理代码的影响\documentclass
。
以下工作(请注意,0.5(=0.5bp;大点)是默认边界):
\documentclass[border={.5 .5 .5 2mm}]{standalone}
\usepackage{bytefield}
\begin{document}
\begin{bytefield}[bitwidth=2.1em]{2}
\bitheader{0-1} \\ \bitbox{1}{0} \bitbox{1}{2}
\end{bytefield}
\end{document}