以下 MWE 指出,如果出现以下情况:
tcolorbox
通过其自动索引记录的命令(得益于其documentation
库),- 一个额外的索引(得益于
imakeidx
的多索引功能),
提供的 选项\makeindex
被忽略(尽管 ,但两个索引的标题都是“索引” )。title
imakeidx
\makeindex[name=concepts,title=Concepts Index]
\documentclass{article}
\usepackage{imakeidx}
\usepackage{tcolorbox}
\tcbuselibrary{documentation}
\makeindex
\makeindex[name=concepts,title=Concepts Index]
\begin{document}
\begin{docCommand}{foo}{}%
\index[concepts]{foo}%
\refCom{foo} is foo.
\end{docCommand}
\printindex
\printindex[concepts]
\end{document}
你知道发生了什么吗?
答案1
默认情况下,documentation
库会tcolorbox
重新定义theindex
环境,与文档类似pgf
。但是,使用键可以轻松更改默认值index format
。特别是对于imakeidx
包,tcolorbox
文档建议使用
\tcbset{index format=off}
然后,所有格式化都可以通过 完成imakeidx
。
示例的完整代码为:
\documentclass{article}
\usepackage{imakeidx}
\usepackage{tcolorbox}
\tcbuselibrary{documentation}
\tcbset{index format=off}
\makeindex
\makeindex[name=concepts,title=Concepts Index]
\begin{document}
\begin{docCommand}{foo}{}%
\index[concepts]{foo}%
\refCom{foo} is foo.
\end{docCommand}
\printindex
\printindex[concepts]
\end{document}
答案2
该documentation
库重新定义了theindex
环境。我认为,当加载诸如imakeidx
或之类的包时,它不应该这样做。idxlayout
直到对库采取措施解决该问题为止,您可以恢复imakeidx
文档开头的定义。
\documentclass{article}
\usepackage{imakeidx}
\usepackage{tcolorbox}
\tcbuselibrary{documentation}
\makeindex
\makeindex[name=concepts,title=Concepts Index]
\expandafter\AtBeginDocument\expandafter{%
\expandafter\def\expandafter\theindex\expandafter{\theindex}%
}
\expandafter\AtBeginDocument\expandafter{%
\expandafter\def\expandafter\endtheindex\expandafter{\endtheindex}%
}
\begin{document}
\begin{docCommand}{foo}{}%
\index[concepts]{foo}%
\refCom{foo} is foo.
\end{docCommand}
%\printindex
\printindex[concepts]
\end{document}