[scribus] Index for large book

John Culleton john at wexfordpress.com
Tue Oct 5 16:24:33 CEST 2010

On Tuesday 05 October 2010 05:34:45 JLuc wrote:
> Le 04/10/2010 20:40, Craig Bradney a écrit :
> > Ok, so thinking about that, how would we do it in Scribus, and
> > cut out all the manual work (apart from the "conceptual" index
> > entries...?
> >
> > Tell us how to make this work and we can do it..
> >
> > thanks
> > Craig
> First and more probably easily :
> Part of the job could be semi-automated
> in tweaking an option into the export text scribus function,
> so as to insert a user-defined string
> in place of each page break.
> That would easyen the job of exporting to a tex or ooo indexing
> tool.
> Then, in a more full-featured and complex way, so as Scribus to be
> selfreliant : scribus would require to enable to define and place
> index strings in places required, maybe using a set of special
> styles (would be invisible)... or rather : in typing these index in
> "post it" miniframes (a bit as comments in a pdf doc, or html
> titles hint bubbles on links)
> http://www.pdfindexgenerator.com demo VDO suggests however
> that some indexes require hierarchical structure.
> Not mine.
> JLuc
> _______________________________________________
> scribus mailing list
> scribus at lists.scribus.net
> http://lists.scribus.net/mailman/listinfo/scribus
In answer to both Craig and Jluc I would propose what I know best, an 
indexing system modeled on the TeX system but with different timing.
The TeX system goes through these steps:
1. Add tags to the TeX source.
2. Generate an .idx suffix file from those tags during the "compilation" 
pass of TeX.
3. Run Makeindex program to convert the .idx file to a sorted, collated 
and formatted .ind file.
4. Compile the TeX source file again, including reading in the .ind file 
and typesetting it, forming the index.

In 2004 I created a stand alone program called "Tyro" that replicates 
steps one and two independently of the TeX program, and calls 
Makeindex to create the final index.

I should note at this point that the two files foo.idx and foo.ind are 
plain text files. So writing them and reading them back is not a 
difficult task.  

In the Tyro program (written in Tcl/Tk) each entry consists of from 
one to three fields for the three possible levels of the index e.g.,
in addition each field can be prefixed by a sort string, to allow the 
field proper to be italicized etc. In TeX speak the entry might be
Smith, James@\it Smith, James

In theory there could be six total substrings but this would rarely 
dog@\it dog+poodle@\bf poodle+miniature@\bi miniature

In the Tyro program the page number must be entered manually. However 
the Tyro program retains the last page number entered in so that 
several entries could be made for a given page without reentering the 
page number each time. 

I propose that the Scribus facility call the Makeindex program, but 
instead of calling it just once, call it after each entry is made. I 
also propose that the page number be retrieved somehow and made a part 
of each entry.

Specifically I propose that when the "index" icon or key combination is 
pressed a popup window similar to the data entry part of the Tyro 
program appear and the one, two or three levels of the entry be made, 
with the page number inserted at the end of the string automatically.  
The string would be written to the idx file immediately.  There would 
be no "hidden field" or other change to the actual Scribus file. The 
only contact with the Scribus representation of the page would be the 
retrieval of the page number.

Now what does a line in the idx file look like? Here are two taken from 
real life from the file book.idx for one of my customers:
\indexentry {negotiation+Golden Rule of}{10}
\indexentry {negotiation+agenda}{11}

These entries appear in the final index as 
    agenda, 11
    Golden Rule of, 10


Makeindex could be called as a subprogram after every entry and the 
entire .idx file to that point processed to create an updated .ind file. 

If it becomes necessary to update or delete an entry that could be 
done by editing the idx file.

In TeX all the entries in the idx file are in page number sequence but 
the Makeindex program does not require this. So the author could go 
back and add entries later and Makeindex could absorb that out of 
sequence .idx file. If entries need to be modified or deleted I suggest 
direct editing of the idx file.  

The specifics of the input format and the output format of Makeindex 
are alterable by a control file with the suffix .ist. This file overrides 
the defaults. For example alpha headers like A, B, etc. can be added, 
they can be centered or left justified etc. etc. 

TeX/Makindex allow for multiple indexes designated as foo.idx, foo.idy 
etc. on one document. 

These are just preliminary comments.  I propose using Makeindex 
because the sorting and summarizing code is already written and 
debugged. For more details and pointers to Tyro please consult my page

Also see the document:
found at 

John Culleton
Wexford Press
"Create Book Covers with Scribus"
Printable E-book 38 pages $5.95

More information about the scribus mailing list