summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/hvindex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/hvindex
Initial commit
Diffstat (limited to 'macros/latex/contrib/hvindex')
-rw-r--r--macros/latex/contrib/hvindex/Changes12
-rw-r--r--macros/latex/contrib/hvindex/README17
-rw-r--r--macros/latex/contrib/hvindex/doc/hvindex-doc.pdfbin0 -> 74896 bytes
-rw-r--r--macros/latex/contrib/hvindex/doc/hvindex-doc.tex138
-rw-r--r--macros/latex/contrib/hvindex/latex/hvindex.sty123
5 files changed, 290 insertions, 0 deletions
diff --git a/macros/latex/contrib/hvindex/Changes b/macros/latex/contrib/hvindex/Changes
new file mode 100644
index 0000000000..467f408217
--- /dev/null
+++ b/macros/latex/contrib/hvindex/Changes
@@ -0,0 +1,12 @@
+hvindex.sty --------
+0.04 2017-12-12 - added \iVert and \IVert
+0.02 2009-10-18 - makeidx and makeindex now depend on the
+ optional argument [makeidx]
+ - do not use @ operator when there is no
+ one in the argument
+ - added macros \iBraceL, \IBraceL,
+ \iBraceR, IBraceR to get the braces
+ well sorted depending to their ASCII number
+ (thanks to Heiko Oberdiek)
+0.01 2009-10-01 first CTAN version
+
diff --git a/macros/latex/contrib/hvindex/README b/macros/latex/contrib/hvindex/README
new file mode 100644
index 0000000000..0e5fa9ab4d
--- /dev/null
+++ b/macros/latex/contrib/hvindex/README
@@ -0,0 +1,17 @@
+This package defines some macros as a
+replacement for \index which makes
+live easier. You have to type every
+word only once to get it into the index
+and into the text.
+
+Save the file hvindex.sty in a directory,
+which is part of your local TeX tree.
+Then do not forget to run texhash to update this tree.
+For more information see the documentation of your LaTeX distribution
+on installing packages into your local TeX system or read the
+TeX Frequently Asked Questions:
+(http://www.tex.ac.uk/cgi-bin/texfaq2html?label=instpackages).
+
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
diff --git a/macros/latex/contrib/hvindex/doc/hvindex-doc.pdf b/macros/latex/contrib/hvindex/doc/hvindex-doc.pdf
new file mode 100644
index 0000000000..815a79ade6
--- /dev/null
+++ b/macros/latex/contrib/hvindex/doc/hvindex-doc.pdf
Binary files differ
diff --git a/macros/latex/contrib/hvindex/doc/hvindex-doc.tex b/macros/latex/contrib/hvindex/doc/hvindex-doc.tex
new file mode 100644
index 0000000000..6791ba89c0
--- /dev/null
+++ b/macros/latex/contrib/hvindex/doc/hvindex-doc.tex
@@ -0,0 +1,138 @@
+\listfiles
+\documentclass[ngerman]{article}
+\usepackage{fontspec}
+\usepackage{dejavu-otf}
+\usepackage{babel}
+\usepackage{longtable}
+\usepackage[makeidx]{hvindex}
+\usepackage[colorlinks,linktocpage]{hyperref}
+\providecommand\phantomsection{}
+\title{\texttt{hvindex}, v. \fileversion\\ simplifying indexing \ldots}
+\author{Herbert Voß}
+\date{\filedate}
+\begin{document}
+\maketitle
+
+\tableofcontents
+
+\section{Package options}
+With the \Index{option} \ttIndex{makeidx} the also called package is
+loaded and the macro \texttt{\textbackslash{}makeindex}
+is executed.
+
+The package should be loaded \emph{after} package \ttIndex{babel}.
+
+\section{Introduction}
+The \Index{package} \ttIndex{hvindex} defines some \Index{macros}
+as a \Index{macro!replacement} for
+\Index{macros!index@\texttt{\textbackslash index}}
+which makes \Index{live} easier\index{easy}. You have to type every
+\Index{word} only \Index{once} to get it into the \Index{index}
+and into the \Index{text}.
+
+
+\small
+\begin{verbatim}
+The \Index{package} \ttIndex{hvindex} defines some \Index{macros}
+as a \Index{macro!replacement} for
+\Index{macros!index@\texttt{\textbackslash index}}
+which makes \Index{live} easier\index{easy}. You have to type every
+\Index{word} only \Index{once} to get it into the \Index{index}
+and into the \Index{text}.
+\end{verbatim}
+\normalsize
+
+
+\clearpage
+\section{The macros}
+
+\begin{longtable}{@{} l l l @{}}\\\hline
+\emph{code} & \emph{Text} & \emph{index}\\\hline
+\endfirsthead
+\multicolumn{3}{@{}l}{\ldots\ continued from previous page}\\\hline
+\emph{code} & \emph{Text} & \emph{index}\\\hline
+\endhead
+\hline
+\multicolumn{3}{r@{}}{continued on next page \ldots}\\
+\hline
+\endfoot
+\hline
+\endlastfoot
+\verb+\Index{foo}+ & \Index{foo} & foo\\
+\verb+\Index{foo!bar}+ & \Index{foo!bar} & foo\\
+ & & \kern1em bar\\
+\verb+\Index{foo!bar!baz}+ & \Index{foo!bar!baz} & foo\\
+ & & \kern1em bar\\
+ & & \kern2em baz\\
+\verb+\Index{foo@\textsc{foo}}+ & \Index{foo@\textsc{foo}} & \textsc{foo}\\
+\verb+\Index{foo!bar@\textsf{baz}}+ & \Index{foo!bar@\textsf{bar}} & foo\\
+ & & \kern1em\textsf{bar}\\
+\verb+\Index{foo!bar!baz@\texttt{baz}}+ & \Index{foo!bar!baz@\texttt{baz}}&foo\\
+ & & \kern1em bar\\
+ & & \kern2em \texttt{baz}\\
+\verb+\Index{foo@\textsc{foo}!bar}+ & \Index{foo@\textsc{foo}!bar} & \textsc{foo}\\
+ & & \kern1em bar\\
+\verb+\Index{foo!bar@\textsc{bar}!baz}+ & \Index{foo!bar@\textsc{bar}!baz}& foo\\
+ & & \kern1em\textsc{bar}\\
+ & & \kern2em baz\\
+\verb+\Index{foo@\textsc{foo}}+ & \Index{foo@\textsc{foo}} & \textsc{foo}\\
+\verb+\Index{foo!bar@\textsf{baz}}+ & \Index{foo!bar@\textsf{bar}} & foo\\
+ & & \kern1em\textsf{bar}\\
+\verb+\Index{foo!bar!baz@\texttt{baz}}+ & \Index{foo!bar!baz@\texttt{baz}}& foo\\
+ & & \kern1em bar\\
+ & & \kern2em\texttt{baz}\\
+\verb+\ttIndex{foo}+ & \ttIndex{foo} & \texttt{foo}\\
+\verb+\bfIndex{foo}+ & \bfIndex{foo} & \textbf{foo}\\
+\verb+\sfIndex{foo}+ & \sfIndex{foo} & \textsf{foo}\\
+\verb+\scIndex{foo}+ & \scIndex{foo} & \textsc{foo}\\
+\verb+\itIndex{foo}+ & \itIndex{foo} & \textit{foo}\\
+\verb+\ttIndex{foo!bar}+ & \ttIndex{foo!bar} & foo\\
+ & & \kern1em\texttt{bar}\\
+\verb+\bfIndex{foo!bar}+ & \bfIndex{foo!bar} & foo\\
+ & & \kern1em\textbf{bar}\\
+\verb+\sfIndex{foo!bar}+ & \sfIndex{foo!bar} & foo\\
+ & & \kern1em\textsf{bar}\\
+\verb+\scIndex{foo!bar}+ & \scIndex{foo!bar} & foo\\
+ & & \kern1em\textsc{bar}\\
+\verb+\itIndex{foo!bar}+ & \itIndex{foo!bar} & foo\\
+ & & \kern1em\textit{bar}\\
+\clearpage
+\verb+\ttIndex{foo!bar!baz}+ & \ttIndex{foo!bar!baz} & foo\\
+ & & \kern1em bar\\
+ & & \kern2em\texttt{baz}\\
+\verb+\bfIndex{foo!bar!baz}+ & \bfIndex{foo!bar!baz} & foo\\
+ & & \kern1em bar\\
+ & & \kern2em\textbf{baz}\\
+\verb+\sfIndex{foo!bar!baz}+ & \sfIndex{foo!bar!baz} & foo\\
+ & & \kern1em bar\\
+ & & \kern2em\textsf{baz}\\
+\verb+\scIndex{foo!bar!baz}+ & \scIndex{foo!bar!baz} & foo\\
+ & & \kern1em bar\\
+ & & \kern2em\textsc{baz}\\
+\verb+\itIndex{foo!bar!baz}+ & \itIndex{foo!bar!baz} & foo\\
+ & & \kern1em bar\\
+ & & \kern2em\textit{baz}\\\hline
+\verb+\sIndex{foo|bar}+ & \sIndex{foo|bar} & foo, see bar \\
+\verb+\saIndex{baz|bar}+ & \saIndex{baz|bar}& baz, see also bar\\\hline
+
+\end{longtable}
+
+It is not easy to get the braces into an index, because \verb+\index+ reads its argument \Index{verbatim}.
+The package defines the follwong macros:
+
+\verb+\iBraceL+, which writes the \IBraceL{} into the \Index{index}, same for \verb+\iBraceR+ for the right \IBraceR.
+With the upper case variant it is writen into the index and also printed into the text,
+like this one: \IBraceL\ and \IBraceR\ (\verb|\IBraceL\ and \IBraceR|). The advantage of these macros is, that
+the \Index{braces} are sorted correct, the character \IVert{} (written as \verb|\IVert|) must appear between them and it does \ldots
+
+%BTW: with \texttt{hyperref} we have to write \verb+\index{{"|}}+, to get it as a correct \Index{link} into
+%the index. \texttt{hvindex} does it for you if you use \verb+\Index{"|}+.
+\index{bar}\iVert
+
+\clearpage
+\phantomsection
+\addcontentsline{toc}{section}{Index}
+\printindex
+\end{document}
+
+
diff --git a/macros/latex/contrib/hvindex/latex/hvindex.sty b/macros/latex/contrib/hvindex/latex/hvindex.sty
new file mode 100644
index 0000000000..f6dba8e127
--- /dev/null
+++ b/macros/latex/contrib/hvindex/latex/hvindex.sty
@@ -0,0 +1,123 @@
+% $Id: deIndex.sty 737 2009-10-12 08:59:10Z herbert $
+%%
+%% IMPORTANT NOTICE:
+%%
+%% This is file `hvindex.sty',
+%%
+%% Herbert Voss <herbert@dante.de>
+%% October 01, 2009-
+%%
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN archives
+%% in directory macros/latex/base/lppl.txt.
+%%
+%% DESCRIPTION:
+%% `hvindex' offers macros for simplifing indexing of words
+%%
+\NeedsTeXFormat{LaTeX2e}
+\def\fileversion{0.04}
+\def\filedate{2017/12/12}
+\message{`hvindex' v\fileversion, \filedate\space (hv)}
+%
+\ProvidesPackage{hvindex}[\filedate~Index macros (hv)]
+%
+\RequirePackage{xkeyval}
+\newif\ifhv@makeidx\hv@makeidxfalse
+\DeclareOptionX{makeidx}{\hv@makeidxtrue}
+\newcommand*\hv@index@quote{>}
+\DeclareOptionX{quote}{\renewcommand*\hv@index@quote{#1}}
+
+
+\ProcessOptionsX\relax
+
+\ifhv@makeidx
+ \RequirePackage{makeidx}
+ \makeindex
+\fi
+%
+\let\IndexNIL\@nil
+\def\hvIDXfontDefault#1{#1}
+\let\hvIDXfont\hvIDXfontDefault
+%
+\makeatother
+\def\Index#1{\expandafter\IndexXi#1!!!\IndexNIL}
+\def\IndexXi#1!#2!#3!#4\IndexNIL{%
+ \ifx\relax#3\relax% % no 3rd argument
+ \ifx\relax#2\relax% % no 2nd argument
+ \IndexXXi#1@@==%\IndexNIL% % scan #1 for @
+ \else\IndexXXii#1!#2@@\IndexNIL\fi% % scan #2 for @
+ \else\IndexXXiii#1!\noexpand#2!#3@@\IndexNIL% scan #3 for @
+ \fi}
+\def\IndexXXi#1@#2@#3\IndexNIL{%
+ \ifx\relax#2\relax% no @ in last arg
+ \ifx\hvIDXfont\hvIDXfontDefault
+ \index{#1}#1%
+ \else\index{#1@\hvIDXfont{#1}}\hvIDXfont{#1}\fi%#1
+ \else\index{#1@#2}#2\fi}% % #1@#2
+%
+\def\IndexXXii#1!#2@#3@#4\IndexNIL{%
+ \ifx\relax#3\relax % no @ in last arg
+ \ifx\hvIDXfont\hvIDXfontDefault\index{#2}#2%
+ \else\index{#1!#2@\hvIDXfont{#2}}\hvIDXfont{#2}\fi%
+ \else\index{#1!\protect#2@#3}#3\fi}
+%
+\def\IndexXXiii#1!#2!#3@#4@#5\IndexNIL{%
+ \ifx\relax#4\relax % no @ in last arg
+ \ifx\hvIDXfont\hvIDXfontDefault\index{#3}#3%
+ \else\index{#1!#2!#3@\hvIDXfont{#3}}\hvIDXfont{#3}\fi%
+ \else\index{#1!#2!\protect#3@#4}#4\fi}
+%
+\def\sfIndex#1{\let\hvIDXfont\textsf\Index{#1}\let\hvIDXfont\hvIDXfontDefault}
+\def\ttIndex#1{\let\hvIDXfont\texttt\Index{#1}\let\hvIDXfont\hvIDXfontDefault}
+\def\scIndex#1{\let\hvIDXfont\textsc\Index{#1}\let\hvIDXfont\hvIDXfontDefault}
+\def\itIndex#1{\let\hvIDXfont\textit\Index{#1}\let\hvIDXfont\hvIDXfontDefault}
+\def\bfIndex#1{\let\hvIDXfont\textbf\Index{#1}\let\hvIDXfont\hvIDXfontDefault}
+%
+\makeatletter
+\def\sIndex#1{\expandafter\sIndex@i#1\@nil}
+\def\sIndex@i#1|#2\@nil{\index{#1|see{#2}}#1}
+\def\saIndex#1{\expandafter\saIndex@i#1\@nil}
+\def\saIndex@i#1|#2\@nil{\index{#1|seealso{#2}}#1}
+%
+\iffalse
+\begingroup
+ \lccode`0=`\{
+ \lccode`1=`\}
+\lowercase{%
+ \endgroup
+ \newcommand\hvBraceLeft{0}%
+ \newcommand\hvBraceRight{1}%
+}
+\def\iBraceL{%
+ \begingroup
+ \edef\x{\endgroup
+ \noexpand\index{\string"\string{@\string\textbraceleft}%
+ }\x}
+\def\iBraceR{%
+ \begingroup
+ \edef\x{\endgroup
+ \noexpand\index{\string"\string{@\string\textbraceleft}%
+ }\x}
+%\begingroup
+% \edef\x{\endgroup
+% \noexpand\index{\string"\string{@\string\textbraceleft}%
+% }%
+%\x
+\else
+%\newcommand*{\hv@braceIndex}[1]{\index{#1}}
+%\newcommand*\iBraceL{\hv@braceIndex{"\hvBraceLeft @\string\textbraceleft}}
+%\newcommand*\iBraceR{\hv@braceIndex{"\hvBraceRight @\string\textbraceright}}
+%\newcommand*\IBraceL{\hv@braceIndex{"\hvBraceLeft @\textbraceleft}\{}
+%\newcommand*\IBraceR{\hv@braceIndex{"\hvBraceRight @\textbraceright}\}}
+\def\iBraceL{\index{\char123}}
+\def\iBraceR{\index{\char125}}
+\def\iVert{\index{\char124}}
+
+\fi
+\newcommand*\IBraceL{\iBraceL\textbraceleft}
+\newcommand*\IBraceR{\iBraceR\textbraceright}
+\newcommand*\IVert{\iVert|}
+
+
+
+\endinput