From: Don Armstrong Date: Sat, 26 Aug 2006 03:11:13 +0000 (+0000) Subject: add fixme.sty and el X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=de6219d8585ea2d4dce2da7731964dfd76ff311a;p=lib.git add fixme.sty and el --- diff --git a/emacs_el/fixme.el b/emacs_el/fixme.el new file mode 100644 index 0000000..2cacb79 --- /dev/null +++ b/emacs_el/fixme.el @@ -0,0 +1,96 @@ +;;; fixme.el --- AUC-TeX style file for FiXme + +;; Copyright (C) 2000, 2002, 2004 Didier Verna. + +;; Author: Didier Verna +;; Maintainer: Didier Verna +;; Created: Tue Apr 18 14:49:29 2000 +;; Last Revision: Tue Oct 19 18:07:27 2004 +;; Keywords: tex abbrev data + +;; 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 all files listed in the file `README'. + + +;;; Commentary: + +;; Contents management by FCM version 0.1-b2. + + +;;; Code: + +(TeX-add-style-hook "fixme" + (function + (lambda () + (TeX-add-symbols + '("fixmelogo") + + '("listoffixmes") + '("listfixmename") + + '("FXInline") + '("FXMargin") + '("FXFootnote") + '("FXUser") + '("fixmeindexname") + '("FXIndex") + + '("FXNote") + '("FXWarning") + '("FXError") + '("FXFatal") + + '("fixmenoteprefix") + '("fixmenoteindexname") + '("fixmewarningprefix") + '("fixmewarningindexname") + '("fixmeerrorprefix") + '("fixmeerrorindexname") + '("fixmefatalprefix") + '("fixmefatalindexname") + + '("thefixmecount") + '("thefixmenotecount") + '("thefixmewarningcount") + '("thefixmeerrorcount") + '("thefixmefatalcount") + + '("fxnote" [ "Layout" ] "Note") + '("fxwarning" [ "Layout" ] "Warning") + '("fxerror" [ "Layout" ] "Error") + '("fixme" [ "Layout" ] "FiXme") + + ;; Obsolete stuff: + '("FiXmeInline") + '("FiXmeMargin") + '("FiXmeFootnote") + '("FiXmeIndex") + '("FiXmeInfo") + '("FiXmeWarning") + '("FiXmeUser") + ) + (LaTeX-add-environments + '("anfxnote") + '("anfxwarning") + '("anfxerror") + '("afixme") + ) + ))) + + + + +;;; Local variables: +;;; eval: (put 'TeX-add-style-hook 'lisp-indent-function 1) +;;; End: + +;;; fixme.el ends here diff --git a/texmf/tex/latex/fixme.sty b/texmf/tex/latex/fixme.sty new file mode 100644 index 0000000..f7a7271 --- /dev/null +++ b/texmf/tex/latex/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'.