diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/manyind/mindsample.tex |
Initial commit
Diffstat (limited to 'macros/latex/contrib/manyind/mindsample.tex')
-rw-r--r-- | macros/latex/contrib/manyind/mindsample.tex | 284 |
1 files changed, 284 insertions, 0 deletions
diff --git a/macros/latex/contrib/manyind/mindsample.tex b/macros/latex/contrib/manyind/mindsample.tex new file mode 100644 index 0000000000..b1ec5963d5 --- /dev/null +++ b/macros/latex/contrib/manyind/mindsample.tex @@ -0,0 +1,284 @@ +% mindsample.tex 2019.01.27. +\documentclass{book} + +\usepackage{manyind} % +\usepackage[plainpages=false,colorlinks=true]{hyperref} + +\altsort % to get other sorting. + +\title {Package manyind provides support for many indexes} +\author{Wilberd van der Kallen\index{Wilberd}} +\date{January 2019} + +\makeindex % obligatory with manyindex + +\begin{document} + +\renewcommand\thepage{\roman{page}} +\index{z}% ends up in index main. + +\index{/@/ divide symbol comes before A} +\index{:@\indexspace : colon comes here}% goes after Z when using \altsort, before A otherwise. + +\setindex{b1} + +\maketitle % So Wilberd will end up in index b1. + +\tableofcontents +\addcontentsline{toc}{chapter}{Contents} + + +\chapter*{Preface} + +\addcontentsline{toc}{chapter}{Preface} +\markboth{Preface}{Preface} +This file illustrates some features of the \verb!manyind! package. +One runs latex and makeindex as if there is just one index. No extra programs are required. +We let makeindex and \TeX\ do the work. As we are using makeindex in a way that was never intended, +some features of makeindex may not work anymore. + + Although this is not a book, we have chosen the book style for illustration. +Let us say we want to use four indexes. First we choose tags to identify them. +In this file we use the tags \verb|main|, \verb|bis|, \verb|a1|, \verb|b1|. +With the \verb!\setindex! command we activate an index. +Thus \verb!\setindex{main}! (no spaces!) tells \LaTeX\ that the active index is now the index identified by the tag +\verb|main|, until the next \verb!\setindex! command. If a tag has not been encountered +before, then a new index with that tag is created. +The tag \verb|main| is always known and +the index with tag \verb|main| becomes active at the \verb|\begin{document}|. +The \verb!\index! command and +the \verb|\printindex| commands write to/from the active index.\\ + +After running latex on {\it filename}.\verb!tex! one must run makeindex on {\it +filename} to get the index entries in {\it filename}.\texttt{ind}. +Before this there may be warnings about labels or names. +Do not exclude any relevant files. For instance, do not use +\verb|\includeonly|. + +(A tool like pdflatexmk in TeXShop on the MAC will call makeindex for you.)\\ + +If you wish you may use \verb!\sindex[bis]{!\emph{entry}\verb!}! as shorthand for\\ + +\hspace{5em} \verb!\setindex{bis}\index{!\emph{entry}\verb!}!\\ + +and \verb!\sindex{!\emph{entry}\verb!}! as shorthand for\\ + + \hspace{5em} \verb!\setindex{main}\index{!\emph{entry}\verb!}!.\\ + + One may give (at most) two optional arguments to \verb|\printindex|. +\noindent While + + \verb|\printindex| + +\noindent prints the active index, + + \verb|\printindex[b1]| + +\noindent first makes \verb|b1| the active index. + And + + \verb|\printindex[b1][Index with tag b1]| + + \noindent also first does a + \verb|\renewcommand{\indexname}{Index with tag b1}|. + + +To see how package \verb|manyind| may be used, you may also compare the file +\verb|mindsample.tex| with the output. + +This preface has an \emph{indexed term}.\setindex{b1}\index{indexed term} + (You see this in the source file only.) + + + + +\chapter{Introduction}\sloppy +\renewcommand\thepage{\arabic{page}} +\addtocounter{page}{-6}% Just to get overlap in roman and arabic page numbers. +This introduction has another indexed term +\setindex{a1} +\index{other term!cited twice on same page}% +as well as the old indexed term.\setindex{b1}\index{indexed term}% will appear in an automatic page range +The page number is \thepage, but now in arabic. +If you index the same term twice on the same page, then it gets listed only once. + +We have hacked various mechanisms of makeindex. +Subentries are still supported. We illustrate this in +\verb|mindsample.tex| and appendix \ref{appendix} with alpha, beta and gamma (output on page \pageref{range}). +This also illustrates the use of \verb|\gobblepageref|, a variant of \verb!\see!. + +The package \verb|manyind| + is similar to option \verb!multind! of package \verb|robustindex|, but it does not + put any \verb|\pageref| in an index. Therefore it does not have to disable the automatic page range mechanism of makeindex. + +The index file {\it filename}.\texttt{ind} has become quite unreadable. Do not edit it. +Use the package \verb!manyind! only if you are willing to keep the indexes standard. + +If one puts \verb|\altsort| +in the preamble, then entries are sorted differently. For instance, \verb|\index{\"U}| +will put \"U after the alphabet, not before. + +\setindex{a1}\index{alpha!see beta} +\index{alpha!see also gamma\gobblepageref} + +\newpage +\setindex{b1}\index{indexed term}% will appear in an automatic page range + +\setindex{b1}\index{page range!risky@this $\vert$is$\vert$ complicated|(textbf}% +\index{page range|(textit}% +\index{page range!risky@this $\vert$is$\vert$ complicated|textbf}% +\index{page range!risky@this $\vert$is$\vert$ complicated|textbf}% +\index{page range!risky@this $\vert$is$\vert$ complicated|textbf}% +% +\index{simpler!page range|(}% +\index{simplest page range|(}% +\setindex{b1}\index{indexed term}% will appear in an automatic page range +\appendix +\setindex{b1}\index{indexed term}% will appear in an automatic page range +\chapter{Structure of the \LaTeX\ file}\label{appendix} +\setindex{b1}\index{indexed term}% will appear in an automatic page range +\begin{verbatim} +\documentclass{book} + +\usepackage{manyind} +\usepackage[plainpages=false,colorlinks=true]{hyperref} + +... +...\author{Wilberd van der Kallen\index{Wilberd}} +... +\makeindex % obligatory with manyind + +\begin{document} +... +\tableofcontents +...\index{indexed term} % on page vi +... +...\index{other term!cited twice on same page} % on page 1 +...\index{indexed term} % on page 1 +...\index{other term!cited twice on same page} % on page 1 +... +\setindex{a1}\index{alpha!see beta} % on page 1 +\index{alpha!see also gamma\gobblepageref} % on page 1 +... +\indexincontents % before the indexes. +\setindex{main} +\printindex +... +\renewcommand{\indexcapstyle}[1]{\indexspace\textsc{#1}\par} +\printindex[main][Index with headings] +\end{document} +\end{verbatim} + +\setindex{b1}\index{indexed term}% will appear in an automatic page range + +\sindex{as! t@is} + +\index{tris} + +\setindex{main}\index{alpha} + +\setindex{a1}\index{gamma} + +\setindex{bis}\index{bis} + + +\setindex{main}\index{delta!vardelta} + + +\setindex{main}\index{animal!than@fish} + + +\setindex{main}\index{time!here@now} + +% When you are sure there is an entry \index{\"U...}. +\index{\"U@\indexcapstyle{\"U}\gobblepageref}% + +\index{\"Uber}% +\index{\"Uberhaupt}% + +% There is a nerdy way: +\index{\"N@\protect\nxtletre \protect\def \nwletre {\"O}\gobblepageref} +\index{\"P@\relax\gobblepageref} + +% Now look what happens if you leave out the next line +\index{\"Osterreich} + +% Similarly +\index{\A>@\protect\nxtletre \protect\def \nwletre {\AA}\gobblepageref} +\index{\AB@\relax\gobblepageref} + +\index{\AA ngstrom} + + + +\setindex{b1}\index{page range!risky@this $\vert$is$\vert$ complicated|)textbf} + + +\index{page range|)textit}% + +%\sindex[b1]{page range!risky@this $\vert$is$\vert$ complicated|textbf} + +% +\index{page range!with risky label\label{range}} +% This label actually works and was used above in a \pageref{range} command. +% +\sindex[b1]{simpler!page range|)}% +\index{simplest page range|)}% + + +% If you want the index in the table of contents, you may do +% +% \clearpage +% \phantomsection +% \addcontentsline{toc}{chapter}{\indexname} +% +% We have a command for this: + +\indexincontents % before \printindex + + + +\renewcommand{\indexname}{Index} +\setindex{main} +\printindex + +\sindex[b1]{page range!risky@this $\vert$is$\vert$ complicated|textbf} + +\renewcommand{\indexname}{Index bis} +\setindex{bis} +\printindex + + +\renewcommand{\indexname}{Index with tag a1} +\setindex{a1} +\printindex + + +\renewcommand{\indexname}{Index with tag b1} +\setindex{b1} +\printindex +\subsection*{Embellishment} +The command \verb!\indexcapstyle! +takes one argument. Its original definition is \verb!\newcommand{\indexcapstyle}[1]{\indexspace}!. + +One may embellish an index with letter headings, like this.\\ + +\setindex{main}\index{animal!ruminant!cow} + + +\verb!\renewcommand{\indexcapstyle}[1]{\indexspace\textsc{#1}\par}!% + + +\verb!\printindex[main][Index with headings]! \\ + +\noindent This gives + + + +\renewcommand{\indexcapstyle}[1]{\indexspace\textsc{#1}\par} +\printindex[main][Index with headings] + + + +\end{document} + |