我怎样才能为每一章以及整本书创建单词索引?

我怎样才能为每一章以及整本书创建单词索引?

换句话说,就像我在每章开头使用 获得目录一样titletoc,我希望在每章末尾有一个单词索引。(除了书末的整本书的索引。)

答案1

似乎latexmk无法检测到已通过 imakeidx 包写入 idx 文件,因此“makeindex”未运行。我将“makeindex”放在引号中,因为latexmk实际运行的内容由 Perl 变量决定,$makeindex并且可以在配置文件中更改。据我所知,如果latexmk可以检测到 idx 文件是通过日志文件创建的,则只需使用适当的参数将$makeindex变量设置为运行splitindex(拆分索引并makeindex在每次拆分时运行)。我会联系 的维护者 John Collins latexmk,并与他讨论需要做什么。

PS:splitindexmk我编写的 TeXShop 引擎实际上是一个利用了latexmk什么都不做的事实的骗局。基本上,它首先运行pdflatexmk(使用 的 TeXShop 引擎latexmk),然后splitindex最后使用适当的选项运行 ,pdflatex以便 TeXShop 可以正确同步,并且 Go

答案2

这是使用该包的原型imakeidx

\documentclass{book}
\usepackage[noautomatic,splitindex]{imakeidx}

%%% Allocate enough chapter indices
\count255=0
\loop\ifnum\count255<50
  \advance\count255 by 1
  \begingroup\edef\x{\endgroup
    \noexpand\makeindex[name=\number\count255 chap,title=Word index for Chapter \number\count255]}\x
\repeat
%%% A global index
\makeindex

%%% The user level macros
\newcommand{\gindex}[1]{%
  \index{#1}% global index
  \expandafter\index\expandafter[\thechapter chap]{#1}%
}
\newcommand{\printchapterindex}{%
  \begingroup
  % We want the index as an unnumbered section
  \let\chapter\section
  % Also disable the page break
  \let\cleardoublepage\relax
  % Print the index
  \expandafter\printindex\expandafter[\thechapter chap]%
  \endgroup}

\begin{document}

\mainmatter

\chapter{First}

First\gindex{first} and abc\gindex{abc}

\printchapterindex

\chapter{Second}

Second\gindex{second} and def\gindex{def}

\printchapterindex

\printindex

\end{document}

我们不能使用自动功能,imakeidx该功能仅当索引是文档中的最后一项时才起作用(或者更准确地说,索引之一之后没有任何要索引的内容),因此该过程是调用

pdflatex filename
splitindex filename
pdflatex filename

第 1 章图片

在此处输入图片描述


第 2 章图片

在此处输入图片描述


全球指数图片

在此处输入图片描述


附录:如何向 TeXShop 添加引擎来构建此文件

  1. 在 Finder 中导航打开文件夹~/Library/TeXShop/Engines(其中~代表您的主页)。

  2. 复制XeTeX.engine文件。

  3. 将新创建的文件重命名为splitindex.engine

  4. 右键单击此文件并选择“使用 TeXShop.app 打开”

  5. 使用以下命令更改文件的全部内容

    #! /bin/bash
    PATH=/usr/texbin:/usr/local/bin:${PATH}
    bfname=${1%\.*}
    splitindex "$bfname"
    
  6. 保存文件并退出 TeXShop

重新打开 TeXShop 时,Typeset 按钮旁边的下拉菜单将有一个名为splitindex

在此处输入图片描述

当您想要运行 时splitindex,只需从下拉菜单中选择该项目并按下 Typeset 按钮。这相当于运行命令

splitindex filename

我之前谈到过。对于下一个排版,从菜单中选择您的默认引擎,无论是 LaTeX 还是 Latexmk。

相关内容