From e59feb5edc40a052995ed122bf67d0a8ab7ea8c2 Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Mon, 29 Oct 2001 21:02:28 +0000 Subject: [PATCH] Revise the PDF support in the LaTeX style sheet. This still isn't quite right, but the tests for whether we are generating PDF are a bit more readable, and some unnecessary indirection has been removed. --- Doc/texinputs/python.sty | 79 ++++++++++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 28 deletions(-) diff --git a/Doc/texinputs/python.sty b/Doc/texinputs/python.sty index 0244466b4eb..1888f54f5f0 100644 --- a/Doc/texinputs/python.sty +++ b/Doc/texinputs/python.sty @@ -26,8 +26,10 @@ \newif\ifpy@doing@page@targets \py@doing@page@targetsfalse +\newif\ifpdf\pdffalse \ifx\pdfoutput\undefined\else\ifcase\pdfoutput \else + \pdftrue \input{pdfcolor} \let\py@LinkColor=\NavyBlue \let\py@NormalColor=\Black @@ -253,14 +255,14 @@ % Refer to a module's documentation using a hyperlink of the module's % name, at least if we're building PDF: -\@ifundefined{pdfannotlink}{% - \newcommand{\refmodule}[2][\py@modulebadkey]{\module{#2}} -}{% +\ifpdf \newcommand{\refmodule}[2][\py@modulebadkey]{% \ifx\py@modulebadkey#1\def\py@modulekey{#2}\else\def\py@modulekey{#1}\fi% \py@linkToName{label-module-\py@modulekey}{\module{#2}}% } -} +\else + \newcommand{\refmodule}[2][\py@modulebadkey]{\module{#2}} +\fi % support for the module index \newif\ifpy@UseModuleIndex @@ -434,13 +436,13 @@ }{} } -\@ifundefined{pdfoutput}{ - \newcommand{\py@ModSynopsisSummary}[4]{\bfcode{#2} & #4\\} -}{ +\ifpdf \newcommand{\py@ModSynopsisSummary}[4]{% \py@linkToName{label-module-#1}{\bfcode{#2}} & #4\\ } -} +\else + \newcommand{\py@ModSynopsisSummary}[4]{\bfcode{#2} & #4\\} +\fi \newenvironment{synopsistable}{ % key, name, type, synopsis \let\modulesynopsis=\py@ModSynopsisSummary @@ -784,18 +786,17 @@ % Use this def/redef approach for \url{} since hyperref defined this already, % but only if we actually used hyperref: -\@ifundefined{pdfannotlink}{ - \newcommand{\py@url}[1]{\mbox{\small\textsf{#1}}} -}{ - \newcommand{\py@url}[1]{{% +\ifpdf + \newcommand{\url}[1]{{% \pdfannotlink attr{/Border [0 0 0]} user{/S /URI /URI (#1)}% \py@LinkColor% color of the link text - \mbox{\small\textsf{#1}}% + \small\sf #1% \py@NormalColor% Turn it back off; these are declarative \pdfendlink}% and don't appear bound to the current }% formatting "box". -} -\let\url=\py@url +\else + \newcommand{\url}[1]{\mbox{\small\textsf{#1}}} +\fi \newcommand{\email}[1]{{\small\textsf{#1}}} \newcommand{\newsgroup}[1]{{\small\textsf{#1}}} @@ -843,7 +844,7 @@ }} \newcommand{\envvar}[1]{% #1% - \index{#1@{#1}}% + \index{#1}% \index{environment variables!{#1}}% } \newcommand{\makevar}[1]{#1} % variable in a Makefile @@ -859,12 +860,32 @@ \newcommand{\programopt}[1]{\strong{#1}} % Note that \longprogramopt provides the '--'! \newcommand{\longprogramopt}[1]{\strong{-{}-#1}} + % \ulink{link text}{URL} -\newcommand{\ulink}[2]{#1} +\ifpdf + % The \noindent here is a hack -- we're forcing pdfTeX into + % horizontal mode since \pdfannotlink requires that. + \newcommand{\ulink}[2]{\noindent{% + \pdfannotlink attr{/Border [0 0 0]} user{/S /URI /URI (#2)}% + \py@LinkColor% color of the link text + #1% + \py@NormalColor% Turn it back off; these are declarative + \pdfendlink}% and don't appear bound to the current + }% formatting "box". +\else + \newcommand{\ulink}[2]{#1} +\fi % cited titles: \citetitle{Title of Work} % online: \citetitle[url-to-resource]{Title of Work} -\newcommand{\citetitle}[2][URL]{\emph{#2}} +\ifpdf + \newcommand{\citetitle}[2][\py@modulebadkey]{% + \ifx\py@modulebadkey#1\emph{#2}\else\ulink{\emph{#2}}{#1}\fi% + } +\else + \newcommand{\citetitle}[2][URL]{#1} +\fi + \newcommand{\grammartoken}[1]{\texttt{#1}} @@ -1019,16 +1040,8 @@ % Note that the last parameter for \seemodule and \seetext should be complete % sentences and be terminated with the proper punctuation. -\@ifundefined{pdfannotlink}{% +\ifpdf \newcommand{\py@seemodule}[3][\py@modulebadkey]{% - \par% - \ifx\py@modulebadkey#1\def\py@modulekey{#2}\else\def\py@modulekey{#1}\fi% - \begin{fulllineitems} - \item[Module \module{#2} (section \ref{module-\py@modulekey}):] - #3 - \end{fulllineitems} - } -}{\newcommand{\py@seemodule}[3][\py@modulebadkey]{% \par% \ifx\py@modulebadkey#1\def\py@modulekey{#2}\else\def\py@modulekey{#1}\fi% \begin{fulllineitems} @@ -1037,7 +1050,17 @@ #3 \end{fulllineitems} } -} +\else + \newcommand{\py@seemodule}[3][\py@modulebadkey]{% + \par% + \ifx\py@modulebadkey#1\def\py@modulekey{#2}\else\def\py@modulekey{#1}\fi% + \begin{fulllineitems} + \item[Module \module{#2} (section \ref{module-\py@modulekey}):] + #3 + \end{fulllineitems} + } +\fi + % \seetitle[url]{title}{why it's interesting} \newcommand{\py@seetitle}[3][\py@modulebadkey]{% \par