ConTeXt 分段替代边距不尊重边距

ConTeXt 分段替代边距不尊重边距

这是如何在 ConTeXt 中模仿“twoside=semi”?基本上,我想要一个单面布局,并带有双面页码。这包括仅在一侧(在本例中为左侧)留出较宽的边距以容纳边距材料。

不幸的是,\setuphead替代方案inmargin不尊重只能有一个边距( 也不尊重margin)。设置后,rightmargin=0pt您将在小节级别看到此行为:

边缘部分

这发生在偶数页上。在奇数页上,它确实按预期工作,并且材料正确放置:

边距 2 中的子部分

\setuppagenumbering [alternative={doublesided,singlesided}]
\setuplayout        [rightmargin=0pt,
                     backspace=8cm,
                     leftmargin=7cm,
                     width=fit]
\setuphead          [alternative=inmargin]
\showframe

\starttext
\startpart[title=PTest]
    \startchapter[title=CTest]
        \startsection[title=STest]
            \startsubsection[title=SubTest]
                Test
            \stopsubsection
            \page
            \startsubsection[title=SubTest]
                Test
            \stopsubsection
        \stopsection
    \stopchapter
\stoppart
\stoptext

问题:如何在偶数页上复制奇数页上的行为?

答案1

当您有双面文档时,ConTeXt 会切换偶数页的左右边距的位置。inmargin另一种方法是将数字放在边距区域时考虑到这一点,但当您设置为时rightmargin0pt这不是必需的,因为边距区域不会更改页面布局),您还将左边距和文本块之间的空间设置为0pt

修复此问题的第一种方法是设置rightmargin为大于的值0pt

\setuplayout
  [rightmargin=4cm,
   backspace=8cm,
   leftmargin=7cm,
   width=middle]

location当您拥有较新版本的 ConTeXt 时,您还可以使用不同的方法,为键设置一个值,\setuphead然后使用\margindata命令将数字放置在边距中。

\setuphead
  [alternative=inmargin,
   location=inleft]

相关内容