换句话说,就像我在每章开头使用 获得目录一样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 添加引擎来构建此文件
在 Finder 中导航打开文件夹
~/Library/TeXShop/Engines
(其中~
代表您的主页)。复制
XeTeX.engine
文件。将新创建的文件重命名为
splitindex.engine
。右键单击此文件并选择“使用 TeXShop.app 打开”
使用以下命令更改文件的全部内容
#! /bin/bash PATH=/usr/texbin:/usr/local/bin:${PATH} bfname=${1%\.*} splitindex "$bfname"
保存文件并退出 TeXShop
重新打开 TeXShop 时,Typeset 按钮旁边的下拉菜单将有一个名为splitindex
当您想要运行 时splitindex
,只需从下拉菜单中选择该项目并按下 Typeset 按钮。这相当于运行命令
splitindex filename
我之前谈到过。对于下一个排版,从菜单中选择您的默认引擎,无论是 LaTeX 还是 Latexmk。