鉴于
命名\definetextbackground
定义blockquote
如下:
\setupwhitespace[big]
\definetextbackground[blockquote][
location=paragraph,
style=italicbold,
backgroundcolor=lightgray,
backgroundoffset=1em,
%width=\textwidth-2em,
before={\setupscale[maxwidth=\textwidth]},
frame=off,
]
\starttext
\startcolumns[n=2, rule=on]
\input douglas
\startblockquote
\input lorem
\stopblockquote
\input knuth
\stopcolumns
\stoptext
问题
天真的评论width=\textwidth-2em
或多或少表达了人们的期望,即:
目标是通过 来减少环境
blockquote
。2em
这将导致该backgroundcolor
区域和其前面的正常段落宽度相等;就像这个 StackExchange blockquote 一样。
在单一blockquote
环境中定义所有内容(尽管不一定是\definetextbackground
)对于将其用作以下模板至关重要:Pandoc Markdown。
最后,我一直在尝试\scale
命令,但遗憾的是没有效果。
警告:偏移
定义偏移量有两种方法:backgroundoffset
如上所示单个,或如下所示、 、topoffset
& 。结果不同。后一种方法的问题是bottomoffset
leftoffset
rightoffset
柱子断裂得相当难看,没有任何偏移。应该避免这种情况。否则,我对任何特定的偏移方法都持怀疑态度。
\setupwhitespace[big]
\definetextbackground[blockquote][
location=paragraph,
style=italicbold,
backgroundcolor=lightgray,
topoffset=1.25ex, bottomoffset=2ex,
leftoffset=1.5em, rightoffset=1.5em,
before={\setupscale[maxwidth=\textwidth]},
frame=off,
]
\starttext
\startcolumns[n=2, rule=on]
\input douglas
\startblockquote
\input lorem
\stopblockquote
\input knuth
\stopcolumns
\stoptext
答案1
我不确定我是否理解正确。您可以使用 MetaFun 根据您的喜好修改背景。在这里我仅为框架中的第一个块添加了 topoffset,仅为框架中的最后一个块添加了 bottomoffset。
\setupwhitespace[big]
\startuseMPgraphic{custombg}
begingroup;
save p; path p;
for i=1 upto nofmultipars :
p := ( llcorner multipars[i]
-- lrcorner multipars[i]
-- urcorner multipars[i]
-- ulcorner multipars[i]
-- cycle )
enlarged (boxfilloffset,0)
if multilocs[i] = 1: % first block
topenlarged boxfilloffset
elseif multilocs[i] = 3: % last block
bottomenlarged boxfilloffset
fi;
if boxlinetype>0 :
draw p boxlineoptions;
fi;
if boxfilltype>0 :
fill p boxfilloptions;
fi;
endfor ;
endgroup;
\stopuseMPgraphic
\definetextbackground
[blockquote]
[location=paragraph,
style=italicbold,
width=\textwidth,
mp=custombg,
backgroundcolor=lightgray,
backgroundoffset=1em,
frame=off]
\starttext
\startcolumns[n=2, rule=on]
\samplefile{knuth}
\samplefile{knuth}
\samplefile{knuth}
\startblockquote
\samplefile{knuth}
\samplefile{knuth}
\samplefile{knuth}
\samplefile{knuth}
\samplefile{knuth}
\samplefile{knuth}
\samplefile{knuth}
\stopblockquote
\samplefile{knuth}
\samplefile{knuth}
\stopcolumns
\stoptext
答案2
我认为您试图避免的行为是由选项引起的backgroundoffset=1em
。您可能正在寻找leftoffset
选项及其相关项,如以下示例所示:
\setupwhitespace[big]
\definetextbackground[blockquote][
location=paragraph,
style=italicbold,
backgroundcolor=lightgray,
leftoffset=1em,
rightoffset=1em,
topoffset=1em,
bottomoffset=1em,
width=\textwidth,
frame=off,
]
\starttext
\startcolumns[n=2, rule=on]
\input douglas
\startblockquote
\input lorem
\stopblockquote
\input knuth
\stopcolumns
\stoptext
我不确定您是否想要块引用文本偏移,但如果您只是想让块引用宽度与段落匹配,请删除backgroundoffset
。