Index 将文本移动到索引

Index 将文本移动到索引

这是我正在处理的文件。

\documentclass[12pt,a4paper]{book}
\usepackage{xkeyval}
\usepackage{polyglossia}
\usepackage{xcolor}
\usepackage{makeidx}
\usepackage{multicol}

\setmainfont[Script=Devanagari]{Sanskrit 2003}
 \makeindex
\begin{document}
\printindex

\chapter*{प्रथमाध्यायः}


\index{धर्मक्षेत्रे कुरुक्षेत्रे} समवेता युयुत्सव: । \\
मामका: पाण्डावश्चैव किमकुर्वत सञ्जय ॥ १ ॥
\end{document}

在上面的例子中,我希望诗句的前两个单词出现在索引中,它确实出现在索引中,但却从诗句中删除了。我做错了吗?

答案1

你没有做错任何事,这是默认行为。

解决方案是使用index包而不是makeidx并使用\index该包提供的带星号的宏。这会在文本和索引中打印单词。

\documentclass[12pt,a4paper]{book}
\usepackage{xkeyval}
\usepackage{polyglossia}
\usepackage{xcolor}
\usepackage{index}
\usepackage{multicol}

\setmainfont[Script=Devanagari]{Sanskrit 2003}
 \makeindex
\begin{document}
\printindex

\chapter*{प्रथमाध्यायः}


\index*{धर्मक्षेत्रे कुरुक्षेत्रे}
धर्मक्षेत्रे कुरुक्षेत्रे समवेता युयुत्सव: । \\
मामका: पाण्डावश्चैव किमकुर्वत सञ्जय ॥ १ ॥
\end{document}

答案2

参数\index与文档的文本无关。因此,如果您想要索引文本中的项目,则需要重复它

\documentclass[12pt,a4paper]{book}
\usepackage{xkeyval}
\usepackage{polyglossia}
\usepackage{xcolor}
\usepackage{makeidx}
\usepackage{multicol}

\setmainfont[Script=Devanagari]{Sanskrit 2003}
 \makeindex
\begin{document}
\printindex

\chapter*{प्रथमाध्यायः}


\index{धर्मक्षेत्रे कुरुक्षेत्रे}%
धर्मक्षेत्रे कुरुक्षेत्रे समवेता युयुत्सव: । \\
मामका: पाण्डावश्चैव किमकुर्वत सञ्जय ॥ १ ॥
\end{document}

或者定义一个自定义命令来在“幕后”执行此操作:

\documentclass[12pt,a4paper]{book}
\usepackage{xkeyval}
\usepackage{polyglossia}
\usepackage{xcolor}
\usepackage{makeidx}
\usepackage{multicol}

\setmainfont[Script=Devanagari]{Sanskrit 2003}
 \makeindex
\newcommand\alsoindex[1]{\index{#1}#1}
\begin{document}
\printindex

\chapter*{प्रथमाध्यायः}


\alsoindex{धर्मक्षेत्रे कुरुक्षेत्रे}
धर्मक्षेत्रे कुरुक्षेत्रे समवेता युयुत्सव: । \\
मामका: पाण्डावश्चैव किमकुर्वत सञ्जय ॥ १ ॥
\end{document}

这个\index命令有点奇怪,因为它做了各种类似逐字的技巧,但对于简单的文本,包装器的方法应该有效。

相关内容