上海上港高清海报 www.wqytv.com.cn

zhmakeindex命令的简单用法如下:

$ zhmakeindex
  用法:
  zhmakeindex [-c] [-i] [-o <ind>] [-q] [-r] [-s <sty>] [-t <log>]
              [-enc <enc>] [-senc <senc>] [-strict] [-z <sort>]
              [<输入文件1> <输入文件2> ...]
  中文索引处理程序
    选项    默认值   说明
    -c      false    忽略条目首尾空格
    -enc    utf-8    读写索引文件的编码
    -i      false    从标准输入读取
    -o      无       输出文件
    -q      false    静默模式,不输出错误信息
    -r      false    禁用自动生成页码区间
    -s      无       格式文件名
    -senc   utf-8    格式文件的编码
    -strict false    严格区分不同 encapsulated 命令的页码
    -t      无       日志文件名
    -z      pinyin   中文分组排序方式,可以使用 pinyin (reading)、bihua (stroke) 或 bushou (radical)

那么具体使用如下:

$ zhmakeindex youridxfile.idx %%using default .ist file
$ zhmakeindex -s youistfile.ist youridxfile.idx %%using your personal style file
$ zhmakeindex -s youistfile.ist -z bushou youridxfile.idx %%sorting index entries by chinese characters stroke order

下面我用宏包定制一下索引的显示样式:

\usepackage[noautomatic]{imakeidx}
\makeindex[name=ec,title=英漢索引,intoc,columns=5,columnseprule=true,columnsep=5pt,options={-s ec.ist}]
\makeindex[name=th,title=類詞索引,intoc,columns=5,columnseprule=true,columnsep=5pt,options={-s th.ist}]
\makeindex[name=zb,title=字辨索引,intoc,columns=5,columnseprule=true,columnsep=5pt,options={-s zb.ist}]
\makeindex[name=gy,title=國音索引,intoc,columns=5,columnseprule=true,columnsep=5pt,options={-s gy.ist}]
\makeindex[name=yy,title=粵音索引,intoc,columns=5,columnseprule=true,columnsep=5pt,options={-s yy.ist}]
\makeindex[name=bh,title=總畫索引,intoc,columns=6,columnseprule=true,columnsep=5pt,options={-M bh.xdy}]
\makeindex[name=cj,title=倉頡索引,intoc,columns=6,columnseprule=true,columnsep=5pt,options={-M cj.xdy}]

导言区可以修正一下间隔

\makeatletter
%%define index items layout
\def\@idxitem{\par\addvspace{7\[email protected] \@plus 3\[email protected] \@minus 3\[email protected]}\hangindent 17\[email protected]}
%%define index subitems layout
\def\subitem{\par\hangindent 0\[email protected] \hspace*{0\[email protected]}}
%%define index subsubitems layout
\def\subsubitem{\par\hangindent 0\[email protected] \hspace*{0\[email protected]}}
%%define vspace above lettergroup name
\def\indexspace{\par\addvspace{12\[email protected] \@plus 2\[email protected] \@minus 2\[email protected]}} 
\patchcmd\theindex{\indexname}{\indexname\vspace{5pt}}{}{}
\makeatother

那么打印索引如下:

......
\phantomsection
\addcontentsline{toc}{part}{辭典檢索}
\backmatter
\onecolumn
\pagestyle{mipage}
\printindex[zb] % zhmakeindex -s zb.ist -z pinyin ec.idx
\printindex[ec] % zhmakeindex -s ec.ist -z pinyin ec.idx 
\printindex[th] % zhmakeindex -s th.ist -z pinyin th.idx 
\printindex[bh] % texindy -M bh.xdy bh.idx
\printindex[cj] % texindy -M cj.xdy cj.idx 
\printindex[yy] % zhmakeindex -s yy.ist -z bihua yy.idx
\printindex[gy] % zhmakeindex -s gy.ist -z bihua gy.idx 
\end{document}

使用titleps宏包定义扩展页眉样式:

\newcommand{\indexmark}[1]{\sectionmark{#1}#1}
\newpagestyle{mipage}{ %%index chapter
	\setheadrule{0.7pt}
	\sethead[{\toptitlemarks\sectiontitle}---{\bottitlemarks\sectiontitle}]
                [\linfontb\thepage]
                [{\profonta Appendices—\chaptertitle}]%even head
	        {{\profonta Appendices—\chaptertitle}}
                {\linfontb\thepage}
                {{\toptitlemarks\sectiontitle}---{\bottitlemarks\sectiontitle}}%odd head
	\setfoot[][][] %even foot
	        {}{}{} %odd foot
}

效果如图:

58022a9ca574f.jpg

那么我们也可以扩展:

%人名地名書名索引
\printindex[isn] % zhmakeindex -s isn.ist isn.idx
%作者索引
\printindex[ian] % zhmakeindex -s ian.ist ian.idx 
%篇目索引
\printindex[ibn] % zhmakeindex -s ibn.ist ibn.idx

效果如下:

584d686b08735.png

选自:http://mengxianjun.org/2016/12/11/TangPoem/ 

http://mengxianjun.org/2016/10/15/zhmakeindex/   

扩展阅读:https://www.ctan.org/pkg/zhmakeindex (宏包下载安装)