diff options
Diffstat (limited to 'obsolete/indexing/corridx/doc/corridx.tex')
-rw-r--r-- | obsolete/indexing/corridx/doc/corridx.tex | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/obsolete/indexing/corridx/doc/corridx.tex b/obsolete/indexing/corridx/doc/corridx.tex new file mode 100644 index 0000000000..8a825ebe84 --- /dev/null +++ b/obsolete/indexing/corridx/doc/corridx.tex @@ -0,0 +1,321 @@ +\documentclass{article} +\usepackage{makeidx} +\makeindex +\begin{document} + \title{The CorrIdx Package} + \author{ J. K. Fink\\ Uni Leoben} + \maketitle + +\begin{abstract} + +The CorrIdx package can be used to sort an index with chemical +names containing leading numbers, etc. into a proper alphabetical +order. It is intended as a preprocessor to the MakeIndex program. + +\end{abstract} + +\tableofcontents + +\begin{center} + {\em The author is not liable for whatever will happen by the use of the material presented + here.}\vskip2ex + + NOTE: In the examples below, the INDEX comes always on a new page +\end{center} + +\section{Introduction} + +In a text containing chemical names like N,N'-diallyl p-phenyl +diamine , 1,2-ethanediol, o-chlorobisphenol~A, +endo-methylenetetrahydrophthalic acid anhydride, tert-butanol, you +may want to include these compounds into the index. If you use the +index command \verb"\index{...}", \LaTeX\space will produce from +the entries +\begin{verbatim} + \index{1,2-ethanediol} + \index{o-chlorobisphenol~A} + \index{endo-methylenetetrahydrophthalic acid anhydride} + \index{tert-butanol} + \index{N,N'-diallyl p-phenyl diamine} +\end{verbatim} +with the \LaTeX\space command \verb"\MakeIndex" a \verb"*.idx" +file looking like +\begin{verbatim} + \indexentry{1,2-ethanediol}{1} \indexentry{o-chlorobisphenol~A}{1} + \indexentry{endo-methylenetetrahydrophthalic acid anhydride}{1} + \indexentry{tert-butanol}{1} \indexentry{N,N'-diallyl p-phenyl + diamine}{1} +\end{verbatim} +and the program MakeIndex produces +\begin{theindex} + \item 1,2-ethanediol, 1 + + \indexspace + + \item endo-methylenetetrahydrophthalic acid anhydride, 1 + + \indexspace + + \item N,N'-diallyl p-phenyl diamine, 1 + + \indexspace + + \item o-chlorobisphenol~A, 1 + + \indexspace + + \item tert-butanol, 1 +\end{theindex} +Note that we differentiate in between the \LaTeX\space command +\verb"\MakeIndex" and the MakeIndex program. We are using +\verb"\usepackage{makeidx}". + +Now, you may find that the sort order in the example above is not +satisfactory. Therefore you must use the \verb"@" in the index +command to force a certain sort order. Try now the following index +entries +\begin{verbatim} + \index{ethanediol@1,2-ethanediol} + \index{chlorobisphenol@o-chlorobisphenol~A} + \index{methylenetetrahydrophthalic@endo-methylenetetrahydrophthalic acid anhydride} + \index{butanol@tert-butanol} + \index{diallyl@N,N'-diallyl-p-phenyl diamine} +\end{verbatim} +and the MakeIndex program will produce now a more satisfactory +result. This is shown now: +\begin{theindex} + + \item tert-butanol, 3 + + \indexspace + + \item o-chlorobisphenol~A, 3 + + \indexspace + + \item N,N'-diallyl-p-phenyl diamine, 3 + + \indexspace + + \item 1,2-ethanediol, 3 + + \indexspace + + \item endo-methylenetetrahydrophthalic acid anhydride, 3 + +\end{theindex} +The MakeIndex program uses the \verb"*.idx" file and produces a +*.ind file. We try now another type of index entries like this +\begin{verbatim} + \index{chem @1,2-ethanediol} + \index{chem @o-chlorobisphenol~A} + \index{chem @endo-methylenetetrahydrophthalic acid anhydride} + \index{chem @tert-butanol} + \index{chem @N,N'-diallyl p-phenyl diamine} + \index{chem @curing} + \index{chem @synthesis} +\end{verbatim} +A single run with the \LaTeX\space command \verb"\MakeIndex" in +the text produces +\begin{verbatim} + \indexentry{chem @1,2-ethanediol}{5} + \indexentry{chem @o-chlorobisphenol~A}{5} + \indexentry{chem @endo-methylenetetrahydrophthalic acid anhydride}{5} + \indexentry{chem @tert-butanol}{5} + \indexentry{chem @N,N'-diallyl p-phenyl diamine}{5} + \indexentry{chem @curing}{5} + \indexentry{chem @synthesis}{5} +\end{verbatim} +Now we run the corridx program as preprocessor and get a modified +preprocessed file \verb"*.idx" looking like +\begin{verbatim} + \indexentry{chem ethanediol@1,2-Ethanediol}{5} + \indexentry{chem chlorobisphenol~a@o-Chlorobisphenol~A}{5} + \indexentry{chem methylenetetrahydrophthalicacidanhydride@endo-Methylenetetrahydrophthalic acid anhydride}{5} + \indexentry{chem butanol@tert-Butanol}{5} + \indexentry{chem diallylphenyldiamine@N,N'-Diallyl p-phenyl diamine}{5} + \indexentry{chem curing@Curing}{5} + \indexentry{chem synthesis@Synthesis}{5} +\end{verbatim} +Further, the MakeIndex program produces from this file an *.ind +file that is printed out as +\begin{theindex} + \item tert-Butanol, 5 + \item o-Chlorobisphenol~A, 5 + \item Curing, 5 + \item N,N'-Diallyl p-phenyl diamine, 5 + \item 1,2-Ethanediol, 5 + \item endo-Methylenetetrahydrophthalic acid anhydride, 5 + \item Synthesis, 5 +\end{theindex} +This is probably what you want. +\section{The Corridx Program} + +The source code of the program is in Pascal compiled with Free +Pascal \newline (\verb"http://www.freepascal.org/") + +\subsection{Using the Program} + +Corridx stands for correct the \verb"*.idx" file. The simplest +call is to run \verb"corridx.exe". Then a file \verb"in.txt" must +be in the same directory as \verb"corridx.exe" and the output +comes in a file \verb"out.txt". Therefore you may copy your +\verb"*.idx" file into the \verb"in.txt", run \verb"corridx.exe" +and collect the output from \verb"out.txt". This output copy back +in your \verb"*.idx" file and run immediately the \verb"MakeIndex" +program. + +If a command line parameter just one meaning a valid file name is +there, then the \verb"corridx.exe" takes this as input file and +copies the output back to this file. If more than one command line +is there, or if the filename is not correct, I did not check what +will happen. + +I am running from Winedt both programs, as I have changed the +index menu into +\begin{verbatim} + Run("c:\fullpathtocorridx\corridx.exe %P\%N.idx","%P",0,0,"CorrIdx",1,1); + Prompt('Finished CorrIdx'); + Exe('%B\Exec\MiKTeX\MakeIndex.edt'); +\end{verbatim} +The prompt is necessary to retard the program execution. Or else +you may use instead of the \verb"Run" command the \verb"WinExe" +command with the synchronize option. I did not check out this. + +\subsection{Program Description} + +Note that every index entry you create must contain a \verb"@", +otherwise an error will be created. For example create the entry +\verb"\index{chem @1,4-butanediol}". The program scans each line +in the \verb"*.idx" file. When it finds \verb"chem" just behind +the opening bracket \verb"{", it ignores what is after \verb"chem" +until it finds the \verb"@". Then it reads the name string until +the closing bracket comes. There should be no \verb"\}" in +between. Finally it reads the string with the page number. The +name string is copied to a sort string which is now processed: + +\begin{enumerate} + \item Every text in between dollar signs is replaced by a + blank. + \item Every non letter besides the tilde \verb"~" is replaced by a blank. + So you may protect \verb"bisphenol~A". + \item Every single letter in between blanks is replaced by a blank. + \item Special sequences like exo, endo, tert, sec, cis, + trans, syn, anti, cyclo, spiro are replaced by blanks. + \item what is left over is made lower case. +\end{enumerate} + +The program is looking now in the sort string for the first +appearance of a letter and makes in the name string this position +as uppercase. Then in the sort string all spaces are eliminated. +Finally, the index entry is rebuilt to result in +\verb"\indexentry{chem butanediol@1,4-Butanediol}{8}"% + +\subsection{Further Options} + +Four types of index are allowed: +\begin{enumerate} + \item Index of chemicals \verb"\index{chem @1,3-Butadiene}" + \item General Index \verb"\index{gen @Synthesis}" + \item Index of acronyms \verb"\index{acr LCD@LCD!Liquid crystal display}" + \item Index of other items \verb"\index{whatever you want@abc}" +\end{enumerate} +In an index entry of acronyms, a \verb"!" is compulsory. The +example above produces the index: + +\begin{theindex} + + \item LCD + \subitem Liquid crystal display, 8 + + \indexspace + + \item 1,3-Butadiene, 8 + + \indexspace + + \item Synthesis, 8 + + \indexspace + + \item abc, 8 + +\end{theindex} + +\section{User Defined Commands} + +To get a better performance, it is a good idea to define the +following commands: + +\begin{verbatim} +\newcommand{\ia}[2]{#1 {\nobreak(#2)}\index{acr #2@#2!#1}} +% is is an acronym index. Example: \ia{Polyalkylene oxide}{PAO} % +\newcommand{\ic}[1]{#1\index{chem #1@#1}} +% ic is a chemical index +\newcommand{\ib}[2]{#1 {\nobreak(#2)}\index{acr #2@#2!#1}\index{chem #1@#1}} +% ib is both acronym and chemical index +\newcommand{\ig}[2][]{#2\index{gen #2@#2#1}} +% ig is a general index +\end{verbatim} + +\newcommand{\ia}[2]{#1 {\nobreak(#2)}\index{acr #2@#2!#1}} +% Example: \ia{Polyalkylene oxide}{PAO} % +\newcommand{\ic}[1]{#1\index{chem #1@#1}} +\newcommand{\ib}[2]{#1 {\nobreak(#2)}\index{acr #2@#2!#1}\index{chem #1@#1}} +% ib is both acronym and chemical +\newcommand{\ig}[2][]{#2\index{gen #2@#2#1}} + +We show now the use of these commands in the following sample +text. You should look in the original \LaTeX\space file. + +Note that we have in the text also the commands +\begin{verbatim} + \newcommand\swallow[1]{\relax} + \index{acr @\section*{Acronyms}\swallow|swallow}% + \index{chem @\section*{Chemicals}\swallow|swallow}% + \index{gen @\section*{General}\swallow|swallow}% +\end{verbatim} + +\section{Sample Text} + +There are various types of novolak resins with different \ig[ +resins]{ortho} to para ratios of the methylene linkages, \ia{high +ortho novolak resins}{HON}, \ia{general-purpose novolak +resins}{GPN} and \ia{high para novolak resins}{HPN}. + +The liquid-phase oxidation of cumene to \ib{cumene +hydroperoxide}{CHP} results in \ic{acetone} and \ic{phenol}. This +is used for \ic{bisphenol~A}, \ic{bisphenol~B}, \ic{resorcinol}, +\ic{cresol}s, and \ic{xylenol}s. \ic{2-Cyclohexyl-5-methylphenol} +is used for \ig[!positive]{photoresist}s. \ic{m-Methoxyphenol}, +\ic{2-naphthol}, \ic{cardanol}, and \ic{cardol}, are other +suitable \ig[!other]{phenols}. + + +\section{The Sample Text Verbatim} + +\begin{verbatim} +There are various types of novolak resins with different \ig[ +resins]{ortho} to para ratios of the methylene linkages, \ia{high +ortho novolak resins}{HON}, \ia{general-purpose novolak +resins}{GPN} and \ia{high para novolak resins}{HPN}. + +The liquid-phase oxidation of cumene to \ib{cumene +hydroperoxide}{CHP} results in \ic{acetone} and \ic{phenol}. This +is used for \ic{bisphenol~A}, \ic{bisphenol~B}, \ic{resorcinol}, +\ic{cresol}s, and \ic{xylenol}s. \ic{2-Cyclohexyl-5-methylphenol} +is used for \ig[!positive]{photoresist}s. \ic{m-Methoxyphenol}, +\ic{2-naphthol}, \ic{cardanol}, and \ic{cardol}, are other +suitable \ig[!other]{phenols}. +\end{verbatim} + + + \newcommand\swallow[1]{\relax} + \index{acr @\section*{Acronyms}\swallow|swallow}% + \index{chem @\section*{Chemicals}\swallow|swallow}% + \index{gen @\section*{General}\swallow|swallow}% + +\printindex + +\end{document} +% |