
私にとって、説明されている動作は、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 mm 拡張することです。
私にとって、この回避策は非常に残念です。なぜなら、私は自動化された環境でスタンドアロンクラスを使用して多くの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}