使用 imakeidx 和 PDFLatex 的索引元素顺序

问题描述 投票:0回答:1

以下程序创建两个索引。

第一个索引的文本在 \index{} 中明确给出。

第二个索引的文本来自命令 xxone、xxtwo 和 xxthird。 索引中元素的顺序基于命令名称而不是命令值 如何确保命令值被使用?

\documentclass[a4paper,12pt,english]{report}

\usepackage{lipsum}
\usepackage{imakeidx}

\makeindex[title=Demo,columns=1]
\makeindex[name=test,title=Examples,columns=1]

\newcommand{\xxone}   {Example 1}
\newcommand{\xxtwo}   {Example 2}
\newcommand{\xxthree} {Example 3}

\begin{document}

\index{Example 1}
\index{Example 2}
\index{Example 3}

\index[test]{\xxone{}}
\index[test]{\xxtwo{}}
\index[test]{\xxthree{}}

\lipsum[1]

\printindex
\printindex[test]


\end{document}


indexing pdflatex
1个回答
0
投票

我使用这篇文章找到了解决方案:https://tex.stackexchange.com/questions/399435/imakeidx-order-if-own-command-is-used-to-specify-index-entry

\documentclass[a4paper,12pt,english]{report}

\usepackage{lipsum}
\usepackage{imakeidx}

\newcommand{\nindex}[2][]{\index[test]{#2}}

\makeindex[title=Demo,columns=1]
\makeindex[name=test,title=Examples,columns=1]

\newcommand{\xxone}   {Example 1}
\newcommand{\xxtwo}   {Example 2}
\newcommand{\xxthree} {Example 3}

\begin{document}

\index{Example 1}
\index{Example 2}
\index{Example 3}


\nindex[test]{\xxone{}}
\nindex[test]{\xxtwo{}}
\nindex[test]{\xxthree{}}

\lipsum[1]

\printindex
\printindex[test]


\end{document}
© www.soinside.com 2019 - 2024. All rights reserved.