Marcos anidados de ConTeXt: el desplazamiento interno reduce los marcos

Marcos anidados de ConTeXt: el desplazamiento interno reduce los marcos
\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

bien

Hasta ahora todo está bien. El grosor de la regla debe establecerse en 0 puntos; de lo contrario, agregará un espacio de 0,4 puntos incluso cuando el marco esté fuera de lugar, según \framedwidth. Lamentablemente, parece que no puedo agregar ninguna compensación; al hacerlo se reducen ambas cajas:

\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

malo

Tenga en cuenta que el desplazamiento predeterminado, 2.5ex, parece funcionar bien.

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

por defecto

El resultado esperado, como si el marco no estuviera anidado:

objetivo

Respuesta1

Cuando se usa offset, el desplazamiento se agrega reduciendo el contenido. Para lograr el efecto que desea, debe agregar el desplazamiento ampliando el contenido. Esto se hace usando las [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

ingrese la descripción de la imagen aquí

Puede configurar todos los parámetros a la vez usando una macro en 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

información relacionada