Usar bytefield na classe autônoma corta os números dos campos

Usar bytefield na classe autônoma corta os números dos campos

Para mim, o comportamento descrito parece ser um bytefieldbug do pacote v2.2. Talvez eu esteja entendendo errado e standalonea v1.2 também esteja com bugs. Ou sou só eu fazendo coisas erradas.

Compondo este exemplo 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}

usar pdflatex produz um campo de bits muito cortado:

saída muito cortada

A borda superior está muito apertada, outras bordas estão um pouco apertadas porque cortam um pixel emoldurado. Considero isso um bytefieldbug e tentei encontrar uma solução alternativa.

Como sugerido emessa questão, a borda independente pode ser aumentada, o que revela os números do campo de bytes pelo menos parcialmente:

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

produz isto:

fronteira incompletamente estendida

o que resolve o problema na borda inferior/esquerda/direita, mas não na borda superior. Isso parece ser um standalonebug.

O uso \documentclass[border=2mm]{standalone}estende todas as fronteiras conforme o esperado. A solução alternativa atual seria estender todas as bordas em aproximadamente 2 mm para tornar visíveis os números do campo de bytes.

Para mim, essa solução alternativa é muito lamentável, pois estou criando muitos PDFs usando a classe autônoma em um ambiente automatizado - apenas alguns deles sendo bytefields. Assim, eu teria que aumentartodosfronteiras já que o ambiente bytefield não aceita bordercomo parâmetro opcional.

Alguma outra solução alternativa é conhecida?

Responder1

O problema aqui é que os números de índice no topo não fazem parte docaixa delimitadorada tabela bytefield. Você pode ver isso apenas usando um bytefieldambiente dentro de um documento normal e adicionando \frame{...}em torno dele. O quadro resultante também cortará os números de índice.

bytefieldAcho que isso é causado porque o pictureambiente incluído não leva em consideração a altura do número do índice.

Não há nada standaloneou qualquer outra ferramenta TeX que possa fazer depois, pois o tamanho oficial não é determinado pela "tinta", mas pela caixa delimitadora oficial. Somente ferramentas de renderização como o ghostscript podem recalcular a caixa delimitadora correspondente observando a "tinta" produzida.

Como solução, basta adicionar uma borda ao redor. Seu exemplo de código não funciona porque você precisa adicionar os números entre colchetes para proteger os espaços do código de processamento da opção de \documentclass.

O seguinte funciona (observe que 0,5 (= 0,5 pb; pontos grandes) é a borda padrão):

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

informação relacionada