El uso de bytefield en una clase independiente corta los números de campo

El uso de bytefield en una clase independiente corta los números de campo

Para mí, el comportamiento descrito parece ser un bytefielderror del paquete v2.2. Tal vez estoy entendiendo mal las cosas y standalonela versión 1.2 también tiene errores. O simplemente soy yo haciendo las cosas mal.

Composición tipográfica de este ejemplo mínimo

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

El uso de pdflatex produce un campo de bits demasiado recortado:

producción demasiado recortada

El borde superior está demasiado ajustado, los demás bordes están demasiado ajustados ya que cortan un píxel enmarcado. Considero que esto es un bytefielderror y traté de encontrar una solución.

Como se sugiere enesta pregunta, el borde independiente se puede aumentar, lo que revela los números del campo de bytes al menos en parte:

\documentclass[border=1pt 0pt 1pt 10cm]{standalone}

produce esto:

frontera incompletamente extendida

lo que resuelve el problema en el borde inferior/izquierdo/derecho, pero no en el borde superior. Esto parece ser un standaloneerror.

El uso \documentclass[border=2mm]{standalone}extiende todos los límites como se esperaba. La solución actual sería ampliar todos los bordes aproximadamente 2 mm para que los números del campo de bytes sean visibles.

Para mí, esta solución es muy desafortunada, ya que estoy creando muchos archivos PDF utilizando la clase independiente en un entorno automatizado; solo unos pocos de ellos son campos de bytes. Por lo tanto, tendría que aumentartodobordes ya que el entorno de bytefield no acepta bordercomo parámetro opcional.

¿Se conoce alguna otra solución alternativa?

Respuesta1

El problema aquí es que los números de índice en la parte superior no son parte delcuadro delimitadorde la tabla de campos de bytes. Puede ver esto simplemente usando un bytefieldentorno dentro de un documento normal y agregando elementos \frame{...}a su alrededor. El cuadro resultante también cortará los números de índice.

bytefieldSupongo que esto se debe a que el pictureentorno de inclusión no tiene en cuenta la altura del número de índice.

No hay nada standaloneni ninguna otra herramienta TeX que pueda hacer después, ya que el tamaño oficial no está determinado por la "tinta" sino por el cuadro delimitador oficial. Sólo las herramientas de renderizado como GhostScript pueden recalcular el cuadro delimitador actual observando la "tinta" producida.

Como solución, simplemente agregue un borde alrededor. Su ejemplo de código no funciona porque necesita agregar los números entre llaves para proteger los espacios del código de procesamiento de opciones de \documentclass.

Lo siguiente funciona (tenga en cuenta que 0,5 (=0,5 pb; puntos grandes) es el límite predeterminado):

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

información relacionada