
bytefield
Für mich scheint das beschriebene Verhalten ein Paketfehler in Version 2.2 zu sein . Vielleicht mache ich etwas falsch und standalone
Version 1.2 ist auch fehlerhaft. Oder ich mache einfach Dinge falsch.
Setzen dieses Minimalbeispiels
\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}
Die Verwendung von pdflatex führt zu einem zu eng zugeschnittenen Bitfeld:
Der obere Rand ist viel zu eng, andere Ränder sind etwas zu eng, da sie einen gerahmten Pixel schneiden. Ich halte das für einen bytefield
Fehler und habe versucht, einen Workaround zu finden.
Wie vorgeschlagen indiese Fragekann der Standalone-Rahmen vergrößert werden, wodurch die Bytefeldnummern zumindest teilweise preisgegeben werden:
\documentclass[border=1pt 0pt 1pt 10cm]{standalone}
ergibt dies:
das löst das Problem am unteren/linken/rechten Rand, aber nicht am oberen Rand. Das scheint ein standalone
Fehler zu sein.
Die Verwendung \documentclass[border=2mm]{standalone}
von erweitert alle Ränder wie erwartet. Der aktuelle Workaround wäre, alle Ränder um ca. 2 mm zu erweitern, um die Bytefeldnummern sichtbar zu machen.
Für mich ist dieser Workaround sehr bedauerlich, da ich mit der Standalone-Klasse in einer automatisierten Umgebung viele PDFs erstelle - nur wenige davon sind Bytefelder. Daher müsste ichalleGrenzen, da die Bytefield-Umgebung diese nicht border
als optionalen Parameter akzeptiert.
Ist eine andere Problemumgehung bekannt?
Antwort1
Das Problem hierbei ist, dass die Indexnummern oben nicht Teil derBegrenzungsrahmender Bytefield-Tabelle. Sie können dies sehen, indem Sie einfach eine bytefield
Umgebung innerhalb eines normalen Dokuments verwenden und \frame{...}
darum herum hinzufügen. Der resultierende Rahmen schneidet auch die Indexnummern ab.
bytefield
Ich vermute, dies liegt daran , dass die picture
Einschlussumgebung die Höhe der Indexnummer nicht berücksichtigt.
Da die offizielle Größe nicht durch die „Tinte“, sondern durch die offizielle Begrenzungsbox bestimmt wird, gibt es nichts standalone
, was kein anderes TeX-Tool danach tun kann. Nur Rendering-Tools wie Ghostscript können die aktuelle Begrenzungsbox neu berechnen, indem sie sich die erzeugte „Tinte“ ansehen.
Als Lösung fügen Sie einfach einen Rahmen darum hinzu. Ihr Codebeispiel funktioniert nicht, da Sie die Zahlen in Klammern setzen müssen, um die Leerzeichen vor dem Optionenverarbeitungscode von zu schützen \documentclass
.
Folgendes funktioniert (beachten Sie, dass 0,5 (= 0,5 bp; große Punkte) die Standardgrenze ist):
\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}