diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/pdfmarginpar/pdfmarginpar.sty |
Initial commit
Diffstat (limited to 'macros/latex/contrib/pdfmarginpar/pdfmarginpar.sty')
-rw-r--r-- | macros/latex/contrib/pdfmarginpar/pdfmarginpar.sty | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/macros/latex/contrib/pdfmarginpar/pdfmarginpar.sty b/macros/latex/contrib/pdfmarginpar/pdfmarginpar.sty new file mode 100644 index 0000000000..94cf991674 --- /dev/null +++ b/macros/latex/contrib/pdfmarginpar/pdfmarginpar.sty @@ -0,0 +1,161 @@ +%-------------------------------------------- +% +% 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 <http://www.gnu.org/licenses/>. +% +%-------------------------------------------- +\ProvidesPackage{pdfmarginpar}[2011/08/05 Version 0.92] + +\RequirePackage{pgfkeys} + +\def\pdfmarginparset#{\pgfqkeys{/pdfmarginpar}} + +\def\pdfmarginpar@empty{}% + +\pgfqkeys{/pdfmarginpar}{ + Subtype/.is choice, + Subtype/Text/.code={\def\pdfmarginpar@SubType{/Text}}, + Subtype/FreeText/.code={\def\pdfmarginpar@SubType{/FreeText}\pgfkeysalso{Name=none}}, + Subtype/Other/.code={\def\pdfmarginpar@SubType{/#1}}, + Subtype=Text, + Open/.is choice, + Open/true/.code={\def\pdfmarginpar@OPEN{true}}, + Open/false/.code={\def\pdfmarginpar@OPEN{false}}, + Open=true, + FreeText/.style={Subtype/FreeText}, + % + caption/.code={\def\pdfmarginpar@textlabel{#1}}, + % + voffset/.initial=0pt, + hoffset/.initial=0pt, + % + width/.initial=, + height/.initial=, + depth/.initial=, + % + 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}}, + Name/none/.code={\def\pdfmarginpar@NAME{}}, + % + 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}, + none/.style={}, + % + Comment, + C/.initial={[1 1 0]}, + color/.style={C={#1}}, + CA/.initial=0.5, + opacity/.style={CA={#1}}, + Subj/.store in=\pdfmarginpar@Subj, + Subject/.style={Subj={#1}}, + Subj={Comment}, + caption=Author's Note, +} + +% Usage: +% +% - \pdfmarginpar{All wrong in this place!} +% - \pdfmarginpar{Insert ','} +\newcommand{\pdfmarginpar}[2][]{{% + \pgfqkeys{/pdfmarginpar}{#1}% + \toks0={#2}% + \toks1=\expandafter{\pdfmarginpar@Subj}% + \toks2=\expandafter{\pdfmarginpar@textlabel}% + \pgfkeysgetvalue{/pdfmarginpar/voffset}\pdfmarginpar@voffset + \pgfkeysgetvalue{/pdfmarginpar/hoffset}\pdfmarginpar@hoffset + \pgfkeysgetvalue{/pdfmarginpar/width}\pdfmarginpar@wd + \pgfkeysgetvalue{/pdfmarginpar/height}\pdfmarginpar@ht + \pgfkeysgetvalue{/pdfmarginpar/depth}\pdfmarginpar@dp + \def\pdfmarginpar@rulespec{}% + \ifx\pdfmarginpar@wd\pdfmarginpar@empty + \else + \expandafter\def\expandafter\pdfmarginpar@rulespec\expandafter{% + \pdfmarginpar@rulespec + width \pdfmarginpar@wd\space + }% + \fi + \ifx\pdfmarginpar@ht\pdfmarginpar@empty + \else + \expandafter\def\expandafter\pdfmarginpar@rulespec\expandafter{% + \pdfmarginpar@rulespec + height \pdfmarginpar@ht\space + }% + \fi + \ifx\pdfmarginpar@dp\pdfmarginpar@empty + \else + \expandafter\def\expandafter\pdfmarginpar@rulespec\expandafter{% + \pdfmarginpar@rulespec + depth \pdfmarginpar@dp\space + }% + \fi + % + %\ifvmode\noindent\fi + \vbox to 0pt{\hsize=0pt + \vss + \noindent + \raise\pdfmarginpar@voffset + \hbox to 0pt{\vsize=0pt% + \hskip\pdfmarginpar@hoffset + \expandafter\pdfannot \pdfmarginpar@rulespec { + /Subtype \pdfmarginpar@SubType + /Open \pdfmarginpar@OPEN + \ifx\pdfmarginpar@NAME\pdfmarginpar@empty + \else + /Name \pdfmarginpar@NAME + \fi + /T (\the\toks2) + /C \pgfkeysvalueof{/pdfmarginpar/C} + /CA \pgfkeysvalueof{/pdfmarginpar/CA} + /Subj (\the\toks1) + /Contents (\the\toks0) + /F 4 % print it! + }% + \hss + }% + %\vss + }% +}}% + |