ConTeXt 中多列段落中章节标题的对齐

ConTeXt 中多列段落中章节标题的对齐

我想要创建两列段落。左列和右列的对齐方式应分别为右对齐和左对齐。

以下示例以正确的对齐方式显示主要文本,但章节标题始终显示在左对齐位置:

\defineparagraphs[paras][n=2, distance=0.08\textwidth]
\setupparagraphs[paras][1][width=0.46\textwidth, align=flushright]
\setupparagraphs[paras][2][width=0.46\textwidth, align=flushleft]

\setuphead[section][style=bold, number=no]

\starttext
\startparas

\startsection[title=Knuth]
\input knuth
\stopsection

\nextparas

\startsection[title=Tufte]
\input tufte
\stopsection

\stopparas
\stoptext

结果: 在此处输入图片描述

我想将“Knuth”设置为粗体,并使其右对齐。我知道我可以通过创建自定义部分来实现所需的结果,\definehead如下所示:

\definehead[sectionr][section]
\setuphead[sectionr][align=flushright]

并在右列中使用\startsectionr ... \stopsectionr。但是,如果可能的话,我想避免使用自定义标题。有没有办法在不使用自定义标题的情况下实现相同的结果?

答案1

paragraph机制是一个简单的表格。如果您愿意使用自然表,那么您可以单独更改每列的呈现方式。例如:

\defineparagraphs[paras][n=2, distance=0.08\textwidth]
\setupparagraphs[paras][1][width=0.46\textwidth, align=flushright]
\setupparagraphs[paras][2][width=0.46\textwidth, align=flushleft]

\setuphead[section][style=bold, number=no]

\startsetups left
  \setuphead[section][align=flushright]
\stopsetups

\startsetups paragraphs
  \setupTABLE[frame=off]
  \setupTABLE[column][1,2][width=0.46\textwidth]
  \setupTABLE[column][1][roffset=0.04\textwidth, align=flushright, setups=left]
  \setupTABLE[column][2][loffset=0.04\textwidth, align=flushleft]
\stopsetups

\starttext
\startTABLE[setups=paragraphs]
  \NC 
      \startsection[title=Knuth]
        \input knuth
      \stopsection

  \NC

      \startsection[title=Tufte]
        \input tufte
      \stopsection

  \NC \NR
\stopTABLE
\stoptext

相关内容