# [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

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.,
dog
or
dog+poodle
or
dog+poodle+miniature
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
happen:
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}
and
\indexentry {negotiation+agenda}{11}

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

(etc.)

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
http://wexfordpress.com/forindexers.html

Also see the document:
makeindex.pdf
found at
http://www.ctan.org/tex-archive/indexing/makeindex/doc/

--
John Culleton
Wexford Press
"Create Book Covers with Scribus"
Printable E-book 38 pages \$5.95
http://www.booklocker.com/books/4055.html