From 23bdb0b5bdf3022398bbfdc812eaef99707ab537 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 12 Jan 2006 23:55:47 +0000 Subject: fixme git-svn-id: svn://tug.org/texlive/trunk@917 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/tex/latex/fixme/fixme.sty | 453 ++++++++++++++++++++++++++++ 1 file changed, 453 insertions(+) create mode 100644 Master/texmf-dist/tex/latex/fixme/fixme.sty (limited to 'Master/texmf-dist/tex/latex/fixme') diff --git a/Master/texmf-dist/tex/latex/fixme/fixme.sty b/Master/texmf-dist/tex/latex/fixme/fixme.sty new file mode 100644 index 00000000000..f7a7271c984 --- /dev/null +++ b/Master/texmf-dist/tex/latex/fixme/fixme.sty @@ -0,0 +1,453 @@ +%% +%% This is file `fixme.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% fixme.dtx +%% + + +%% Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 Didier Verna + +%% This file is part of FiXme. + +%% FiXme may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.1 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.1 or later is part of all distributions of LaTeX +%% version 1999/06/01 or later. + +%% FiXme consists of the files listed in the file `README'. + +%% \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 +%% Lower-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 +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +\NeedsTeXFormat{LaTeX2e} + +\ProvidesPackage{fixme}[2005/01/31 v3.1 + Insert fixme notes in your documents] + +\RequirePackage{ifthen} +\RequirePackage{verbatim} + +\newcommand*\fixmelogo{\textsf{FiXme}} + +\newcommand\listoffixmes{} +\def\listoffixmes@final{} +\def\listoffixmes@draft{% + \IfFileExists{\jobname .lox}{\@listoffixmes@pretoc}{}% + \@starttoc{lox}% + \IfFileExists{\jobname .lox}{\@listoffixmes@posttoc}{}% + } + +\newcommand*\listfixmename{} + +\def\@listoffixmes@pretoc@article{% + \section*{\listfixmename% + \@mkboth{\MakeUppercase\listfixmename}{\MakeUppercase\listfixmename}}% + } +\def\@listoffixmes@posttoc@article{} +\def\l@fixme@article{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\@listoffixmes@pretoc@report{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfixmename% + \@mkboth{\MakeUppercase\listfixmename}{\MakeUppercase\listfixmename}}% + } +\def\@listoffixmes@posttoc@report{\if@restonecol\twocolumn\fi} +\def\l@fixme@report{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\@listoffixmes@pretoc@book{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfixmename% + \@mkboth{\MakeUppercase\listfixmename}{\MakeUppercase\listfixmename}}% + } +\def\@listoffixmes@posttoc@book{\if@restonecol\twocolumn\fi} +\def\l@fixme@book{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\@listoffixmes@pretoc@scrartcl{% + \section*{\listfixmename% + \@mkboth{\listfixmename}{\listfixmename}}% + } +\def\@listoffixmes@posttoc@scrartcl{} +\def\l@fixme@scrartcl{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\@listoffixmes@pretoc@scrreprt{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfixmename% + \@mkboth{\listfixmename}{\listfixmename}}% + } +\def\@listoffixmes@posttoc@scrreprt{\if@restonecol\twocolumn\fi} +\def\l@fixme@scrreprt{\@dottedtocline{1}{1.5em}{2.3em}} + +\def\@listoffixmes@pretoc@scrbook{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\listfixmename% + \@mkboth{\listfixmename}{\listfixmename}}% + } +\def\@listoffixmes@posttoc@scrbook{\if@restonecol\twocolumn\fi} +\def\l@fixme@scrbook{\@dottedtocline{1}{1.5em}{2.3em}} + +\newcommand\FXInline[2]{% + \textbf{#1}: \emph{#2}} +\newcommand\FXMargin[2]{% + \marginpar{\footnotesize\raggedleft\textbf{#1}: \emph{#2}}} +\newcommand\FXFootnote[2]{% + \footnote{\textbf{#1}: \emph{#2}}} + +\newcommand*\fixmeindexname{} +\newcommand\FXIndex[1]{% + \index{***@\fixmeindexname:!#1}} + +\newcommand*\fixmefatalprefix{} +\newcommand\FiXmeInline[1]{\FXInline{\fixmefatalprefix}{#1}} +\newcommand\FiXmeMargin[1]{\FXMargin{\fixmefatalprefix}{#1}} +\newcommand\FiXmeFootnote[1]{\FXFootnote{\fixmefatalprefix}{#1}} +\newcommand\FiXmeUser[1]{} +\let\FiXmeUser\empty + +\newcommand\FiXmeIndex[1]{\FXIndex{#1}} +\newcommand\FiXmeInfo[1]{} +\newcommand\FiXmeWarning[1]{} + +\newif\iffixme@inline +\newif\iffixme@margin +\newif\iffixme@footnote +\newif\iffixme@user +\newif\iffixme@index + +\def\fixme@text#1#2{% + \iffixme@inline\FXInline{#1}{#2}\fi% + \iffixme@margin\FXMargin{#1}{#2}\fi% + \iffixme@footnote\FXFootnote{#1}{#2}\fi% + \iffixme@user\FXUser{#1}{#2}\fi} + +\DeclareOption{inline}{\fixme@inlinetrue} +\DeclareOption{noinline}{\fixme@inlinefalse} +\DeclareOption{margin}{\fixme@margintrue} +\DeclareOption{nomargin}{\fixme@marginfalse} +\DeclareOption{footnote}{\fixme@footnotetrue} +\DeclareOption{nofootnote}{\fixme@footnotefalse} +\DeclareOption{user}{\fixme@usertrue} +\DeclareOption{nouser}{\fixme@userfalse} +\DeclareOption{index}{\fixme@indextrue} +\DeclareOption{noindex}{\fixme@indexfalse} + +\DeclareOption{info}{} +\DeclareOption{noinfo}{} +\DeclareOption{warning}{} +\DeclareOption{nowarning}{} + +\newcommand\FXNote[1]{% + \GenericInfo{% + (FiXme)\@spaces\@spaces\@spaces\@spaces}{% + Package FiXme Note: `#1'}} +\newcommand\FXWarning[1]{% + \PackageWarning{FiXme}{`#1'}} +\newcommand\FXError[1]{% + \GenericWarning{% + (FiXme)\@spaces\@spaces\@spaces\@spaces}{% + Package FiXme Error: `#1'}} +\newcommand\FXFatal[1]{% + \GenericWarning{% + (FiXme)\@spaces\@spaces\@spaces\@spaces}{% + Package FiXme: `#1'}} + +\newif\iffixme@silent + +%% Options that control whether to be silent or not: +\DeclareOption{silent}{\fixme@silenttrue} +\DeclareOption{nosilent}{\fixme@silentfalse} + +\newcounter{fixmecount} +\newcounter{fixmenotecount} +\newcounter{fixmewarningcount} +\newcounter{fixmeerrorcount} +\newcounter{fixmefatalcount} + +\newcommand*\fixmenoteprefix{} +\newcommand*\fixmenoteindexname{} +\def\fixme@note@draft#1{% + \fixme@text{\fixmenoteprefix}{#1}% + \iffixme@index\FXIndex{\fixmenoteindexname\thefixmenotecount: #1}\fi% + \iffixme@silent\else\FXNote{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmenoteprefix: #1}} +\def\fixme@note@final#1{% + \iffixme@silent\else\FXNote{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmenoteprefix: #1}} + +\newcommand*\fixmewarningprefix{} +\newcommand*\fixmewarningindexname{} +\def\fixme@warning@draft#1{% + \fixme@text{\fixmewarningprefix}{#1}% + \iffixme@index\FXIndex{\fixmewarningindexname\thefixmewarningcount: #1}\fi% + \iffixme@silent\else\FXWarning{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmewarningprefix: #1}} +\def\fixme@warning@final#1{% + \iffixme@silent\else\FXWarning{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmewarningprefix: #1}} + +\newcommand*\fixmeerrorprefix{} +\newcommand*\fixmeerrorindexname{} +\def\fixme@error@draft#1{% + \fixme@text{\fixmeerrorprefix}{#1}% + \iffixme@index\FXIndex{\fixmeerrorindexname\thefixmeerrorcount: #1}\fi% + \iffixme@silent\else\FXError{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmeerrorprefix: #1}} +\def\fixme@error@final#1{% + \iffixme@silent\else\FXError{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmeerrorprefix: #1}} + +\newcommand*\fixmefatalindexname{} +\def\fixme@fatal@draft#1{% + \iffixme@inline\FiXmeInline{#1}\fi% + \iffixme@margin\FiXmeMargin{#1}\fi% + \iffixme@footnote\FiXmeFootnote{#1}\fi% + \iffixme@user\FiXmeUser{#1}\fi% + \iffixme@index\FiXmeIndex{% + \fixmefatalindexname\thefixmefatalcount: #1}\fi% + \iffixme@silent\else\FXFatal{#1}\fi% + \addcontentsline{lox}{fixme}{\fixmefatalprefix: #1}} +\def\fixme@fatal@final#1{% + \PackageError{FiXme}{`#1' fixme left in final version}{% + You are processing your document in final mode,\MessageBreak + but you still have some critical FiXme's left behind.\MessageBreak + Type X to quit, fix your document, and rerun LaTeX.}} + +\def\@@fixme#1#2{% + \stepcounter{fixmecount}% + \stepcounter{fixme#1count}% + \csname fixme@#1\endcsname{#2}} +\def\@fixme#1[#2]#3{% + \bgroup% + \fixme@inlinefalse% + \fixme@marginfalse% + \fixme@footnotefalse% + \fixme@userfalse% + \fixme@indexfalse% + \@for\fixme@option:=#2\do{% + \expandafter\ifx\csname fixme@\fixme@option true\endcsname\relax + \PackageError{FiXme}{Unknown layout option `\fixme@option'}{% + You have given an invalid option to \string\fixme, % + or an \string\fx command.\MessageBreak + Valid options are `inline', `margin', `footnote' and `index'.% + \MessageBreak + Type X to quit, fix your document, and rerun LaTeX.}% + \else% + \csname fixme@\fixme@option true\endcsname% + \fi}% + \@@fixme{#1}{#3}% + \egroup} +\newcommand\fxnote{\@ifnextchar[%] + {\@fixme{note}}{\@@fixme{note}}} +\newcommand\fxwarning{\@ifnextchar[%] + {\@fixme{warning}}{\@@fixme{warning}}} +\newcommand\fxerror{\@ifnextchar[%] + {\@fixme{error}}{\@@fixme{error}}} +\newcommand\fixme{\@ifnextchar[%] + {\@fixme{fatal}}{\@@fixme{fatal}}} + +\newcommand\FXEnvBegin{\begin{quotation}} +\newcommand\FXEnvEnd{\end{quotation}} + +\def\@fxenvbegin@draft#1#2{% + \FXEnvBegin + \edef\fixme@args{inline\iffixme@index,index\fi}% + \csname#1\endcsname[\fixme@args]{#2}} +\def\@fxenvbegin@final#1#2{ + \edef\fixme@args{inline\iffixme@index,index\fi}% + \csname#1\endcsname[\fixme@args]{#2} + \comment +} + +\def\@fxenvend@draft{\FXEnvEnd} +\def\@fxenvend@final{\endcomment} + +\newenvironment{anfxnote}[1][]{% + \@fxenvbegin{fxnote}{#1}}{% + \@fxenvend} +\newenvironment{anfxwarning}[1][]{% + \@fxenvbegin{fxwarning}{#1}}{% + \@fxenvend} +\newenvironment{anfxerror}[1][]{% + \@fxenvbegin{fxerror}{#1}}{% + \@fxenvend} +\newenvironment{afixme}[1][]{% + \@fxenvbegin{fixme}{#1}}{% + \@fxenvend} + +\DeclareOption{english}{% + \renewcommand*\fixmenoteprefix{\fixmelogo\nobreakspace Note} + \renewcommand*\fixmewarningprefix{\fixmelogo\nobreakspace Warning} + \renewcommand*\fixmeerrorprefix{\fixmelogo\nobreakspace Error} + \renewcommand*\fixmefatalprefix{\fixmelogo} + \renewcommand*\fixmeindexname{\fixmelogo} + \renewcommand*\fixmenoteindexname{**a@Notes:!} + \renewcommand*\fixmewarningindexname{**b@Warnings:!} + \renewcommand*\fixmeerrorindexname{**c@Errors:!} + \renewcommand*\fixmefatalindexname{} + \renewcommand*{\listfixmename}{List of Corrections}} +\DeclareOption{french}{% + \renewcommand*\fixmenoteprefix{\fixmelogo\nobreakspace Note} + \renewcommand*\fixmewarningprefix{\fixmelogo\nobreakspace Attention} + \renewcommand*\fixmeerrorprefix{\fixmelogo\nobreakspace Erreur} + \renewcommand*\fixmefatalprefix{\fixmelogo} + \renewcommand*\fixmeindexname{\fixmelogo} + \renewcommand*\fixmenoteindexname{**a@Notes:!} + \renewcommand*\fixmewarningindexname{**b@Avertissements:!} + \renewcommand*\fixmeerrorindexname{**c@Erreurs:!} + \renewcommand*\fixmefatalindexname{} + \renewcommand*{\listfixmename}{Liste des Corrections}} +\DeclareOption{francais}{\ExecuteOptions{french}} +\DeclareOption{spanish}{% + \renewcommand*\fixmenoteprefix{\fixmelogo\nobreakspace Nota} + \renewcommand*\fixmewarningprefix{\fixmelogo\nobreakspace Aviso} + \renewcommand*\fixmeerrorprefix{\fixmelogo\nobreakspace Error} + \renewcommand*\fixmefatalprefix{\fixmelogo} + \renewcommand*\fixmeindexname{\fixmelogo} + \renewcommand*\fixmenoteindexname{**a@Notas:!} + \renewcommand*\fixmewarningindexname{**b@Avisos:!} + \renewcommand*\fixmeerrorindexname{**c@Errores:!} + \renewcommand*\fixmefatalindexname{} + \renewcommand*{\listfixmename}{Lista de Correcciones}} +\DeclareOption{italian}{% + \renewcommand*\fixmenoteprefix{\fixmelogo\nobreakspace Nota} + \renewcommand*\fixmewarningprefix{\fixmelogo\nobreakspace Avviso} + \renewcommand*\fixmeerrorprefix{\fixmelogo\nobreakspace Errore} + \renewcommand*\fixmefatalprefix{\fixmelogo} + \renewcommand*\fixmeindexname{\fixmelogo} + \renewcommand*\fixmenoteindexname{**a@Note:!} + \renewcommand*\fixmewarningindexname{**b@Avvisi:!} + \renewcommand*\fixmeerrorindexname{**c@Errori:!} + \renewcommand*\fixmefatalindexname{} + \renewcommand*{\listfixmename}{Corrigenda}} +\DeclareOption{german}{% + \renewcommand*\fixmenoteprefix{\fixmelogo\nobreakspace Anm} + \renewcommand*\fixmewarningprefix{\fixmelogo\nobreakspace Warnung} + \renewcommand*\fixmeerrorprefix{\fixmelogo\nobreakspace Fehler} + \renewcommand*\fixmefatalprefix{\fixmelogo} + \renewcommand*\fixmeindexname{\fixmelogo} + \renewcommand*\fixmenoteindexname{**a@Anmerkungen:!} + \renewcommand*\fixmewarningindexname{**b@Warnungen:!} + \renewcommand*\fixmeerrorindexname{**c@Fehler:!} + \renewcommand*\fixmefatalindexname{} + \renewcommand*{\listfixmename}{Verzeichnis der Korrekturen}} +\DeclareOption{ngerman}{% + \ExecuteOptions{german}} +\DeclareOption{danish}{% + \renewcommand*\fixmenoteprefix{\fixmelogo\nobreakspace Note} + \renewcommand*\fixmewarningprefix{\fixmelogo\nobreakspace Advarsel} + \renewcommand*\fixmeerrorprefix{\fixmelogo\nobreakspace Fejl} + \renewcommand*\fixmefatalprefix{\fixmelogo} + \renewcommand*\fixmeindexname{\fixmelogo} + \renewcommand*\fixmenoteindexname{**a@Noter:!} + \renewcommand*\fixmewarningindexname{**b@Advarsler:!} + \renewcommand*\fixmeerrorindexname{**c@Fejl:!} + \renewcommand*\fixmefatalindexname{} + \renewcommand*{\listfixmename}{Rettelser}} + +\DeclareOption{final}{ + \let\fixme@note\fixme@note@final + \let\fixme@warning\fixme@warning@final + \let\fixme@error\fixme@error@final + \let\fixme@fatal\fixme@fatal@final + \let\@fxenvbegin\@fxenvbegin@final + \let\@fxenvend\@fxenvend@final + \let\listoffixmes\listoffixmes@final + } + +\DeclareOption{draft}{ + \let\fixme@note\fixme@note@draft + \let\fixme@warning\fixme@warning@draft + \let\fixme@error\fixme@error@draft + \let\fixme@fatal\fixme@fatal@draft + \let\@fxenvbegin\@fxenvbegin@draft + \let\@fxenvend\@fxenvend@draft + \let\listoffixmes\listoffixmes@draft + \@ifclassloaded{article}{ + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@article + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@article + \let\l@fixme\l@fixme@article}{ + \@ifclassloaded{report}{ + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@report + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@report + \let\l@fixme\l@fixme@report}{ + \@ifclassloaded{book}{ + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@book + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@book + \let\l@fixme\l@fixme@book}{ + \@ifclassloaded{scrartcl}{ + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@scrartcl + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@scrartcl + \let\l@fixme\l@fixme@scrartcl}{ + \@ifclassloaded{scrreprt}{ + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@scrreprt + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@scrreprt + \let\l@fixme\l@fixme@scrreprt}{ + \@ifclassloaded{scrbook}{ + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@scrbook + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@scrbook + \let\l@fixme\l@fixme@scrbook}{ + %% Use the article layout by default. + \let\@listoffixmes@pretoc\@listoffixmes@pretoc@article + \let\@listoffixmes@posttoc\@listoffixmes@posttoc@article + \let\l@fixme\l@fixme@article} + } + } + } + } + } + } + +\ExecuteOptions{english,final,margin,nosilent} +\ProcessOptions* + +\AtBeginDocument{% + \ifx\FiXmeUser\empty + \renewcommand\FiXmeUser[1]{\FXUser{\fixmefatalprefix}{#1}} + \fi} + +\AtEndDocument{% + \GenericWarning{% + (FiXme)\@spaces\@spaces\@spaces\@spaces + }{% + Package FiXme Summary: Number of notes: \thefixmenotecount,\MessageBreak% + Number of warnings: \thefixmewarningcount,\MessageBreak% + Number of errors: \thefixmeerrorcount,\MessageBreak% + Number of fatal errors: \thefixmefatalcount,\MessageBreak% + Total: \thefixmecount\@gobble% + }} +\endinput +%% +%% End of file `fixme.sty'. -- cgit v1.2.3