summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/latex/pdfcomment
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2008-12-18 00:21:57 +0000
committerKarl Berry <karl@freefriends.org>2008-12-18 00:21:57 +0000
commit6f7d2dd8b83202502621487aff104b357fc69695 (patch)
tree0127a5a0c2d860a5f42948e6d346a8e60cc1fba2 /Master/texmf-dist/tex/latex/pdfcomment
parent9358a8644b7fa0607051fc679cff24de220ac99d (diff)
pdfcomment update (15dec08)
git-svn-id: svn://tug.org/texlive/trunk@11636 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pdfcomment')
-rw-r--r--Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty195
1 files changed, 154 insertions, 41 deletions
diff --git a/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty b/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty
index d65343e719d..b06f7885301 100644
--- a/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty
+++ b/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty
@@ -20,7 +20,8 @@
%% This work consists of all files listed in manifest.txt.
%%
%
-\ProvidesPackage{pdfcomment}[2008/12/07 pdfcomment.sty v1.0 - Josef Kleber (C) 2008]%
+\ProvidesPackage{pdfcomment}[2008/12/12 pdfcomment.sty v1.1 - Josef Kleber (C) 2008]%
+% dvips, dvipdfmx, XeLaTeX drivers by Alexander Grahn
%
\RequirePackage{xkeyval}%
%
@@ -31,6 +32,7 @@
\gdef\pc@goptd@icon{Comment}%
\gdef\pc@goptd@open{false}%
\gdef\pc@goptd@hspace{15pt}%
+\gdef\pc@goptd@dvipdfmx{true}%
%
% values for global package options
\gdef\pc@gopt@subject{}%
@@ -39,6 +41,8 @@
\gdef\pc@gopt@icon{}%
\gdef\pc@gopt@open{}%
\gdef\pc@gopt@hspace{}%
+\newif\ifpc@gopt@dvipdfmx\pc@gopt@dvipdfmxfalse%
+\newif\ifpc@gopt@final\pc@gopt@finalfalse%
%
% values for local command options
\gdef\pc@lopt@subject{}%
@@ -84,6 +88,24 @@
\gdef\pc@gopt@hspace{#1}%
}%
%
+% define global style option dvipdfmx for setting the output driver in DVI mode
+\define@key{pdfcomment.sty}{dvipdfmx}[\pc@goptd@dvipdfmx]%
+{%
+ \expandafter\global\csname pc@gopt@dvipdfmx#1\endcsname%
+}%
+%
+% define global style option final for setting the output mode to final
+\define@key{pdfcomment.sty}{final}[]%
+{%
+ \pc@gopt@finaltrue%
+}%
+%
+% define global style option draft for setting the output mode to final
+\define@key{pdfcomment.sty}{draft}[]%
+{%
+ \pc@gopt@finalfalse%
+}%
+%
% define local command option subject for setting the subject of pdf annotations
\define@key{pdfcomment}{subject}[\pc@gopt@subject]%
{%
@@ -161,19 +183,46 @@
\ProcessOptionsX\relax%
%
\RequirePackage{marginnote}%
-\RequirePackage{hyperref}%
\RequirePackage{ifpdf}%
%
-\ifpdf%
-\else%
- \PackageError{pdfcomment}%
- {pdfcomment works only with pdflatex in PDF mode!}%
- {Not running pdfLaTeX in PDF mode; pdfcomment makes use of pdflatex primitive \pdfannot! Please run pdflatex!}%
+%hyperref setup
+\ifpdf\else%
+ %auto-set dvipdfmx driver in case of xetex
+ \expandafter\ifx\csname XeTeXrevision\endcsname\relax%
+ \ifpc@gopt@dvipdfmx%
+ \@ifpackageloaded{hyperref}%
+ {%
+ \hypersetup{dvipdfmx}%
+ }%
+ {%
+ \PassOptionsToPackage{dvipdfmx}{hyperref}%
+ }%
+ \fi%
+ \else%
+ \global\pc@gopt@dvipdfmxtrue%
+ \@ifpackageloaded{hyperref}{}%
+ {%
+ \PassOptionsToPackage{xetex}{hyperref}%
+ }%
+ \fi%
\fi%
%
+% problems with older versions of hyperref than v6.76a [2007/04/09]
+% reported by Gabriel Cardona
+\RequirePackage{hyperref}[2007/04/09]%
+%
+% Using the options draft, final and dvipdfmx in \pdfcommentsetup makes absolutely no sense!
+% Therefore, they are switched off at "\AtBeginDocument"
+% and a warning is issued by xkeyval.sty, if used.
+\AtBeginDocument%
+{%
+ \disable@keys{pdfcomment.sty}{draft}%
+ \disable@keys{pdfcomment.sty}{final}%
+ \disable@keys{pdfcomment.sty}{dvipdfmx}%
+}%
\newcommand{\pdfcomment}[2][subject={\pc@gopt@subject},color={\pc@gopt@color},author={\pc@gopt@author},icon={\pc@gopt@icon},open={\pc@gopt@open},hspace={\pc@gopt@hspace}]%
{%
- % Copy all global option to local options
+ % Copy all global options to local options
\gdef\pc@lopt@subject{\pc@gopt@subject}%
\gdef\pc@lopt@color{\pc@gopt@color}%
\gdef\pc@lopt@author{\pc@gopt@author}%
@@ -191,23 +240,55 @@
\pdfstringdef\pc@pdfenc@subject{\pc@lopt@subject}%
% transform color input to pdf color
\HyColor@XZeroOneThreeFour{\pc@lopt@color}{\pc@hyenc@color}{pdfcomment}{color}%
- % typeset text annotation (see: PDF Reference)
- \pdfannot width 0pt height \baselineskip depth 0pt%
- {%
- /Subtype /Text%
- /C [\pc@hyenc@color]%
- /T (\pc@pdfenc@author)%
- /Subj (\pc@pdfenc@subject)%
- /Name /\pc@lopt@icon%
- /Contents (\pc@pdfenc@contents)%
- /Open \pc@lopt@open%
- }
- \hspace{\pc@lopt@hspace}%
+ \ifpc@gopt@final\else%
+ % typeset text annotation (see: PDF Reference)
+ \ifpdf%
+ \pdfannot width 0pt height \baselineskip depth 0pt%
+ {%
+ /Subtype /Text%
+ /C [\pc@hyenc@color]%
+ /T (\pc@pdfenc@author)%
+ /Subj (\pc@pdfenc@subject)%
+ /Name /\pc@lopt@icon%
+ /Contents (\pc@pdfenc@contents)%
+ /Open \pc@lopt@open%
+ }
+ \else%
+ \ifpc@gopt@dvipdfmx%
+ \special{pdf: ann width 0pt height \the\baselineskip%
+ <<%
+ /Subtype /Text%
+ /C [\pc@hyenc@color]%
+ /T (\pc@pdfenc@author)%
+ /Subj (\pc@pdfenc@subject)%
+ /Name /\pc@lopt@icon%
+ /Contents (\pc@pdfenc@contents)%
+ /Open \pc@lopt@open%
+ >>%
+ }%
+ \else%
+ \pdfmark[\rule{0pt}{\baselineskip}]%
+ {%
+ pdfmark=/ANN,%
+ Subtype=/Text,%
+ Raw={%
+ /C [\pc@hyenc@color]%
+ /T (\pc@pdfenc@author)%
+ /Subj (\pc@pdfenc@subject)%
+ /Name /\pc@lopt@icon%
+ /Contents (\pc@pdfenc@contents)%
+ /Open \pc@lopt@open%
+ }%
+ }%
+ \fi%
+ \fi%
+ \hspace{\pc@lopt@hspace}%
+ \fi%
}%
%
\newcommand{\pdfmargincomment}[2][subject={\pc@gopt@subject},color={\pc@gopt@color},author={\pc@gopt@author},icon={\pc@gopt@icon},open={\pc@gopt@open},hspace={\pc@gopt@hspace}]%
{%
- % Copy all global option to local options
+ % Copy all global options to local options
\gdef\pc@lopt@subject{\pc@gopt@subject}%
\gdef\pc@lopt@color{\pc@gopt@color}%
\gdef\pc@lopt@author{\pc@gopt@author}%
@@ -225,26 +306,58 @@
\pdfstringdef\pc@pdfenc@subject{\pc@lopt@subject}%
% transform color input to pdf color
\HyColor@XZeroOneThreeFour{\pc@lopt@color}{\pc@hyenc@color}{pdfcomment}{color}%
- \begingroup
- % center marginnotes!
- \renewcommand*{\raggedleftmarginnote}{\centering}%
- \renewcommand*{\raggedrightmarginnote}{\centering}%
- % typeset text annotation (see: PDF Reference)
- \marginnote%
- {%
- \pdfannot width 0pt height \baselineskip depth 0pt%
+ \ifpc@gopt@final\else%
+ \begingroup
+ % center marginnotes!
+ \renewcommand*{\raggedleftmarginnote}{\centering}%
+ \renewcommand*{\raggedrightmarginnote}{\centering}%
+ % typeset text annotation (see: PDF Reference)
+ \marginnote%
{%
- /Subtype /Text%
- /C [\pc@hyenc@color]%
- /T (\pc@pdfenc@author)%
- /Subj (\pc@pdfenc@subject)%
- /Name /\pc@lopt@icon%
- /Contents (\pc@pdfenc@contents)%
- /Open \pc@lopt@open%
- }
- \hspace{\pc@lopt@hspace}%
- }%
- \endgroup
+ \ifpdf%
+ \pdfannot width 0pt height \baselineskip depth 0pt%
+ {%
+ /Subtype /Text%
+ /C [\pc@hyenc@color]%
+ /T (\pc@pdfenc@author)%
+ /Subj (\pc@pdfenc@subject)%
+ /Name /\pc@lopt@icon%
+ /Contents (\pc@pdfenc@contents)%
+ /Open \pc@lopt@open%
+ }
+ \else%
+ \ifpc@gopt@dvipdfmx%
+ \special{pdf: ann width 0pt height \the\baselineskip%
+ <<%
+ /Subtype /Text%
+ /C [\pc@hyenc@color]%
+ /T (\pc@pdfenc@author)%
+ /Subj (\pc@pdfenc@subject)%
+ /Name /\pc@lopt@icon%
+ /Contents (\pc@pdfenc@contents)%
+ /Open \pc@lopt@open%
+ >>%
+ }%
+ \else%
+ \pdfmark[\rule{0pt}{\baselineskip}]
+ {%
+ pdfmark=/ANN,%
+ Subtype=/Text,%
+ Raw={%
+ /C [\pc@hyenc@color]%
+ /T (\pc@pdfenc@author)%
+ /Subj (\pc@pdfenc@subject)%
+ /Name /\pc@lopt@icon%
+ /Contents (\pc@pdfenc@contents)%
+ /Open \pc@lopt@open%
+ }%
+ }%
+ \fi%
+ \fi%
+ \hspace{\pc@lopt@hspace}%
+ }%
+ \endgroup
+ \fi
}%
%
\newcommand{\pdfcommentsetup}[1]%
@@ -255,4 +368,4 @@
%
%
%
-\endinput% \ No newline at end of file
+\endinput%