diff options
author | Karl Berry <karl@freefriends.org> | 2009-11-23 01:20:55 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-11-23 01:20:55 +0000 |
commit | e56341155ca3f893f0f131de5df4dc537fc8172b (patch) | |
tree | ca156b53d038dded1d71bcc3ce52ffc8c12fd205 /Master/texmf-dist | |
parent | 45214368aeb8eade236ae639a9b853146734638a (diff) |
new latex package hvindex (15oct09)
git-svn-id: svn://tug.org/texlive/trunk@16136 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r-- | Master/texmf-dist/doc/latex/hvindex/Changes | 12 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvindex/README | 20 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvindex/hvindex.pdf | bin | 0 -> 80769 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/hvindex/hvindex.tex | 140 | ||||
-rw-r--r-- | Master/texmf-dist/tex/latex/hvindex/hvindex.sty | 123 |
5 files changed, 295 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/hvindex/Changes b/Master/texmf-dist/doc/latex/hvindex/Changes new file mode 100644 index 00000000000..6a9f2578882 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvindex/Changes @@ -0,0 +1,12 @@ +hvindex.sty -------- +0.03 2009-10-24 - fixed an introduced bug with the last version +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/Master/texmf-dist/doc/latex/hvindex/README b/Master/texmf-dist/doc/latex/hvindex/README new file mode 100644 index 00000000000..527d6f326f6 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvindex/README @@ -0,0 +1,20 @@ +%% Package `hvindex.sty' +%% +%% Herbert Voss <herbert _at_ dante.de> (Germany) +%% +%% (C) 2009 +%% +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). diff --git a/Master/texmf-dist/doc/latex/hvindex/hvindex.pdf b/Master/texmf-dist/doc/latex/hvindex/hvindex.pdf Binary files differnew file mode 100644 index 00000000000..b1dc16b70c9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvindex/hvindex.pdf diff --git a/Master/texmf-dist/doc/latex/hvindex/hvindex.tex b/Master/texmf-dist/doc/latex/hvindex/hvindex.tex new file mode 100644 index 00000000000..464956fdf70 --- /dev/null +++ b/Master/texmf-dist/doc/latex/hvindex/hvindex.tex @@ -0,0 +1,140 @@ +\listfiles +\documentclass[ngerman]{article} +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[osf]{mathpazo} +\usepackage[scaled]{beramono} +\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}+ &$\Rightarrow$ \Index{foo} & foo\\ +\verb+\Index{foo!bar}+ &$\Rightarrow$ \Index{foo!bar} & foo\\ + & & \kern1em bar\\ +\verb+\Index{foo!bar!baz}+ &$\Rightarrow$ \Index{foo!bar!baz} & foo\\ + & & \kern1em bar\\ + & & \kern2em baz\\ +\verb+\Index{foo@\textsc{foo}}+ &$\Rightarrow$ \Index{foo@\textsc{foo}} & \textsc{foo}\\ +\verb+\Index{foo!bar@\textsf{baz}}+ &$\Rightarrow$ \Index{foo!bar@\textsf{bar}} & foo\\ + & & \kern1em\textsf{bar}\\ +\verb+\Index{foo!bar!baz@\texttt{baz}}+ &$\Rightarrow$ \Index{foo!bar!baz@\texttt{baz}}&foo\\ + & & \kern1em bar\\ + & & \kern2em \texttt{baz}\\ +\verb+\Index{foo@\textsc{foo}!bar}+ &$\Rightarrow$ \Index{foo@\textsc{foo}!bar} & \textsc{foo}\\ + & & \kern1em bar\\ +\verb+\Index{foo!bar@\textsc{bar}!baz}+ &$\Rightarrow$ \Index{foo!bar@\textsc{bar}!baz}& foo\\ + & & \kern1em\textsc{bar}\\ + & & \kern2em baz\\ +\verb+\Index{foo@\textsc{foo}}+ &$\Rightarrow$ \Index{foo@\textsc{foo}} & \textsc{foo}\\ +\verb+\Index{foo!bar@\textsf{baz}}+ &$\Rightarrow$ \Index{foo!bar@\textsf{bar}} & foo\\ + & & \kern1em\textsf{bar}\\ +\verb+\Index{foo!bar!baz@\texttt{baz}}+ &$\Rightarrow$ \Index{foo!bar!baz@\texttt{baz}}& foo\\ + & & \kern1em bar\\ + & & \kern2em\texttt{baz}\\ +\verb+\ttIndex{foo}+ &$\Rightarrow$ \ttIndex{foo} & \texttt{foo}\\ +\verb+\bfIndex{foo}+ &$\Rightarrow$ \bfIndex{foo} & \textbf{foo}\\ +\verb+\sfIndex{foo}+ &$\Rightarrow$ \sfIndex{foo} & \textsf{foo}\\ +\verb+\scIndex{foo}+ &$\Rightarrow$ \scIndex{foo} & \textsc{foo}\\ +\verb+\itIndex{foo}+ &$\Rightarrow$ \itIndex{foo} & \textit{foo}\\ +\verb+\ttIndex{foo!bar}+ &$\Rightarrow$ \ttIndex{foo!bar} & foo\\ + & & \kern1em\texttt{bar}\\ +\verb+\bfIndex{foo!bar}+ &$\Rightarrow$ \bfIndex{foo!bar} & foo\\ + & & \kern1em\textbf{bar}\\ +\verb+\sfIndex{foo!bar}+ &$\Rightarrow$ \sfIndex{foo!bar} & foo\\ + & & \kern1em\textsf{bar}\\ +\verb+\scIndex{foo!bar}+ &$\Rightarrow$ \scIndex{foo!bar} & foo\\ + & & \kern1em\textsc{bar}\\ +\verb+\itIndex{foo!bar}+ &$\Rightarrow$ \itIndex{foo!bar} & foo\\ + & & \kern1em\textit{bar}\\ +\clearpage +\verb+\ttIndex{foo!bar!baz}+ &$\Rightarrow$ \ttIndex{foo!bar!baz} & foo\\ + & & \kern1em bar\\ + & & \kern2em\texttt{baz}\\ +\verb+\bfIndex{foo!bar!baz}+ &$\Rightarrow$ \bfIndex{foo!bar!baz} & foo\\ + & & \kern1em bar\\ + & & \kern2em\textbf{baz}\\ +\verb+\sfIndex{foo!bar!baz}+ &$\Rightarrow$ \sfIndex{foo!bar!baz} & foo\\ + & & \kern1em bar\\ + & & \kern2em\textsf{baz}\\ +\verb+\scIndex{foo!bar!baz}+ &$\Rightarrow$ \scIndex{foo!bar!baz} & foo\\ + & & \kern1em bar\\ + & & \kern2em\textsc{baz}\\ +\verb+\itIndex{foo!bar!baz}+ &$\Rightarrow$ \itIndex{foo!bar!baz} & foo\\ + & & \kern1em bar\\ + & & \kern2em\textit{baz}\\\hline +\verb+\sIndex{foo|bar}+ &$\Rightarrow$ \sIndex{foo|bar} & foo, see bar \\ +\verb+\saIndex{baz|bar}+ &$\Rightarrow$ \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 \Index{"|} 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}\index{{"|}} + +\clearpage +\phantomsection +\addcontentsline{toc}{section}{Index} +\printindex +\end{document} + + diff --git a/Master/texmf-dist/tex/latex/hvindex/hvindex.sty b/Master/texmf-dist/tex/latex/hvindex/hvindex.sty new file mode 100644 index 00000000000..7b39cb999f0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/hvindex/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.03} +\def\filedate{2009/10/24} +% +\ProvidesPackage{hvindex}[\filedate\ \fileversion\ Index macros (hv)] +\message{`hvindex' v\fileversion, \filedate\space (hv)} +% +\newif\ifhv@makeidx\hv@makeidxfalse +\DeclareOption{makeidx}{\hv@makeidxtrue} +\ProcessOptions\relax + +\ifhv@makeidx + \RequirePackage{makeidx}\makeindex +\fi +% +\let\IndexNIL\@nil +\def\hvIDXfontDefault#1{#1} +\let\hvIDXfont\hvIDXfontDefault +%\providecommand*\shorthandoff[1]{} +%\providecommand*\shorthandon[1]{} +\newif\ifhvShortHandOff\hvShortHandOfffalse +%\ifcat"~\shorthandoff{"}\hvShortHandOfftrue\fi +\def\hvEncap{"|} +% +\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 + \def\hvTemp{#1}% + \ifx\hvTemp\hvEncap\index{{#1}}#1\else% {{...}} to get "| with hyperref + \ifx\hvIDXfont\hvIDXfontDefault\index{#1}#1 + \else\index{#1@\hvIDXfont{#1}}\hvIDXfont{#1}\fi\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 + \def\hvTemp{#2}% + \ifx\hvTemp\hvEncap\index{#1!{#2}}#2\else + \ifx\hvIDXfont\hvIDXfontDefault\index{#2}#2 + \else\index{#1!#2@\hvIDXfont{#2}}\hvIDXfont{#2}\fi\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 + \def\hvTemp{#3}% + \ifx\hvTemp\hvEncap\index{#1!#2!{#3}}#3\else + \ifx\hvIDXfont\hvIDXfontDefault\index{#3}#3 + \else\index{#1!#2!#3@\hvIDXfont{#3}}\hvIDXfont{#3}\fi\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} +% +\begingroup + \lccode`0=`\{ + \lccode`1=`\} +\lowercase{% + \endgroup + \newcommand\hv@BraceLeft{0}% + \newcommand\hv@BraceRight{1}% +} +\iffalse +\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} +\fi +%\begingroup +% \edef\x{\endgroup +% \noexpand\index{\string"\string{@\string\textbraceleft}% +% }% +%\x +\newcommand*{\hv@braceIndex}[1]{\index{#1}} +\newcommand*\iBraceL{\hv@braceIndex{\string"\hv@BraceLeft @\string\textbraceleft}} +\newcommand*\iBraceR{\hv@braceIndex{\string"\hv@BraceRight @\string\textbraceright}} +\newcommand*\IBraceL{\hv@braceIndex{\string"\hv@BraceLeft @\string\textbraceleft}\{} +\newcommand*\IBraceR{\hv@braceIndex{\string"\hv@BraceRight @\string\textbraceright}\}} + +%\newcommand*\iBraceL{\iBraceL} +%\newcommand*\iBraceR{\iBraceR} +%\newcommand*\IBraceL{\iBraceL\textbraceleft} +%\newcommand*\IBraceR{\iBraceR\textbraceright} +%\ifhvShortHandOff\shorthandon{"}\fi + +\endinput |