鉴于 MWE
%\documentclass{article}
\documentclass{IEEEtran}
\usepackage{bytefield}
\begin{document}
\begin{bytefield}[bitwidth=10pt,bitheight=20pt]{8}
\bitheader{0-7} \\
\bitbox{1}{A} &
\bitbox{1}{B} &
\bitbox{1}{C} &
\bitbox{5}{X} \\
\bitbox{1}{D} &
\bitbox{1}{E} &
\bitbox{1}{F} &
\bitbox{5}{X} \\
\bitbox{1}{G} &
\bitbox{1}{H} &
\bitbox{1}{I} &
\bitbox{5}{X} \\
\end{bytefield}
\end{document}
可以看出,IEEEtran 类弄乱了字节字段包生成的输出(将编译与类article
(正确)和类IEEEtran
(不正确)进行比较)。我该如何修复它?请注意,我的实际代码使用了更复杂的字节字段和额外的 TikZ 覆盖。我希望在 MWE 中修复它也能在我的文档中修复它。
答案1
这是 中的一个“功能” bytefield
,依赖于\lineskip
值 1pt,但 中却没有IEEEtran
。
\lineskip
您可以通过在环境内设置补丁来修复它bytefield
。
\documentclass{IEEEtran}
\usepackage{bytefield}
\usepackage{xpatch}
\xpretocmd{\bytefield}{\setlength{\lineskip}{1pt}}{}{}
\begin{document}
\begin{bytefield}[bitwidth=10pt,bitheight=20pt]{8}
\bitheader{0-7} \\
\bitbox{1}{A} &
\bitbox{1}{B} &
\bitbox{1}{C} &
\bitbox{5}{X} \\
\bitbox{1}{D} &
\bitbox{1}{E} &
\bitbox{1}{F} &
\bitbox{5}{X} \\
\bitbox{1}{G} &
\bitbox{1}{H} &
\bitbox{1}{I} &
\bitbox{5}{X} \\
\end{bytefield}
\end{document}