在 ConTeXt 中,如何在双列文本内插入单列章节摘要和图表?

在 ConTeXt 中,如何在双列文本内插入单列章节摘要和图表?

我刚刚为一个特定的文档从 LaTeX 切换到 ConTeXt,我必须承认我对 ConTeXt 的几种多列替代方案有点迷茫。

据我了解,下面的代码应该可以完成这项工作,但是

  1. 我不确定它是否正确,甚至不太理想
  2. 我想知道是否有一种方法可以全局定义(即整个文档)双列设置,然后分解/宏化某些部分,以便摘要和图表自动显示在一列上,而无需在每次出现时添加额外的startcolumns/stopcolumns 命令。

\define[1]\myabstract{\startnarrower[2*middle] #1 \stopnarrower}
\starttext
    \chapter{The first chapter}
    \myabstract{Abstract of the first chapter}
    \startcolumns[n=2]
        This is some random text that fills the first chapter.
        Nothing interesting here.
    \stopcolumns

    \chapter{The second chapter}
    \myabstract{Abstract of the second chapter}
    \startcolumns[n=2]
        This is some random text that fills the second chapter.
    \stopcolumns
    \placefigure.....
    \startcolumns[n=2]
        Nothing interesting here.
    \stopcolumns
\stoptext

答案1

来自维基百科:

在两列或多列中排版文本有不同的可能性:

  • columns :适用于多列文本的简单情况
  • 段落:如果您需要表格状结构(翻译、问卷等)
  • 列集:灵活处理不同列或其他复杂任务
  • 页面网格:新的列集实现(MkIV)流:设置并排同步的不同文本(例如双语版)

原则上,列集应该是这里的选择,因为它们支持跨越多列的图形,但是,它们的 MKIV 支持很差,我个人不建议使用它们。

您的示例看起来不错,但并未完全遵循“ConTeXt 方式”。您不应为摘要定义自己的宏,而应定义自己的实例narrowern=2可以使用全局设置来分解列的选项。始终使用\start...\stop命令的变体。

\definenarrower[abstract][2*middle]
\setupcolumns[n=2]

\starttext

\startchapter[title={The first chapter}]
  \startabstract
    \input knuth
  \stopabstract

  \startcolumns
    \input knuth
  \stopcolumns
\stopchapter


\startchapter[title={The second chapter}]
  \startabstract
    \input knuth
  \stopabstract

  \startcolumns
    \input knuth
  \stopcolumns

  \startplacefigure[title=Image]
    \externalfigure[dummy]
  \stopplacefigure

  \startcolumns
    \input knuth
  \stopcolumns
\stopchapter

\stoptext

相关内容