diff options
author | Karl Berry <karl@freefriends.org> | 2009-11-16 01:46:58 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-11-16 01:46:58 +0000 |
commit | 237c4c2e7bb45a876d74f05145db3f3e7dce5b53 (patch) | |
tree | 17a47ef7b94516c35a8a3f898d570217c30403d6 /Master/texmf-dist/tex/latex/pdfcomment | |
parent | 2b1511b76524ed6e4b906094ee4a63aacf7d68e5 (diff) |
pdfcomment 1.5a (7nov09)
git-svn-id: svn://tug.org/texlive/trunk@16024 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/pdfcomment')
-rw-r--r-- | Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty | 321 |
1 files changed, 282 insertions, 39 deletions
diff --git a/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty b/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty index d119066ad65..a497f2b178d 100644 --- a/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty +++ b/Master/texmf-dist/tex/latex/pdfcomment/pdfcomment.sty @@ -20,7 +20,7 @@ %% This work consists of all files listed in manifest.txt. %% % -\ProvidesPackage{pdfcomment}[2009/09/20 pdfcomment.sty v1.4c - Josef Kleber (C) 2008-2009]% +\ProvidesPackage{pdfcomment}[2009/11/04 pdfcomment.sty v1.5a - Josef Kleber (C) 2008-2009]% % \RequirePackage{xkeyval}% % @@ -185,18 +185,38 @@ \newcommand{\pc@raggedleftmarginnote}{\centering}% \newcommand{\pc@raggedrightmarginnote}{\centering}% % +\newcommand{\lpcname}{List of pdfcomments}% +\gdef\pc@lpc@format{\pc@lopt@author\ - \pc@lopt@subject}% +\gdef\pc@lopt@liststyle{AuthorSubject}% +% % define global style option avatar for setting a predefined set of options (Avatar) \define@key{pdfcomment.sty}{avatar}[]% {% thanks to Ulrike Fischer Msg-Id: <rba0oaiflbjf.dlg@nililand.de> - \edef\pc@gopt@loadavatar{\noexpand\setkeys{pdfcomment.sty}{\csname pc@avatar@#1\endcsname}}% - \pc@gopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@gopt@loadavatar{\noexpand\setkeys{pdfcomment.sty}{\csname pc@avatar@#1\endcsname}}% + \pc@gopt@loadavatar% + }% }% % % define global style option style for setting a predefined set of options (Style) \define@key{pdfcomment.sty}{style}[]% {% - \edef\pc@gopt@loadstyle{\noexpand\setkeys{pdfcomment.sty}{\csname pc@style@#1\endcsname}}% - \pc@gopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@gopt@loadstyle{\noexpand\setkeys{pdfcomment.sty}{\csname pc@style@#1\endcsname}}% + \pc@gopt@loadstyle% + }% }% % % define global style option subject for setting the subject of pdf annotations @@ -438,15 +458,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdfcomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfcomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfcomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdfcomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfcomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfcomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -692,15 +728,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdfmargincomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfmargincomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfmargincomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdfmargincomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfmargincomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfmargincomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -946,15 +998,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdffreetextcomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdffreetextcomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdffreetextcomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdffreetextcomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdffreetextcomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdffreetextcomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -1188,15 +1256,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdfmarkupcomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfmarkupcomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfmarkupcomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdfmarkupcomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfmarkupcomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfmarkupcomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -1446,15 +1530,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdfsquarecomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfsquarecomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfsquarecomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdfsquarecomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfsquarecomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfsquarecomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -1695,15 +1795,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdfcirclecomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfcirclecomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfcirclecomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdfcirclecomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfcirclecomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfcirclecomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -1944,15 +2060,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdflinecomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdflinecomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdflinecomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdflinecomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdflinecomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdflinecomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -2192,15 +2324,31 @@ % define local style option avatar for setting a predefined set of options (Avatar) \define@key{pdfsidelinecomment}{avatar}[]% {% - \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfsidelinecomment}{\csname pc@avatar@#1\endcsname}}% - \pc@lopt@loadavatar% + \edef\pc@edef@avatar{pc@avatar@#1}% + \@ifundefined{\pc@edef@avatar}% + {% + \PackageWarning{pdfcomment}{Unknown avatar #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadavatar{\noexpand\setkeys{pdfsidelinecomment}{\csname pc@avatar@#1\endcsname}}% + \pc@lopt@loadavatar% + }% }% % % define local style option style for setting a predefined set of options (Style) \define@key{pdfsidelinecomment}{style}[]% {% - \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfsidelinecomment}{\csname pc@style@#1\endcsname}}% - \pc@lopt@loadstyle% + \edef\pc@edef@style{pc@style@#1}% + \@ifundefined{\pc@edef@style}% + {% + \PackageWarning{pdfcomment}{Unknown style #1\MessageBreak% + skip assignment}% + }% + {% + \edef\pc@lopt@loadstyle{\noexpand\setkeys{pdfsidelinecomment}{\csname pc@style@#1\endcsname}}% + \pc@lopt@loadstyle% + }% }% % % define local command option subject for setting the subject of pdf annotations @@ -2438,6 +2586,18 @@ \gdef\pc@lopt@linesep{\pc@pttobp{#1}}% }% % +% define cammand option liststyle for \listofpdfcomments +\define@key{listofpdfcomments}{liststyle}[AuthorSubject]% +{% + \gdef\pc@lopt@liststyle{#1}% +}% +% +% define cammand option heading for \listofpdfcomments +\define@key{listofpdfcomments}{heading}[\lpcname]% +{% + \renewcommand{\lpcname}{#1}% +}% +% \ExecuteOptionsX{subject,color,author,icon,open,hspace,voffset,hoffset,width,height,depth,opacity,markup,font,fontsize,fontcolor,justification,borderstyle,linewidth,dashstyle,bse,bsei,type,lineend,linebegin,icolor,line,caption,captionhoffset,captionvoffset,linesep}% % \ProcessOptionsX\relax% @@ -2521,6 +2681,7 @@ \gdef\pc@lopt@c{/C [\pc@hyenc@color]}% }% \ifpc@gopt@final\else% + \pc@create@lpc% % typeset text annotation (see: PDF Reference) \ifpdf% \vbox% @@ -2604,6 +2765,7 @@ \gdef\pc@lopt@c{/C [\pc@hyenc@color]}% }% \ifpc@gopt@final\else% + \pc@create@lpc% \begingroup% % center marginnotes! \renewcommand{\raggedleftmarginnote}{\pc@raggedleftmarginnote}% @@ -2714,6 +2876,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% \expandafter\pdfannot \pc@pdfannotopt% {% /Subtype /FreeText% @@ -2734,6 +2897,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% \special{pdf: ann \pc@pdfannotopt% <<% /Subtype /FreeText% @@ -2756,6 +2920,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% %create dimensions of annotation \pdfmark[\rule{0pt}{\pc@lopt@height}\rule{\pc@lopt@width}{0pt}]% {% @@ -2810,6 +2975,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% \expandafter\pdfannot \pc@pdfannotopt% {% /Subtype /Square\space% @@ -2830,6 +2996,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% \special{pdf: ann \pc@pdfannotopt% <<% /Subtype /Square\space% @@ -2852,6 +3019,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% %create dimensions of annotation \pdfmark[\rule{0pt}{\pc@lopt@height}\rule{\pc@lopt@width}{0pt}]% {% @@ -2906,6 +3074,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% \expandafter\pdfannot \pc@pdfannotopt% {% /Subtype /Circle\space% @@ -2927,6 +3096,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% \special{pdf: ann \pc@pdfannotopt% <<% /Subtype /Circle\space% @@ -2949,6 +3119,7 @@ {% \vsize=0pt% \hskip\pc@lopt@hoffset% + \pc@create@lpc% %create dimensions of annotation \pdfmark[\rule{0pt}{\pc@lopt@height}\rule{\pc@lopt@width}{0pt}]% {% @@ -3013,6 +3184,7 @@ %create options for \pdfannot \pc@create@pdfannotopt% \ifpc@gopt@final\else% + \pc@create@lpc% % typeset line annotation (see: PDF Reference) \ifpdf% \vbox to 0pt% @@ -3126,6 +3298,9 @@ \pc@create@annot% \fi% \fi% + \ifpc@gopt@final\else% + \pc@create@lpc% + \fi% #2% \zsavepos{pdfcomment:\thezref@unique}% \zref@refused{pdfcomment:\thezref@unique}% @@ -3223,7 +3398,7 @@ \renewcommand{\pc@y@two}{\pc@y@bottom@text} \gdef\pc@lopt@line{\pc@x@two\space\pc@y@one\space\pc@x@two\space\pc@y@two}% \gdef\pc@lopt@le{/LE [\pc@lopt@linebegin\space/None]}% - \marginnote{\pc@create@annot@sideline}% + \marginnote{\pc@create@lpc\pc@create@annot@sideline}% \gdef\pc@lopt@line{\pc@x@one\space\pc@y@two\space\pc@x@one\space\pc@y@one}% \gdef\pc@lopt@le{/LE [/None\space\pc@lopt@linebegin]}% \marginnote{\pc@create@annot@sideline}% @@ -3240,7 +3415,7 @@ \pc@calc@sidelinepos% \gdef\pc@lopt@line{\pc@x@two\space\pc@y@one\space\pc@x@two\space\pc@y@two}% \gdef\pc@lopt@le{/LE [\pc@lopt@linebegin\space\pc@lopt@lineend]}% - \marginnote{\pc@create@annot@sideline}% + \marginnote{\pc@create@lpc\pc@create@annot@sideline}% \gdef\pc@lopt@line{\pc@x@one\space\pc@y@two\space\pc@x@one\space\pc@y@one}% \gdef\pc@lopt@le{/LE [\pc@lopt@lineend\space\pc@lopt@linebegin]}% \marginnote{\pc@create@annot@sideline}% @@ -3276,6 +3451,73 @@ \expandafter\gdef\csname pc@style@#1\endcsname{#2}% }% % +\newcommand\l@lpcsec{\@dottedtocline{1}{0em}{0em}}% +% +% define predefined set of liststyles +\newcommand{\defineliststyle}[2]% +{% + \expandafter\gdef\csname pc@liststyle@#1\endcsname{#2}% +}% +% +\newcommand{\setliststyle}[1]% +{% + \gdef\pc@lopt@liststyle{#1}% + \edef\pc@edef@liststyle{pc@liststyle@#1}% + \@ifundefined{\pc@edef@liststyle}% + {% + \setliststyle{AuthorSubject}% + \PackageWarning{pdfcomment}{Unknown liststyle #1\MessageBreak% + in command setliststyle\MessageBreak% + Using liststyle AuthorSubject instead!}% + }% + {% + \expandafter\gdef\expandafter\pc@lpc@format{\expandafter\csname \pc@edef@liststyle\endcsname}% + }% +}% +% +\defineliststyle{AuthorSubject}{\pc@lopt@author\ - \pc@lopt@subject}% +\defineliststyle{SubjectAuthorComment}{\pc@lopt@subject\ (\pc@lopt@author): \pc@lopt@comment}% +\defineliststyle{AuthorComment}{\pc@lopt@author: \pc@lopt@comment}% +\defineliststyle{SubjectComment}{\pc@lopt@subject: \pc@lopt@comment}% +\defineliststyle{Comment}{\pc@lopt@comment}% +% +\newcommand{\listofpdfcomments}[1][]% +{% + \setkeys{listofpdfcomments}{#1}% + \edef\pc@edef@liststyle{pc@liststyle@\pc@lopt@liststyle}% + \@ifundefined{\pc@edef@liststyle}% + {% + \PackageWarning{pdfcomment}{Unknown liststyle \pc@lopt@liststyle\MessageBreak% + in command listofpdfcomments\MessageBreak% + Using liststyle=AuthorSubject instead!}% + \setliststyle{AuthorSubject}% + }% + {% + \expandafter\gdef\expandafter\pc@lpc@format{\expandafter\csname \pc@edef@liststyle\endcsname}% + }% + \ifpc@gopt@final\else% + \setboolean{@restonecol}{false}% + \ifthenelse{\boolean{@twocolumn}}% + {\setboolean{@restonecol}{true}\onecolumn}% + {}% + \@ifundefined{chapter}% + {\section*{\lpcname\@mkboth{\lpcname}{\lpcname}}\addcontentsline{toc}{section}{\lpcname{}}}% + {\chapter*{\lpcname\@mkboth{\lpcname}{\lpcname}}\addcontentsline{toc}{chapter}{\lpcname{}}}% + {% + \setlength{\parindent}{0pt}% + \@starttoc{lpc}% + }% + \ifthenelse{\boolean{@restonecol}}% + {\twocolumn}% + {}% + \fi% +}% +% +\newcommand{\pc@create@lpc}% +{% + \phantomsection% + \addcontentsline{lpc}{lpcsec}{\protect\numberline{}\pc@lpc@format}% +}% % \newcommand{\pc@copy@gopt@lopt}% {% @@ -3314,6 +3556,7 @@ % \newcommand{\pc@encode@PDF}[1]% {% + \gdef\pc@lopt@comment{#1}% \pdfstringdef\pc@pdfenc@contents{#1}% \pdfstringdef\pc@pdfenc@author{\pc@lopt@author}% \pdfstringdef\pc@pdfenc@subject{\pc@lopt@subject}% |