% \iffalse meta-comment % % File: hrefhide.dtx % Version: 2023-02-26 v1.1a % Info: Hiding hyperrefs when printing pdf files % % Copyright © 2010 - 2023 by % H.-Martin Münch % % 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 % https://www.latex-project.org/lppl/lppl-1-3c.txt % and the latest version of this license is in % https://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 Münch. % % This work consists of the main source file hrefhide.dtx, % the README, and the derived files % hrefhide.sty, hrefhide.pdf, % hrefhide.ins, hrefhide.drv, % hrefhide-example.tex, hrefhide-example.pdf. % % "hrefhide" is available on CTAN: % https://ctan.org/pkg/hrefhide % % Also a TDS.ZIP file is provided that contains all the files % already sorted in a TDS tree: % https://mirror.ctan.org/install/macros/latex/contrib/hrefhide.tds.zip % %<*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 % %<*install> \input docstrip.tex \Msg{************************************************************************************} \Msg{* Installation *} \Msg{* Package: hrefhide 2023-02-26 v1.1a Hiding hyperrefs when printing pdf files (HMM)*} \Msg{************************************************************************************} \keepsilent \askforoverwritefalse \let\MetaPrefix\relax \preamble This is a generated file. Project: hrefhide Version: 2023-02-26 v1.1a Info: Hiding hyperrefs when printing pdf files Copyright (C) 2010 - 2023 by H.-Martin Muench 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 https://www.latex-project.org/lppl/lppl-1-3c.txt and the latest version of this license is in https://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, the README, and the derived files hrefhide.sty, hrefhide.pdf, hrefhide.ins, hrefhide.drv, hrefhide-example.tex, hrefhide-example.pdf. In memoriam Claudia Simone Barth + 1996-01-30 Tommy Muench + 2014-01-02 Hans-Klaus Muench + 2014-08-24 \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 % %<*ignore> \fi % % % \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}[2022-11-01] \ProvidesFile{hrefhide.drv}% [2023-02-26 v1.1a Hiding hyperrefs when printing pdf files (HMM)] \documentclass{ltxdoc}[2022/06/22]% v2.1i Standard LaTeX documentation class \usepackage{holtxdoc}[2019/12/09]% v0.30 Private additional ltxdoc support (HO) \hypersetup{% pdfsubject={Hiding hyperrefs when printing pdf files (HMM)},% pdfkeywords={LaTeX, hrefhide, hyperref, href, pdf, hide, print},% 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{docu-ment} \begin{document} \DocInput{hrefhide.dtx}% \end{document} % % \end{macrocode} % \fi % % \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{\@anchorbordercolor,\@anchorcolor,\@citebordercolor,\@citecolor,\@filebordercolor} % \DoNotIndex{\@filecolor,\@ifl@t@r,\@ifundefined,\@linkbordercolor,\@linkcolor,\@menubordercolor} % \DoNotIndex{\@menucolor,\@runbordercolor,\@runcolor,\@urlbordercolor,\@urlcolor,\\} % \DoNotIndex{\AddToHook,\begin,\bigskip,\color} % \DoNotIndex{\DeclareRobustCommand,\DeclareStringOption,\definecolor,\documentclass,\end} % \DoNotIndex{\href,\hrefhide@anchorbordercolor,\hrefhide@backgroundcolour} % \DoNotIndex{\hrefhide@driver,\hrefhide@linktextcolour,\hrefhide@pdfborder} % \DoNotIndex{\hrefhidefalse,\hrefhidetrue,\Hy@driver,\hypersetup,\hypertarget} % \DoNotIndex{\IfPackageLoadedWithOptionsTF,\ifx,\Large,\linebreak} % \DoNotIndex{\lipsum,\listfiles,\markboth,\MessageBreak,\NeedsTeXFormat,\newif,\newline,\noindent} % \DoNotIndex{\ocgx,\PackageError,\PackageInfo,\PackageWarning,\pagebreak} % \DoNotIndex{\pagenumbering,\ProcessKeyvalOptions,\ProvidesPackage} % \DoNotIndex{\RequirePackage,\section,\SetupKeyvalOptions,\space,\textbf,\textit,\textsf,\texttt} % \DoNotIndex{\usepackage,\verb} % % \title{The \xpackage{hrefhide} package} % \date{2023-02-26 v1.1a} % \author{H.-Martin Münch\\\xemail{Martin.Muench at Uni-Bonn.de}} % % \maketitle % % \begin{abstract} % \noindent 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.~--\\ % This package is possibly obsolete, see section~\ref{s:Alternatives}: Alternatives. % \end{abstract} % \bigskip % % \noindent Disclaimer for web links: The author is not responsible for any contents % referred to in this work unless having 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 those pages. % % \tableofcontents % \bigskip % % \section{Introduction} % \indent This \LaTeX{} package provides the command |\hrefdisplayonly| % (additionally to |\href| of the \xpackage{hyperref} package). 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 color 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 the % \xpackage{hyperref} package on and off.\\ % This package is possibly obsolete, see section~\ref{s:Alternatives}: Alternatives. % % \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 Click here\textquotedblright{} does % not work with physical 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} % \DescribeMacro{linktextcolour} % \indent The option \texttt{linktextcolour} takes the color of % the text of the links. The default is \texttt{black}. % % \subsubsection{backgroundcolour} % \DescribeMacro{backgroundcolour} % \indent The option \texttt{backgroundcolour} takes the color of % the background of the links. The default is \texttt{white}. % % \subsubsection{pdfborder} % \DescribeMacro{pdfborder} % \indent The option \texttt{pdfborder} takes the configuration of % the pdfborder around the link. The default is \texttt{\{0~0~1\}}, % \hbox{i.\,e. a 1\,pt} rectangular line. \texttt{\{0~0~0\}} means no line. % \pagebreak % % \section{Alternatives\label{s:Alternatives}} % \DescribeMacro{ocgcolorlinks} % If option \texttt{ocgcolorlinks} (of the \xpackage{hyperref} package) % is already used in your document (i.\,e. you \emph{want} colored 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} % \vspace{-\baselineskip} % (and replace \texttt{white} with the background color; % when the \href{https://ctan.org/pkg/pagecolor}{\pkg{pagecolor}} % package is used, |\thepagecolor| instead of |white| should be used).\\ % % \DescribeMacro{pdfcomment} % For hiding text, which does not contain links, the % \href{https://ctan.org/pkg/pdfcomment}{\xpackage{pdfcomment}} % package by \textsc{Josef Kleber} should be noted.\\ % % \DescribeMacro{ocgx2} % This |hrefhide| package is possibly obsolete. Using the % \href{https://ctan.org/pkg/ocgx2}{\xpackage{ocgx2}} package % \begin{verbatim} % \usepackage[]{ocgx2} % \begin{ocg}[]{}{}{} % ... material to be put on a PDF layer ... % \end{ocg} % \end{verbatim} % \vspace{-\baselineskip} % one can say % \begin{verbatim} % \begin{ocg}[printocg=never, exportocg=never, listintoolbar=never% % ]{MyLayer}{example}{1}% % \hyperref[RefB]{B} \url{https://ctan.org/} simple text etc.% % \end{ocg}% % \end{verbatim} % \vspace{-\baselineskip} % and the links will be visible in the pdf document % but will turn into blank space when printed. % % \section{Example} % \begin{macrocode} %<*example> \NeedsTeXFormat{LaTeX2e}[2022-11-01] \documentclass[british]{article}[2022/07/02]% v1.4n Standard LaTeX document class \usepackage{lipsum}[2021-09-20]% v2.7 150 paragraphs of Lorem Ipsum dummy text \usepackage[ocgcolorlinks,bookmarks=false,bookmarksopen=false% ]{hyperref}[2023-02-07]% v7.00v Hypertext links for LaTeX % 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={H.-Martin Muench},% pdfsubject={Example for the hrefhide package},% pdfkeywords={LaTeX, hrefhide},% pdfview=Fit,pdfstartview=Fit,% pdfpagelayout=SinglePage% } \usepackage[linktextcolour=black,backgroundcolour=white,pdfborder={0 0 1}% ]{hrefhide}[2023-02-26]% v1.1a Hiding hyperrefs when printing pdf files (HMM) \listfiles \begin{document} \pagenumbering{arabic} \section*{Example for hrefhide} \markboth{Example for hrefhide}{Example for hrefhide} This example demonstrates the use of package\newline \textsf{hrefhide}, v1.1a as of 2023-02-26 (HMM).\newline % \end{macrocode} % \pagebreak % \begin{macrocode} 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.} \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. \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. Switching to colored links with \verb|\hycon|:\newline \hycon% \href{\#RefX}{section X} and also \href{https://ctan.org/pkg/hrefhide}{https://ctan.org/pkg/hrefhide}. Switching off the colored links with \verb|\hycoff| again:\newline \hycoff% \href{\#RefX}{section X} and also \href{https://ctan.org/pkg/hrefhide}{https://ctan.org/pkg/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} % % \end{macrocode} % % \StopEventually{} % \newpage % % \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> \NeedsTeXFormat{LaTeX2e}[2022-11-01] \ProvidesPackage{hrefhide}[2023-02-26 v1.1a Hiding hyperrefs when printing pdf files (HMM)] %% Allows to "hide" hyperlinked text in a pdf file when printing %% ("Click here" does not work on physical paper) %% by providing the command \hrefdisplayonly %% and allows simulating to switch on/off ocgcolourlinks %% of the hyperref package. \@ifl@t@r\fmtversion{2022/11/01}{% would have understood % \IfFormatAtLeastTF{2022-11-01}{}{} }{\PackageError{hrefhide}{% Newer LaTeX format needed or older hrefhide package% }{Needed LaTeX format version: 2022-11-01 or newer.\MessageBreak% Found\space\space LaTeX format version: \fmtversion.\MessageBreak% Either update your TeX distribution\MessageBreak% or use an archived version of hrefhide\MessageBreak% (see section History in the documentation).\MessageBreak% } } % \end{macrocode} % % We need the \xpackage{xcolor} package by \textsc{Dr.~Uwe Kern} % \begin{macrocode} \RequirePackage{xcolor}[2022/06/12]% v2.14 LaTeX color extensions (UK) % \end{macrocode} % the \xpackage{hyperref} package % \begin{macrocode} \RequirePackage[ocgcolorlinks]{hyperref}[2023-02-07]% v7.00v Hypertext links for LaTeX % \end{macrocode} % and the \xpackage{kvoptions} package by \textsc{Heiko Oberdiek} % \begin{macrocode} \RequirePackage{kvoptions}[2022-06-15]% v3.15 Key value format for package options (HO) % \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* \newif\ifhrefhide % \end{macrocode} % % The new commands are defined: % % \begin{macro}{\hycon} % \begin{macrocode} \DeclareRobustCommand{\hycon}{% \ifhrefhide% \PackageWarning{hrefhide}{\string\hycon\space called when OCG-link % coloring was not OFF\MessageBreak% - nothing done}% \else% \@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}. % \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}% \hrefhidetrue% \PackageInfo{hrefhide}{OCG-link coloring ON\MessageBreak}% \fi% } % \end{macrocode} % % If link coloring is already |ON|, nothing is done. Otherwise % |\hycon| looks for the color of the border of a link type and % sets the color of the text of that lik type to that color. % \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 colored links (see \ref{s:Alternatives}). % Thus we simulate to turn it off: % % \begin{macrocode} \DeclareRobustCommand{\hycoff}{% \ifhrefhide% \@ifundefined{@anchorbordercolor}{% \xdef\hrefhide@anchorbordercolor{\@anchorcolor}% }{\hypersetup{anchorbordercolor=\@anchorcolor}% }% % \end{macrocode} % because there is no \texttt{anchorborder(color)} in \xpackage{hyperref}. % \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}% \hrefhidefalse% % \end{macrocode} % % If link coloring is already |OFF|, nothing is done. Otherwise % the color of the respective border is set to the color of the text % of the link type, setting the color of the text of the link type to % |\hrefhide@linktextcolour| (default: black) and the link border again to % |\hrefhide@pdfborder| (default: rectangle with \hbox{1\,pt line} % thickness).\\ % While link coloring is really ON, we thus emulate the behaviour % of link coloring OFF, therefore we give this message: % % \begin{macrocode} \PackageInfo{hrefhide}{OCG-link coloring OFF (sort of; hrefhide package)% \MessageBreak}% \else% \PackageWarning{hrefhide}{\string\hycoff\space called when OCG-link % coloring 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} \DeclareRobustCommand{\hrefdisplayonly}[2]{% {\color{\hrefhide@backgroundcolour}\href{#1}{#2}}} % \end{macrocode} % \noindent which just sets the color of the link to |\hrefhide@backgroundcolour| % for printing, thereby turning it \textquotedblleft invisible\textquotedblright. % \end{macro} % % \DescribeMacro{\AddToHook\{begindocument\}} % \begin{macrocode} \AddToHook{begindocument}{% % \end{macrocode} % \indent Here 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} \IfPackageLoadedWithOptionsTF{hyperref}{ocgcolorlinks}{\hrefhidetrue}{% \hrefhidefalse% \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% }% }% % \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 coloring, we use option \texttt{ocgcolorlinks}, % but because we do not want colored links, we emulate the behaviour % of link coloring OFF, therefore |\hycoff| is used at the beginning: % \begin{macrocode} \hycoff% } % \end{macrocode} % % \begin{macrocode} % % \end{macrocode} % \newpage % % \section{Installation} % \subsection{Downloads\label{ss:Downloads}} % Everything is available at \url{https://www.ctan.org}, % 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{} 2022-11-01 or newer: \url{https://www.CTAN.org} % % \item[-] document class \xclass{ltxdoc}, 2022/06/22, v2.1i, % \url{https://www.ctan.org/pkg/ltxdoc} % % \item[-] package \xpackage{holtxdoc}, 2019/12/09, v0.30, % \url{https://www.ctan.org/pkg/holtxdoc} % \end{description} % % \DescribeMacro{hrefhide.sty} % The |hrefhide.sty| for \LaTeXe{} (i.\,e. each document using % the \xpackage{hrefhide} package) requires: % \begin{description} % \item[-] \TeX{} Format \LaTeXe{} 2022-11-01 or newer, \url{https://www.CTAN.org} % % \item[-] package \xpackage{xcolor}, 2022/06/12, v2.14, % \url{https://www.ctan.org/pkg/xcolor} % % \item[-] package \xpackage{hyperref}, 2023-02-07, v7.00v, % \url{https://www.ctan.org/pkg/hyperref} % % \item[-] package \xpackage{kvoptions}, 2022-06-15, v3.15, % \url{https://www.ctan.org/pkg/kvoptions} % % \item[-] package \xpackage{hrefhide}, 2023-02-26, v1.1a, % \url{https://www.ctan.org/pkg/hrefhide} % (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{hrefhide-example.tex} % The |hrefhide-example.tex| requires the same files as all % documents using the \xpackage{hrefhide} package % (see preceding paragraph |hrefhide.sty|) and additionally: % \begin{description} % \item[-] class \xpackage{article}, 2022/07/02, v1.4n, from \xpackage{classes}: % \url{https://ctan.org/pkg/classes} % % \item[-] package \xpackage{lipsum}, 2021-09-20, v2.7, % \url{https://www.ctan.org/pkg/lipsum}\\ % This package is only needed for some blind text. % \end{description} % % \DescribeMacro{Alternatives} % As possible alternatives in section~\ref{s:Alternatives}, Alternatives, % there are listed (newer versions might be available): % \begin{description} % \item[-] package \xpackage{hyperref}, 2023-02-07, v7.00v, % \url{https://www.ctan.org/pkg/hyperref} % with option |ocgcolorlinks| and |{\color{white}\href{...}{...}}|. % % \item[-] package \xpackage{pdfcomment}, 2018/11/01, v2.4a, % \url{https://www.ctan.org/pkg/pdfcomment} % for text \textbf{outside} of links % % \item[-] package \xpackage{ocgx2}, 2022/12/16, v0.56, % \url{https://www.ctan.org/pkg/ocgx2} % \end{description} % % \DescribeMacro{Oberdiek} % \DescribeMacro{holtxdoc} % \DescribeMacro{kvoptions} % All packages of the `oberdiek' bundle % (especially \xpackage{holtxdoc} and \xpackage{kvoptions}) % are also available in a TDS compliant ZIP archive:\\ % \url{https://mirror.ctan.org/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{hyperref} % \noindent \xpackage{hyperref} is not included in that bundle and needs to be % downloaded separately,\\ % \url{https://mirror.ctan.org/install/macros/latex/contrib/hyperref.tds.zip}.\\ % % \DescribeMacro{Münch} % A hyperlinked list of my (other) packages can be found at\\ % \url{https://www.ctan.org/author/muench-hm}.\\ % % \subsection{Package, unpacking TDS} % \paragraph{Package.} This package is available on \url{https://www.CTAN.org}. % \begin{description} % \item[\url{https://mirror.ctan.org/macros/latex/contrib/hrefhide/hrefhide.dtx}]\hspace*{0.1cm}\\ % The source file. % \item[\url{https://mirror.ctan.org/macros/latex/contrib/hrefhide/hrefhide.pdf}]\hspace*{0.1cm}\\ % The documentation. % \item[\url{https://mirror.ctan.org/macros/latex/contrib/hrefhide/hrefhide-example.pdf}]\hspace*{0cm}% % The compiled example file, as it should look like. % \item[\url{https://mirror.ctan.org/macros/latex/contrib/hrefhide/README}]\hspace*{0.1cm}\\ % The README file. % \end{description} % % There is also a |hrefhide.tds.zip| available: % \begin{description} % \item[\url{https://mirror.ctan.org/install/macros/latex/contrib/hrefhide.tds.zip}]\hspace*{0cm}% % 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, please see the preceding subsection. % % \paragraph{Unpacking.} The \xfile{.dtx} file is a self-extracting % \docstrip{} archive. The files are extracted by running the % \xext{.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 (\TeX\,Live, \mikTeX, \dots) relies on % file name databases, you must refresh these. For example, \TeX\,Live\ 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 the following % 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 at least two compiler runs to get all references right. % % \section{Acknowledgements} % % I would like to thank \textsc{Heiko Oberdiek} for providing a lot of % 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{}. % % \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{https://groups.google.com/g/comp.text.tex/c/JGXs0n2UUhw/m/o9c3KL_u2YAJ}. % \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 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|).\\ % {}[Removed in version 1.1a.] % \item Moved the package from \texttt{.../latex/muench/hrefhide/...} to\\ % \texttt{.../latex/hrefhide/...}. % \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 Minor details. % \end{Version} % \begin{Version}{2011/04/29 v1.0f} % \item The \xpackage{holtxdoc} package was fixed (then: 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 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. % \item This version has been archived at\\ % \url{https://web.archive.org/web/20190417081010/https://mirror.ctan.org/install/macros/latex/contrib/hrefhide.tds.zip} % \end{Version} % \begin{Version}{2023-02-26 v1.1a} % \item Made the |\newcommand|s robust. % \item Removed |\unit|. % \item Converted to UTF-8. % \item Updated to \LaTeX{} format 2022-11-01. % \item Extensive updates of the Documentation and README. % \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.) % % \PrintIndex % % \Finale \endinput