Quadros aninhados ConTeXt: o deslocamento interno reduz os quadros

Quadros aninhados ConTeXt: o deslocamento interno reduz os quadros
\starttext
\framed[strut=no,offset=0pt,rulethickness=1pt]{%
\framed
    [align=normal,
     width=200pt,
     height=50pt,
     offset=0pt,
     frame=off,
     rulethickness=0pt]{%
    \blackrule[color=orange,width=100pt,height=50pt]}}
\stoptext

bom

Até agora está tudo bem. A espessura da régua deve ser definida como 0pt, caso contrário ela adiciona espaçamento de 0,4pt mesmo quando o quadro está desligado - de acordo com \framedwidth. Infelizmente, não consigo adicionar nenhum deslocamento; fazer isso reduz as duas caixas:

\starttext
\framed[strut=no,offset=0pt,rulethickness=1pt]{%
\framed
    [align=normal,
     width=200pt,
     height=50pt,
     offset=10pt,
     frame=off,
     rulethickness=0pt]{%
    \blackrule[color=orange,width=100pt,height=50pt]}}
\stoptext

ruim

Observe que o deslocamento padrão, 2,5ex, parece funcionar bem.

\framed[strut=no,offset=0pt,rulethickness=1pt]{%
\framed
    [align=normal,
     width=200pt,
     height=50pt,
     frame=off,
     rulethickness=0pt]{%
    \blackrule[color=orange,width=100pt,height=50pt]}}

padrão

A saída esperada, como se o quadro não estivesse aninhado:

alvo

Responder1

Ao usar offset, o deslocamento é adicionado diminuindo o conteúdo. Para obter o efeito desejado, você deve adicionar o deslocamento ampliando o conteúdo. Isso é feito usando as [tblr]offsetteclas.

\starttext
\framed[strut=no,rulethickness=1pt]{%
\framed
    [align=normal,
     width=200pt,
     height=50pt,
     toffset=10pt,
     boffset=\framedparameter{toffset},
     loffset=\framedparameter{toffset},
     roffset=\framedparameter{toffset},
     frame=off,
     rulethickness=0pt]{%
    \blackrule[color=orange,width=100pt,height=50pt]}}
\stoptext

insira a descrição da imagem aqui

Você pode definir todos os parâmetros de uma vez usando uma macro no formato extras.

\define[1]\setouteroffset{%
    \setframedparameter{toffset}{#1}%
    \setframedparameter{boffset}{#1}%
    \setframedparameter{loffset}{#1}%
    \setframedparameter{toffset}{#1}%
}
\starttext
\framed[strut=no,rulethickness=1pt]{%
\framed
    [align=normal,
     width=200pt,
     height=50pt,
     extras=\setouteroffset{10pt},
     frame=off,
     rulethickness=0pt]{%
    \blackrule[color=orange,width=100pt,height=50pt]}}
\stoptext

informação relacionada