From e56341155ca3f893f0f131de5df4dc537fc8172b Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 23 Nov 2009 01:20:55 +0000 Subject: new latex package hvindex (15oct09) git-svn-id: svn://tug.org/texlive/trunk@16136 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/hvindex/hvindex.sty | 123 ++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/hvindex/hvindex.sty (limited to 'Master/texmf-dist/tex/latex/hvindex') 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 +%% 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 -- cgit v1.2.3