summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/fixme/fixme.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-01-19 01:24:18 +0000
committerKarl Berry <karl@freefriends.org>2017-01-19 01:24:18 +0000
commitac0f6f57a4e17efee246ed3cc7bd721fb9f14e15 (patch)
treef673216ea83f42d5ad5746bdc67af15f37ad9add /Master/texmf-dist/source/latex/fixme/fixme.dtx
parentb448d3abc4ab3e3dc86002fa988ae4bfd8196c39 (diff)
fixme (18jan17)
git-svn-id: svn://tug.org/texlive/trunk@42991 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/fixme/fixme.dtx')
-rw-r--r--Master/texmf-dist/source/latex/fixme/fixme.dtx197
1 files changed, 73 insertions, 124 deletions
diff --git a/Master/texmf-dist/source/latex/fixme/fixme.dtx b/Master/texmf-dist/source/latex/fixme/fixme.dtx
index 57fd476bf3b..c3eb639bd69 100644
--- a/Master/texmf-dist/source/latex/fixme/fixme.dtx
+++ b/Master/texmf-dist/source/latex/fixme/fixme.dtx
@@ -2,10 +2,9 @@
%
% fixme.dtx --- docTeX file for FiXme
%
-% Copyright (C) 1998-2002, 2004-2007, 2009, 2013 Didier Verna
+% Copyright (C) 1998-2002, 2004-2007, 2009, 2013, 2017 Didier Verna
%
% Author: Didier Verna <didier@didierverna.net>
-% Created: Thu Dec 10 16:04:01 1998
%
% This file is part of FiXme.
%
@@ -22,8 +21,6 @@
%
% Commentary:
%
-% Contents management by FCM version 0.1.
-%
%
% Code:
%
@@ -66,8 +63,7 @@
%
% \fi
%
-% \catcode`\¡=14
-% \CheckSum{1831}
+% \CheckSum{1761}
% \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
@@ -126,7 +122,7 @@
%
% \newcommand\fx{\fixmelogo\xspace}
% \newcommand\packagecopyright{%
-% Copyright \copyright{} 1998--2002, 2004--2007, 2009, 2013 Didier Verna}
+% Copyright \copyright{} 1998--2002, 2004--2007, 2009, 2013, 2017 Didier Verna}
%
% \pagestyle{mystyle}
% \newcommand\fxmarkright{%
@@ -346,12 +342,14 @@
% extension is \texttt{lox}. The \cs{listoffixmes} command generates the
% annotations lists in a manner similar to that of the ``list of figures''. A
% standard layout is automatically selected for the \texttt{article},
-% \texttt{report}, \texttt{book} classes and their \komascript replacements.
-% If another class is used, the \texttt{article} layout is selected. Also,
-% note that if there isn't any annotation left in the document, this command
-% doesn't generate an empty list, but rather stays silent. It also stays
-% silent in \texttt{final} mode, regardless of the presence of remaining
-% annotations (see section \sectionref{sec:manual:behavior}).
+% \texttt{report} and \texttt{book} classes and the AMS ones. If loaded, \fx
+% will also use the \texttt{tocbasic} package which makes it compliant with
+% the \komascript classes and any other document using it. If another class
+% is used, the \texttt{article} layout is selected. Also, note that if there
+% isn't any annotation left in the document, this command doesn't generate an
+% empty list, but rather stays silent. It also stays silent in \texttt{final}
+% mode, regardless of the presence of remaining annotations (see
+% section \sectionref{sec:manual:behavior}).
%
% \subsection{Controlling the behavior of \fx\label{sec:manual:behavior}}
% \DescribeOption{final}
@@ -646,6 +644,16 @@
% encountered using \fx. Although \fx might not be directly responsible
% for them, it is still good to keep them in mind.
%
+% \subparagraph{Annotations in captions being counted twice} You are most
+% likely using \cs{listofsomething} (figure, table, or any other kind of
+% float). Note that a caption will be used twice here: once in the float
+% itself, and once in the list of floats. Any \fx annotation in the caption
+% will consequently be generated twice as well. The solution to this problem
+% is to use the optional argument to \cs{caption}, for example:
+% \begin{verbatim}
+% \caption[caption text]{caption text\fxnote{yuck!}}
+% \end{verbatim}
+%
% \subparagraph{Footnotes and margin paragraphs in floats} Using footnotes in
% figures (and \emph{a fortiori} in a figure's caption) does not work in
% general. Although there are some workarounds out there (for instance, using
@@ -1485,9 +1493,17 @@
%
% \section{History\label{sec:manual:history}}
% \begin{itemize}
+% \item[v4.3] Add a paragraph about the duplication of notes in captions, upon
+% exchange with Kreuvf.\\
+% Update support for the \komascript classes by using the
+% \texttt{tocbasic} interface when available, reported by Dirk Surmann.\\
+% Separate inline notes from the text they follow, suggested by Victor
+% Porton.\\
+% Fix potential inline layouts color leakage, reported by Victor Porton.\\
+% Fix several parsing problems when passing optional arguments containing
+% brackets, thanks to Joseph Wright and Lars Madsen.
% \item[v4.2] Improve Danish translation, thanks to Lars Madsen.\\
-% Fix buglet in \cs{@wrindex} redefinition, reported by Norman
-% Gray.\\
+% Fix buglet in \cs{@wrindex} redefinition, reported by Norman Gray.
% \item[v4.1] 8 new PDF-specific annotation layouts.\\
% New annotation layout: \texttt{marginnote}, suggested by S\'ebastien
% Mengin.\\
@@ -1564,7 +1580,7 @@
% \begin{macrocode}
%<fixme>\NeedsTeXFormat{LaTeX2e}
%<*header>
-\ProvidesPackage{fixme}[2013/01/28 v4.2 Collaborative annotations for LaTeX2e]
+\ProvidesPackage{fixme}[2017/01/18 v4.3 Collaborative annotations for LaTeX2e]
%</header>
% \end{macrocode}
@@ -1774,9 +1790,11 @@
% \end{macro}
%
% \subsubsection{List headers}
-% Lists are output in a document class dependant fashion. Classes currently
-% recognized are \texttt{article}, \texttt{report}, \texttt{book} and their
-% \komascript replacements.
+% \fx recognizes the standard \texttt{article}, \texttt{report} and
+% \texttt{book} classes, the AMS ones, and adapts the list header
+% accordingly. It also detects when the package \texttt{basictoc} is loaded
+% and uses it, which notably makes it compliant with the \komascript classes
+% as well. Otherwise, the standard \texttt{article} layout is used.
%
% \paragraph{\texttt{article} version}
% \begin{macro}{\@lox@prtc@article}
@@ -1828,74 +1846,6 @@
% \end{macro}
% \end{macro}
%
-% The code below (version 3.3) mimics \komascript version 2006/07/30 v2.95b.
-% Older versions (using chapter*) are no longer supported because it is
-% simpler that way, but if some people complain, I'll have to conditionalize
-% on the \komascript version, which would be a \textsc{pita}.
-% \begin{macro}{\lox@heading}
-% \mbox{}
-% \begin{macrocode}
-\newcommand\lox@heading{\float@listhead{\@fxlistfixmename}}
-
-% \end{macrocode}
-% \end{macro}
-% \paragraph{\texttt{scrartcl} version}
-% \begin{macro}{\@lox@prtc@scrartcl}
-% \begin{macro}{\@lox@psttc@scrartcl}
-% \mbox{}
-% \begin{macrocode}
-\newcommand\@lox@prtc@scrartcl{%
- \begingroup%
- \lox@heading%
- \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative}
-\let\@lox@psttc@scrartcl\endgroup
-
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \paragraph{\texttt{scrreprt} version}
-% \begin{macro}{\@lox@prtc@scrreprt}
-% \begin{macro}{\@lox@psttc@scrreprt}
-% \mbox{}
-% \begin{macrocode}
-\newcommand\@lox@prtc@scrreprt{%
- \begingroup%
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse
- \fi
- \lox@heading%
- \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative}
-\newcommand\@lox@psttc@scrreprt{%
- \if@restonecol\twocolumn\fi
- \endgroup}
-
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \paragraph{\texttt{scrbook} version}
-% \begin{macro}{\@lox@prtc@scrbook}
-% \begin{macro}{\@lox@psttc@scrbook}
-% \mbox{}
-% \begin{macrocode}
-\newcommand\@lox@prtc@scrbook{%
- \begingroup%
- \if@twocolumn
- \@restonecoltrue\onecolumn
- \else
- \@restonecolfalse
- \fi
- \lox@heading%
- \setparsizes{0}{0}{\z@\@plus 1fil}\par@updaterelative}
-\newcommand\@lox@psttc@scrbook{%
- \if@restonecol\twocolumn\fi
- \endgroup}
-
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
% \subsubsection{Status/class-dependent implementation}
% \begin{macro}{\lox@final}
% \begin{macro}{\lox@draft}
@@ -2078,7 +2028,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutMargin[3]{%
\marginpar[%
- \raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2]{%
+ {\raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2}]{%
\raggedright\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2}}
% \end{macrocode}
% \end{macro}
@@ -2099,7 +2049,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutMarginClue[3]{%
\marginpar[%
- \raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}!]{%
+ {\raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}!}]{%
\raggedright\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}!}}
% \end{macrocode}
% \end{macro}
@@ -2144,7 +2094,7 @@
% \marg{type}\marg{note}\marg{author}
% \begin{macrocode}
\newcommand*\FXLayoutInline[3]{%
- {\@fxuseface{inline}\ignorespaces#3 \fxnotename{#1}: #2}}
+ { \@fxuseface{inline}\ignorespaces#3 \fxnotename{#1}: #2}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@inline}
@@ -3556,24 +3506,23 @@
\@ifclassloaded{book}{%
\let\@lox@prtc\@lox@prtc@book%
\let\@lox@psttc\@lox@psttc@book}{%
- \@ifclassloaded{scrartcl}{%
- \let\@lox@prtc\@lox@prtc@scrartcl%
- \let\@lox@psttc\@lox@psttc@scrartcl}{%
- \@ifclassloaded{scrreprt}{%
- \let\@lox@prtc\@lox@prtc@scrreprt%
- \let\@lox@psttc\@lox@psttc@scrreprt}{%
- \@ifclassloaded{scrbook}{%
- \let\@lox@prtc\@lox@prtc@scrbook%
- \let\@lox@psttc\@lox@psttc@scrbook}{%
- \@ifclassloaded{amsbook}{%
- \let\lox@draft\lox@draft@ams}{%
- \@ifclassloaded{amsart}{%
- \let\lox@draft\lox@draft@ams}{%
- %% Use the article layout by default.
- \let\@lox@prtc\@lox@prtc@article%
- \let\@lox@psttc\@lox@psttc@article}}}}}}}}
+ \@ifclassloaded{amsbook}{%
+ \let\lox@draft\lox@draft@ams}{%
+ \@ifclassloaded{amsart}{%
+ \let\lox@draft\lox@draft@ams}{%
+ %% Use the article layout by default.
+ \let\@lox@prtc\@lox@prtc@article%
+ \let\@lox@psttc\@lox@psttc@article}}}}}
% \end{macrocode}
+% This overrides any previous class-based settings but makes the list of
+% corrections compliant with the \komascript classes and any document using
+% the \texttt{tocbasic} package.
+% \begin{macrocode}
+\@ifpackageloaded{tocbasic}{%
+ \addtotoclist[fixme]{lox}%
+ \renewcommand\lox@draft{\listoftoc[\@fxlistfixmename]{lox}}}{}
+% \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
@@ -3657,7 +3606,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutMarginNote[3]{%
\marginnote[%
- \raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2]{%
+ {\raggedleft\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2}]{%
\raggedright\@fxuseface{margin}\ignorespaces#3 \fxnotename{#1}: #2}}
% \end{macrocode}
% \end{macro}
@@ -3686,7 +3635,7 @@
% \marg{type}\marg{note}\marg{author}
% \begin{macrocode}
\newcommand*\FXLayoutPDFNote[3]{%
- \pdfcomment[author=#3]{\ignorespaces#3 \fxnotename{#1}: #2}}
+ \pdfcomment[author={#3}]{\ignorespaces#3 \fxnotename{#1}: #2}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfnote}
@@ -3714,7 +3663,7 @@
% \marg{type}\marg{note}\marg{author}
% \begin{macrocode}
\newcommand*\FXLayoutPDFMargin[3]{%
- \pdfmargincomment[author=#3]{\ignorespaces#3 \fxnotename{#1}: #2}}
+ \pdfmargincomment[author={#3}]{\ignorespaces#3 \fxnotename{#1}: #2}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfmargin}
@@ -3756,7 +3705,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutPDFSigNote[3]{%
\@fxdosig{#3}%
- \pdfcomment[author=#3]{\fxnotename{#1}: #2\@fxsignature}}
+ \pdfcomment[author={#3}]{\fxnotename{#1}: #2\@fxsignature}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfsignote}
@@ -3797,7 +3746,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutPDFSigMargin[3]{%
\@fxdosig{#3}%
- \pdfmargincomment[author=#3]{\fxnotename{#1}: #2\@fxsignature}}
+ \pdfmargincomment[author={#3}]{\fxnotename{#1}: #2\@fxsignature}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfsigmargin}
@@ -3854,7 +3803,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutPDFCNote[3]{%
\@fxdocolon{#3}%
- \pdfcomment[author=#3,color=fx#1]{\ignorespaces#3\@fxcolon#2}}
+ \pdfcomment[author={#3},color={fx#1}]{\ignorespaces#3\@fxcolon#2}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfcnote}
@@ -3910,7 +3859,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutPDFCMargin[3]{%
\@fxdocolon{#3}%
- \pdfmargincomment[author=#3,color=fx#1]{\ignorespaces#3\@fxcolon#2}}
+ \pdfmargincomment[author={#3},color={fx#1}]{\ignorespaces#3\@fxcolon#2}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfcmargin}
@@ -3970,7 +3919,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutPDFCSigNote[3]{%
\@fxdosig{#3}%
- \pdfcomment[author=#3,color=fx#1]{#2\@fxsignature}}
+ \pdfcomment[author={#3},color={fx#1}]{#2\@fxsignature}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfcsignote}
@@ -4029,7 +3978,7 @@
% \begin{macrocode}
\newcommand*\FXLayoutPDFCSigMargin[3]{%
\@fxdosig{#3}%
- \pdfmargincomment[author=#3,color=fx#1]{#2\@fxsignature}}
+ \pdfmargincomment[author={#3},color={fx#1}]{#2\@fxsignature}}
% \end{macrocode}
% \end{macro}
% \begin{macro}{\@fxlayout@pdfcsigmargin}
@@ -4293,15 +4242,15 @@
\renewcommand*\FXLayoutMargin[3]{%
\@fxdosig{#3}%
\marginpar[%
- \raggedleft\@fxuseface{margin}\fxnotename{#1}: #2\@fxsignature]{%
+ {\raggedleft\@fxuseface{margin}\fxnotename{#1}: #2\@fxsignature}]{%
\raggedright\@fxuseface{margin}\fxnotename{#1}: #2\@fxsignature}}
\renewcommand*\FXLayoutMarginClue[3]{%
\@fxdosig{#3}%
- \marginpar[\raggedleft\@fxuseface{margin}\fxnotename{#1}!\@fxsignature]{%
+ \marginpar[{\raggedleft\@fxuseface{margin}\fxnotename{#1}!\@fxsignature}]{%
\raggedright\@fxuseface{margin}\fxnotename{#1}!\@fxsignature}}
\renewcommand*\FXLayoutInline[3]{%
\@fxdosig{#3}%
- {\@fxuseface{inline}\fxnotename{#1}: #2\@fxsignature}}
+ { \@fxuseface{inline}\fxnotename{#1}: #2\@fxsignature}}
\renewcommand*\FXLayoutIndex[3]{%
\@fxdosig{#3}%
\iffx@mode@multiuser%
@@ -4348,14 +4297,14 @@
\renewcommand*\FXLayoutMargin[3]{%
\@fxdocolon{#3}%
\marginpar[%
- \raggedleft\@fxuseface{margin}\color{fx#1}\ignorespaces#3\@fxcolon#2]{%
+ {\raggedleft\@fxuseface{margin}\color{fx#1}\ignorespaces#3\@fxcolon#2}]{%
\raggedright\@fxuseface{margin}\color{fx#1}\ignorespaces#3\@fxcolon#2}}
\renewcommand*\FXLayoutMarginClue[3]{%
- \marginpar[\raggedleft\@fxuseface{margin}\color{fx#1}\ignorespaces#3!]{%
+ \marginpar[{\raggedleft\@fxuseface{margin}\color{fx#1}\ignorespaces#3!}]{%
\raggedright\@fxuseface{margin}\color{fx#1}\ignorespaces#3!}}
\renewcommand*\FXLayoutInline[3]{%
\@fxdocolon{#3}%
- {\@fxuseface{inline}\color{fx#1}\ignorespaces#3\@fxcolon#2}}
+ { \textcolor{fx#1}{\@fxuseface{inline}\ignorespaces#3\@fxcolon#2}}}
\renewcommand*\FXLayoutIndex[3]{%
\iffx@mode@multiuser%
\index{***@\fixmeindexname:%
@@ -4403,15 +4352,15 @@
\renewcommand*\FXLayoutMargin[3]{%
\@fxdosig{#3}%
\marginpar[%
- \raggedleft\@fxuseface{margin}\color{fx#1}#2\@fxsignature]{%
+ {\raggedleft\@fxuseface{margin}\color{fx#1}#2\@fxsignature}]{%
\raggedright\@fxuseface{margin}\color{fx#1}#2\@fxsignature}}
\renewcommand*\FXLayoutMarginClue[3]{%
\@fxdosig{#3}%
- \marginpar[\raggedleft\@fxuseface{margin}\color{fx#1}!\@fxsignature]{%
+ \marginpar[{\raggedleft\@fxuseface{margin}\color{fx#1}!\@fxsignature}]{%
\raggedright\@fxuseface{margin}\color{fx#1}!\@fxsignature}}
\renewcommand*\FXLayoutInline[3]{%
\@fxdosig{#3}%
- {\@fxuseface{inline}\color{fx#1}#2\@fxsignature}}
+ { \textcolor{fx#1}{\@fxuseface{inline}#2\@fxsignature}}}
\renewcommand*\FXLayoutIndex[3]{%
\@fxdosig{#3}%
\iffx@mode@multiuser%