ConTeXt:在边距中放置枚举的正确方法

ConTeXt:在边距中放置枚举的正确方法

是否有适当的方法来放置和中心(外)边距中的枚举

\defineenumeration[MyEnumeration][...]
\inmargin{
  \startMyEnumeration
    ...
  \stopMyEnumeration
}

或者

\defineenumeration[MyEnumeration][...]
\inouter{
  \startMyEnumeration
    ...
  \stopMyEnumeration
}

即使这样也存在一些问题,例如不在双面上居中枚举:当右侧很好时,左侧就在页面边缘。

我尝试使用alternative=marginmargin=yes尝试每个枚举属性,但似乎没有任何效果。

\setupmargindata我也尝试过这样使用关联以及各种margins命令,例如这里或者这里但我找不到办法做我想做的事。

答案1

您可以使用userdata环境将内容存储enumeration在缓冲区中。

要将 和存储的内容一起放在enumeration边距中,您必须alternativeuserdata环境创建一个新的。在新的中,alternative您可以使用\margindata(或\inouter等)命令将enumeration和内容一起放在所需的边距中。

下面是此方法的一个示例

\defineenumeration
  [MyEnumeration]
  [alternative=top,
   before=,
   after=,
   inbetween=,
   title=yes,
   text=Enum.]

\defineuserdataalternative
  [enumeration]
  [renderingsetup=enumeration:margin]

\startsetups[enumeration:margin]
  \margindata
    [inouter]
    {\startMyEnumeration[title=\userdataparameter{title},reference=\userdataparameter{reference}]
     \getinlineuserdata
     \stopMyEnumeration}
\stopsetups

\defineuserdata [Enumeration] [alternative=enumeration]

\setuplayout
  [width=10cm,
   rightmargin=6cm]

\starttext

\input tufte
\startuserdata [Enumeration] [title={Jojo Mayer}]
\input jojomayer
\stopuserdata
\input zapf

\stoptext

输出结果如下

在此处输入图片描述

相关内容