在 \setlayer 中设置段落

在 \setlayer 中设置段落

我正在尝试使用图层来定义信头,但我发现使用命令设置的文本\setlayers通常被设置为单个段落,即使使用了明确的段落布局命令(例如)\startlines。以下 MWE 还显示,当我使用使用定义的开始-停止环境时,我已经设法使换行得到尊重\defineparagraphs

 \definelayer[letterheadtop][x=0mm,y=0mm,height=0.3\paperheight,width=\paperwidth]
 \definelayer[letterheadbottom][x=0mm,y=0.8\paperheight,height=0.2\paperheight,width=\paperwidth]
 \noheaderandfooterlines 

 \starttext

 \setlayer[letterheadtop][hoffset=0mm,voffset=0mm]{% 
   \framed[width=2in]{Logo}
 }

 \setlayer[letterheadtop][hoffset=0.6\paperwidth,voffset=0mm]{% 
   \startlines %This all collapses onto one line
     Line 1
     Line 2
     Line 3
   \stoplines
 }

 \setlayer[letterheadbottom][hoffset=0mm,voffset=0mm]{% 
   \defineparagraphs[lhpar][n=2,before={\blank},after={\blank}]   
   \setupparagraphs [lhpar][1][width=.5\paperwidth] 

   \startlhpar % left column
     Left
   \lhpar % switch to right column
   \startlines %These line breaks are respected
     Line 1
     Line 2
     Line 3
   \stoplines
   \stoplhpar % end paragraph body 
 }

 \setupbackgrounds[page][background={letterheadtop,letterheadbottom}] 

    Some text

 \stoptext

这是怎么回事?如何才能让命令中的换行符生效\setlayer

答案1

\setlayer在 中排版其内容\hbox。您可以使用\setlayerframed在 中排版其内容\vbox。例如:

 \setlayerframed[letterheadtop]
                [hoffset=0.6\paperwidth,voffset=0mm]
                [align=normal,frame=off,strut=no]
                {\startlines[before=,after=]
                  Line 1
                  Line 2
                  Line 3
                \stoplines}

其中第一个可选参数对应于的参数\setlayer,第二个可选参数对应于的参数\framed

\defineparagraphs之所以有效,是因为它明确地排版了内容\vbox

相关内容