这是我正在处理的文件。
\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
命令有点奇怪,因为它做了各种类似逐字的技巧,但对于简单的文本,包装器的方法应该有效。