texlive 2016 中的索引生成问题

texlive 2016 中的索引生成问题
\documentclass[twoside,11pt,openany]{book}

\usepackage{polyglossia}
\usepackage{fontspec,graphicx}
\usepackage{setspace}
\usepackage{fancyhdr}

\usepackage{imakeidx}

\newfontscript{Devanagari}{deva,dev2}
\newcommand{\arabictodevnag}[1]%
{%
  \StrSubstitute{#1}{0}{०}[\num]%
  \StrSubstitute{\num}{1}{१}[\num]%
  \StrSubstitute{\num}{2}{२}[\num]%
  \StrSubstitute{\num}{3}{३}[\num]%
  \StrSubstitute{\num}{4}{४}[\num]%
  \StrSubstitute{\num}{5}{५}[\num]%
  \StrSubstitute{\num}{6}{६}[\num]%
  \StrSubstitute{\num}{7}{७}[\num]%
  \StrSubstitute{\num}{8}{८}[\num]%
  \StrSubstitute{\num}{9}{९}%
}

\newcommand{\devanagarinumeral}[1]{%
  \devanagaridigits{\number\csname c@#1\endcsname}}

\def\goodbreak{\par\penalty-300 }

\setmainlanguage{sanskrit}
\XeTeXgenerateactualtext=1
\setmainfont[Ligatures=TeX,AutoFakeBold=3.5,AutoFakeSlant,WordSpace=1.2]{Sanskrit 2003}

\makeindex[title=सूत्रानुक्रमणिका,program=texindy,options=-I omega -M mystyle.xdy -L hindi,columnseprule=true,columns=2]

\begin{document}

\fontsize{13}{15}\selectfont

 अथातो\index{अथातो} ब्रह्मजिज्ञासा\index{ब्रह्मजिज्ञासा}~॥१॥  जन्माद्यस्य\index{जन्माद्यस्य} यतः~॥२॥  शास्त्रयोनित्वात्\index{शास्त्रयोनित्वात्}~॥३॥  तत्तु समन्वयात्\index{समन्वयात्}~॥४॥  ईक्षतेर्नाशब्दम्\index{ईक्षतेर्नाशब्दम्}~॥५॥  गौणश्चेन्नात्मशब्दात्\index{गौणश्चेन्नात्मशब्दात्}~॥६॥  तन्निष्ठस्य\index{तन्निष्ठस्य} मोक्षोपदेशात्~॥७॥  हेयत्वावचनाच्च~॥८॥  स्वाप्ययात्~॥९॥  गतिसामान्यात्~॥१०॥  श्रुतत्वाच्च~॥११॥  आनन्दमयोऽभ्यासात्~॥१२॥  विकारशब्दान्नेति चेन्न प्राचुर्यात्~॥१३॥  तद्धेतुव्यपदेशाच्च~॥१४॥  मान्त्रवर्णिकमेव च गीयते~॥१५॥  नेतरोऽनुपपत्तेः~॥१६॥  भेदव्यपदेशाच्च~॥१७॥  कामाच्च नानुमानापेक्षा~॥१८॥  अस्मिन्नस्य च तद्योगं शास्ति~॥१९॥  अन्तस्तद्धर्मोपदेशात्~॥२०॥  भेदव्यपदेशाच्चान्यः~॥२१॥  आकाशस्तल्लिङ्गात्~॥२२॥  अत एव प्राणः~॥२३॥  ज्योतिश्चरणाभिधानात्~॥२४॥  छन्दोभिधानान्नेति चेन्न तथा चेतोर्पणनिगदात्तथाहि दर्शनम्~॥२५॥  भूतादिपादव्यपदेशोपपत्तेश्चैवम्~॥२६॥  उपदेशभेदान्नेति चेन्नोभयस्मिन्नप्यविरोधात्~॥२७॥  प्राणस्तथानुगमात्~॥२८॥  न वक्तुरात्मोपदेशादिति चेदध्यात्मसम्बन्धभूमा ह्यस्मिन्~॥२९॥  शास्त्रदृष्ट्या तूपदेशो वामदेववत्~॥३०॥  जीवमुख्यप्राणलिङ्गान्नेति चेन्नोपासात्रैविध्यादाश्रितत्वादिह तद्योगात्~॥३१॥ 

\printindex
\end{document}

当我在上述示例上运行 xelatex 时,它会生成包含索引条目的 file.idx 文件。当我运行

texindy -I omega -M mystyle.xdy -L hindi test_xetex.idx

上述命令没有产生任何错误但生成了以下 ind 文件。

\begin{theindex}
  \providecommand*\lettergroupDefault[1]{}
  \providecommand*\lettergroup[1]{%
      \par\textbf{#1}\par
      \nopagebreak
  }


\end{theindex}

如何解决上述问题

问候

希瓦尚卡尔

答案1

您需要请求utf8编码而不是omega输入格式:

xindy -C utf8 -L hindi -M devnumbers  test_xetex.idx

因为您想使用天城文数字作为页面位置,所以我们需要制作自定义 Xindy 模块,其中将包含将阿拉伯文页码转换为天城文的宏devnumbers.xdy

(require "texindy.xdy")
(markup-locref :open "\devanagaridigits{" :close "}")
(markup-locref :open "\textbf{\devanagaridigits{" :close "}}" :attr "textbf")

该模块需要 Xindy 配置用于 LaTeX 标记,然后接下来是两个位置标记定义,第一个用于普通索引条目,第二个用于\index{term|textbf}表格,将以粗体打印页码。

生成的.ind文件:

 \begin{theindex}
  \providecommand*\lettergroupDefault[1]{}
  \providecommand*\lettergroup[1]{%
      \par\textbf{#1}\par
      \nopagebreak
  }

  \lettergroup{अ}
  \item अथातो, \devanagaridigits{1}

  \indexspace

  \lettergroup{ई}
  \item ईक्षतेर्नाशब्दम्, \devanagaridigits{1}

  \indexspace

  \lettergroup{ग}
  \item गौणश्चेन्नात्मशब्दात्, \devanagaridigits{1}

  \indexspace

  \lettergroup{ज}
  \item जन्माद्यस्य, \devanagaridigits{1}

  \indexspace

  \lettergroup{त}
  \item तन्निष्ठस्य, \devanagaridigits{1}

  \indexspace

  \lettergroup{ब}
  \item ब्रह्मजिज्ञासा, \devanagaridigits{1}

  \indexspace

  \lettergroup{श}
  \item शास्त्रयोनित्वात्, \devanagaridigits{1}

  \indexspace

  \lettergroup{स}
  \item समन्वयात्, \devanagaridigits{1}

\end{theindex}

在此处输入图片描述

使用-I omega选项时,我收到一个错误:

sh: /usr/local/texlive/2016/bin/x86_64-linux/tex2xindy -o: Adresář nebo soubor neexistuje

编译继续,但得到的索引为空。

编译继续,但索引为空

相关内容