Campos de bytes: alinear horizontalmente el grupo de palabras a la izquierda

Campos de bytes: alinear horizontalmente el grupo de palabras a la izquierda

Mis grupos de palabras izquierdas se ven bastante feos en mis campos de bytes. ¿Es posible hacer la misma brecha entre el campo de bytes y el grupo de palabras izquierdo que entre el campo de bytes y el grupo de palabras derecha? ¿O al menos es posible hacer un poco más grande la brecha entre el grupo de palabras izquierdo y el campo de bytes?

Este es mi código actual:

\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}

feo grupo de palabras izquierdas

Respuesta1

Existe una extraña asimetría entre izquierda y derecha:

\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}

ingrese la descripción de la imagen aquí

En lugar de especificar los valores en el argumento opcional del entorno, puede definir los espacios globalmente (o localmente dentro de un entorno como figureo table) diciendo

\bytefieldsetup{
  rightcurlyspace=0pt,
  leftcurlyspace=12pt
}

en el preámbulo (o en el entorno).

Respuesta2

Aquí apliqué un parche al entorno, agregando 12 puntos a la izquierda usando estas líneas de código:

\usepackage{xpatch}
\makeatletter
\xpatchcmd{\endleftwordgroup}{-\total@lbox@width}{-12pt -\total@lbox@width}{}{}
\makeatother

Aquí está el 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}

ingrese la descripción de la imagen aquí

información relacionada