Xindy,跨越多页和范围的条目

Xindy,跨越多页和范围的条目

我尝试将章节的作者纳入我的书的索引中。为了实现这一点,每个章节都以带有左括号的索引条目开头,以右括号结尾。但我无法摆脱错误消息:

警告:未找到与已打开的 :close-range 匹配的条目!关键字 (A) 中的位置引用为 1。我可能丢失了一些常规的位置引用

此 MWE:

\documentclass{scrbook}
\usepackage[english]{babel}
\usepackage[makeindex, protected]{splitidx}

\newcommand{\pws}[1]{#1}

\begin{document}

\index{A|(pws}

Text spanning from page one to page two
                            \newpage
Rest of Text

\index{A|)pws}

\section{Two}
Some other text

\section{Three}
\index{A|(pws}

Another Text of author A

\index{A|)pws}

 \printindex                        

\end{document}

生成以下 idx 文件:

\indexentry{A|(pws}{1}

\indexentry{A|)pws}{2}

\indexentry{A|(pws}{2}

\indexentry{A|)pws}{2}

当我运行 texindy 时

texindy -M test.xdy -M ff-ranges -L english -t test.ilg test.idx

使用这个样式文件

(define-location-class "arabic-page-numbers"
                       ("arabic-numbers") :min-range-length 1)

                      (markup-range :open "\range{" :sep "}{" :close "}")
; list of allowed attributes

(define-attributes ("pws"))

; define format to use for locations

(markup-locref :open "\pws{" :close "}" :attr "pws")

; location list separators

(markup-attribute-group-list :sep "; ")

... 编译不正确,但记录了错误。我想这和两个范围有关,一个范围在第二页结束,另一个范围从第二页开始和结束,因为如果我用分页符分隔范围,一切都会正常。

答案1

由于没有人提出解决方案,我以某种方式解决了它,尽管它必须被视为一种黑客攻击,但适当的解决方案仍然非常受欢迎。

基本上,如果将第二个条目更改为另一个属性:

\index{A|(pwsa}

Another Text of author A

\index{A|)pwsa}

然后在 .xdy 文件中添加一个删除规则,这样当存在 pws 时,pwsa 就会被删除,它会产生所需的输出而不会出现错误:

(merge-to "pws" "pwsa" :drop)

相关内容