[OS X TeX] Chapter Index

Alain Schremmer schremmer.alain at gmail.com
Tue Dec 29 17:17:25 CET 2009

On Dec 28, 2009, at 11:02 PM, Ross Moore wrote:

> On 29/12/2009, at 2:19 PM, Alain Schremmer wrote:
>> On Dec 28, 2009, at 9:14 PM, Herbert Schulz wrote:
>>> On Dec 28, 2009, at 6:33 PM, Alain Schremmer wrote:
>>>> For each chapter of a book, I would like to have an index at the  
>>>> end of the chapter.
>>>> The various ChapterNtext.tex of the book are included in a  
>>>> source file, BookRoot.tex.
>>>> But, in order to work on individual chapters, I also have  
>>>> individual root files, ChapterNroot.tex .
>>>> So, by having \printindex in each ChapterNroot.tex, I have an  
>>>> index at the end of the chapter when I typeset it with  
>>>> ChapterNroot.tex.

Forgive me but I am going to have to be like a serious but somewhat  
dumb student:

> This shouldn't be hard to achieve, so long as the  .idx  file
> for each chapter has a unique name; e.g.  chapterN.idx .

They do: along with each ChapterNroot.tex, I have ChapterNroot.idx.

> Then the  makeindex  command is called on each index,
> creating   chapterN.ind .

When I call MakeIndex from ChapterNRoot.tex it does create ChapterN.ind

> To get a combined index, simply do:
>   cat chapter*.idx > fullindex.idx

I understand that a new fille, Book.idx, has to be created. But:

---Is this something I should do "by hand", by typing the preceding  
line in the terminal? In which case, I would have to do this every  
time I want to typeset Book by way of BookRoot rather than just a  
single ChapterN by way of ChapterNroot.
That would be perfectly OK---other than having to talk to the  
terminal with which I am not on speaking terms---since I rarely  
typeset Book. I would just have to remember doing it when typesetting  
Book just before uploading.

---Or does that imply some tex code I should insert somewhere so  
that, every time I typeset the whole Book by way of BookRoot, the  
index would automatically be updated?
That would be great although, I expect, rather unlikely and, in any  
case and as I just said, of the order of the cream on the cake.

> then call  makeindex  on this file  fullindex.idx .

I assume this means to click on MakeIndex from BookRoot. There are  
indeed files Book.idx and Book.ind. But I have a feeling that  
MakeIndex creates Book.idx directly, that is by reading all the  
ChapterNtext.tex rather than conflating the ChapterN.idx files

> On the next run, each  \printindex  command includes
> the appropriate .ind  file.

This is what I don't understand: When I typeset the whole Book, I do  
it from BookRoot.tex so LaTeX will only see the single \printindex  
that is at the end of BookRoot.tex and so how can it print  
ChapterNIndex at the end of ChapterN for all N but only BookIndex at  
the end of Book.

I tried to insert a \printindex after each \include{ChapterNtext} and  
sure enough it printed BookIndex after each chapter.


> This will mean that the value of \indexname  must change
> at appropriate places throughout the processing, but
> there is no need for more than just a single \write  channel.

>> --- splitidx which, with "a small program, splitindex" can produce  
>> several indexes. But it seems to me that these indexes must be at  
>> the end of the book. The doc, though, explains that
> I don't see why this should be so.
> Splitting the index may occur at the end of the document,
> but this is just preparing the  .ind  files for the next run.
> What is needed is to make sure that \printindex  reads the
> correct .ind  file, at whatever point these occur in your document.

 From what I understood, that is indeed the problem, namely that  
there is no such thing as \printindex{ChapterN}

> Read the documentation again, to see whether it handles this
> appropriately.

Are you kidding? I wouldn't know an appropriate from an inappropriate  
even if they were both to bite me.

>> Most packages, which allows more than one index, open more than  
>> one raw
>> index file. Each of these files costs a write file handle. TEX has  
>> only 16 of these.
>> LATEX itself needs some of these for e.g. .aux, .toc, .lot, .lof  
>> and maybe other
>> more or less temporary files, depends on what you are doing.
>> ---index which "supports multiple indexes in a single document"  
>> but, sure enough, "In the current implementation, index.sty uses  
>> one output stream for each index.
> This is very wasteful and should be quite unnecessary.

Well ... I think now you are talking to the wrong person, I only work  

Very grateful regards

More information about the macostex-archives mailing list