Bytefelder: horizontale Ausrichtung der linken Wortgruppe

Bytefelder: horizontale Ausrichtung der linken Wortgruppe

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}

hässliche linke Wortgruppe

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}

Bildbeschreibung hier eingeben

Anstatt die Werte im optionalen Argument für die Umgebung anzugeben, können Sie die Leerzeichen global (oder lokal innerhalb einer Umgebung wie figureoder 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}

Bildbeschreibung hier eingeben

verwandte Informationen