Вложенные фреймы ConTeXt: внутреннее смещение сжимает фреймы

Вложенные фреймы ConTeXt: внутреннее смещение сжимает фреймы
\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

хороший

Пока все в порядке. Толщина линии должна быть установлена ​​на 0pt, иначе она добавляет интервал в 0,4pt, даже если рамка отключена - согласно \framedwidth. К сожалению, я не могу добавить никакого смещения; это сжимает оба блока:

\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

плохой

Обратите внимание, что смещение по умолчанию, 2.5ex, похоже, работает отлично.

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

по умолчанию

Ожидаемый вывод, как если бы фрейм не был вложенным:

цель

решение1

При использовании offsetсмещение добавляется путем сжатия содержимого. Чтобы добиться нужного эффекта, необходимо добавить смещение путем увеличения содержимого. Это делается с помощью клавиш [tblr]offset.

\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

введите описание изображения здесь

Вы можете задать все параметры одновременно, используя макрос в 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

Связанный контент