summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/fixme
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2009-10-03 15:28:25 +0000
committerKarl Berry <karl@freefriends.org>2009-10-03 15:28:25 +0000
commitb316efb7c226ec53ad21c090980220a4dacd15ff (patch)
tree7f08ae23b5af61ca3574aa88326cea1606cc9910 /Master/texmf-dist/source/latex/fixme
parentffae7911290698a9da1d39087cd103badc4c586c (diff)
fixme 4.1 (30sep09)
git-svn-id: svn://tug.org/texlive/trunk@15612 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/fixme')
-rw-r--r--Master/texmf-dist/source/latex/fixme/fixme.dtx620
-rw-r--r--Master/texmf-dist/source/latex/fixme/fixme.ins13
2 files changed, 588 insertions, 45 deletions
diff --git a/Master/texmf-dist/source/latex/fixme/fixme.dtx b/Master/texmf-dist/source/latex/fixme/fixme.dtx
index d30152e715f..6b81d18c64b 100644
--- a/Master/texmf-dist/source/latex/fixme/fixme.dtx
+++ b/Master/texmf-dist/source/latex/fixme/fixme.dtx
@@ -8,7 +8,7 @@
% Author: Didier Verna <didier@lrde.epita.fr>
% Maintainer: Didier Verna <didier@lrde.epita.fr>
% Created: Thu Dec 10 16:04:01 1998
-% Last Revision: Thu Jul 16 19:55:00 2009
+% Last Revision: Wed Sep 30 18:01:02 2009
%
% This file is part of FiXme.
%
@@ -70,7 +70,7 @@
% \fi
%
% \catcode`\ˇ=14
-% \CheckSum{1613}
+% \CheckSum{1833}
% \GetFileInfo{fixme.inc}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
@@ -481,22 +481,19 @@
% that, you can select any of those layouts anywhere you wish.
% \end{enumerate}
%
-% \newpage
% \subsubsection{Available layouts}
% \DescribeBooleanOption{inline}
% \DescribeBooleanOption{margin}
-% \DescribeBooleanOption{marginclue}
% \DescribeBooleanOption{footnote}
% \DescribeBooleanOption{index}
% \DescribeLayout[noprint]{inline}
% \DescribeLayout[noprint]{margin}
-% \DescribeLayout[noprint]{marginclue}
% \DescribeLayout[noprint]{footnote}
% \DescribeLayout[noprint]{index}
% Table \ref{table:layouts} lists the annotation layouts currently distributed
-% with \fx. By default, only the \texttt{margin} layout is active. While most
-% of these layouts should be self-explanatory, marginal clues deserve a bit
-% more explanation.
+% with \fx. By default, only the \texttt{margin} layout is active. Most of
+% these layouts should be self-explanatory, but some precisions are given
+% below.
% \begin{table}
% \centering
% \DeleteShortVerb{\|}
@@ -509,12 +506,32 @@
% \texttt{footnote} & & Display note in a footnote\\
% \texttt{index} & & Display note in the index\\
% \texttt{marginclue} & & Display a marginal clue\\
+% \texttt{marginnote} & \texttt{*} & Display non-floating note in the
+% margin\\
+% \texttt{pdfnote} & \texttt{*} & Display note as inline PDF comment\\
+% \texttt{pdfmargin} & \texttt{*} & Display note as marginal PDF
+% comment\\
+% \texttt{pdfsignote} & \texttt{*} & Display signed note ala
+% \texttt{pdfnote}\\
+% \texttt{pdfsigmargin} & \texttt{*} & Display signed note ala
+% \texttt{pdfmargin}\\
+% \texttt{pdfcnote} & \texttt{*} & Display colored note ala
+% \texttt{pdfnote}\\
+% \texttt{pdfcmargin} & \texttt{*} & Display colored note ala
+% \texttt{pdfmargin}\\
+% \texttt{pdfcsignote} & \texttt{*} & Display colored note ala
+% \texttt{pdfcsignote}\\
+% \texttt{pdfcsigmargin} & \texttt{*} & Display colored note ala
+% \texttt{pdfsigmargin}\\
% \hline
% \end{tabular}
% \MakeShortVerb{\|}
% \caption{Available annotation layouts}
% \label{table:layouts}
% \end{table}
+% \paragraph{\texttt{marginclue}}
+% \DescribeBooleanOption{marginclue}
+% \DescribeLayout[noprint]{marginclue}
% If your preferred layout is \texttt{inline} or say, \texttt{footnote},it
% might be somewhat difficult to localize the annotation on the page,
% especially its vertical position. That's where marginal clues come into
@@ -527,6 +544,51 @@
% you try to activate both, only the most recently activated one will be
% enabled (and you'll get a notice in the log file and on the terminal).
%
+% \paragraph{\texttt{marginnote}}
+% \DescribeBooleanOption{marginnote}
+% \DescribeLayout[noprint]{marginnote}
+% The \texttt{marginnote} layout is an alternate (external) way to display
+% annotations in the margin, using the eponymous package. Contrary to \LaTeX's
+% standard marginal paragraphs, the ones issued by \texttt{marginnote} are
+% constructed in a non-floating way. This might be an advantage in some
+% situations but \texttt{marginnote} also comes with some disadvantages of its
+% own. For more information, please refer to \texttt{marginnote}'s
+% documentation, and also read the next section. Also, note that it is not
+% currently possible to pass options to the \cs{marginnote} command through
+% this layout.
+%
+% \paragraph{PDF comments}
+% \DescribeBooleanOption{pdfnote}
+% \DescribeLayout[noprint]{pdfnote}
+% \DescribeBooleanOption{pdfmargin}
+% \DescribeLayout[noprint]{pdfmargin}
+% \DescribeBooleanOption{pdfsignote}
+% \DescribeLayout[noprint]{pdfsignote}
+% \DescribeBooleanOption{pdfsigmargin}
+% \DescribeLayout[noprint]{pdfsigmargin}
+% \DescribeBooleanOption{pdfcnote}
+% \DescribeLayout[noprint]{pdfcnote}
+% \DescribeBooleanOption{pdfcmargin}
+% \DescribeLayout[noprint]{pdfcmargin}
+% \DescribeBooleanOption{pdfcsignote}
+% \DescribeLayout[noprint]{pdfcsignote}
+% \DescribeBooleanOption{pdfcsigmargin}
+% \DescribeLayout[noprint]{pdfcsigmargin}
+% The PDF format comes with a concept of \emph{comment}, which \fx can use to
+% display its own annotations. Support for PDF comments varies across PDF
+% viewers. Acrobat Reader is usually considered a reference, and MacOS X's
+% Preview supports them reasonably well. The \texttt{pdfnote} and
+% \texttt{pdfmargin} layouts use the \texttt{pdfcomment} package to display
+% annotations as PDF inline or marginal comments.
+%
+% The \texttt{sig} versions additionally display the author's tag (see
+% \sectionref{sec:manual:modes}) as a signature instead of as a prefix.
+%
+% The versions with a \texttt{c} in their name (as in \textbf{c}olor) use one
+% of four different colors named \texttt{fx}\meta{level} (according to the
+% annotation's importance level). They also avoid printing the annotation's
+% level since this information is already conveyed by the color.
+%
% \subsubsection{Inner layout}
% There might be various reasons for you to change the layout locally for one
% particular annotation: creating a floating one is an example, see also
@@ -543,7 +605,9 @@
% provides an option named \texttt{innerlayout} that allows you to specify an
% alternative layout setting to use when \TeX{} is in \emph{inner} mode. In
% addition to that, \fx automatically disables the \texttt{margin} and
-% \texttt{marginclue} layouts.
+% \texttt{marginclue} layouts. If you really want to use marginal paragraphs
+% in inner mode, a good idea is then to set your inner layout to
+% \texttt{marginnote} (see the previous section).
%
% Using \texttt{innerlayout} is not as trivial as it may seem: it
% \emph{really} is an alternative layout configuration, and as such, you can
@@ -573,6 +637,12 @@
% What would happen if you didn't provide the \texttt{innerlayout} option?
% \end{itemize}
%
+% One final remark on the \texttt{innerlayout} option: this option is not
+% processed immediately when you specify it, but instead, its value is stored
+% and used only when needed. As a result, if you plan to use an external
+% layout in inner mode (typically, \texttt{marginnote})~, you need to load it
+% explicitely in the preamble first. Use \cs{fxloadlayouts} for that.
+%
% \subsubsection{Other common layout
% problems\label{sec:manual:othercommonproblems}}
% This section describes some other common problems that people have
@@ -1054,6 +1124,13 @@
% \FXRegisterAuthor{fx}{anfx}{fixme}
% \end{verbatim}
%
+% \textbf{Warning!} \meta{cmdprefix} and \meta{envprefix} need to be
+% different, or you will get very strange errors. The technical reason is that
+% in \LaTeX, an environment named \texttt{foo} is defined in terms of two
+% commands: \cs{foo} and \cs{endfoo} (yes, this is silly; the first one should
+% really be \cs{beginfoo}). As a consequence, if you use the same prefix, you
+% will get a name clash between the annotation commands and environments.
+%
% \paragraph{Fun with the \texttt{author} option}
% Some precisions about the author option are in order here. When a new
% author is registered with \fx, the generated commands and environments
@@ -1232,7 +1309,7 @@
%
% \paragraph{Registering late layouts}
% \begin{sloppypar}
-% \DescribeMacro{\FXRegisterLayout}\oarg{boolfunc}\marg{name}\marg{macro}\\
+% \DescribeMacro{\FXRegisterLayout}\oarg{mutex}\marg{name}\marg{macro}\\
% In order to register a late annotation layout with \fx, use the command
% \cs{FXRegisterLayout}. This macro has two mandatory arguments: the layout
% \meta{name} (at least 3 characters long) and the associated layout
@@ -1242,12 +1319,17 @@
% \begin{verbatim}
% \FXRegisterLayout{inline}{\FXLayoutInline}
% \end{verbatim}
-% The first (optional) argument may provide code that will be executed when
-% the layout is activated (it is used for instance to implement mutual
-% exclusion between the \texttt{margin} and \texttt{marginclue} layouts. Once
-% registered, the new layout gets a boolean option \meta{name} and is also
-% recognized by the \texttt{layout} and \texttt{morelayout} options, as well
-% as by the \cs{fxuselayouts} command as \meta{name}.
+% Once registered, the new layout gets a boolean option \meta{name} and is
+% also recognized by the \texttt{layout} and \texttt{morelayout} options, as
+% well as by the \cs{fxuselayouts} command as \meta{name}.
+%
+% The first (optional) argument \meta{mutex} is a comma-separated list of
+% other layout names that should be in mutual exclusion with the layout we are
+% registering (for example, the \texttt{margin} and \texttt{marginclue}
+% layouts are in mutual exclusion). Note that mutual exclusion between two
+% layouts need only be registered once. In other words, a previsouly
+% registered layout will automatically be made aware of subsequent mutex
+% declarations.
%
% \paragraph{Registering early layouts}
% \DescribeMacro{\FXRegisterLayout*}\oarg{boolfunc}\marg{name}\marg{macro}\\
@@ -1406,6 +1488,11 @@
%
% \section{History\label{sec:manual:history}}
% \begin{itemize}
+% \item[v4.1] 8 new PDF-specific annotation layouts.\\
+% New annotation layout: \texttt{marginnote}, suggested by Sébastien
+% Mengin.\\
+% Better mechanism for handling layout mutual exclusion.\\
+% Fix bug in inner layout processing.
% \item[v4.0] Support for collaborative annotations, suggested by Michael
% Kubovy.\\
% Support for ``targeted'' notes and environments (highlighting a portion of
@@ -1478,7 +1565,7 @@
% \begin{macrocode}
%<fixme>\NeedsTeXFormat{LaTeX2e}
%<*header>
-\ProvidesPackage{fixme}[2009/09/21 v4.0 Insert fixme notes in your documents]
+\ProvidesPackage{fixme}[2009/09/30 v4.1 Insert fixme notes in your documents]
%</header>
% \end{macrocode}
@@ -1522,7 +1609,24 @@
% \end{macrocode}
% \end{macro}
-%
+% \begin{macro}{\@fxaddtolist}
+% \marg{list}\marg{elt}\\
+% Add \meta{elt} at the end of \meta{list}. We should check for duplicates,
+% but this is not currently done.
+% \begin{macrocode}
+\newcommand*\@fxaddtolist[2]{%
+ \expandafter\ifx\csname #1\endcsname\relax%
+ \expandafter\def\csname #1\endcsname{#2}%
+ \else%
+ \expandafter\ifx\csname #1\endcsname\empty%
+ \expandafter\g@addto@macro\csname #1\endcsname{#2}%
+ \else%
+ \expandafter\g@addto@macro\csname #1\endcsname{,#2}%
+ \fi%
+ \fi}
+
+% \end{macrocode}
+% \end{macro}
% \subsubsection{\texttt{xkeyval} related}
% \begin{macro}{\@fxkeyifundefined}
% \marg{families}\marg{keys}\marg{then}\marg{else}
@@ -1891,23 +1995,51 @@
\newcommand*\FXProvidesLayout[1]{\ProvidesPackage{fxlayout#1}}
% \end{macrocode}
% \end{macro}
+% \begin{macro}{\@fxrecordlayoutmutex}
+% \marg{layout}\marg{layouts}\\
+% Record mutual exclusion between \meta{layout} and the comma-separated list
+% of \meta{layouts}. For each \meta{layout}, the mutual exclusion list is
+% stored in \cs{@fxlayout@}\meta{layout}\texttt{@mutex}.
+% \begin{macrocode}
+\newcommand*\@fxrecordlayoutmutex[2]{%
+ \edef\@fxlts{\zap@space#2 \@empty}%
+ \def\@fxexpr{\@fxaddtolist{@fxlayout@#1@mutex}}%
+ \expandafter\@fxexpr\expandafter{\@fxlts}%
+ \@for\@fxlt:=\@fxlts\do{\@fxaddtolist{@fxlayout@\@fxlt @mutex}{#1}}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxhandlelayoutmutex}
+% \marg{layout}\\
+% Handle \meta{layout}'s mutual exclusion list.
+% \begin{macrocode}
+\newcommand*\@fxhandlelayoutmutex[1]{%
+ \ifthenelse{\boolean{fx@layout@#1}}{%
+ \def\@fxexpr{\@for\@fxlt:=}%
+ \expandafter\@fxexpr\csname @fxlayout@#1@mutex\endcsname\do{%
+ \@ifundefined{iffx@layout@\@fxlt}{}{%
+ \ifthenelse{\boolean{fx@layout@\@fxlt}}{%
+ \@fxpkgwarning{%
+ #1 layout requested;\MessageBreak
+ turning \@fxlt\space layout off}%
+ \@nameuse{fx@layout@\@fxlt}{false}}{}}}}{}}
+
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\@FXRegisterLayout}
-% \marg{when}\oarg{boolfunc}\marg{name}\marg{funcname}\\
+% \marg{when}\oarg{mutex}\marg{name}\marg{funcname}\\
% Register a new layout with \fx. This currently involves creating the
% boolean layout option with an optional function argument, constructing the
% translation macro to call the actual layout macro, and updating the
% appropriate layout list (early or late). The translation macro can't be
-% \cs{let} to the real one, because themes might want to redefine latter.
+% \cs{let} to the real one, because themes might want to redefine latter. An
+% optional mutual exclusion list may also be given.
% \begin{macrocode}
\def\@FXRegisterLayout#1[#2]#3#4{%
\@fxkeyifundefined{layout}{#3}{%
- \@fxdefineboolkey[#2]{layout}{#3}%
+ \@fxrecordlayoutmutex{#3}{#2}%
+ \@fxdefineboolkey[\@fxhandlelayoutmutex{#3}]{layout}{#3}%
\expandafter\def\csname @fxlayout@#3\endcsname{#4}%
- \expandafter\ifx\csname @fx#1layouts\endcsname\empty%
- \expandafter\g@addto@macro\csname @fx#1layouts\endcsname{#3}%
- \else%
- \expandafter\g@addto@macro\csname @fx#1layouts\endcsname{,#3}%
- \fi}{%
+ \@fxaddtolist{@fx#1layouts}{#3}}{%
\@fxpkgerror{layout '#3' already registered}{%
You have called \string\FXRegisterLayout\space with a name already
in use.\MessageBreak
@@ -1955,13 +2087,7 @@
% \begin{booleanoption}{margin}
% \mbox{}
% \begin{macrocode}
-\FXRegisterLayout*[%
- \ifthenelse{\boolean{fx@layout@margin}\and\boolean{fx@layout@marginclue}}{%
- \@fxpkgwarning{%
- marginal notes requested;\MessageBreak
- turning marginal clues off}%
- \fx@layout@marginclue{false}}]{%
- margin}{\FXLayoutMargin}
+\FXRegisterLayout*{margin}{\FXLayoutMargin}
% \end{macrocode}
% \end{booleanoption}
% \end{macro}
@@ -1982,13 +2108,7 @@
% \begin{booleanoption}{marginclue}
% \mbox{}
% \begin{macrocode}
-\FXRegisterLayout*[%
- \ifthenelse{\boolean{fx@layout@marginclue}\and\boolean{fx@layout@margin}}{%
- \@fxpkgwarning{%
- marginal clues requested;\MessageBreak
- turning marginal notes off}%
- \fx@layout@margin{false}}]{%
- marginclue}{\FXLayoutMarginClue}
+\FXRegisterLayout*[margin]{marginclue}{\FXLayoutMarginClue}
% \end{macrocode}
% \end{booleanoption}
% \end{macro}
@@ -2131,6 +2251,14 @@
% \end{macro}
%
% \subsubsection{Layout control}
+% \begin{macro}{\@fxsetlayoutkeys}
+% \marg{keys}
+% This macro would probably be overkill if we didn't need to
+% \cs{expandafter} it at some point (See \cs{@fxhandleinnermode}).
+% \begin{macrocode}
+\newcommand\@fxsetlayoutkeys{\@fxsetkeys{layout}}
+% \end{macrocode}
+% \end{macro}
% \begin{macro}{\@fxparselayout}
% Utility macro to detect the \texttt{no}\meta{name} form of layout options.
% The drawback of this technique is that layout options must be at least 3
@@ -2579,7 +2707,7 @@
\@fxpkginfo{%
inner mode detected;\MessageBreak
turning marginclue layout form off}}{}}%
- \expandafter\fxuselayouts\expandafter{%
+ \expandafter\@fxsetlayoutkeys\expandafter{%
\cmdfx@layout@innerlayout,nomargin,nomarginclue}%
\fi}
% \end{macrocode}
@@ -3513,6 +3641,410 @@
%
% \appendix
% \section{External Layouts}
+% \subsection{Annotation layouts}
+% \subsubsection{The \texttt{marginnote} layout}
+% \begin{layout}{marginnote}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutmarginnote>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{marginnote}
+
+\RequirePackage{marginnote}
+
+% \end{macrocode}
+% \begin{macro}{\FXLayoutMarginNote}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutMarginNote[3]{%
+ \marginnote[%
+ \raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2]{%
+ \raggedright\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@marginnote}
+% \begin{booleanoption}{marginnote}
+% \begin{macrocode}
+\FXRegisterLayout*[margin,marginclue]{marginnote}{\FXLayoutMarginNote}
+%</fxlayoutmarginnote>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfnote} layout}
+% \begin{layout}{pdfnote}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfnote>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfnote}
+
+\RequirePackage{pdfcomment}
+
+% \end{macrocode}
+% \begin{macro}{\FXLayoutPDFNote}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFNote[3]{%
+ \pdfcomment[author=#3]{\ignorespaces#3 \fxnotename{#1}: #2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfnote}
+% \begin{booleanoption}{pdfnote}
+% \begin{macrocode}
+\FXRegisterLayout{pdfnote}{\FXLayoutPDFNote}
+%</fxlayoutpdfnote>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfmargin} layout}
+% \begin{layout}{pdfmargin}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfmargin>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfmargin}
+
+\RequirePackage{pdfcomment}
+
+% \end{macrocode}
+% \begin{macro}{\FXLayoutPDFMargin}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFMargin[3]{%
+ \pdfmargincomment[author=#3]{\ignorespaces#3 \fxnotename{#1}: #2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfmargin}
+% \begin{booleanoption}{pdfmargin}
+% \begin{macrocode}
+\FXRegisterLayout*[margin,marginclue,marginnote]{pdfmargin}{%
+ \FXLayoutPDFMargin}
+%</fxlayoutpdfmargin>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfsignote} layout}
+% \begin{layout}{pdfsignote}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfsignote>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfsignote}
+
+\RequirePackage{pdfcomment}
+
+% \end{macrocode}
+% \begin{macro}{\@fxdosig}
+% \marg{author}
+% \begin{macro}{\@fxsignature}
+% Use a signature of the form ``-- sig'', unless author is empty.
+% \begin{macrocode}
+\providecommand*\@fxdosig[1]{%
+ \ifthenelse{\equal{#1}{}}{\def\@fxsignature{}}{%
+ \def\@fxsignature{ -- {\@fxuseface{signature}#1}}}}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FXLayoutPDFSigNote}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFSigNote[3]{%
+ \@fxdosig{#3}%
+ \pdfcomment[author=#3]{\fxnotename{#1}: #2\@fxsignature}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfsignote}
+% \begin{booleanoption}{pdfsignote}
+% \begin{macrocode}
+\FXRegisterLayout[pdfnote]{pdfsignote}{\FXLayoutPDFSigNote}
+%</fxlayoutpdfsignote>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfsigmargin} layout}
+% \begin{layout}{pdfsigmargin}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfsigmargin>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfsigmargin}
+
+\RequirePackage{pdfcomment}
+
+% \end{macrocode}
+% \begin{macro}{\@fxdosig}
+% \marg{author}
+% \begin{macro}{\@fxsignature}
+% Use a signature of the form ``-- sig'', unless author is empty.
+% \begin{macrocode}
+\providecommand*\@fxdosig[1]{%
+ \ifthenelse{\equal{#1}{}}{\def\@fxsignature{}}{%
+ \def\@fxsignature{ -- {\@fxuseface{signature}#1}}}}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FXLayoutPDFSigMargin}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFSigMargin[3]{%
+ \@fxdosig{#3}%
+ \pdfmargincomment[author=#3]{\fxnotename{#1}: #2\@fxsignature}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfsigmargin}
+% \begin{booleanoption}{pdfsigmargin}
+% \begin{macrocode}
+\FXRegisterLayout*[margin,marginclue,marginnote,pdfmargin]{pdfsigmargin}{%
+ \FXLayoutPDFSigMargin}
+%</fxlayoutpdfsigmargin>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfcnote} layout}
+% \begin{layout}{pdfcnote}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfcnote>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfcnote}
+
+\RequirePackage{pdfcomment}
+\RequirePackage{xcolor}
+
+% \end{macrocode}
+% \begin{color}{fxnote}
+% \begin{color}{fxwarning}
+% \begin{color}{fxerror}
+% \begin{color}{fxfatal}
+% Environments use the same colors as the notes themselves because
+% their contents really is a longer note.
+% \begin{macrocode}
+\definecolor{fxnote}{rgb}{0.0000,0.6000,0.0000}
+\definecolor{fxwarning}{rgb}{1.0000,0.5490,0.0000}
+\definecolor{fxerror}{rgb}{1.0000,0.2706,0.0000}
+\definecolor{fxfatal}{rgb}{1.0000,0.0000,0.0000}
+
+% \end{macrocode}
+% \end{color}
+% \end{color}
+% \end{color}
+% \end{color}
+% \begin{macro}{\@fxdocolon}
+% \marg{author}\\
+% Add a colon after the author tag, unless empty.
+% \begin{macrocode}
+\providecommand*\@fxdocolon[1]{%
+ \ifthenelse{\equal{#1}{}}{\def\@fxcolon{}}{\def\@fxcolon{: }}}
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\FXLayoutPDFCNote}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFCNote[3]{%
+ \@fxdocolon{#3}%
+ \pdfcomment[author=#3,color=fx#1]{\ignorespaces#3\@fxcolon#2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfcnote}
+% \begin{booleanoption}{pdfcnote}
+% \begin{macrocode}
+\FXRegisterLayout[pdfnote]{pdfcnote}{\FXLayoutPDFCNote}
+%</fxlayoutpdfcnote>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfcmargin} layout}
+% \begin{layout}{pdfcmargin}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfcmargin>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfcmargin}
+
+\RequirePackage{pdfcomment}
+\RequirePackage{xcolor}
+
+% \end{macrocode}
+% \begin{color}{fxnote}
+% \begin{color}{fxwarning}
+% \begin{color}{fxerror}
+% \begin{color}{fxfatal}
+% Environments use the same colors as the notes themselves because
+% their contents really is a longer note.
+% \begin{macrocode}
+\definecolor{fxnote}{rgb}{0.0000,0.6000,0.0000}
+\definecolor{fxwarning}{rgb}{1.0000,0.5490,0.0000}
+\definecolor{fxerror}{rgb}{1.0000,0.2706,0.0000}
+\definecolor{fxfatal}{rgb}{1.0000,0.0000,0.0000}
+
+% \end{macrocode}
+% \end{color}
+% \end{color}
+% \end{color}
+% \end{color}
+% \begin{macro}{\@fxdocolon}
+% \marg{author}\\
+% Add a colon after the author tag, unless empty.
+% \begin{macrocode}
+\providecommand*\@fxdocolon[1]{%
+ \ifthenelse{\equal{#1}{}}{\def\@fxcolon{}}{\def\@fxcolon{: }}}
+
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\FXLayoutPDFCMargin}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFCMargin[3]{%
+ \@fxdocolon{#3}%
+ \pdfmargincomment[author=#3,color=fx#1]{\ignorespaces#3\@fxcolon#2}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfcmargin}
+% \begin{booleanoption}{pdfcmargin}
+% \begin{macrocode}
+\FXRegisterLayout*[margin,marginclue,marginnote,pdfmargin]{pdfcmargin}{%
+ \FXLayoutPDFCMargin}
+%</fxlayoutpdfcmargin>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfcsignote} layout}
+% \begin{layout}{pdfcsignote}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfcsignote>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfcsignote}
+
+\RequirePackage{pdfcomment}
+\RequirePackage{xcolor}
+
+% \end{macrocode}
+% \begin{color}{fxnote}
+% \begin{color}{fxwarning}
+% \begin{color}{fxerror}
+% \begin{color}{fxfatal}
+% Environments use the same colors as the notes themselves because
+% their contents really is a longer note.
+% \begin{macrocode}
+\definecolor{fxnote}{rgb}{0.0000,0.6000,0.0000}
+\definecolor{fxwarning}{rgb}{1.0000,0.5490,0.0000}
+\definecolor{fxerror}{rgb}{1.0000,0.2706,0.0000}
+\definecolor{fxfatal}{rgb}{1.0000,0.0000,0.0000}
+
+% \end{macrocode}
+% \end{color}
+% \end{color}
+% \end{color}
+% \end{color}
+% \begin{macro}{\@fxdosig}
+% \marg{author}
+% \begin{macro}{\@fxsignature}
+% Use a signature of the form ``-- sig'', unless author is empty.
+% \begin{macrocode}
+\providecommand*\@fxdosig[1]{%
+ \ifthenelse{\equal{#1}{}}{\def\@fxsignature{}}{%
+ \def\@fxsignature{ -- {\@fxuseface{signature}#1}}}}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FXLayoutPDFCSigNote}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFCSigNote[3]{%
+ \@fxdosig{#3}%
+ \pdfcomment[author=#3,color=fx#1]{#2\@fxsignature}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfcsignote}
+% \begin{booleanoption}{pdfcsignote}
+% \begin{macrocode}
+\FXRegisterLayout[pdfnote,pdfcnote]{pdfcsignote}{\FXLayoutPDFCSigNote}
+%</fxlayoutpdfcsignote>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
+% \subsubsection{The \texttt{pdfcsigmargin} layout}
+% \begin{layout}{pdfcsigmargin}
+% \mbox{}
+% \begin{macrocode}
+%<*fxlayoutpdfcsigmargin>
+\NeedsTeXFormat{LaTeX2e}
+\FXProvidesLayout{pdfcsigmargin}
+
+\RequirePackage{pdfcomment}
+\RequirePackage{xcolor}
+
+% \end{macrocode}
+% \begin{color}{fxnote}
+% \begin{color}{fxwarning}
+% \begin{color}{fxerror}
+% \begin{color}{fxfatal}
+% Environments use the same colors as the notes themselves because
+% their contents really is a longer note.
+% \begin{macrocode}
+\definecolor{fxnote}{rgb}{0.0000,0.6000,0.0000}
+\definecolor{fxwarning}{rgb}{1.0000,0.5490,0.0000}
+\definecolor{fxerror}{rgb}{1.0000,0.2706,0.0000}
+\definecolor{fxfatal}{rgb}{1.0000,0.0000,0.0000}
+
+% \end{macrocode}
+% \end{color}
+% \end{color}
+% \end{color}
+% \end{color}
+% \begin{macro}{\@fxdosig}
+% \marg{author}
+% \begin{macro}{\@fxsignature}
+% Use a signature of the form ``-- sig'', unless author is empty.
+% \begin{macrocode}
+\providecommand*\@fxdosig[1]{%
+ \ifthenelse{\equal{#1}{}}{\def\@fxsignature{}}{%
+ \def\@fxsignature{ -- {\@fxuseface{signature}#1}}}}
+
+% \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \begin{macro}{\FXLayoutPDFCSigMargin}
+% \marg{type}\marg{note}\marg{author}
+% \begin{macrocode}
+\newcommand*\FXLayoutPDFCSigMargin[3]{%
+ \@fxdosig{#3}%
+ \pdfmargincomment[author=#3,color=fx#1]{#2\@fxsignature}}
+% \end{macrocode}
+% \end{macro}
+% \begin{macro}{\@fxlayout@pdfcsigmargin}
+% \begin{booleanoption}{pdfcsigmargin}
+% \begin{macrocode}
+\FXRegisterLayout*[margin,marginclue,marginnote,pdfmargin,pdfsigmargin]{%
+ pdfcsigmargin}{%
+ \FXLayoutPDFCSigMargin}
+%</fxlayoutpdfcsigmargin>
+% \end{macrocode}
+% \end{booleanoption}
+% \end{macro}
+% \end{layout}
+%
% \subsection{Environment layouts}
% \subsubsection{The \texttt{color} layout}
% \begin{envlayout}{color}
@@ -3813,7 +4345,7 @@
\renewcommand*\FXLayoutFootnote[3]{%
\@fxdocolon{#3}%
- \footnote{\color{fx#1}\ignorespaces#3\@fxcolon #2}}
+ \footnote{\color{fx#1}\ignorespaces#3\@fxcolon#2}}
\renewcommand*\FXLayoutMargin[3]{%
\@fxdocolon{#3}%
\marginpar[%
@@ -3913,7 +4445,7 @@
% \Finale
%
% ^^A Local variables:
-% ^^A eval: (doxitems "option" "counter" "lang" "face" "color")
-% ^^A eval: (doxitem "\\(env\\|target\\)?layout")
+% ^^A eval : (add-hook 'TeX-update-style-hook (lambda () (doxitems "option" "counter" "lang" "face" "color")) nil t)
+% ^^A eval: (add-hook 'TeX-update-style-hook (lambda () (doxitem "\\(env\\|target\\)?layout")) nil t)
% ^^A End:
% ^^A fixme.dtx ends here.
diff --git a/Master/texmf-dist/source/latex/fixme/fixme.ins b/Master/texmf-dist/source/latex/fixme/fixme.ins
index d64da06b2d2..c547a5f4eae 100644
--- a/Master/texmf-dist/source/latex/fixme/fixme.ins
+++ b/Master/texmf-dist/source/latex/fixme/fixme.ins
@@ -5,7 +5,7 @@
%% Author: Didier Verna <didier@lrde.epita.fr>
%% Maintainer: Didier Verna <didier@lrde.epita.fr>
%% Created: Thu Dec 10 16:04:01 1998
-%% Last Revision: Wed Sep 9 16:39:40 2009
+%% Last Revision: Wed Sep 30 18:01:18 2009
%% This file is part of FiXme.
@@ -29,6 +29,7 @@
\NeedsTeXFormat{LaTeX2e}
\input docstrip.tex
+\InputIfFileExists{ltxpkg.tex}{}{}
\askforoverwritefalse
\keepsilent
@@ -56,6 +57,16 @@ FiXme consists of the files listed in the file `README'.^^J
\generate{
\file{header.inc}{\from{fixme.dtx}{header}}
\file{fixme.sty}{\from{fixme.dtx}{header,fixme}}}
+\generate{\usedir{layouts}
+ \file{fxlayoutmarginnote.sty}{\from{fixme.dtx}{fxlayoutmarginnote}}
+ \file{fxlayoutpdfnote.sty}{\from{fixme.dtx}{fxlayoutpdfnote}}
+ \file{fxlayoutpdfmargin.sty}{\from{fixme.dtx}{fxlayoutpdfmargin}}
+ \file{fxlayoutpdfsignote.sty}{\from{fixme.dtx}{fxlayoutpdfsignote}}
+ \file{fxlayoutpdfsigmargin.sty}{\from{fixme.dtx}{fxlayoutpdfsigmargin}}
+ \file{fxlayoutpdfcnote.sty}{\from{fixme.dtx}{fxlayoutpdfcnote}}
+ \file{fxlayoutpdfcmargin.sty}{\from{fixme.dtx}{fxlayoutpdfcmargin}}
+ \file{fxlayoutpdfcsignote.sty}{\from{fixme.dtx}{fxlayoutpdfcsignote}}
+ \file{fxlayoutpdfcsigmargin.sty}{\from{fixme.dtx}{fxlayoutpdfcsigmargin}}}
\generate{\usedir{envlayouts}
\file{fxenvlayoutcolor.sty}{\from{fixme.dtx}{fxenvlayoutcolor}}
\file{fxenvlayoutcolorsig.sty}{\from{fixme.dtx}{fxenvlayoutcolorsig}}}