背景
希望强调索引章节标题的首字母。
代码
以下代码无法按预期工作:
\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
}
}
}