%-------------------------------------------- % % Package pdfmarginpar.sty % % A simple package which allows to create PDF Annotations using % \pdfmarginpar in the same way as one would use \marginpar. It is % intended to simplify communication between multiple authors of the % same document. It has the following features: % - Easy to use annotation as with \marginpar, % - Annotations stay in the document, % - High Quality output using Adobe's Annotations: popup windows, % minimize, move etc. % - File generation is not limited to Acrobat Reader security settings % % It relies on pdftex's command \pdfannot. In fact, it is nothing more % than \pdfannot, some trivial TeX commands and key-value pairs for % common PDF Annotation variables as they can be found in the public PDF % Documentation. It is also possible to set low-level pdf options % directly. % % It is not compatible with dvips or dvipdf[m|mx] and friends. % % Copyright 2007/2008 by Christian Feuersänger. % % This program is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see . % %-------------------------------------------- \ProvidesPackage{pdfmarginpar}[2008/09/21 Version 0.8] \RequirePackage{pgfkeys} \def\pdfmarginparset#{\pgfqkeys{/pdfmarginpar}} \pgfqkeys{/pdfmarginpar}{ Subtype/.is choice, Subtype/Text/.code={\def\pdfmarginpar@SubType{/Text}}, Subtype=Text, Open/.is choice, Open/true/.code={\def\pdfmarginpar@OPEN{true}}, Open/false/.code={\def\pdfmarginpar@OPEN{false}}, Open=false, % voffset/.initial=0pt, hoffset/.initial=0pt, % Name/.is choice, Name/Comment/.code={\def\pdfmarginpar@NAME{/Comment}}, Name/Key/.code={\def\pdfmarginpar@NAME{/Key}}, Name/Note/.code={\def\pdfmarginpar@NAME{/Note}}, Name/Help/.code={\def\pdfmarginpar@NAME{/Help}}, Name/NewParagraph/.code={\def\pdfmarginpar@NAME{/NewParagraph}}, Name/Paragraph/.code={\def\pdfmarginpar@NAME{/Paragraph}}, Name/Insert/.code={\def\pdfmarginpar@NAME{/Insert}}, % Comment/.style={Name=Comment,voffset=1.3\baselineskip}, Key/.style={Name=Key,voffset=\baselineskip}, Note/.style={Name=Note,voffset=\baselineskip}, Help/.style={Name=Help,voffset=\baselineskip}, Paragraph/.style={Name=Paragraph,voffset=\baselineskip}, Insert/.style={Name=Insert,voffset=0pt,hoffset=-1.5ex}, NewParagraph/.style={Name=NewParagraph,voffset=0pt,hoffset=-1.5ex,CA=0.7}, % Comment, C/.initial={[1 0 0]}, color/.style={C={#1}}, CA/.initial=0.5, opacity/.style={CA={#1}}, Subj/.store in=\pdfmarginpar@Subj, Subject/.style={Subj={#1}}, Subj={Comment}, } % Usage: % % - \pdfmarginpar{All wrong in this place!} % - \pdfmarginpar{Insert ','} \newcommand{\pdfmarginpar}[2][]{{% \pgfqkeys{/pdfmarginpar}{#1}% \toks0={#2}% \toks1=\expandafter{\pdfmarginpar@Subj}% \pgfkeysgetvalue{/pdfmarginpar/voffset}\pdfmarginpar@voffset \pgfkeysgetvalue{/pdfmarginpar/hoffset}\pdfmarginpar@hoffset %\ifvmode\noindent\fi \vbox to 0pt{\hsize=0pt \vss \noindent \raise\pdfmarginpar@voffset \hbox to 0pt{\vsize=0pt% \hskip\pdfmarginpar@hoffset \pdfannot { /Subtype \pdfmarginpar@SubType /Open \pdfmarginpar@OPEN /Name \pdfmarginpar@NAME /C \pgfkeysvalueof{/pdfmarginpar/C} /CA \pgfkeysvalueof{/pdfmarginpar/CA} /Subj (\the\toks1) /Contents (\the\toks0) }% \hss }% %\hss }% }}%