ConTeXt Nested Frames: innerer Offset verkleinert Rahmen

ConTeXt Nested Frames: innerer Offset verkleinert Rahmen
\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

Gut

Soweit ist alles in Ordnung. Die Stärke der Linie sollte auf 0pt eingestellt werden, sonst fügt sie 0,4pt Abstand hinzu, auch wenn der Rahmen ausgeschaltet ist - gemäß \framedwidth. Leider kann ich anscheinend keinen Versatz hinzufügen; wenn ich das tue, werden beide Kästchen verkleinert:

\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

schlecht

Beachten Sie, dass der Standardversatz von 2,5 Ex problemlos zu funktionieren scheint.

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

Standard

Die erwartete Ausgabe, als ob der Rahmen nicht verschachtelt wäre:

Ziel

Antwort1

Bei der Verwendung offsetwird der Versatz durch Verkleinern des Inhalts hinzugefügt. Um den gewünschten Effekt zu erzielen, müssen Sie den Versatz durch Vergrößern des Inhalts hinzufügen. Dies geschieht mit den [tblr]offsetTasten .

\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

Bildbeschreibung hier eingeben

Sie können alle Parameter auf einmal mit einem Makro in einstellen 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

verwandte Informationen