背景

背景

背景

希望强调索引章节标题的首字母。

代码

以下代码无法按预期工作:

\defineframed[StyleChapterFramed][
  frame=off,
]

\define[1]\StyleChapter{%
  \StyleChapterFramed{%
    \framed[align=right, frame=off]{%
      \startoverlay {
          \getfirstcharacter{#1}%
          \firstcharacter%
        }
      \stopoverlay
    }
  }
}

  \setuphead[chapter][
    deeptextcommand=\StyleChapter,
  ]

\starttext

\startfrontmatter
  \completecontent
\stopfrontmatter

\startbodymatter
  \startchapter[
    title={Chapter},
    reference=sec:chapter,
  ]

  \startsection[
    title={Section},
    reference=sec:section,
  ]

  \startsubsection[
    title={Equipment},
    reference=sec:equipment,]
    \input knuth
  \stopsubsection

  \stopsection
  \stopchapter
\stopbodymatter

\startbackmatter
  \completeindex
  %\placeindex
\stopbackmatter

\stoptext

这会产生以下编译错误:

structure       > sectioning > chapter @ level 2 : 0.1 -> \headtext {index}
! Use of \csname\endcsname doesn't match its definition.

system          > tex > error on line 51 in file ex.tex: Use of  ...

问题

问题似乎出在以下这一行:

  \completeindex

该文件在替换为以下内容时可以编译:

  \chapter{Index}
  \placeindex

更新

使用以下情况时代码也会失败:

\setupregister[index][%
  alternative=A,%
]

尽管这看起来是一个不同的问题。

输出

我已经实现了以下章节标题(插入右下角,后跟分页符):

章节标题

然而,我似乎无法完成的是覆盖章节样式来创建不同的索引样式标题,例如(在页面顶部,没有分页符):

索引标题

这可能与以下情​​况有关:在 ConTeXt 的目录中包含自定义索引章节标题

问题

你将如何使用deeptextcommand 一个习俗登记在上下文中?

答案1

在 ConTeXt 邮件列表中,提出了一种解决方法:

\cldcontext{string.sub("#1",1,1)}%

这将变成:

\define[1]\StyleChapter{%
  \StyleChapterFramed{%
    \framed[align=right, frame=off]{%
      \startoverlay
        \color[blue]{%
          \StyleFontChapterCharacter%
          \cldcontext{string.sub("#1",1,1)}%
        }
        \vskip-1.9em\hskip1.2em#1
      \stopoverlay
    }
  }
}

相关内容