![使用 bibleref 包在自定义索引中添加“数字”标题](https://linux22.com/image/418349/%E4%BD%BF%E7%94%A8%20bibleref%20%E5%8C%85%E5%9C%A8%E8%87%AA%E5%AE%9A%E4%B9%89%E7%B4%A2%E5%BC%95%E4%B8%AD%E6%B7%BB%E5%8A%A0%E2%80%9C%E6%95%B0%E5%AD%97%E2%80%9D%E6%A0%87%E9%A2%98.png)
我在使用 Bibleref 包和样式文件编写的圣经索引中遇到了一些奇怪的行为。单词“数字”莫名其妙地出现在索引中的标题中。
梅威瑟:
\documentclass{article}
\usepackage{bibleref}
\usepackage{indextools}
\biblerefmap{Genesis}{1@Old Testament!01}
\makeindex[title=Scripture Index,name=scr,options= -s style.ist]
\renewcommand{\biblerefindex}{\index[scr]}
\begin{document}
\ibibleverse{Gen}(1:1).
\printindex[scr]
\end{document}
风格主义者
headings_flag 1
heading_prefix "{\\large\\bfseries "
heading_suffix "}\\nopagebreak\n"
delim_0 "\\dotfill"
delim_1 "\\dotfill"
delim_2 "\\dotfill"
结果索引:
我该如何预防?
答案1
问题出在.ist
文件中。它指定了headings_flag 1
,根据indextools
文档,创建“标题样式”(第 16 页)。因为书籍被映射到数字(1@
等)makeindex
认为标题应该是数字。因此,如果您指定例如\biblerefmap{Genesis}{~@Old Testament!01}
那么标题是符号。
删除样式的这一部分将导致索引带有点填充,但没有数字标题:
delim_0 "\\dotfill"
delim_1 "\\dotfill"
delim_2 "\\dotfill"
这看起来有点奇怪,因为实际引用位于第二列的顶部,但索引越长,这一点就越清晰。
如果您确实想要自定义标题(例如以粗体显示旧约/新约),那么您可以在命令中使用一个小宏\biblerefmap
。
梅威瑟:
\documentclass{article}
\usepackage{bibleref}
\usepackage{indextools}
\def\otest{\textbf{Old Testament}}
\def\ntest{\textbf{New Testament}}
\biblerefmap{Genesis}{1@\otest!01}
\biblerefmap{Leviticus}{1@\otest!03}
\biblerefmap{Deuteronomy}{1@\otest!05}
\biblerefmap{Matthew}{2@\ntest!01}
\biblerefmap{Luke}{2@\ntest!03}
\makeindex[title=Scripture Index,name=scr,options= -s style.ist]
\renewcommand{\biblerefindex}{\index[scr]}
\begin{document}
\ibibleverse{Lev}(5:2).
\ibibleverse{Gen}(1:1).
\ibibleverse{Gen}(2:3).
\ibibleverse{Gen}(2:4).
\ibibleverse{Luke}(1:2).
\ibibleverse{Luke}(1:5).
\ibibleverse{Mt}(1:3).
\ibibleverse{Deut}(1:4).
\ibibleverse{Deut}(2:1).
\ibibleverse{Deut}(3:1).
\printindex[scr]
\end{document}
结果:
您还可以通过重新定义 来编辑索引中书名的样式\BRbooktitlestyle
。如果您在文档开头重新定义它,那么文档本身的条目将受到影响,而如果在排版索引之前重新定义它,那么只有索引项会受到影响,文档中的条目仍保持默认样式。
\renewcommand*{\BRbooktitlestyle}[1]{\textbf{#1}}
\printindex[scr]