鉴于

鉴于

鉴于

命名\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或多或少表达了人们的期望,即:

目标是通过 来减少环境blockquote2em这将导致该backgroundcolor区域和其前面的正常段落宽度相等;就像这个 StackExchange blockquote 一样。

在单一blockquote环境中定义所有内容(尽管不一定是\definetextbackground)对于将其用作以下模板至关重要:Pandoc Markdown

最后,我一直在尝试\scale命令,但遗憾的是没有效果。

警告:偏移

定义偏移量有两种方法:backgroundoffset如上所示单个,或如下所示、 、topoffset& 。结果不同。后一种方法的问题是bottomoffsetleftoffsetrightoffset柱子断裂得相当难看,没有任何偏移。应该避免这种情况。否则,我对任何特定的偏移方法都持怀疑态度。

\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

无偏移的列分隔符[2]

答案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

相关内容