From b316efb7c226ec53ad21c090980220a4dacd15ff Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 3 Oct 2009 15:28:25 +0000 Subject: fixme 4.1 (30sep09) git-svn-id: svn://tug.org/texlive/trunk@15612 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/latex/fixme/fixme.dtx | 620 +++++++++++++++++++++++-- Master/texmf-dist/source/latex/fixme/fixme.ins | 13 +- 2 files changed, 588 insertions(+), 45 deletions(-) (limited to 'Master/texmf-dist/source/latex/fixme') 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 % Maintainer: Didier Verna % 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} %\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] % % \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} @@ -1889,25 +1993,53 @@ % \marg{name}\oarg{release information} % \begin{macrocode} \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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} +% +% \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 %% Maintainer: Didier Verna %% 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}}} -- cgit v1.2.3