Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

I followed the example posted by @Schweinebacke Customizing Index - Adding chapter heading and verse number to index entries and it works great. However I would like to change the appeareance of index. To show the change I am attaching an image with this mail.

I would like to align the columns of index, first column left justified, right column right justified and middle column left justified.

I would really appreciate your help enter image description here

share|improve this question
    
any expectation/restrictions on the size of the material in each "column", e.g., can one assume that everything is always fitting onto a single line? –  Frank Mittelbach Feb 23 '12 at 20:39
add comment

1 Answer

up vote 4 down vote accepted

I'm only going to offer you an outline of the solution, you should then customize it according to your taste.

Basic approach is to provide a style file for makeindex so that you effectively get an .ind file containing a longtable environment. The parts of an index line then have to be separated not by comma but by & and the lines should end in \\.

The & between "verse" and "chapter" would be generated by the index command itself, e.g. from the other question:

\newcommand*{\vindex}[2]{%
  \setcounter{verse}{#2}%
  \sindex[vrs]{#1& \currentchapter}%     % <---
}

And we also need to load the packages we use later:

\usepackage{longtable,array}

The rest is done by the special style for makeindex (that should be saved in a file, say verse.ist:

preamble "\\section*{\\indexname}
\\newcommand\\ignoreNL[1]{}          % throw away \\ after new group
\\setlength\\LTleft{0pt}
\\setlength\\LTright{0pt}
\\begin{longtable}{l!{\\extracolsep{\\fill}}lr}"
postamble "\\end{longtable}"

item_0 "\\\\\n"     % \\ between entries
delim_0 "&"         % &  between text and "page" number

group_skip "\n \\\\[5pt] \\ignoreNL"   % extra space 5pt between groups

Notes:

I used \section*for the heading, but with the book class you will probably want \chapter* and you may or may not want to add "running headers" and a TOC entry.

One problem with index style files is that there is no handle to add something after the page number only between entries (item_0). However, if there is a group change we may want to add extra space and if we do this then we would get \\[5pt] \\ which isn't we want. So we additionally add \ignoreNL which simply gobbles the following \\.

Applying the index style file

I found it surprisingly difficult to make splitindex work with TeXworks, in fact I didn't manage if a style file was to be used. So in the end I used the commandline for that. Here is how this looks:

splitindex.exe -m "makeindex -s verse.ist" tmp

with "tmp.tex" being my test file. One more run of LaTeX and we get:

enter image description here

share|improve this answer
    
I tried to apply same concept to get text chapter # Page numbers. it worked great however I got all zeros for page numbers. All I wanted to change was verse numbers to page numbers. –  Aku Feb 24 '12 at 0:45
    
Works great, however its consuming the entire page width, is there a way to keep the standard index format of two columns, that looks lot more like a book style. if required you can reduce the font size to put two columns per page, like the usual index output. –  Aku Feb 24 '12 at 0:50
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.