中国上海上港:LaTeX 技巧936: zhmakeindex 定制生成中文索引樣式一例

上海上港高清海报 www.wqytv.com.cn zhmakeindex 是一個通用的中文多級索引處理程序,它從一個或多個輸入文件讀入索引 項,將其內容按指定的方式分組、排序,然后按格式將整理好的索引輸出到文件。索引項可 以有 3 個級別(0, 1, 2)的嵌套。zhmakeindex 主要用于 LaTeX 索引的處理,其功能和用法與 makeindex 相似,并支持中文的分組與排序。

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

選自://mengxianjun.org/2016/12/11/TangPoem/ 

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

擴展閱讀:https://www.ctan.org/pkg/zhmakeindex (宏包下載安裝)

分享到:
未經允許不得轉載:LaTeX 技巧936: zhmakeindex 定制生成中文索引樣式一例
已有 條意見

    最新文章

    加載中...
      本站提供專業LaTeX排版、咨詢、定制服務,請點擊下圖咨詢詳情


      全國首個精品的LaTeX視頻教程,大牛帶著你入門,讓LaTeX學習不再糾結,請點擊下圖咨詢詳情

      熱門評論

        聯系我們

        交流QQ群:91940767
        本站QQ號:343083553
        郵箱聯系[email protected]
        淘寶店鋪https://shop240512713.taobao.com/ 提供排版,模板定制,培訓,圖片處理,視頻教程等LaTeX服務。

        關注我們微信公眾號

        如果您投稿或者希望加入我們團隊,請發送您的簡歷到[email protected]。
        这个季节干啥最赚钱 打工不可能赚钱 现在种啥药材赚钱 赚钱宝3代怎么挖 剑网三帮会菜地赚钱 现在搞什么小吃好赚钱 请问一下适合开什么店比较赚钱 塞达尔传说荒野之息赚钱攻略 网页游戏能否赚钱 房地产和石油哪个赚钱 烈火至尊怎样赚钱 钱流通赚钱 天龙八部怎么升级赚钱 卖冰冻鸡杂怎么样赚钱 微商到底赚不赚钱知乎 海盗大亨5种什么赚钱