diff options
Diffstat (limited to 'macros/latex/contrib/hvindex')
-rw-r--r-- | macros/latex/contrib/hvindex/Changes | 12 | ||||
-rw-r--r-- | macros/latex/contrib/hvindex/README | 17 | ||||
-rw-r--r-- | macros/latex/contrib/hvindex/doc/hvindex-doc.pdf | bin | 0 -> 74896 bytes | |||
-rw-r--r-- | macros/latex/contrib/hvindex/doc/hvindex-doc.tex | 138 | ||||
-rw-r--r-- | macros/latex/contrib/hvindex/latex/hvindex.sty | 123 |
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 Binary files differnew file mode 100644 index 0000000000..815a79ade6 --- /dev/null +++ b/macros/latex/contrib/hvindex/doc/hvindex-doc.pdf 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 |