![xpatchcmd 补丁到 makeindex](https://linux22.com/image/413734/xpatchcmd%20%E8%A1%A5%E4%B8%81%E5%88%B0%20makeindex.png)
我想使用zhmakeindex
生成中文索引的语言,通过对包的调查imakeidx
,我尝试\imki@exec
修补
\xpatchcmd{\imki@exec}{\imki@program}{zhmakeindex}{}{}
这应该是可行的,因为的默认值\imki@program
是makeindex
。
但是我运行之后xelatex test.tex
,日志显示makeindex
程序被执行了:
运行系统(makeindex -s zh.ist test.idx)
那么,为什么我的补丁没有按预期工作? 有没有什么解决方案可以解决此问题zhmakeindex
?
女士
\documentclass{ctexart}
\usepackage[linkcolor=cyan,colorlinks]{hyperref}
\usepackage{imakeidx}
\usepackage{xpatch}
\makeatletter
\xpatchcmd{\imki@exec}{\imki@program}{zhmakeindex}{}{}
\makeatother
\makeindex[intoc,columns=3,columnseprule=true,columnsep=5pt,options={-s zh.ist}]
\newcommand{\iemph}[1]{\uwave{#1}\index{#1|hyperpage}}
\title{中文索引处理}
\author{}
\date{}
\begin{document}
\maketitle
测试\iemph{三点形}\\
测试\iemph{二次曲线}\\
\newpage
\iemph{向量}\\
\iemph{共线}\\
\iemph{简比}
\printindex
\end{document}
这zh.ist
preamble "\\begin{theindex}
\\def\\seename{见}
\\def\\alsoname{又见}
\\providecommand*\\indexgroup[1]{%
\\indexspace
\\item \\textbf{#1}\\nopagebreak}\n"
postamble "\n\n\\end{theindex}\n"
group_skip "\n\n \\indexspace\n\n"
headings_flag 1
heading_prefix " %\n \\indexgroup{"
heading_suffix "} \n %\n"
numhead_positive "数字"
numhead_negative "数字"
symhead_positive "符号"
symhead_negative "符号"
delim_0 " \\dotfill\\ "
delim_1 " \\dotfill\\ "
delim_2 " \\dotfill\\ "