% \iffalse meta-comment
%
% File: hrefhide.dtx
% Version: 2011/04/29 v1.0f
%
% Copyright (C) 2010, 2011 by
%    H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any later
% version. This version of this license is in
%    http://www.latex-project.org/lppl/lppl-1-3c.txt
% and the latest version of this license is in
%    http://www.latex-project.org/lppl.txt
% and version 1.3c or later is part of all distributions of
% LaTeX version 2005/12/01 or later.
%
% This work has the LPPL maintenance status "maintained".
%
% The Current Maintainer of this work is H.-Martin Muench.
%
% This work consists of the main source file hrefhide.dtx
% and the derived files
%    hrefhide.sty, hrefhide.pdf, hrefhide.ins, hrefhide.drv,
%    hrefhide-example.tex.
%
% Distribution:
%    CTAN:macros/latex/contrib/hrefhide/hrefhide.dtx
%    CTAN:macros/latex/contrib/hrefhide/hrefhide.pdf
%    CTAN:install/macros/latex/contrib/hrefhide.tds.zip
%
% Unpacking:
%    (a) If hrefhide.ins is present:
%           tex hrefhide.ins
%    (b) Without hrefhide.ins:
%           tex hrefhide.dtx
%    (c) If you insist on using LaTeX
%           latex \let\install=y\input{hrefhide.dtx}
%        (quote the arguments according to the demands of your shell)
%
% Documentation:
%    (a) If hrefhide.drv is present:
%           (pdf)latex hrefhide.drv
%           makeindex -s gind.ist hrefhide.idx
%           (pdf)latex hrefhide.drv
%           makeindex -s gind.ist hrefhide.idx
%           (pdf)latex hrefhide.drv
%    (b) Without hrefhide.drv:
%           (pdf)latex hrefhide.dtx
%           makeindex -s gind.ist hrefhide.idx
%           (pdf)latex hrefhide.dtx
%           makeindex -s gind.ist hrefhide.idx
%           (pdf)latex hrefhide.dtx
%
%    The class ltxdoc loads the configuration file ltxdoc.cfg
%    if available. Here you can specify further options, e.g.
%    use DIN A4 as paper format:
%       \PassOptionsToClass{a4paper}{article}
%
% Installation:
%    ! When manually installing, please first make sure !
%    ! that there is no old version of hrefhide at      !
%    ! some obsolete place in your system.              !
%    TDS:tex/latex/hrefhide/hrefhide.sty
%    TDS:doc/latex/hrefhide/hrefhide.pdf
%    TDS:doc/latex/hrefhide/hrefhide-example.tex
%    TDS:source/latex/hrefhide/hrefhide.dtx
%
%<*ignore>
\begingroup
  \catcode123=1 %
  \catcode125=2 %
  \def\x{LaTeX2e}%
\expandafter\endgroup
\ifcase 0\ifx\install y1\fi\expandafter
         \ifx\csname processbatchFile\endcsname\relax\else1\fi
         \ifx\fmtname\x\else 1\fi\relax
\else\csname fi\endcsname
%</ignore>
%<*install>
\input docstrip.tex
\Msg{***********************************************************************************}
\Msg{* Installation}
\Msg{* Package: hrefhide 2011/04/29 v1.0f Hiding hyperrefs when printing pdf files (HMM)}
\Msg{***********************************************************************************}

\keepsilent
\askforoverwritefalse

\let\MetaPrefix\relax
\preamble

This is a generated file.

Project: hrefhide
Version: 2011/04/29 v1.0f

Copyright (C) 2010, 2011 by
    H.-Martin M"unch <Martin dot Muench at Uni-Bonn dot de>

The usual disclaimer applys:
If it doesn't work right that's your problem.
(Nevertheless, send an e-mail to the maintainer
 when you find an error in this package.)

This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either
version 1.3c of this license or (at your option) any later
version. This version of this license is in
   http://www.latex-project.org/lppl/lppl-1-3c.txt
and the latest version of this license is in
   http://www.latex-project.org/lppl.txt
and version 1.3c or later is part of all distributions of
LaTeX version 2005/12/01 or later.

This work has the LPPL maintenance status "maintained".

The Current Maintainer of this work is H.-Martin Muench.

This work consists of the main source file hrefhide.dtx
and the derived files
   hrefhide.sty, hrefhide.pdf, hrefhide.ins, hrefhide.drv,
   hrefhide-example.tex.

\endpreamble
\let\MetaPrefix\DoubleperCent

\generate{%
  \file{hrefhide.ins}{\from{hrefhide.dtx}{install}}%
  \file{hrefhide.drv}{\from{hrefhide.dtx}{driver}}%
  \usedir{tex/latex/hrefhide}%
  \file{hrefhide.sty}{\from{hrefhide.dtx}{package}}%
  \usedir{doc/latex/hrefhide}%
  \file{hrefhide-example.tex}{\from{hrefhide.dtx}{example}}%
}

\catcode32=13\relax% active space
\let =\space%
\Msg{************************************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the following}
\Msg{* file into a directory searched by TeX:}
\Msg{*}
\Msg{*     hrefhide.sty*}
\Msg{*}
\Msg{* To produce the documentation run the file `hrefhide.drv'}
\Msg{* through (pdf)LaTeX, e.g.}
\Msg{*  pdflatex hrefhide.drv}
\Msg{*  makeindex -s gind.ist hrefhide.idx}
\Msg{*  pdflatex hrefhide.drv}
\Msg{*  makeindex -s gind.ist hrefhide.idx}
\Msg{*  pdflatex hrefhide.drv}
\Msg{*}
\Msg{* At least three runs are necessary e.g. to get the}
\Msg{*  references right!}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{*}
\Msg{************************************************************************}

\endbatchfile
%</install>
%<*ignore>
\fi
%</ignore>
%
% \section{The documentation driver file}
%
% The next bit of code contains the documentation driver file for
% \TeX{}, i.\,e., the file that will produce the documentation you
% are currently reading. It will be extracted from this file by the
% \texttt{docstrip} programme. That is, run \LaTeX\ on \texttt{docstrip}
% and specify the \texttt{driver} option when \texttt{docstrip}
% asks for options.
%
%    \begin{macrocode}
%<*driver>
\NeedsTeXFormat{LaTeX2e}[2009/09/24]
\ProvidesFile{hrefhide.drv}%
  [2011/04/29 v1.0f Hiding hyperrefs when printing pdf files (HMM)]%
\documentclass{ltxdoc}[2007/11/11]% v2.0u
\usepackage{holtxdoc}[2011/02/04]% v0.21
%% hrefhide may work with earlier versions of LaTeX2e and those
%% class and package, but this was not tested.
%% Please consider updating your LaTeX, class, and package
%% to the most recent version (if they are not already the most
%% recent version).
\hypersetup{%
 pdfsubject={Hiding hyperrefs when printing pdf files (HMM)},%
 pdfkeywords={LaTeX, hrefhide, hyperref, href, pdf, hide, print, Hans-Martin Muench},%
 pdfencoding=auto,%
 pdflang={en},%
 breaklinks=true,%
 linktoc=all,%
 pdfstartview=FitH,%
 pdfpagelayout=OneColumn,%
 bookmarksnumbered=true,%
 bookmarksopen=true,%
 bookmarksopenlevel=3,%
 pdfmenubar=true,%
 pdftoolbar=true,%
 pdfwindowui=true,%
 pdfnewwindow=true%
}
\CodelineIndex
\hyphenation{printing docu-ment}
\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
\begin{document}
  \DocInput{hrefhide.dtx}%
\end{document}
%</driver>
%    \end{macrocode}
%
% \fi
%
% \CheckSum{144}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \GetFileInfo{hrefhide.drv}
%
% \begingroup
%   \def\x{\#,\$,\^,\_,\~,\ ,\&,\{,\},\%}%
%   \makeatletter
%   \@onelevel@sanitize\x
% \expandafter\endgroup
% \expandafter\DoNotIndex\expandafter{\x}
% \expandafter\DoNotIndex\expandafter{\string\ }
% \begingroup
%   \makeatletter
%     \lccode`9=32\relax
%     \lowercase{%^^A
%       \edef\x{\noexpand\DoNotIndex{\@backslashchar9}}%^^A
%     }%^^A
%   \expandafter\endgroup\x
%
% \DoNotIndex{\\}
% \DoNotIndex{\documentclass,\usepackage,\ProvidesPackage,\begin,\end}
% \DoNotIndex{\NeedsTeXFormat,\DoNotIndex,\verb}
% \DoNotIndex{\def,\edef,\gdef,\global}
% \DoNotIndex{\ifx,\kvoptions,\listfiles,\mathord,\mathrm,\ProcessKeyvalOptions}
% \DoNotIndex{\SetupKeyvalOptions}
% \DoNotIndex{\bigskip,\space,\thinspace,\Large,\linebreak,\lipsum,\MessageBreak}
% \DoNotIndex{\ldots,\indent,\noindent,\newline,\pagebreak,\pagenumbering}
% \DoNotIndex{\textbf,\textit,\textsf,\texttt,\textquotedblleft,\textquotedblright}
% \DoNotIndex{\plainTeX,\TeX,\LaTeX,\pdfLaTeX}
% \DoNotIndex{\chapter,\section}
%
% \title{The \xpackage{hrefhide} package}
% \date{2011/04/29 v1.0f}
% \author{H.-Martin M\"{u}nch\\\xemail{Martin.Muench at Uni-Bonn.de}}
%
% \maketitle
%
% \begin{abstract}
%  This \LaTeX\ package allows to \textquotedblleft hide\textquotedblright\ some
%  (hyperlinked) text when printing the document while keeping the layout and
%  to simulate switching \texttt{ocgcolor} of \xpackage{hyperref} package on and off.
% \end{abstract}
%
% \bigskip
%
% \noindent Disclaimer for web links: The author is not responsible for any contents
% referred to in this work unless he has full knowledge of illegal contents.
% If any damage occurs by the use of information presented there, only the
% author of the respective pages might be liable, not the one who has referred
% to these pages.
%
% \bigskip
%
% \noindent {\color{green} Save per page about $200\unit{ml}$ water,
% $2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\\
% Therefore please print only if this is really necessary.}
%
% \newpage
%
% \tableofcontents
%
% \newpage
%
% \section{Introduction}
%
% \indent This package provides the command
% |\hrefdisplayonly| (additionally to |\href| of the \xpackage{hyperref}
% package by \textsc{Heiko Oberdiek}). While the (hyperlinked) text
% appears like an ordinary \texttt{\textbackslash href} in the
% compiled \xext{pdf}-file, the same text will be
% \textquotedblleft hidden\textquotedblright\ when printing the text.
% It is not really invisible, but just has the same colour as the background
% (default: |white|). Therefore the layout is not changed when printing
% the document.\\
% Further the commands |\hycon| and |\hycoff| (|hy|per-|c|olour-|on|/|off|)
% can be used to \emph{simulate} switching option |ocgcolorlinks| of
% \xpackage{hyperref} package on and off.
%
% \bigskip
% \noindent \textbf{Trademarks} appear throughout this
% documentation without any trademark symbol; they are the
% property of their respective trademark owner. There is no
% intention of infringement; the usage is to the benefit of
% the trademark owner.
%
% \bigskip
%
% \section{Usage}
%
% \indent Just load the package placing
% \begin{quote}
%   |\usepackage[<|\textit{options}|>]{hrefhide}|
% \end{quote}
% \noindent in the preamble of your \LaTeXe\ source file \textbf{after}
% the \xpackage{hyperref} package. For a link, which shall not be printed,
% use |\hrefdisplayonly| instead of |\href|. This might be practical
% for example for internal links, which make no sense in a printed
% version (\textquotedblleft Klick here\textquotedblright\ does
% not work with real paper).\\
% |\hypersetup{ocgcolorlinks=true}| and |\hypersetup{ocgcolorlinks=false}|
% may work - or they may not. (|ocgcolorlinks| is a decision to be made
% in the preamble and performes changes which cannot easily be reverted.)
% But it is possible to use |ocgcolorlinks| while letting the links
% \emph{appear} as if |ocgcolorlinks=false| was choosen. Therefore this
% package provides the command |\hycoff| (and |\hycon| to switch back to
% default |ocgcolorlinks=true| behaviour). Note that |ocgcolorlinks=true|
% really is enabled, therefore all limitation of this apply
% (e.\,g. no breaks in links).
%
% \subsection{Options}
% \DescribeMacro{options}
% \indent The \xpackage{hrefhide} package takes the following options:
%
% \subsubsection{linktextcolour\label{sss:linktextcolour}}
% \DescribeMacro{linktextcolour}
% \indent The option \texttt{linktextcolour} takes the colour of
% the text of the links. The default is \texttt{black}.
%
% \subsubsection{backgroundcolour\label{sss:backgroundcolour}}
% \DescribeMacro{backgroundcolour}
% \indent The option \texttt{backgroundcolour} takes the colour of
% the background of the links. The default is \texttt{white}.
%
% \subsubsection{pdfborder\label{sss:pdfborder}}
% \DescribeMacro{pdfborder}
% \indent The option \texttt{pdfborder} takes the configuration of
% the pdfborder around the link. The default is \texttt{\{0~0~1\}},
% i.\,e.~a~1\,pt rectangular line. \texttt{\{0~0~0\}} means no line.
%
% \section{Alternatives\label{sec:Alternatives}}
%
% \DescribeMacro{ocgcolorlinks}
% If option \texttt{ocgcolorlinks} (of the \xpackage{hyperref} package)
% is already used in your document (i.\,e. you \emph{want} coloured links),
% do \textbf{NOT} use this \xpackage{hrefhide} package to hide links!
% For a link to be \textquotedblleft hidden\textquotedblright , just say
% \begin{verbatim}
%   {\color{white} \href{...}{...}}
% \end{verbatim}
% (and replace \texttt{white} with the background colour).\\
%
% For hiding text, which does not contain links, the \xpackage{pdfcomment}
% package by \textsc{Josef Kleber} should be noted.
%
% \bigskip
%
% \noindent (You programmed or found some alternative,
%  which is available at \CTAN{}?\\
%  OK, send an e-mail to me with the name, location at \CTAN{},
%  and a short notice, and I will probably include it here.)\\
%
% \bigskip
%
% \section{Example}
%
%    \begin{macrocode}
%<*example>
\documentclass[british]{article}[2007/10/19]% v1.4h
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\usepackage{lipsum}[2011/04/14]% v1.2
\usepackage[ocgcolorlinks,bookmarks=false,bookmarksopen=false]{hyperref}[2011/04/17]% v6.82g
% Bookmarks are not needed here, but are possible, of course.
\hypersetup{extension=pdf,%
 plainpages=false,%
 pdfpagelabels=true,%
 hyperindex=false,%
 pdflang={en},%
 pdftitle={hrefhide package example},%
 pdfauthor={Hans-Martin Muench},%
 pdfsubject={Example for the hrefhide package},%
 pdfkeywords={LaTeX, hrefhide, Hans-Martin Muench},%
 pdfview=Fit,pdfstartview=Fit,%
 pdfpagelayout=SinglePage%
}
\usepackage[linktextcolour=black,backgroundcolour=white,pdfborder={0 0 1}]{hrefhide}[2011/04/29]% v1.0f
\gdef\unit#1{\mathord{\thinspace\mathrm{#1}}}%
\listfiles
\begin{document}
\pagenumbering{arabic}
\section*{Example for hrefhide}

This example demonstrates the use of package\newline
\textsf{hrefhide}, v1.0f as of 2011/04/29 (HMM).\newline
The used options were \texttt{linktextcolour=black},
\texttt{backgroundcolour=white}, and \texttt{pdfborder={0 0 1}}
(the default ones).\newline
For more details please see the documentation!\newline

\textit{Print-\textbf{preview} the first page of this document
and compare it with the page as displayed in your pdf reader.}\newline

\noindent {\color{green} Save per page about $200\unit{ml}$ water,
$2\unit{g}$ CO$_{2}$ and $2\unit{g}$ wood:\newline
Therefore please print only if this is really necessary.\newline
Maybe already the print-preview or just printing
the first page are sufficient?}\newline

\bigskip
Lorem ipsum dolor sit amet \href{\#target}{link to target} consectetuer
adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet
dolore magna aliquam erat volutpat.

Ut wisi enim ad minim
veniam \hrefdisplayonly{\#target}{hidden link to target} quis nostrud
exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea
commodo consequat.

Duis autem vel eum iriure dolor \href{\#target}{link to target} in
hendrerit in vulputate velit esse molestie consequat, vel illum dolore
eu feugiat nulla facilisis at vero eros et accumsan et iusto odio
dignissim qui blandit praesent luptatum zzril delenit augue
duis dolore te feugait nulla facilisi.\newline

\noindent \textbf{\textsf{%
\hrefdisplayonly{\#RefA}{A}
\hrefdisplayonly{\#RefB}{B}
\hrefdisplayonly{\#RefC}{C}
\hrefdisplayonly{\#RefD}{D}
\hrefdisplayonly{\#RefE}{E}
\hrefdisplayonly{\#RefF}{F}
\hrefdisplayonly{\#RefG}{G}
\hrefdisplayonly{\#RefH}{H}
\hrefdisplayonly{\#RefI}{I}
\hrefdisplayonly{\#RefJ}{J}
\hrefdisplayonly{\#RefK}{K}
\hrefdisplayonly{\#RefL}{L}
\hrefdisplayonly{\#RefM}{M}
\hrefdisplayonly{\#RefN}{N}
\hrefdisplayonly{\#RefO}{O}
\hrefdisplayonly{\#RefP}{P}
\hrefdisplayonly{\#RefQ}{Q}
\hrefdisplayonly{\#RefR}{R}
\hrefdisplayonly{\#RefS}{S}
\hrefdisplayonly{\#RefT}{T}
\hrefdisplayonly{\#RefU}{U}
\hrefdisplayonly{\#RefV}{V}
\hrefdisplayonly{\#RefW}{W}
\hrefdisplayonly{\#RefX}{X}
\hrefdisplayonly{\#RefY}{Y}
\hrefdisplayonly{\#RefZ}{Z}}} \linebreak

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut purus elit,
vestibulum ut, placerat ac, adipiscing vitae, felis. Curabitur dictum gravida
mauris. Nam arcu libero, nonummy eget, consectetuer id, vulputate a,
magna.\newline

Switching to coloured links with \verb|\hycon|:\newline
\hycon
\href{\#RefX}{X} and also
\href{http://www.ctan.org/pkg/hrefhide}{http://www.ctan.org/pkg/hrefhide}.

Switching off the coloured links with \verb|\hycoff| again:\newline
\hycoff
\href{\#RefY}{Y} and also
\href{http://www.ctan.org/tex-archive/macros/latex/contrib/hrefhide}{%
http://www.ctan.org/tex-archive/macros/latex/contrib/hrefhide}.

\pagebreak

{\Large \textbf{Targets}}\\
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam
nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat
volutpat. \hypertarget{target}{target text} Ut wisi enim ad minim
veniam, quis nostrud exerci tation ullamcorper suscipit lobortis
nisl ut aliquip ex ea commodo consequat.

\section[A]{\hypertarget{RefA}{A}} \lipsum[1]
\section[B]{\hypertarget{RefB}{B}} \lipsum[1]
\section[C]{\hypertarget{RefC}{C}} \lipsum[1]
\section[D]{\hypertarget{RefD}{D}} \lipsum[1]
\section[E]{\hypertarget{RefE}{E}} \lipsum[1]
\section[F]{\hypertarget{RefF}{F}} \lipsum[1]
\section[G]{\hypertarget{RefG}{G}} \lipsum[1]
\section[H]{\hypertarget{RefH}{H}} \lipsum[1]
\section[I]{\hypertarget{RefI}{I}} \lipsum[1]
\section[J]{\hypertarget{RefJ}{J}} \lipsum[1]
\section[K]{\hypertarget{RefK}{K}} \lipsum[1]
\section[L]{\hypertarget{RefL}{L}} \lipsum[1]
\section[M]{\hypertarget{RefM}{M}} \lipsum[1]
\section[N]{\hypertarget{RefN}{N}} \lipsum[1]
\section[O]{\hypertarget{RefO}{O}} \lipsum[1]
\section[P]{\hypertarget{RefP}{P}} \lipsum[1]
\section[Q]{\hypertarget{RefQ}{Q}} \lipsum[1]
\section[R]{\hypertarget{RefR}{R}} \lipsum[1]
\section[S]{\hypertarget{RefS}{S}} \lipsum[1]
\section[T]{\hypertarget{RefT}{T}} \lipsum[1]
\section[U]{\hypertarget{RefU}{U}} \lipsum[1]
\section[V]{\hypertarget{RefV}{V}} \lipsum[1]
\section[W]{\hypertarget{RefW}{W}} \lipsum[1]
\section[X]{\hypertarget{RefX}{X}} \lipsum[1]
\section[Y]{\hypertarget{RefY}{Y}} \lipsum[1]
\section[Z]{\hypertarget{RefZ}{Z}} \lipsum[1]

\end{document}
%</example>
%    \end{macrocode}
%
% \newpage
%
% \StopEventually{}
%
% \section{The implementation}
%
% We start off by checking that we are loading into \LaTeXe\ and
% announcing the name and version of this package.
%
%    \begin{macrocode}
%<*package>
%    \end{macrocode}
%
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}[2009/09/24]
\ProvidesPackage{hrefhide}[2011/04/29 v1.0f
            Hiding hyperrefs when printing pdf files (HMM)]%

%    \end{macrocode}
%
% A short description of the \xpackage{hrefhide} package:
%
%    \begin{macrocode}
%% Allows to "hide" hyperlinked text in a pdf file when printing
%% ("Klick here" does not work on real paper)
%% by providing the command \hrefdisplayonly
%% and allows simulating to switch on/off ocgcolourlinks
%% of the hyperref package by Heiko Oberdiek.

%    \end{macrocode}
%
% We need the \xpackage{xcolor} package by \textsc{Dr.~Uwe Kern}
% (see subsection~\ref{ss:Downloads}):
%
%    \begin{macrocode}
\RequirePackage{xcolor}[2007/01/21]% v2.11
%    \end{macrocode}
%
% the \xpackage{hyperref} package by \textsc{Heiko Oberdiek}
% (see subsection~\ref{ss:Downloads}):
%
%    \begin{macrocode}
\RequirePackage[ocgcolorlinks]{hyperref}[2011/04/17]% v6.82g
%    \end{macrocode}
%
% and the \xpackage{kvoptions} package, also by \textsc{Heiko Oberdiek}
% (see subsection~\ref{ss:Downloads}):
%
%    \begin{macrocode}
\RequirePackage{kvoptions}[2010/12/23]% v3.10
%    \end{macrocode}
%
% A last information for the user:
%
%    \begin{macrocode}
%% hrefhide may work with earlier versions of LaTeX and those
%% packages, but this was not tested. Please consider updating
%% your LaTeX and packages to the most recent version
%% (if they are not already the most recent version).

%    \end{macrocode}
% \indent See subsection~\ref{ss:Downloads} about how to get them.\\
%
% The options are introduced:
%
%    \begin{macrocode}
\SetupKeyvalOptions{family = hrefhide, prefix = hrefhide@}
\DeclareStringOption[black]{linktextcolour}[black]
\DeclareStringOption[white]{backgroundcolour}[white]
\DeclareStringOption[{0 0 1}]{pdfborder}[{0 0 1}]

\ProcessKeyvalOptions*

\gdef\hrefhide@status@ON{ON}
\gdef\hrefhide@status@OFF{OFF}

%    \end{macrocode}
%
% The new commands are defined:
%
% \begin{macro}{\hycon}
%    \begin{macrocode}
\newcommand{\hycon}{%
\ifx\hrefhide@status\hrefhide@status@OFF%
\@ifundefined{@anchorbordercolor}{%
\hypersetup{anchorcolor=\hrefhide@anchorbordercolor}%
}{%
\definecolor{hyanchorbordercolor}{rgb}{\@anchorbordercolor}%
\hypersetup{anchorcolor=hyanchorbordercolor}%
}%
%    \end{macrocode}
%
% because there is no \texttt{anchorborder(color)} in \xpackage{hyperref} as of
% 2011/04/17, v6.82g.
%
%    \begin{macrocode}
\definecolor{hycitebordercolor}{rgb}{\@citebordercolor}%
\hypersetup{citecolor=hycitebordercolor}%
\definecolor{hyfilebordercolor}{rgb}{\@filebordercolor}%
\hypersetup{filecolor=hyfilebordercolor}%
\definecolor{hylinkbordercolor}{rgb}{\@linkbordercolor}%
\hypersetup{linkcolor=hylinkbordercolor}%
\definecolor{hymenubordercolor}{rgb}{\@menubordercolor}%
\hypersetup{menucolor=hymenubordercolor}%
\definecolor{hyrunbordercolor}{rgb}{\@runbordercolor}%
\hypersetup{runcolor=hyrunbordercolor}%
\definecolor{hyurlbordercolor}{rgb}{\@urlbordercolor}%
\hypersetup{urlcolor=hyurlbordercolor}%
\hypersetup{pdfborder=0 0 0}%
\gdef\hrefhide@status{ON}%
\PackageInfo{hrefhide}{OCG-link colouring ON\MessageBreak}%
\else%
\PackageWarning{hrefhide}{\string\hycon\space called when OCG-link colouring was not OFF \MessageBreak%
- nothing done}%
\fi%
}

%    \end{macrocode}
%
% If link colouring is already |ON|, nothing is done. Otherwise
% |\hycon| looks for the colour of the border of a link type and
% sets the colour of the text of that lik type to that colour.\\
% \end{macro}
%
% \begin{macro}{\hycoff}
% \indent This package on the one hand uses the \texttt{ocgcolor} option
% of the \xpackage{hyperref} package, but on the other hand
% does not really want coloured links (see \ref{sec:Alternatives}).
% Thus we simulate to turn it off:
%
%    \begin{macrocode}
\newcommand{\hycoff}{%
\ifx\hrefhide@status\hrefhide@status@ON%
\@ifundefined{@anchorbordercolor}{%
\global\edef\hrefhide@anchorbordercolor{\@anchorcolor}%
}{%
\hypersetup{anchorbordercolor=\@anchorcolor}%
}%
%    \end{macrocode}
%
% because there is no \texttt{anchorborder(color)} in \xpackage{hyperref} as of
% 2011/04/17, v6.82g.
%
%    \begin{macrocode}
\hypersetup{anchorcolor=\hrefhide@linktextcolour}%
\hypersetup{citebordercolor=\@citecolor}%
\hypersetup{citecolor=\hrefhide@linktextcolour}%
\hypersetup{filebordercolor=\@filecolor}%
\hypersetup{filecolor=\hrefhide@linktextcolour}%
\hypersetup{linkbordercolor=\@linkcolor}%
\hypersetup{linkcolor=\hrefhide@linktextcolour}%
\hypersetup{menubordercolor=\@menucolor}%
\hypersetup{menucolor=\hrefhide@linktextcolour}%
\hypersetup{runbordercolor=\@runcolor}%
\hypersetup{runcolor=\hrefhide@linktextcolour}%
\hypersetup{urlbordercolor=\@urlcolor}%
\hypersetup{urlcolor=\hrefhide@linktextcolour}%
\hypersetup{pdfborder=\hrefhide@pdfborder}%
\gdef\hrefhide@status{OFF}%
%    \end{macrocode}
%
% If link colouring is already |OFF|, nothing is done. Otherwise
% the colour of the respective border is set to the colour of the text
% of the link type, setting the colour of the text of the link type to
% |\hrefhide@linktextcolour| (default: black) and the link border again to
% |\hrefhide@pdfborder| (default: rectangle with $1\unit{pt}$ line
% thickness).\\
% While link colouring is really ON, we thus emulate the behaviour
% of link colouring OFF, therefore we give this message:
%
%    \begin{macrocode}
\PackageInfo{hrefhide}{OCG-link colouring OFF (sort of; hrefhide package)\MessageBreak}%
\else%
\PackageWarning{hrefhide}{\string\hycoff\space called when OCG-link colouring was not ON \MessageBreak%
- nothing done}%
\fi%
}

%    \end{macrocode}
%
% Nevertheless, all restrictions of |ocgcolorlinks|, e.\,g. no links breaking
% over lines, still prevail!
%
% \end{macro}
%
% \begin{macro}{\hrefdisplayonly}
% The command |\hrefdisplayonly| is defined:
%
%    \begin{macrocode}
\newcommand{\hrefdisplayonly}[2]{%
{\color{\hrefhide@backgroundcolour}\href{#1}{#2}}%
}

%    \end{macrocode}
%
% \noindent which just sets the colour of the link to |\hrefhide@backgroundcolour|
% for printing, thereby turning it \textquotedblleft invisible\textquotedblright.
% \end{macro}
%
% \begin{macro}{\AtBeginDocument}
%    \begin{macrocode}
\AtBeginDocument{%
%    \end{macrocode}
%
% \indent |\AtBeginDocument| it is checked whether the \xpackage{hyperref} package
% was loaded with option \texttt{ocgcolorlinks}. (\xpackage{hrefhide} calls it
% with option |ocgcolorlinks| (i.\,e. |=true|), but in the preamble it would
% be possible to really turn it off again by |\hypersetup{ocgcolorlinks=false}|.
% This \xpackage{hrefhide} package needs the \xpackage{hyperref} package with option
% \texttt{ocgcolorlinks}. If package and/or option are/is missing, the appropriate
% error message is given.
%
%    \begin{macrocode}
  \ifHy@ocgcolorlinks%
    \gdef\hrefhide@status{ON}%
  \else%
    \gdef\hrefhide@status{OFF}%
    \PackageError{hrefhide}{hyperref package missing option ocgcolorlinks}{%
      The package hrefhide needs the hyperref package\MessageBreak%
      with option ocgcolorlinks.\MessageBreak%
      That option is missing!\MessageBreak%
      Now the link(s) will be ''hidden'' in pdf view also.\MessageBreak%
      }%
  \fi%
%    \end{macrocode}
%
% \noindent We check whether |\Hy@driver| is |hpdftex|, i.\,e.~a~\xext{pdf}-file
% is in production.
%
%    \begin{macrocode}
  \def\hrefhide@driver{hpdftex}%
  \ifx\Hy@driver\hrefhide@driver% \relax
  \else%
%    \end{macrocode}
%
% \noindent If this is not the case (for example for a \xext{dvi}-file),
% the error message is given.
%
%    \begin{macrocode}
    \PackageError{hrefhide}{Producing not a pdf file}{%
      The package hrefhide only works for a pdf file,\MessageBreak%
      but driver \Hy@driver\space instead of \hrefhide@driver\space was found.\MessageBreak%
      Use pdfLaTeX to compile your document.\MessageBreak%
      (Probably no large harm was done, but the respective\MessageBreak%
       link text will neither be hidden when printing.)\MessageBreak%
      }%
  \fi%
%    \end{macrocode}
%
% Because we need link colouring, we use option \texttt{ocgcolorlinks},
% but because we do not want coloured links, we emulate the behaviour
% of link colouring OFF, therefore |\hycoff| is used |\AtBeginDocument|:
%
%    \begin{macrocode}
  \hycoff%
  }

%    \end{macrocode}
% \end{macro}
%
%    \begin{macrocode}
%</package>
%    \end{macrocode}
%
% \bigskip
%
% \section{Installation}
%
% \begin{center}
%  {\large \textbf{When manually installing, please first make sure\\}}
%  {\large \textbf{that there is no old version of \xpackage{hrefhide}\\}}
%  {\large \textbf{at some obsolete place in your system!}}
% \end{center}
%
% \subsection{Downloads\label{ss:Downloads}}
%
% Everything is available at \CTAN{}, \url{http://www.ctan.org/tex-archive/},
% but may need additional packages themselves.\\
%
% \DescribeMacro{hrefhide.dtx}
% For unpacking the |hrefhide.dtx| file and constructing the documentation it is required:
% \begin{description}
% \item[-] \TeX Format \LaTeXe: \url{http://www.CTAN.org/}
%
% \item[-] document class \xpackage{ltxdoc}, 2007/11/11, v2.0u,\\
%           \CTAN{macros/latex/base/ltxdoc.dtx}
%
% \item[-] package \xpackage{holtxdoc}, 2011/02/04, v0.21,\\
%           \CTAN{macros/latex/contrib/oberdiek/holtxdoc.dtx}
%
% \item[-] package \xpackage{hypdoc}, 2010/03/26, v1.9,\\
%           \CTAN{macros/latex/contrib/oberdiek/hypdoc.dtx}
% \end{description}
%
% \DescribeMacro{hrefhide.sty}
% The \texttt{hrefhide.sty} for \LaTeXe\ (i.\,e. all documents using
% the \xpackage{hrefhide} package) requires:
% \begin{description}
% \item[-] \TeX Format \LaTeXe, \url{http://www.CTAN.org/}
%
% \item[-] package \xpackage{xcolor}, 2007/01/21, v2.11,\\
%           \CTAN{/macros/latex/contrib/xcolor/xcolor.dtx}
%
% \item[-] package \xpackage{hyperref}, 2011/04/17, v6.82g,\\
%           \CTAN{macros/latex/contrib/hyperref/hyperref.dtx}
%
% \item[-] package \xpackage{kvoptions}, 2010/12/23, v3.10,\\
%           \CTAN{macros/latex/contrib/oberdiek/kvoptions.dtx}
% \end{description}
%
% \DescribeMacro{hrefhide-example.tex}
% The \texttt{hrefhide-example.tex} requires the same files as all
% documents using the \xpackage{hrefhide} package, and additionally:
% \begin{description}
% \item[-] class \xpackage{article}, 2007/10/19, v1.4h, from \xpackage{classes.dtx}:\\
%           \CTAN{macros/latex/base/classes.dtx}
%
% \item[-] package \xpackage{lipsum}, 2011/04/14, v1.2,\\
%           \CTAN{macros/latex/contrib/lipsum/lipsum.dtx}
%
% \item[-] package \xpackage{hrefhide}, 2011/04/29, v1.0f,\\
%           \CTAN{macros/latex/contrib/hrefhide/hrefhide.dtx}\\
%   (Well, it is the example file for this package, and because you are reading the
%    documentation for the \xpackage{hrefhide} package, it can be assumed that you already
%    have some version of it -- is it the current one?)
% \end{description}
%
% \DescribeMacro{hyperref}
% As possible alternative in section \ref{sec:Alternatives} there is listed
% \begin{description}
% \item[-] package \xpackage{hyperref}, 2011/04/17, v6.82g,\\
%           \CTAN{macros/latex/contrib/hyperref/}
%   with option \texttt{ocgcolorlinks} and\\
%   |{\color{white} \href{...}{...}}|.
%
% \item[-] package \xpackage{pdfcomment}, 2010/12/11, v2.1,\\
%           \CTAN{macros/latex/contrib/pdfcomment/}\\
%           for text \textbf{outside} of links
% \end{description}
%
% \DescribeMacro{Oberdiek}
% \DescribeMacro{holtxdoc}
% \DescribeMacro{hyperref}
% \DescribeMacro{kvoptions}
% All packages of \textsc{Heiko Oberdiek's} bundle `oberdiek'
% (especially \xpackage{holtxdoc} and \xpackage{kvoptions})
% are also available in a TDS compliant ZIP archive:\\
% \CTAN{install/macros/latex/contrib/oberdiek.tds.zip}.\\
% It is probably best to download and use this, because the packages in there
% are quite probably both recent and compatible among themselves.\\
%
% \DescribeMacro{M\"{u}nch}
% A hyperlinked list of my (other) packages can be found at
% \url{http://www.Uni-Bonn.de/~uzs5pv/LaTeX.html}.\\
%
% \subsection{Package, unpacking TDS}
%
% \paragraph{Package.} This package is available on \CTAN{}:
% \begin{description}
% \item[\CTAN{macros/latex/contrib/hrefhide/hrefhide.dtx}]\hspace*{0.1cm} \\
%       The source file.
% \item[\CTAN{macros/latex/contrib/hrefhide/hrefhide.pdf}]\hspace*{0.1cm} \\
%       The documentation.
% \item[\CTAN{macros/latex/contrib/hrefhide/hrefhide-example.pdf}]\hspace*{0.1cm} \\
%       The compiled example file, as it should look like.
% \item[\CTAN{install/macros/latex/contrib/hrefhide.tds.zip}]\hspace*{0.1cm} \\
%       Everything in TDS compliant, compiled format.
% \end{description}
% which additionally contains\\
% \begin{tabular}{ll}
% hrefhide.ins & The installation file.\\
% hrefhide.drv & The driver to generate the documentation.\\
% hrefhide.sty & The \xext{sty}le file.\\
% hrefhide-example.tex & The example file.%
% \end{tabular}
%
% \bigskip
%
% \noindent For required other packages, see the preceding subsection.
%
% \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting
% \docstrip\ archive. The files are extracted by running the
% \xfile{.dtx} through \plainTeX:
% \begin{quote}
%   \verb|tex hrefhide.dtx|
% \end{quote}
%
% About generating the documentation see paragraph~\ref{GenDoc} below.\\
%
% \paragraph{TDS.} Now the different files must be moved into
% the different directories in your installation TDS tree
% (also known as \xfile{texmf} tree):
% \begin{quote}
% \def\t{^^A
% \begin{tabular}{@{}>{\ttfamily}l@{ $\rightarrow$ }>{\ttfamily}l@{}}
%   hrefhide.sty & tex/latex/hrefhide.sty\\
%   hrefhide.pdf & doc/latex/hrefhide.pdf\\
%   hrefhide-example.tex & doc/latex/hrefhide-example.tex\\
%   hrefhide-example.pdf & doc/latex/hrefhide-example.pdf\\
%   hrefhide.dtx & source/latex/hrefhide.dtx\\
% \end{tabular}^^A
% }^^A
% \sbox0{\t}^^A
% \ifdim\wd0>\linewidth
%   \begingroup
%     \advance\linewidth by\leftmargin
%     \advance\linewidth by\rightmargin
%   \edef\x{\endgroup
%     \def\noexpand\lw{\the\linewidth}^^A
%   }\x
%   \def\lwbox{^^A
%     \leavevmode
%     \hbox to \linewidth{^^A
%       \kern-\leftmargin\relax
%       \hss
%       \usebox0
%       \hss
%       \kern-\rightmargin\relax
%     }^^A
%   }^^A
%   \ifdim\wd0>\lw
%     \sbox0{\small\t}^^A
%     \ifdim\wd0>\linewidth
%       \ifdim\wd0>\lw
%         \sbox0{\footnotesize\t}^^A
%         \ifdim\wd0>\linewidth
%           \ifdim\wd0>\lw
%             \sbox0{\scriptsize\t}^^A
%             \ifdim\wd0>\linewidth
%               \ifdim\wd0>\lw
%                 \sbox0{\tiny\t}^^A
%                 \ifdim\wd0>\linewidth
%                   \lwbox
%                 \else
%                   \usebox0
%                 \fi
%               \else
%                 \lwbox
%               \fi
%             \else
%               \usebox0
%             \fi
%           \else
%             \lwbox
%           \fi
%         \else
%           \usebox0
%         \fi
%       \else
%         \lwbox
%       \fi
%     \else
%       \usebox0
%     \fi
%   \else
%     \lwbox
%   \fi
% \else
%   \usebox0
% \fi
% \end{quote}
% If you have a \xfile{docstrip.cfg} that configures and enables \docstrip's
% TDS installing feature, then some files can already be in the right
% place, see the documentation of \docstrip.
%
% \subsection{Refresh file name databases}
%
% If your \TeX~distribution (\teTeX, \mikTeX,\dots) relies on file name
% databases, you must refresh these. For example, \teTeX\ users run
% \verb|texhash| or \verb|mktexlsr|.
%
% \subsection{Some details for the interested}
%
% \paragraph{Unpacking with \LaTeX.}
% The \xfile{.dtx} chooses its action depending on the format:
% \begin{description}
% \item[\plainTeX:] Run \docstrip\ and extract the files.
% \item[\LaTeX:] Generate the documentation.
% \end{description}
% If you insist on using \LaTeX\ for \docstrip\ (really,
% \docstrip\ does not need \LaTeX), then inform the autodetect routine
% about your intention:
% \begin{quote}
%   \verb|latex \let\install=y\input{hrefhide.dtx}|
% \end{quote}
% Do not forget to quote the argument according to the demands
% of your shell.
%
% \paragraph{Generating the documentation.\label{GenDoc}}
% You can use both the \xfile{.dtx} or the \xfile{.drv} to generate
% the documentation. The process can be configured by a
% configuration file \xfile{ltxdoc.cfg}. For instance, put this
% line into this file, if you want to have A4 as paper format:
% \begin{quote}
%   \verb|\PassOptionsToClass{a4paper}{article}|
% \end{quote}
%
% \noindent An example follows how to generate the
% documentation with \pdfLaTeX :
%
% \begin{quote}
%\begin{verbatim}
%pdflatex hrefhide.dtx
%makeindex -s gind.ist hrefhide.idx
%pdflatex hrefhide.dtx
%makeindex -s gind.ist hrefhide.idx
%pdflatex hrefhide.dtx
%\end{verbatim}
% \end{quote}
%
% \subsection{Compiling the example}
%
% The example file, \textsf{hrefhide-example.tex}, can be compiled via\\
% \indent |pdflatex hrefhide-example.tex|\\
% (but \textbf{not} |latex hrefhide-example.tex|!)\\
% and will need two compiler runs to get all references right.
%
% \section{Acknowledgements}
%
% I would like to thank \textsc{Heiko Oberdiek}
% (heiko dot oberdiek at googlemail dot com) for providing
% the \xpackage{hyperref} as well as a~lot~(!) of other useful packages
% (from which I also got everything I know about creating a file in
% \xext{dtx} format, ok, say it: copying),
% and the \Newsgroup{comp.text.tex} and \Newsgroup{de.comp.text.tex}
% newsgroups for their help in all things \TeX.
%
% \bigskip
% \phantomsection
% \begin{History}\label{History}
%   \begin{Version}{2010/02/18 v0.1}
%     \item First idea about this as a reply of mine to a question on
%             \Newsgroup{comp.text.tex} (Subject: "Hiding" interactive parts of pdf when printing), see e.\,g.
%             \url{http://groups.google.com/group/comp.text.tex/msg/80d9eebf2837d7a3?dmode=source}.
%   \end{Version}
%   \begin{Version}{2010/06/01 v1.0(a)}
%     \item First version of the \xpackage{hrefhide} package.
%   \end{Version}
%   \begin{Version}{2010/06/03 v1.0b}
%     \item Example adapted to other examples of mine.
%     \item Updated references to other packages.
%     \item TDS locations updated.
%     \item Several changes in the documentation and the Readme file.
%   \end{Version}
%   \begin{Version}{2010/06/24 v1.0c}
%     \item \xpackage{pdfcomment} package listed as alternative for text \textbf{outside}
%             of hyperlinks.
%     \item \xpackage{holtxdoc} warning in \xfile{drv} updated.
%     \item Corrected the location of the package at CTAN.\\
%             (In that version \xfile{TDS} was still missing due to packaging error.)
%     \item Updated reference to other package: \xpackage{hyperref}.
%     \item Added a list of my other packages.
%   \end{Version}
%   \begin{Version}{2010/07/29 v1.0d}
%     \item Corrected given url of \texttt{hrefhide.tds.zip} and other urls.
%     \item Included a url for the newsgroup post (in History).
%     \item Changed the \xpackage{undolabl} package description.
%     \item New version of the used \xpackage{hyperref} package: 2010/06/18,~v6.81g.
%     \item Included a |\CheckSum|.
%     \item Minor details.
%   \end{Version}
%   \begin{Version}{2011/02/01 v1.0e}
%     \item Changed the |\unit| definition (got rid of an old |\rm|).
%     \item Moved the package from \texttt{.../latex/muench/hrefhide/...} to\\
%             \texttt{.../latex/hrefhide/...}.\\
%             (Please make sure that any old versions of the \xpackage{hrefhide} package
%              are porperly uninstalled from your system.)
%     \item Replaced the list of my packages with a link to a web page list of those,
%             which has the advantage of showing the recent versions of all those packages.
%     \item Updated to version 2010/12/16 v6.81z of the \xpackage{hyperref} package.
%     \item A new version (2010/12/11 v2.1) of the \xpackage{pdfcomment} package is available.
%     \item Minor details.
%   \end{Version}
%   \begin{Version}{2011/04/29 v1.0f}
%     \item There is a new version of the used \xpackage{lipsum} package: 2011/04/14,~v1.2.
%     \item The \xpackage{holtxdoc} package was fixed (recent: 2011/02/04, v0.21), therefore
%             the warning in \xfile{drv} could be removed. -- Adapted the style of this
%             documentation to new \textsc{Oberdiek} \xfile{dtx} style.
%     \item Removed the \textsf{ltxdoc.cfg} file for the documentation.
%     \item There is a new version of the used \xpackage{hyperref} package: 2011/04/17,~v6.82g.
%     \item There is a new version of the used \xpackage{kvoptions} package: 2010/12/23,~v3.10.
%     \item Bug fix: The previouse versions only hide links of type
%             \textquotedblleft link\textquotedblright. Now the types citation, page reference,
%             URL, local file reference, and \textquotedblleft other links\textquotedblright-type
%             are \textquotedblleft hidden\textquotedblright.
%     \item With |\hycon| and |\hycoff| it is now possible to \emph{simulate} the switching
%              on/off of~|ocgcolorlinks| in the document.
%     \item Instead of \xpackage{color} now the \xpackage{xcolor} package is used.
%     \item A lot of details.
%   \end{Version}
% \end{History}
%
% \bigskip
%
% When you find a mistake or have a suggestion for an improvement of this package,
% please send an e-mail to the maintainer, thanks! (Please see BUG REPORTS in the README.)
%
% \pagebreak
%
% \PrintIndex
%
% \Finale
\endinput