summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/pdfcomment/pdfcomment.tex
blob: c93383bc41d2617b4e03d0742703e3d7e4d45dc8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
\documentclass[a4paper]{ltxdoc}

\usepackage[english]{babel}%
\usepackage[latin1]{inputenc}%
\usepackage[T1]{fontenc}%
\usepackage{textcomp}%
\usepackage{bera}%
\usepackage{microtype}
\usepackage{url}%
\usepackage{attachfile}%
\usepackage{marginnote}%
\usepackage[svgnames]{xcolor}
\usepackage{ltxdocext}%
\usepackage{hyperref}
\usepackage{pdfcomment}
\def\fileversion{v1.2}
\def\filename{pdfcomment.sty}
\def\XeLaTeX{Xe\LaTeX}
%\usepackage{acrofont}%
\CodelineIndex
%\EnableCrossrefs
%\makeatletter
%\def\tableofcontents{\@starttoc{toc}}
%\makeatother
\renewcommand{\arg}[1]{%
 {\ttfamily\string{}\meta{#1}{\ttfamily\string}}%
 \index{#1=\string\ttt{#1}, Argument}\index{Argument>#1=\string\ttt{#1}}%
}%
\renewcommand{\oarg}[1]{%
 {\ttfamily[%]
  }\meta{#1}{\ttfamily%[
 ]}%
 \index{#1=\string\ttt{#1}, optionales Argument}%
 \index{Argument, optional>#1=\string\ttt{#1}}%
}%
\renewcommand\env{\name@idx{Umgebung}}%
\renewcommand*{\file}[1]{%
 {\ttfamily#1}%
 \index{#1=\string\ttt{#1}}\index{Datei>#1=\string\ttt{#1}}%
}%
\newcommand\styleoption{\name@idx{Styleoption}}%
\newcommand\stylename{\name@idx{Dokumentenstyle}}%
\def\name@idx#1#2{%
 {\ttfamily#2}%
 \index{#2\space#1=\string\ttt{#2}\space#1}\index{#1>#2=\string\ttt{#2}}%
}%

\newcommand*\margcs[1]{\marginnote{\raggedleft\scriptsize #1}}
\newcommand*\package[1]{\texttt{#1}\index{#1=\string\ttt{#1}}}
\newcommand*\mco[1]{\mbox{\LANGLE\itshape#1\RANGLE}\index{#1, Klassenoptionwert}\index{Klassenoptionwert>#1}}
\setlength\parindent{0pt}
\makeatletter
\renewcommand\@biblabel[1]{\makebox[1.5cm][l]{[#1]}}
\renewcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{4.0em}}
\makeatother
\hypersetup{pdfauthor={Josef Kleber},pdftitle={A user-friendly interface to PDF annotations},pdfsubject={Documentation for LaTeX style \filename}}
\begin{document}
\bibliographystyle{alphadin}
\title{\substyle{\filename} \fileversion\footnote{\protect\href{mailto:pdfcomment.sty@pdfcomment.josef-kleber.de}{\texttt{pdfcomment.sty@pdfcomment.josef-kleber.de}}}\\A user-friendly interface to PDF annotations\footnote{\protect\href{http://pdfcomment.josef-kleber.de}{\texttt{http://pdfcomment.josef-kleber.de}}}}
\author{Josef Kleber\footnote{\protect\href{mailto:josef.kleber@gmx.de}{\texttt{josef.kleber@gmx.de}}}}
\date{\today}
\maketitle
\begin{abstract}
For a long time \texttt{pdflatex} has offered the command \cmd\pdfannot{} for inserting arbitrary PDF annotations. However, the command is presented in a form where additional knowledge of the definition of the PDF format is indispensable. This package is an answer to the -- occasional -- questions in newsgroups, about how one could use the comment function of \texttt{Adobe Reader}. At least for the writer of \LaTeX{} code, the package offers a convenient and user-friendly means of using \cmd\pdfannot{} to provide comments in PDF files. Since version v1.1, \texttt{\filename{}} also supports: 

\medskip
\noindent\hfill\texttt{\LaTeX{} $\rightarrow$ \texttt{dvips} $\rightarrow$ \texttt{ps2pdf}, \LaTeX{} $\rightarrow$ \texttt{dvipdfmx}\footnote{only with style option \texttt{dvipdfmx}} and \XeLaTeX}.\hfill
\medskip

Unfortunately, support of PDF annotations by PDF viewers is sparse to nonexistent. The reference viewer for the development of this package is \texttt{Adobe Reader}.

If you can't see this annotation \pdfcomment[author={Josef Kleber},subject={Test annotation},color=lime,hspace=20pt]{This is an annotation} you are definitely using the wrong PDF viewer!
\end{abstract}
\vfill
\begin{center}
\subsubsection*{Required packages for using \substyle{\filename}}
\fbox{\parbox[t]{.8\linewidth}{\small \package{hyperref} (v6.76a [2007/04/09]), \package{xkeyval}, \package{ifpdf}, \package{marginnote} and the packages loaded by them.}}
\end{center}
\vfill
\clearpage
%\begin{multicols}{2}
%[\section*{Inhaltsverzeichnis}
%\setlength{\columnseprule}{.4pt}
%\setlength{\columnsep}{18pt}]
%\tableofcontents
%\end{multicols}
\tableofcontents
\clearpage
\section*{Acknowledgment}
I want to thank the following persons for contributions to the development of this package:

\begin{itemize}
\item \textbf{Alexander Grahn} for contributing a patch for other drivers

\medskip
\noindent\hfill\texttt{\LaTeX{} $\rightarrow$ \texttt{dvips} $\rightarrow$ \texttt{ps2pdf}, \LaTeX{} $\rightarrow$ \texttt{dvipdfmx} und \XeLaTeX}.\hfill
\medskip

\item \textbf{Gabriel Cardona} for pointing out problems with older versions of \texttt{hyperref} (v6.76a [2007/04/09])

\item \textbf{Ulrike Fischer} for answering my stupid questions on d.c.t.t. for making possible the avatar and style system.

\item \textbf{Christian Feuersänger} for contributing new ideas in form of his package \package{pdfmarginpar.sty} and for solving the printing problem\footnote{see section \ref{sec:print}} of PDF annotations and popups.
\end{itemize}
\clearpage
\section{Options}
\subsection{Global options}
\subsubsection[\texttt{final}]{\styleoption{final}}\label{sec:final}
The option \styleoption{final} will set the package to final mode. The PDF annotations will not be typeset and will not influence line breaking.
\subsubsection[\texttt{draft}]{\styleoption{draft}}\label{sec:draft}
The option \styleoption{draft} (default) will set the package to draft mode. Therefore, the PDF annotations will be typeset.
\subsubsection[\texttt{dvipdfmx}]{\styleoption{dvipdfmx}}\label{sec:dvipdfmx}
If you want to use the driver \texttt{dvipdfmx} for creating your documents, you have to use the option \styleoption{dvipdfmx}. The other drivers are recognized automatically.
\subsection{Local options}
The following options are useable as options for the commands presented in section \ref{sec:befehle}, as well as style options. As style options they have global effect, whereas they have only local effect when used in commands. Furthermore global options are not overwritten. 

\subsubsection[\texttt{subject}]{\styleoption{subject}}\label{sec:subject}
You can use the option \styleoption{subject} for defining the subject of the PDF popup annotations.

\subsubsection[\texttt{author}]{\styleoption{author}}\label{sec:author}
You can use the option \styleoption{author} for defining the author of the PDF popup annotations.

\subsubsection[\texttt{opacity}]{\styleoption{opacity}}\label{sec:opacity}
You can use the option \styleoption{opacity} for defining the opacity of PDF annotations with values between 0 (transparent) and 1 (not transparent, default). If you want to print PDF popup annotations with transparency you will have to use the option \styleoption{open} = \texttt{true}.

\subsubsection[\texttt{color}]{\styleoption{color}}\label{sec:color}
You can use the option \styleoption{color} for defining the color of PDF annotations in the form \{0.34 0.56 0.12\} (RGB). If you are using the additional package \package{xcolor} you can use predefined color names, as well as the available optional color names. Furthermore you can use the command \cmd\definecolor{} to define your own named colors. Please take a look at the attached example \file{example.tex}.\marginnote{\attachfile[author={Josef Kleber},subject={example.tex},description={source code: example.tex} ,mimetype={text/plain}, icon={Tag}]{example.tex}} It shows the different possibilities of defining colors.

By definition the PDF specification allows four different color spaces with different numbers of color values:

\begin{center}
\begin{tabular}{rl}
\# & color space\\
\hline
0 & transparent \\
1 & grey scale \\
3 & RGB\\
4 & CMYK\\
\end{tabular}
\end{center}

\subsubsection[\texttt{icon}]{\styleoption{icon}}\label{sec:icon}
You can use the option \styleoption{icon} for defining the graphic used for the PDF text annotations. The following icons are defined as mandatory by the PDF reference:

\bigskip\pdfcommentsetup{author={Josef Kleber},subject={Icon overview}}
\texttt{Comment} \hspace{1em} \pdfcomment[icon=Comment,color=Ivory]{Options: icon=Comment,color=Ivory} \hfill \texttt{Key} \hspace{1em} \pdfcomment[icon=Key,color=Khaki]{Options: icon=Key,color=Khaki} \hfill \texttt{Note} \hspace{1em} \pdfcomment[icon=Note,color=LavenderBlush]{Options: icon=Note,color=LavenderBlush} \hfill \texttt{Help} \hspace{1em} \pdfcomment[icon=Help,color=CornflowerBlue]{Options: icon=Help,color=CornflowerBlue}\hspace{20pt}

\bigskip

\hspace*{1cm}\texttt{NewParagraph} \hspace{1em} \pdfcomment[icon=NewParagraph,color=SkyBlue]{Options: icon=NewParagraph,color=SkyBlue} \hfill \texttt{Paragraph} \hspace{1em} \pdfcomment[icon=Paragraph,color=SpringGreen]{Options: icon=Paragraph,color=SpringGreen} \hfill \texttt{Insert} \hspace{1em} \pdfcomment[icon=Insert,color=PaleTurquoise]{Options: Insert,color=PaleTurquoise}\hspace{0pt}\hspace*{1cm}\hspace{20pt}

\bigskip
Furthermore the following icons are also supported by \texttt{Adobe Reader} and some other PDF viewers:

\bigskip

\texttt{Check} \hspace{1em} \pdfcomment[icon=Check,color=Orchid]{Options: icon=Check,color=Orchid} \hfill \texttt{Circle} \hspace{1em} \pdfcomment[icon=Circle,color=LightCyan]{Options: icon=Circle,color=LightCyan} \hfill \texttt{Cross} \hspace{1em} \pdfcomment[icon=Cross,color=Bisque]{Options: icon=Cross,color=Bisque}\hspace{20pt}

\bigskip

\hspace*{1cm}\texttt{Star} \hspace{1em} \pdfcomment[icon=Star,color=Aquamarine]{Options: icon=Star,color=Aquamarine} \hfill \texttt{RightArrow} \hspace{1em} \pdfcomment[icon=RightArrow,color=Gainsboro]{Options: icon=RightArrow,color=Gainsboro} \hfill \texttt{RightPointer} \hspace{1em} \pdfcomment[icon=RightPointer,color=Salmon]{Options: icon=RightPointer,color=Salmon}\hspace*{1cm}\hspace{20pt}

\bigskip

\hspace*{2.5cm}\texttt{UpArrow} \hspace{1em} \pdfcomment[icon=UpArrow,color=Teal]{Options: icon=UpArrow,color=Teal} \hfill \texttt{UpLeftArrow} \hspace{1em} \pdfcomment[icon=UpLeftArrow,color=Magenta]{Options: icon=UpLeftArrow,color=Magenta}\hspace*{2.5cm}\hspace{20pt}

\bigskip

\subsubsection[\texttt{open}]{\styleoption{open}}\label{sec:open}
You can use the option \styleoption{open} for defining the opening status of the PDF popup annotations. Possible values are \texttt{true} or \texttt{false} (default).

If you want to print the PDF popup annotations (with transparency) you will have to use the option \styleoption{open} = \texttt{true}.

\subsubsection[\texttt{voffset}]{\styleoption{voffset}}\label{sec:voffset}
You can use the option \styleoption{voffset} for defining a vertical offset of the PDF annotations, that is a vertical shift for the given length.

\subsubsection[\texttt{hoffset}]{\styleoption{hoffset}}\label{sec:hoffset}
You can use the option \styleoption{hoffset} for defining a horizontal offset of the PDF annotations.

\subsubsection[\texttt{width}]{\styleoption{width}}\label{sec:width}
You can use the option \styleoption{width} for defining the width of PDF annotations, e.\,g. the width of FreeText annotations. PDF text annatations have a width of 0pt by definition.

\subsubsection[\texttt{height}]{\styleoption{height}}\label{sec:height}
You can use the option \styleoption{height} for definig the height of PDF annotations. PDF text annatations have a height of \cmd\baselineskip{} by definition.

\subsubsection[\texttt{hspace}]{\styleoption{hspace}}\label{sec:hspace}
You can use the option \styleoption{hspace} for defining the horizontal space after the PDF text annotations, otherwise the PDF text annoations will overlay the text.

\subsubsection[\texttt{avatar}]{\styleoption{avatar}}\label{sec:avatar}
With the option \styleoption{avatar} you can load the option lists, that were predefined with the command \cmd\defineavatar{} to avoid annoying typing. 

\subsubsection[\texttt{style}]{\styleoption{style}}\label{sec:style}
With the option \styleoption{style} you can also load predefined option lists for spliting personal and stylistic options, e.\,g. \texttt{avatar=Josef, style=MyComment}.

\section{Commands}\label{sec:befehle}

\subsection{Comment commands}

You can use the following commands for commenting your documents.

\subsubsection{\texorpdfstring{\cs{pdfcomment}}{\textbackslash pdfcomment}}
\label{sec:pdfcomment}
\cmd\pdfcomment \margcs{\cmd\pdfcomment\\\oarg{options}\marg{comment}} will typeset an annotation into the text at the current \pdfcommentsetup{subject={\textbackslash pdfcomment test},hspace=18pt}\pdfcomment[icon=Star,color=YellowGreen]{This is a comment in the text} position.

\subsubsection{\texorpdfstring{\cs{pdfmargincomment}}{\textbackslash pdfmargincomment}}
\label{sec:pdfmargincomment}
\cmd\pdfmargincomment \margcs{\cmd\pdfmargincomment\\\oarg{options}\marg{comment}} will typeset an annotation into the margin. Please note the positioning of the annotation in this example. This documentation was written with the \LaTeX{} class \texttt{ltxdoc}\pdfcommentsetup{subject={\textbackslash pdfmargincomment test}}\pdfmargincomment[icon=Help,color=DeepPink,hspace=-30pt]{This is a comment in the margin}. Therefore the annotation is typeset into the left margin.

\subsubsection{\texorpdfstring{\cs{pdffreetextcomment}}{\textbackslash pdffreetextcomment}}
\label{sec:pdffreetextcomment}
\cmd\pdffreetextcomment \margcs{\cmd\pdffreetextcomment\\\oarg{options}\marg{comment}} will typset a comment in form of a freely positioned box on the wished spot of the page.\pdffreetextcomment[subject={\textbackslash pdffreetextcomment Test},height=1.2cm,width=4cm,voffset=1cm,hoffset=1.2cm,opacity=0.5,color=yellow]{This is a FreeText annotation}

\subsection{Misc. commands}

\subsubsection{\texorpdfstring{\cs{pdfcommentsetup}}{\textbackslash pdfcommentsetup}}
\label{sec:commentsetup}
With the command \cmd\pdfcommentsetup \margcs{\cmd\pdfcommentsetup\marg{options}} you can reset the global options at any time.

\subsubsection{\texorpdfstring{\cs{defineavatar}}{\textbackslash defineavatar}}
\label{sec:defineavatar}
With the command \cmd\defineavatar \margcs{\cmd\defineavatar\marg{name}\marg{options}} you can create named predefined option lists, which can be later used in the comment commands with the option \styleoption{avatar}. With this option, it's easy for several authors of the same document to switch between different avatars, that is their graphical representation. 

\subsubsection{\texorpdfstring{\cs{definestyle}}{\textbackslash definestyle}}
\label{sec:definestyle}
With the command \cmd\definestyle \margcs{\cmd\definestyle\marg{name}\marg{options}} you can split up lists in personal and stylistic option lists (see \file{example.tex}). This option list can be loaded with the option \styleoption{style}.

\section{Printing comments and popups}
\label{sec:print}
Basically, \texttt{Adobe Reader} is able to print PDF annotations. Therefore, you have to choose 'Document and Markups' in the field 'Comments and Forms' of the print dialog. Additionally, you have to configure the menu 'Edit $\rightarrow$ Preferences $\rightarrow$ Commenting'. Unfortunately, this option does not exist in many versions of \texttt{Adobe Reader}. If it does not exist, the only possibility is to edit the configuration files itself. 

\begin{description}
\item[Windows:] the registry needs to be changed (on your own risk!)

Start the registry editor (\file{regedit.exe}) and open the following key, e.\,g. for \texttt{Adobe Reader 9.0}:

\texttt{HKEY\_CURRENT\_USER/Software/Adobe/Acrobat Reader/9.0/Annots/\newline cPrefs}

The key for other version will be similar, except version number and some letters in lower- or uppercase!

Open or create (with closed \texttt{Adobe Reader}) the key \newline\texttt{bprintCommentPopups} and change the value to 1 (dword).

\item[Linux:] open the configuration file:

\nolinkurl{~/.adobe/Acrobat/8.0/Preferences/reader_prefs}

with a text editor and change the entry 

{\texttt{/printCommentPopups\,[/b false]} to \texttt{/printCommentPopups\,[/b true]}}
\end{description}

Please note that only opened popups will be printed!

{
\clearpage
\raggedright
\nocite{*}
\bibliography{pdfcomment}
\addcontentsline{toc}{section}{\refname}
}

%for index
\footnotesize
\end{document}