\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