From 1103128be3749c33d08fd931e52a0b4f07080207 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 19 Dec 2006 01:02:58 +0000 Subject: new package gmiflink (18dec06) git-svn-id: svn://tug.org/texlive/trunk@2802 c570f23f-e606-0410-a88d-b1316a301751 --- Build/tools/tpm-ctan-check | 2 +- Master/texmf-dist/doc/latex/gmiflink/README | 69 ++++++++ .../texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf | Bin 0 -> 224602 bytes .../texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex | 15 ++ Master/texmf-dist/tex/latex/gmiflink/gmiflink.sty | 192 +++++++++++++++++++++ Master/texmf-dist/tpm/gmiflink.tpm | 27 +++ Master/texmf/lists/gmiflink | 8 + Master/texmf/tpm/collection-latexextra.tpm | 1 + 8 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/gmiflink/README create mode 100644 Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf create mode 100644 Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex create mode 100644 Master/texmf-dist/tex/latex/gmiflink/gmiflink.sty create mode 100644 Master/texmf-dist/tpm/gmiflink.tpm create mode 100644 Master/texmf/lists/gmiflink diff --git a/Build/tools/tpm-ctan-check b/Build/tools/tpm-ctan-check index a8547fd5134..d3fafa52103 100755 --- a/Build/tools/tpm-ctan-check +++ b/Build/tools/tpm-ctan-check @@ -41,7 +41,7 @@ my @WorkingTPM = qw( fmtcount fncychap foekfont fontch fontspec footbib forloop formular fourier fp free-math-font-survey frenchle fribrief fullpict functan galois gatech-thesis genmisc genmpage germbib ginpenc - glossary gmutils gmverb gnuplottex gost graphics + glossary gmiflink gmutils gmverb gnuplottex gost graphics graphicx-psmin greenpoint grnumalt GuIT HA-prosper hands hepthesis hhtensor histogr hitec hrlatex hvfloat diff --git a/Master/texmf-dist/doc/latex/gmiflink/README b/Master/texmf-dist/doc/latex/gmiflink/README new file mode 100644 index 00000000000..695b67bc086 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gmiflink/README @@ -0,0 +1,69 @@ +The gmiflink.sty LaTeX package +is a work of Grzegorz `Natror' Murzynowski, + + + +1. Copyright 2005, 2006 by Grzegorz `Natror' Murzynowski + +This program is subject to the LaTeX Project Public License. +See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html +for the details of that license. + + +2. Introduction + +The gmiflink.sty package protects you against an error when a link is +dangling and typesets some plain text instead of a hyperlink then. It +is intended for use with the hyperref.sty package. + +I used it for typesetting the names of the objects in a documentation +of a computer program. If the object had been defined a \hyperlink to its +definition was made, otherwise a plain object's name was typeset. +I also use this package in automatic making of hyperlinking indexes. + +It provides the macros \gmiflink, \gmifref and +\gmhypertarget for conditional making of hyperlinks in your document. + +\gmhypertarget makes a \hypertarget and a \label of the given name. + +\gmiflink makes a \hyperlink to the given \hypertarget if the +correspondent label exists, otherwise typesets an ordinary text. + +\gmifref makes a (hyper-)\ref to the given label if the label exists, +otherwise it typesets an ordinary text. + + +3. Installation + +Just put the gmiflink.sty somewhere in the texmf/tex/latex +branch. Creating a /texmf/tex/latex/gm directory may be advisable if +you consider using other packages written by me. + +Then you should refresh your TeX distribution's files' +database most probably. + + +4. Contents + +The distribution of this package consists of the following four files. + +gmiflink.sty +README +gmiflinkDoc.tex +gmiflinkDoc.pdf + + +5. Documentation + +The last of the above files (the .pdf) is a documentation compiled +from the .sty file by running LaTeX (twice) on the gmiflinkDoc.tex +file. Compiling of the documentation requires the packages: gmdoc +(gmdoc.sty and gmdocc.cls), gmverb.sty, gmutils.sty and also some +standard packages: hyperref.sty, color.sty, geometry.sty, +multicol.sty, lmodern.sty, fontenc.sty that should be installed +on your computer by default. + +If you have not installed the mwart.cls class (available on CTAN in +mwcls package), the result of your compilation may differ a bit from +the .pdf provided in this .zip archive in formattings: If you have not +installed mwart.cls, the standard article.cls will be used. diff --git a/Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf b/Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf new file mode 100644 index 00000000000..033f1a02acf Binary files /dev/null and b/Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf differ diff --git a/Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex b/Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex new file mode 100644 index 00000000000..a74877e53b2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex @@ -0,0 +1,15 @@ +% This file is just a~driver. To learn how to use it, read the README +% or the documentation in .pdf +\documentclass[noindex,nochanges]{gmdocc}% the package is to small to +% make an index of its macros and it's too old to have the |\changes| ^^A( +% history ;-)\,. +\begin{document} +\DocInput{gmiflink.sty} +\end{document} + +% The following is just my GNU Emacs stuff. +% +%%% Local Variables: +%%% mode: latex +%%% TeX-master: t +%%% End: \ No newline at end of file diff --git a/Master/texmf-dist/tex/latex/gmiflink/gmiflink.sty b/Master/texmf-dist/tex/latex/gmiflink/gmiflink.sty new file mode 100644 index 00000000000..3bd01e73911 --- /dev/null +++ b/Master/texmf-dist/tex/latex/gmiflink/gmiflink.sty @@ -0,0 +1,192 @@ +% +% \GetFileInfo{gmiflink.sty} +% \title{The \pk{gmiflink} Package\thfileinfo} +% \author{Grzegorz `Natror' Murzynowski} +% \maketitle +% +% +% \begin{copyrnote} +% +%% Written by Grzegorz `Natror' Murzynowski, +%% natror at o2 dot pl +%% +%% \copyright\,2005, 2006 by Grzegorz `Natror' Murzynowski. +%% +%% This program is subject to the \LaTeX\ Project Public License. +%% See ^^A +%% \url{http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html} ^^A +%% for the details of that license. +%% +%% LPPL status: "author-maintained".\par +% +%\end{copyrnote} +% +% \CheckSum{61} +%% + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{gmiflink} + [2006/08/16 v0.97 Conditionally hyperlinking package (GM)] + +%% +%% \division{Introduction, usage} +%% +%% This package protects you against an error when a link is +%% dangling and typesets some plain text instead of a hyperlink then. It +%% is intended for use with the \pk{hyperref} package. Needs +%% \emph{two} \LaTeX\ runs. +% +% I used it for typesetting the names of the objects in +% a~documentation of a~computer program. If the object had been +% defined a \cs{hyperlink} to its definition was made, otherwise a +% plain object's name was typeset. I also use this package in +% authomatic making of hyperlinking indexes. +% \dekmedskip +% +% The package provides the macros \cs{gmiflink}, \cs{gmifref} and +% \cs{gmhypertarget} for conditional making of hyperlinks in your +% document. +% +% \newcommand*\aName{\gmiflink[@name]{\hskip-1.5pt @name}} +% \TextUsage\gmhypertarget\oarg{name}\marg{\gmiflink{text}} makes +% a~\cs{hypertarget\marg{\aName}\marg{text}} and \possfil +% a~\cs{label\marg{\aName}}. +% +% \TextUsage\gmiflink\oarg{name}\marg{text} makes +% a~\cs{hyperlink\marg{\aName}\marg{text}} to a~proper hypertarget if +% the corresponding \emph{label} exists, otherwise it typesets +% \. +% +% \TextUsage\gmifref\oarg{name}\marg{text} makes a~(hyper-) +% \cs{ref\marg{\aName}} to the given label if the label exists, +% otherwise it typesets \. +% +% The \raisebox{1em}[0pt]{\gmhypertarget[@name]{}}\<\hskip-1.5pt @name> +% ^^A~raisebox 'cause Acrobat sets the hypertarget at the baseline +% argument is just \ if the \ +% is given, otherwise it's \ in all three macros. +% +% For the example(s) of use, examine the \pk{gmiflink.sty} file, lines +% 45--58. +% +% \begin{gmlonely} +% \subdivision{Installation} +% +% Just put the \pk{gmiflink.sty} somewhere in the \file{texmf/\:tex/\:latex} +% branch. Creating a~\file{texmf/\:tex/\:latex/\:gm} directory may be advisable +% if you consider using other packages written by me. +% +% Then you should refresh your \TeX\ distribution's files' database +% most probably. +% \end{gmlonely} +% +% +% \subdivision{Contents of the \pk{gmiflink.zip} archive} +% +% The distribution of the \pk{gmiflink} package consists of the +% following four files. +% \begin{verse} +% \pk{gmiflink.sty}\\ +% \pk{README}\\ +% \pk{gmiflinkDoc.tex}\\ +% \pk{gmiflinkDoc.pdf} +% \end{verse} +% +% +% \begin{gmlonely} +% \subdivision{Compiling the Documentation} +% +% The last of the above files (the \pk{.pdf}, i.e., \emph{this +% file}) is a~documentation compiled from the \pk{.sty} file by +% running \LaTeX\ on the \pk{gmiflinkDoc.tex} file. +% Compiling the documentation requires the packages: \pk{gmdoc} +% (\pk{gmdoc.sty} and \pk{gmdocc.cls}), \pk{gmverb.sty}, +% \pk{gmutils.sty}, \pk{gmiflink.sty} and also some standard +% packages: \pk{hyperref.sty}, \pk{color.sty}, \pk{geometry.sty}, +% \pk{multicol.sty}, \pk{lmodern.sty}, \pk{fontenc.sty} that should +% be installed on your computer by default. +% +% If you had not installed the \pk{mwcls} classes (available on +% CTAN and present in \TeX\ Live e.g.), the result of your +% compilation might differ a~bit from the \pk{.pdf} provided in this +% \pk{.zip} archive in formatting: If you had not installed +% \pk{mwcls}, the standard \pk{article.cls} class would be used. +% \end{gmlonely} +% +% \StopEventually{\NoEOF} +% +% +% \division{The Code} + +\@ifpackageloaded{hyperref}{}{\message {^^J^^J gmiflink package: + There's no use of me without hyperref package, I end my input.^^J}\endinput} + +\providecommand\empty{} +% A~new counter, just in case +\newcounter{GMhlabel} +\setcounter{GMhlabel}{0} + +% The macro given below creates both hypertarget and hyperlabel, +% so that you may reference both ways: via |\hyperlink| and via |\ref|. +% It's pattern is the |\label| macro, see \LaTeX\ Source2e, file x, line 32. +% +% But we don't want to gobble spaces before and after. +% First argument will be a~name of the hypertarget, +% by default the same as typeset text, i.e., argument |#2|. +% \CodeDefine\gmhypertarget +\DeclareRobustCommand*\gmhypertarget{% + \@ifnextchar{[}{\gm@hypertarget}{\@dblarg{\gm@hypertarget}}} +%^^A] + +\def\gm@hypertarget[#1]#2{% ^^A + % If argument |#1|\equals|\empty|, then we'll use |#2|, i.e., the same as + % name of hypertarget. + \refstepcounter{GMhlabel}% ^^A + % we |\label{\gmht@firstpar}| + \hypertarget{#1}{#2}% + \protected@write\@auxout{}{% + \string\newlabel{#1}{{#2}{\thepage}{\relax}{GMhlabel.\arabic{GMhlabel}}{}}}% +}% end of |\gm@hypertartget|. + +% We define a~macro such that if the target exists, it makes +% |\ref|, else it typesets ordinary text. +% \CodeDefine\gmifref +\DeclareRobustCommand*\gmifref{\@ifnextchar{[}{\gm@ifref}{%] + \@dblarg{\gm@ifref}}} + +\def\gm@ifref[#1]#2{% + \expandafter\ifx\csname r@#1\endcsname\relax\relax% + #2\else\ref{#1}\fi% +}% end of |\gm@ifref| + +% \CodeDefine\gmiflink +\DeclareRobustCommand*\gmiflink{\@ifnextchar{[}{\gm@iflink}{%^^A] + \@dblarg{\gm@iflink}}} + +\def\gm@iflink[#1]#2{% + \expandafter\ifx\csname r@#1\endcsname\relax\relax% + #2\else\hyperlink{#1}{#2}\fi% +}% end of |\gm@iflink| +% +% It's robust because when just |\newcommand*|ed, use of |\gmiflink| in an +% indexing macro resulted in errors: |\@ifnextchar| has to be +% |\noexpand|ed in |\edef|s. + +\endinput + +% The old version --- all three were this way primarily. +%\begin{verbatim} +\newcommand*\gmiflink[2][\empty]{{% + \def\gmht@test{\empty}\def\gmht@firstpar{#1}% + \ifx\gmht@test\gmht@firstpar\def\gmht@firstpar{#2}\fi% + \expandafter\ifx\csname r@\gmht@firstpar\endcsname\relax\relax% + #2\else\hyperlink{\gmht@firstpar}{#2}\fi% +}} +% \end{verbatim} +% \Finale + +% (For my GNU Emacs:) +%%% Local Variables: +%%% mode: latex +%%% TeX-master: "e:/LaTeX/TeXGuru/gmiflink/gmiflinkDoc" +%%% End: diff --git a/Master/texmf-dist/tpm/gmiflink.tpm b/Master/texmf-dist/tpm/gmiflink.tpm new file mode 100644 index 00000000000..8eacc37aa47 --- /dev/null +++ b/Master/texmf-dist/tpm/gmiflink.tpm @@ -0,0 +1,27 @@ + + + + gmiflink + Package + 2006/11/16 13:03:00 + + karl + The gmiflink package. + + + 233769 + + + +texmf-dist/tex/latex/gmiflink/gmiflink.sty +texmf-dist/tpm/gmiflink.tpm + + +texmf-dist/doc/latex/gmiflink/README +texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf +texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex + + Package/gmiflink + + + diff --git a/Master/texmf/lists/gmiflink b/Master/texmf/lists/gmiflink new file mode 100644 index 00000000000..3900fbd5338 --- /dev/null +++ b/Master/texmf/lists/gmiflink @@ -0,0 +1,8 @@ +texmf-dist/doc/latex/gmiflink/README +texmf-dist/doc/latex/gmiflink/gmiflinkDoc.pdf +texmf-dist/doc/latex/gmiflink/gmiflinkDoc.tex + +texmf-dist/tex/latex/gmiflink/gmiflink.sty +texmf-dist/tpm/gmiflink.tpm + +texmf/lists/gmiflink diff --git a/Master/texmf/tpm/collection-latexextra.tpm b/Master/texmf/tpm/collection-latexextra.tpm index cafed118b69..51182fb73e4 100644 --- a/Master/texmf/tpm/collection-latexextra.tpm +++ b/Master/texmf/tpm/collection-latexextra.tpm @@ -193,6 +193,7 @@ A large collection of add-on packages for LaTeX. + -- cgit v1.2.3