%% %% PDF Text Annotations to handle comments/remarks %% %% This code has been based on the following sources, where other variants can be %% found too: %% %% * http://www.tug.org/pipermail/pdftex/2002-December/003330.html %% * http://www.ce.cmu.edu/~kijoo/latex2pdf.pdf %% * ConTeXt %% %% See also the Adobe PDF Reference directly for the syntax of the Annotation object: %% %% * http://partners.adobe.com/public/developer/en/pdf/PDFReference16.pdf %% (section 8.4 Annotations) %% %% Example of use: \comment[width=5cm,symbol=Balloon,title={Note}]{...} %% \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{dbk_annot}[2006/11/19 v0.1 PDF Text Annotations] \@ifundefined{define@key}{\RequirePackage{keyval}}{}% %% Default text annotation parameter values \let\defaultPDFlocation\empty% \let\defaultPDFopen\empty \let\defaultPDFtitle\empty \let\defaultPDFheight\baselineskip \def\defaultPDFwidth{10cm} \def\defaultPDFdepth{0cm} \def\commentdefault{% \let\PDFsymbol\empty% \let\PDFlocation\defaultPDFlocation% \let\PDFtitle\defaultPDFtitle% \let\PDFopen\defaultPDFopen% \let\PDFwidth\defaultPDFwidth% \let\PDFheight\defaultPDFheight% \let\PDFdepth\defaultPDFdepth% } %% Set values from key values \def\commentsetsymbol#1{% \expandafter\ifx\csname PDFsymbol#1\endcsname\relax% \else\def\PDFsymbol{/Name \csname PDFsymbol#1\endcsname}\fi} \define@key{comment}{symbol}{\commentsetsymbol{#1}} \define@key{comment}{width}{\def\PDFwidth{#1}} \define@key{comment}{height}{\def\PDFheight{#1}} \define@key{comment}{depth}{\def\PDFdepth{#1}} \define@key{comment}{title}{\def\PDFtitle{/T (#1)}} \define@key{comment}{location}{\def\PDFlocation{#1}} \define@key{comment}{open}[true]{% \ifthenelse{\equal{#1}{true}}% {\def\PDFopen{/Open true}}% {\let\PDFopen\empty}% } %% Actions to do for default setting \define@key{defcomment}{width}{\def\defaultPDFwidth{#1}} \define@key{defcomment}{height}{\def\defaultPDFheight{#1}} \define@key{defcomment}{depth}{\def\defaultPDFdepth{#1}} \define@key{defcomment}{title}{\def\defaultPDFtitle{/T (#1)}} \define@key{defcomment}{location}{\def\defaultPDFlocation{#1}} \define@key{defcomment}{open}[true]{% \ifthenelse{\equal{#1}{true}}% {\def\defaultPDFopen{/Open true}}% {\let\defaultPDFopen\empty}% } %% Text annotation symbols \def\PDFsymbolBalloon {/Comment} \def\PDFsymbolHelp {/Help} \def\PDFsymbolNew {/Insert} \def\PDFsymbolKey {/Key } \def\PDFsymbolAddition {/NewParagraph} \def\PDFsymbolNote {/Note} \def\PDFsymbolParagraph {/Paragraph} %% Global comment setup \def\commentsetup#1{\setkeys{defcomment}{#1}} %% Insert a remark/comment as a text annotation \def\comment{\@ifnextchar[\docomment{\docomment[]}} \def\docomment[#1]#2{% \begingroup% \commentdefault% \setkeys{comment}{#1}% \ifthenelse{\equal{\PDFlocation}{margin}}% {\marginpar{\dodocomment{#2}}}% {\dodocomment{#2}}% \endgroup% } \def\dodocomment#1{% \pdfstringdef\@tempa{#1}% \pdfannot width \PDFwidth height \PDFheight depth \PDFdepth{% /Subtype /Text /Contents (\@tempa) \PDFtitle \PDFopen \PDFsymbol }% \let\@tempa\relax% } %% Apply only when using pdflatex \RequirePackage{ifpdf} \ifpdf \else \def\docomment[#1]#2{} \fi