
Meine linken Wortgruppen sehen in meinen Bytefeldern ziemlich hässlich aus. Ist es möglich, zwischen Bytefeld und linker Wortgruppe den gleichen Abstand wie zwischen Bytefeld und rechter Wortgruppe zu schaffen? Oder ist es zumindest möglich, den Abstand zwischen linker Wortgruppe und Bytefeld ein wenig zu vergrößern?
Dies ist mein aktueller Code:
\documentclass[a4paper,ngerman,naustrian,DIV=12,BCOR=1cm]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{bytefield}
\usepackage{needspace}
\newcommand{\flexnumfield}{{FlexNum, 1 -- 9 Bytes}}
\begin{document}
\chapter{Bytefield}
\needspace{2\baselineskip}\begin{figure}\centering\begin{bytefield}[bitwidth=2.2em]{8} \\
\bitheader{0-7} \\
\begin{rightwordgroup}{\parbox{8em}{\raggedright Message Type}}
\wordbox[lrt]{1}{9}
\end{rightwordgroup}
\\
\begin{leftwordgroup}{\parbox{8em}{\raggedleft Versionsverlauf}}
\wordbox[lrt]{3}{Version Count \\ \flexnumfield \\ $\vdots$}
\\
\begin{rightwordgroup}{\parbox{8em}{\raggedright Version}}
\wordbox[lrtb]{3}{Hash \\ Data, 20 Bytes \\ $\vdots$}
\end{rightwordgroup}
\\
\begin{rightwordgroup}{\parbox{8em}{\raggedright Version}}
\wordbox[lrtb]{1}{$\vdots$}
\end{rightwordgroup}
\end{leftwordgroup}
\end{bytefield}\par\protect\caption{some caption}
\label{bytefield}
\end{figure}
\end{document}
Antwort1
Es gibt eine seltsame Asymmetrie zwischen links und rechts:
\documentclass[a4paper,DIV=12,BCOR=1cm]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{bytefield}
\newcommand{\flexnumfield}{{FlexNum, 1 -- 9 Bytes}}
\begin{document}
\begin{bytefield}[
bitwidth=2.2em,
rightcurlyspace=0pt,
leftcurlyspace=12pt
]{8} \\
\bitheader{0-7} \\
\begin{rightwordgroup}{Message Type}
\wordbox[lrt]{1}{9}
\end{rightwordgroup}
\\
\begin{leftwordgroup}{Versionsverlauf}
\wordbox[lrt]{3}{Version Count \\ \flexnumfield \\ $\vdots$}
\\
\begin{rightwordgroup}{Version}
\wordbox[lrtb]{3}{Hash \\ Data, 20 Bytes \\ $\vdots$}
\end{rightwordgroup}
\\
\begin{rightwordgroup}{Version}
\wordbox[lrtb]{1}{$\vdots$}
\end{rightwordgroup}
\end{leftwordgroup}
\end{bytefield}
\end{document}
Anstatt die Werte im optionalen Argument für die Umgebung anzugeben, können Sie die Leerzeichen global (oder lokal innerhalb einer Umgebung wie figure
oder table
) definieren, indem Sie sagen
\bytefieldsetup{
rightcurlyspace=0pt,
leftcurlyspace=12pt
}
in der Präambel (oder in der Umgebung).
Antwort2
Hier habe ich einen Patch auf die Umgebung angewendet und mit diesen Codezeilen 12pt nach links hinzugefügt:
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\endleftwordgroup}{-\total@lbox@width}{-12pt -\total@lbox@width}{}{}
\makeatother
Hier ist das MWE.
\documentclass[a4paper,ngerman,naustrian,DIV=12,BCOR=1cm]{scrbook}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{bytefield}
\usepackage{needspace}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\endleftwordgroup}{-\total@lbox@width}{-12pt -\total@lbox@width}{}{}
\makeatother
\newcommand{\flexnumfield}{{FlexNum, 1 -- 9 Bytes}}
\begin{document}
\chapter{Bytefield}
\needspace{2\baselineskip}\begin{figure}\centering\begin{bytefield}[bitwidth=2.2em]{8} \\
\bitheader{0-7} \\
\begin{rightwordgroup}{\parbox{8em}{\raggedright Message Type}}
\wordbox[lrt]{1}{9}
\end{rightwordgroup}
\\
\begin{leftwordgroup}{\parbox{8em}{\raggedleft Versionsverlauf}}
\wordbox[lrt]{3}{Version Count \\ \flexnumfield \\ $\vdots$}
\\
\begin{rightwordgroup}{\parbox{8em}{\raggedright Version}}
\wordbox[lrtb]{3}{Hash \\ Data, 20 Bytes \\ $\vdots$}
\end{rightwordgroup}
\\
\begin{rightwordgroup}{\parbox{8em}{\raggedright Version}}
\wordbox[lrtb]{1}{$\vdots$}
\end{rightwordgroup}
\end{leftwordgroup}
\end{bytefield}\par\protect\caption{some caption}
\label{bytefield}
\end{figure}
\end{document}