From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/ed/Makefile | 7 + macros/latex/contrib/ed/README | 12 + macros/latex/contrib/ed/ed.dtx | 563 +++++++++++++++++++++++++++++++++++ macros/latex/contrib/ed/ed.ins | 33 ++ macros/latex/contrib/ed/ed.pdf | Bin 0 -> 291503 bytes macros/latex/contrib/ed/ed.sty | 145 +++++++++ macros/latex/contrib/ed/ed.sty.ltxml | 28 ++ 7 files changed, 788 insertions(+) create mode 100644 macros/latex/contrib/ed/Makefile create mode 100644 macros/latex/contrib/ed/README create mode 100644 macros/latex/contrib/ed/ed.dtx create mode 100644 macros/latex/contrib/ed/ed.ins create mode 100644 macros/latex/contrib/ed/ed.pdf create mode 100644 macros/latex/contrib/ed/ed.sty create mode 100644 macros/latex/contrib/ed/ed.sty.ltxml (limited to 'macros/latex/contrib/ed') diff --git a/macros/latex/contrib/ed/Makefile b/macros/latex/contrib/ed/Makefile new file mode 100644 index 0000000000..6a0a1e5b6d --- /dev/null +++ b/macros/latex/contrib/ed/Makefile @@ -0,0 +1,7 @@ +PREFIX = ../../lib +PACKAGE = ed +DTX.sty.base = ed + +include $(PREFIX)/Makefile.vars +include $(PREFIX)/Makefile.in + diff --git a/macros/latex/contrib/ed/README b/macros/latex/contrib/ed/README new file mode 100644 index 0000000000..7e34bf69a8 --- /dev/null +++ b/macros/latex/contrib/ed/README @@ -0,0 +1,12 @@ +Ed.sty: Editorial Notes for LaTeX Documents + +This package defines a couple of editorial notes that simplify collaboration on a LaTeX +text. These allow authors to annotate status information in the source. In draft mode, the +annotations are shown for communication, and in publication mode these are suppressed. + +Copyright(c) 2011 Michael Kohlhase +The package is distributed under the terms of the LaTeX Project Public License (LPPL) + +The development version of this package can be found at +https://svn.kwarc.info/repos/kwarc/doc/macros/ed + diff --git a/macros/latex/contrib/ed/ed.dtx b/macros/latex/contrib/ed/ed.dtx new file mode 100644 index 0000000000..918756b1c3 --- /dev/null +++ b/macros/latex/contrib/ed/ed.dtx @@ -0,0 +1,563 @@ +% \iffalse meta-comment +% Editorial Notes for LaTeX +% Copyright (c) 2009 Michael Kohlhase, all rights reserved +% +% This file is distributed under the terms of the LaTeX Project Public +% License from CTAN archives in directory macros/latex/base/lppl.txt. +% Either version 1.0 or, at your option, any later version. +% +% The development version of this file can be found at +% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/ed/ed.dtx $ +% \fi +% +% \iffalse +%\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%\ProvidesPackage{ed}[2012/01/29 v1.8 Editorial Notes] +% +%<*driver> +\documentclass[twoside]{ltxdoc} +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\begin,\AtEndDocument,\newcommand,\newcounter,\stepcounter} +\DoNotIndex{\immediate,\openout,\closeout,\message,\typeout} +\DoNotIndex{\section,\scshape,\arabic} +\EnableCrossrefs +%\CodelineIndex +%\OnlyDescription +\RecordChanges +\usepackage{textcomp,url,a4wide} +\usepackage[show]{ed} +\usepackage[eso-foot,today,draft]{svninfo} +\usepackage{hyperref} +%\makeindex +\begin{document} +\svnInfo $Id: ed.dtx 23125 2012-01-29 12:15:08Z kohlhase $ +\svnKeyword $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/ed/ed.dtx $ +\DocInput{ed.dtx} +\end{document} +% +% \fi +% +%\CheckSum{409} +% +% \changes{v1.0}{2005/06/23}{First Version with Documentation} +% \changes{v1.1}{2005/10/03}{Added capitalized variants} +% \changes{v1.2}{2007/05/10}{adding todo environment} +% \changes{v1.3}{2007/10/03}{rationalizing todo environment} +% \changes{v1.4}{2007/11/12}{localization} +% \changes{v1.5}{2008/06/08}{todolist now uses enumerate} +% \changes{v1.6}{2009/06/18}{nomargins option} +% \changes{v1.6}{2009/06/24}{deprecated issue for edissue to get around name clashes.} +% \changes{v1.6}{2009/10/29}{made ednotemessage automatic} +% \changes{v1.7}{2011/01/16}{adding final/draft options} +% \changes{v1.8}{2012/01/29}{adding \texttt{edstub} environment} +% +% \GetFileInfo{ed.sty} +% +% \MakeShortVerb{\|} +% \title{Editorial Notes for {\LaTeX}\thanks{Version {\fileversion} (last revised +% {\filedate})}} +% \author{Michael Kohlhase\\ +% Computer Science, Jacobs University\\ +% \url{http://kwarc.info/kohlhase}} +% \maketitle +% +% \begin{abstract} +% This package defines a couple of editorial notes that simplify collaboration on a +% {\LaTeX} text. These allow authors to annotate status information in the source. In +% draft mode, the annotations are shown for communication, and in publication mode these +% are suppressed. +% \end{abstract} +% +% \tableofcontents\newpage +% +% \section{Introduction}\label{sec:intro} +% +% When collaborating on a document with multiple authors, communication about the status +% of a given passage and intentions about what to do with it, indications about issues +% still need to be resolved, and directives to other authors, e.g. calling for help, or +% passing the baton, etc. make up much of the overhead involved in collaboration. In +% particular, many of the necessary communicative acts are centered around specific points +% or passages in the document at hand. Therefore it is natural to embed the communicative +% acts in the document source itself. The simplest version of this is to special markers +% like ``(*** remember to rework this before publication ***)'', where the markers +% ``(***'' and ``***)'' serve as a visual aid and target for search and navigation tools +% in the editor. Of course this is dangerous, and we have all seen published texts with +% such markers still present. +% +% The {\LaTeX} package described in here systematizes the idea and provides more conspicuous +% visual markers (as footnotes and margin notes) and a way of making all all of these +% private markers and comments invisible for publication or outside communication. +% +% \section{The User Interface}\label{sec:user-interface} +% +% \subsection{Package Options} +% +% As usual in {\LaTeX}, the package is loaded by |\usepackage[|\meta{options}|]{ed}|, +% where |[|\meta{options}|]| is optional and gives a comma separated list of options. The +% |ed| package takes the options \DescribeMacro{show}|show| and +% \DescribeMacro{hide}|hide|, where |hide| is the default case, so that |\usepackage{ed}|, +% is equivalent to |\usepackage[hide]{ed}|. If the |show| option is given, then the +% editorial notes are presented as special annotations to the document, otherwise they are +% completely invisible --- if you take care about spaces in the source code. For instance +% |text|\textvisiblespace|\ednote{|\ldots|}|\textvisiblespace|text| will fool {\TeX}'s +% whitespace-collapsing algorithm and bring it to output two spaces in the document +% instead of just one as expected |text\ednote{|\ldots|}|\textvisiblespace|text| should be +% used instead! This |hide| option useful for preparing ``clean'' version for outside +% consumption without losing the management metadata. In some situations the |\marginpar| +% decorations generated by editorial notes are disallowed, for these situations the |ed| +% package has the \DescribeMacro{nomargins}|nomargins| option that disables them. +% +% As many classes support the \DescribeMacro{draft}|draft| and +% \DescribeMacro{final}|final| options and pass them on to all loaded packages that will +% take them, the |ed| package supports them as aliases for |show| and |hide|. +% +% \subsection{Annotation Macros} +% +% \DescribeMacro{\ednote} The main user macro of this package is |\ednote|. It is used say +% what you have done or what should still be done at a given point in the document. +% |ed.sty| formats it like a footnote, but with a margin note that marks the place in the +% text, where the note is located. Otherwise, in the presence of multiple |\ednote|s in a +% page it may be difficult to find the referenced locations\ednote{this is an example of +% an ednote}. Editorial notes are numbered and marked in the margin for easy +% recognition. |\ednote| also takes an optional argument that is an identifier. This +% allows to cross-reference ednotes in each other. +% +% \DescribeMacro{\edissue} The |\edissue| macro\edissue{The control sequence\textbf{issue} +% conflicts with many other macro packages, maybe we should rename it to +% \textbf{edissue}.} is a variant of |\ednote| for issues that still have to be +% discussed among the authors. For issues the labeling and cross-referencing in the +% optional argument is especially useful. Note that the \DescribeMacro{\issue}|\issue| +% macro which earlier versions of the |ed| package provided is deprecated in favor of +% |\edissue|. The old |\issue| macro is only provided for backwards compatibility if it is +% not defined by other packages. For this to work, the |ed| package should be loaded late +% in the preamble. +% +% \DescribeMacro{\tweak} The |\tweak| macro\tweak{this is an example of an tweak} is a +% variant of |\ednote| for marking places where we have tweaked something (apart from the +% standard way we usually use). +% +% \DescribeEnv{todo} The |todo| environment is an environment that can be used to mark up +% writing tasks. These are inserted into the text in a different font, so that they are +% conspicuous as a foreign part, and take an argument for a comment. +% +% \DescribeEnv{todolist} The |todolist| is a variant of the |todo| environment which is a +% is an itemized list. +% +% The following is an example, generated form the the input +% |\begin{todolist}{an example todolist}| \ldots |\item| \ldots |\end{todolist}|. +% \begin{todolist}{an example todolist} +% \item lots of good examples +% \item a general chapter about best practices +% \end{todolist} +% +% \DescribeEnv{newpart}\DescribeEnv{oldpart} the |newpart| environment can be used to mark +% up changed text blocks. |\beg||in{newpart}| takes an argument that is interpreted as a +% comment and is treated like an |\ednote| comment. The |oldpart| environment is similar +% to |newpart| but is used for old parts of text copied from another document that still +% need to be changed in a document. They displayed in gray, so that they can be identified +% better. +% +% The annotation macros have capitalized variants (|\Ednote|, |\edIssue|, |\Tweak|, +% |Todo|, |Newpart|, |Oldpart|) that do not make location marks in the margin. This is +% convenient in situations (e.g. inside boxes or minipages) that allow footnotes, but no +% margin notes. +% +% \subsection{Stubs and External Files} +% +% In some collaborative editing situations not all participants are willing to write +% {\LaTeX}, but insist on developing their proposal parts in some other word procesing +% software. The |ed| class offers the \DescribeEnv{edstub}|edstub| environment: +% +% |\begin{edstub}[|\meta{exp}|]{|\meta{file}|}| marks the content of the environment as +% provisional (e.g. by turning it blue) and lists an external file (\meta{file}) as the +% original. Here, \meta{exp} is an optional reformulation of the default desription +% ``The following blue text''. The following stub +% +% \begin{edstub}{stub.doc} +% here are some provisional ideas +% \end{edstub} +% +% is generated by +% +% \begin{verbatim} +% \begin{edstub}{stub.doc} +% here are some provisional ideas +% \end{edstub} +% \end{verbatim} +% +% For hyperlinking \meta{file} the \DescribeMacro{edstubURI}|edstubURI| can be used to set +% a URI: After setting |\edstubURI{|\meta{URI}|}| with a non-empty URI, \meta{file} is +% hyperlinked to \meta{URI}|/|\meta{file}. If \meta{file} is in the same directory as the +% current document, use |\edstubURI{.}|. +% +% \subsection{Generating Statistics and Explanations} +% +% \DescribeMacro{\ednotemessage} Up to version 1.6, the |ed| package had an explicit macro +% |\ednotemessage| that put just before the |\end||{document}| will generates a message +% with cardinality information for the ednotes into the log file. This macro is now +% deprecated, since the message is now automatically generated. +% +% \DescribeMacro{\edexplanation} The |\edexplanation| macro generates an explanation of the +% best practices into the document. So that if you introduce collaboration partners to the +% |ed| package, you can give them an explanation ``in-place''. +% +% \subsection{Configuration} +% +% \DescribeMacro{\ednoteshape} The font shape of editorial annotations is governed by the +% parameter |\ednoteshape| the default is sans serif, specialize it to say italic by +% |\def\ednoteshape{\it}|. The labels in the margins can be tweaked (e.g. for +% localization:) by setting the (internal) macros |\ednote@label|, |\tweak@label|, +% |\edissue@label|, |\b@todo@label|, |\e@todo@label|. +% +% \subsection{Best Practices} +% +% In a situation with multiple authors, we it is advisable to use the |\ednote| in the +% following form: |\ednote{author: some explanatory text}| to specify the originator of the +% note. +% +% \StopEventually{\newpage\PrintChanges}\newpage +% +% \section{The Implementation} +% +% The implementation is rather standard. We first set up the options for the package. +% +% \subsection{Package Options} +% +% The main switch is |\showednotes|, which governs the visibility of the annotations. +% \begin{macrocode} +%<*package> +\newif\ifshowednotes\showednotesfalse +\newif\ifmargins\marginstrue +% \end{macrocode} +% the next step is to declare the package options, they just set |\showednotes| switch +% accordingly. +% \begin{macrocode} +\DeclareOption{show}{\showednotestrue\message{ed.sty: showing ednotes}} +\DeclareOption{hide}{\showednotesfalse\message{ed.sty: hiding ednotes}} +\DeclareOption{draft}{\showednotestrue\message{ed.sty: showing ednotes}} +\DeclareOption{final}{\showednotesfalse\message{ed.sty: hiding ednotes}} +\DeclareOption{nomargins}{\marginsfalse} +\ProcessOptions +% \end{macrocode} +% The next step is to load the |verbatim| or |paralist| packages, so that we can either +% comment out the or use the |compactenum| environment for todo lists. +% \begin{macrocode} +\ifshowednotes +\RequirePackage{paralist} +\RequirePackage{xcolor} +\else +\RequirePackage{verbatim} +\fi +% \end{macrocode} +% This ends the package setup code, so we can come to the implementation of the +% functionality of the package. +% +% \subsection{Annotation Macros} +% +% \begin{macro}{\ednoteshape} +% We start with the configuration part, predefining +% |\epdnoteshape| to be sans serif. +% \begin{macrocode} +\newcommand\ednoteshape{\sffamily} +% \end{macrocode} +% \end{macro} +% +% The next step is to set up a counter for the editorial annotations +% \begin{macrocode} +\newcounter{ednote} +% \end{macrocode} +% +% \begin{macro}{\ed@foot} +% The internal macro |\ed@foot| is used to actually make the annotations, it is used +% by the interface macros to give the annotations. It takes three arguments: A comment +% text that goes into the footnote, a type descriptor, and an identifiers. +% \begin{macrocode} +\newcommand\ed@foot[3]% text, type, label +{\def\@test{#3}\footnotetext[\arabic{ednote}]% +{{\scshape{#2}\if\@test\@empty\else\label{ed:#3}[{#3}]\fi:} \ednoteshape #1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ed@footnote} +% extends the |\ed@foot| to a complete footnote +% \begin{macrocode} +\newcommand\ed@footnote[3]{\footnotemark[\arabic{ednote}]\ed@foot{#1}{#2}{#3}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ed@margin} +% The internal macro |\ed@margin| makes a |\marginpar| annotation if allowed. +% \begin{macrocode} +\newcommand\ed@margin[1]{\ifmargins\marginpar{#1}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Ed@note} +% Another internal macro |\Ed@note| adds label management to |\ed@foot| +% \begin{macrocode} +\newcommand\Ed@note[3]% text, type, label +{\addtocounter{ednote}{1}\message{#2!}% +\ifshowednotes\ed@footnote{#1}{#2}{#3}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ed@note} +% |\ed@note| is a variant of |\Ed@note| that also makes an identifying mark in the +% margin. +% \begin{macrocode} +\newcommand\ed@note[4]% text, type, label, margin +{\Ed@note{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\arabic{ednote}}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ednotelabel} +% \begin{macrocode} +\newcommand\ednote@label{EdNote} +\newcommand\ednote@margin{EdN} +\newcommand\ednotelabel[1]{\def\ednote@label{#1}} +\newcommand\ednotemargin[1]{\def\ednote@margin{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ednote} +% with the |\Ed@note| and |\ed@note| macros it is very simple to get the desired +% functionality of |\Ednote| and |\ednote|: +% \begin{macrocode} +\newcommand{\Ednote}[2][]{\Ed@note{#2}\ednote@label{#1}} +\newcommand{\ednote}[2][]{\ed@note{#2}\ednote@label{#1}\ednote@margin} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tweaklabel} +% \begin{macrocode} +\newcommand\tweaklabel[1]{\def\tweak@label{#1}} +\newcommand\tweak@label{Tweak} +\newcommand\tweakmargin[1]{\def\tweak@margin{#1}} +\newcommand\tweak@margin{Tw} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tweak} +% and of course for |\tweak|: +% \begin{macrocode} +\newcommand{\tweak}[2][]{\ed@note{#2}\tweak@label{#1}\tweak@margin} +\newcommand{\Tweak}[2][]{\Ed@note{#2}\tweak@label{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\edissuelabel} +% \begin{macrocode} +\newcommand\edissue@label{Issue} +\newcommand\edissuelabel[1]{\def\edissue@label{#1}} +\newcommand\edissue@margin{Is} +\newcommand\edissuemargin[1]{\def\edissue@margin{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\edissue} +% \begin{macrocode} +\providecommand{\issue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin} +\providecommand{\Issue}[2][]{\Ed@note{#2}\edissue@label{#1}} +\newcommand{\edissue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin} +\newcommand{\edIssue}[2][]{\Ed@note{#2}\edissue@label{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{Ed@part} +% For the text status environments |Newpart| and |Oldpart| we also set up an internal +% macro that does the work. +% \begin{macrocode} +\newenvironment{Ed@part}[3]% text, mess, start +{\addtocounter{ednote}{1}\edef\new@number{\theednote}\message{#2!\new@number} +\ifshowednotes\ed@foot{#1}{#2}{}\fi} +{} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{ed@part} +% and one that makes the marginpars. +% \begin{macrocode} +\def\ed@part#1#2#3#4% text, mess, start, margin +{\Ed@part{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\new@number}\fi} +\def\ended@part#1{\endEd@part\ifshowednotes\ed@margin{#1:\new@number}\fi} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{newpartlabels} +% \begin{macrocode} +\newcommand\b@newpart@label{BegNP}\newcommand\e@newpart@label{EndNP} +\newcommand\b@newpart@margin{BNP}\newcommand\e@newpart@margin{ENP} +\newcommand\newpartmargins[2]{\def\b@newpart@margin{#1}\def\e@newpart@margin{#2}} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{newpart} +% We instantiate it for the |newpart| environment +% \begin{macrocode} +\newenvironment{Newpart}[1]{\Ed@part{#1}{New Part}\b@newpart@label}{\endEd@part} +\newenvironment{newpart}[1]{\ed@part{#1}{New Part}\b@newpart@label\b@newpart@margin}{\ended@part\e@newpart@margin} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{oldpartlabels} +% \begin{macrocode} +\newcommand\oldpartlabels[2]{\def\b@oldpart@label{#1}\def\e@oldpart@label{#2}} +\newcommand\oldpartmargins[2]{\def\b@oldpart@margin{#1}\def\e@oldpart@margin{#2}} +\newcommand\b@oldpart@label{BegOP}\newcommand\e@oldpart@label{EndOP} +\newcommand\b@oldpart@margin{BOP}\newcommand\e@oldpart@margin{EOP} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{oldpart} +% and of course for the |oldpart| environment +% \begin{macrocode} +\newenvironment{Oldpart}[1]% +{\Ed@part{#1}{Old Part}\b@oldpart@label\ifshowednotes\color{gray}\fi} +{\endEd@part} +\newenvironment{oldpart}[1]% +{\ed@part{#1}{Old Part}\b@oldpart@label\b@oldpart@margin\ifshowednotes\color{gray}\fi} +{\ended@part\e@oldpart@margin} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{todolabel} +% \begin{macrocode} +\newcommand\todolabels[2]{\def\b@todo@label{#1}\def\e@todo@label{#2}} +\newcommand\todomargins[2]{\def\b@todo@margin{#1}\def\e@todo@margin{#2}} +\newcommand\b@todo@label{ToDo}\newcommand\e@todo@label{Done} +\newcommand\b@todo@margin{ToDo}\newcommand\e@todo@margin{Done} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{todo} +% How we define the |todo| environment depends on the |\showednotes| switch (or the +% package option). If we hide annotations, |todo| is set to |comment| from the +% |comment| package, otherwise the body is set in sans serif font for emphasis. +% \begin{macrocode} +\newenvironment{Todo}[1]% +{\Ed@part{#1}{To Do}\b@todo@label\ifshowednotes\bgroup\ednoteshape\else\comment\fi} +{\endEd@part\e@todo@label\ifshowednotes\egroup\else\endcomment\fi} +\newenvironment{todo}[1]% +{\ed@part{#1}{To Do}\b@todo@label\b@todo@margin\ifshowednotes\bgroup\ednoteshape\else\comment\fi} +{\ended@part\e@todo@margin\ifshowednotes\egroup\else\endcomment\fi} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{todolist} +% How we define the |todolist| environment depends on the |\showednotes| switch (or the +% package option). If we hide annotations, |todolist| is set to |comment| from the +% |comment| package, otherwise it is set to an itemize. +% \begin{macrocode} +\newenvironment{Todolist}[1]{% the comment +\ifshowednotes\message{todolist!}{{\ednoteshape To Do: #1}}\bgroup\ednoteshape\begin{compactenum}% +\else\comment% +\fi} +{\ifshowednotes\end{compactenum}\egroup\else\endcomment\fi} +\newenvironment{todolist}[1]{\ifshowednotes\ed@margin{{\ednoteshape ToDo}}\Todolist{#1}\fi} +{\endTodolist} +% \end{macrocode} +% \end{environment} +% +% \begin{environment}{musings} +% \begin{macrocode} +\newenvironment{musings}{\ifshowednotes\color{blue}\fi}{} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\edstubURI} +% \begin{macrocode} +\def\ed@stubURI{} +\newcommand\edstuURI[1]{\gdef\ed@stubURI{#1}} +% \end{macrocode} +% \end{macro} +% +% \subsection{Stubs and External Files} +% +% \begin{environment}{edstub} +% \begin{macrocode} +\newif\ifhref\hreffalse +\AtBeginDocument{\@ifpackageloaded{hyperref}{\hreftrue}{\hreffalse}} +\newenvironment{edstub}[2][] +{\def\@test{#1}\begin{center}\huge\color{red} +\ifx\@test\@empty The following blue text \else #1 \fi is only a provisional stub\\\Large +the Office document +\ifx\ed@stubURI\@empty{#2}\else\ifhref\href{\ed@stubURI}{#2}\else{#2}\fi\fi\ +contains more text\\which will be merged for the final document + \end{center}\color{blue}} +{} +% \end{macrocode} +% \end{environment} +% +% +% \subsection{Generating Statistics and Explanations} +% +% \begin{macro}{\ednotemessage} +% The |\@ednotemessage| makes use of the counter |ednote| and generates a message. +% \begin{macrocode} +\newcommand\@ednotemessage{\ifnum\value{ednote}>0\typeout{}% +\typeout{There are still \arabic{ednote} EdNotes, New/Oldparts, and Issues to resolve!}% +\typeout{}\fi} +% \end{macrocode} +% we output it automtatically at the end of the log file. +% \begin{macrocode} +\AtEndDocument{\@ednotemessage} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\ednotemessage} +% The old |\ednotemessage| is now deprecated +% \begin{macrocode} +\newcommand\ednotemessage{\PackageWarning{ed}{The `\ednotemessage' macro is obsolete, the message + is generated automatically now.}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\edexplanation} +% The |\edexplanation| macro makes use of the |todolist| environment. +% \begin{macrocode} +\newcommand\edexplanation{\todolist{we will use the ednote system to communicate} +\item use the {\tt{\char92ednote\char123author: some explanatory text\char125}} + like a footnote to say what you have done or what should still be + done\ednote{MiKo: this is an example of an ednote}. Ednotes are numbered and + marked in the margin for easy recognition. +\item use the {\tt{\char92issue\char123author: explanation of the + issue\char125}} variant of ednote for issues\issue{this is an example of + an issue} that still have to be discussed. +\item finally, the {\tt{todolist}} environment is a list environment that can be + used to mark up todo lists. This explanation is an example of a todo list, it + is inserted into the text in a different font. +\item the {\tt{newpart}} environment can be used to mark up changed text blocks. + {\tt{\char92begin\char123newpart\char125}} takes an argument that is + interpreted as a comment and is treated like an {\tt{\char92ednote}} comment. +\item the {\tt{oldpart}} environment is similar to {\tt{newpart}} but is used + for old parts of text copied from another document that still need to be + changed in a document. +\item putting the macro {\tt{\char92ednotemessage}} just before the + {\tt{char92end\char123document\char125}} will generate a message with + cardinality information for the ednotes into the log file. +\item all of these text decorations and meta-annotations are only inserted into + the text, if the {\tt{show}} package option in the {\tt{\char92 usepackage}} + directive in the preamble of the document is set: {\tt{\char92 + usepackage[show]\char123ed\char125}} will show the decorations, while + {\tt{\char92 usepackage\char123ed\char125}} will not. This is useful for + preparing ``clean'' version for outside consumption without loosing the + management metadata. +\endtodolist} +% +% \end{macrocode} +% \end{macro} +% \Finale +\endinput + +% LocalWords: LPPL dtx ednote ednotes todolist newpart oldpart serif todo ToDo +% LocalWords: EdNote BegNP EndNP BegOP EndOP EdNotes MiKo ednotemessage textbf +% LocalWords: usepackage kohlhase HeadURL iffalse nomargins edissue maketitle +% LocalWords: fileversion textvisiblespace textvisiblespace marginpar newif +% LocalWords: DescribeEnv edexplanation edexplanation ednoteshape showednotes +% LocalWords: ifshowednotes showednotesfalse ifmargins marginstrue compactenum +% LocalWords: showednotestrue marginsfalse xcolor epdnoteshape sffamily endnew +% LocalWords: newcounter footnotetext scshape addtocounter footnotemark bgroup +% LocalWords: ednotelabel tweaklabel edissuelabel providecommand theednote +% LocalWords: newpartlabels newenvironment oldpartlabels todolabel egroup +% LocalWords: endcomment endtodo endtodolist ifnum typeout Oldparts +% LocalWords: automtatically diff --git a/macros/latex/contrib/ed/ed.ins b/macros/latex/contrib/ed/ed.ins new file mode 100644 index 0000000000..49d19d4d52 --- /dev/null +++ b/macros/latex/contrib/ed/ed.ins @@ -0,0 +1,33 @@ +%% +%% This file generates files required to use the ed package. +%% At your command prompt write +%% +%% latex ed.ins +%% +%% Copyright(c) 2007 Michael Kohlhase +%% The development version of this file can be found at +%% $HeadURL: https://svn.kwarc.info/repos/kwarc/doc/macros/forCTAN/ed/ed.ins $ +%% +%% This file is distributed under the terms of the LaTeX Project Public +%% License from CTAN archives in directory macros/latex/base/lppl.txt. +%% Either version 1.0 or, at your option, any later version. +%% +\input docstrip +\preamble +\endpreamble + +%\usedir{tex/latex/listings} +\keepsilent +\askforoverwritefalse + +% generate base package +\generate{\file{ed.sty}{\from{ed.dtx}{package}}} + +\Msg{*} +\Msg{* You probably need to move the file ed.sty into a directory searched by TeX.} +\Msg{*} +\Msg{* And don't forget to refresh your filename database} +\Msg{* if your TeX distribution uses such a database.} +\Msg{*} + +\endbatchfile diff --git a/macros/latex/contrib/ed/ed.pdf b/macros/latex/contrib/ed/ed.pdf new file mode 100644 index 0000000000..0aaa84fe26 Binary files /dev/null and b/macros/latex/contrib/ed/ed.pdf differ diff --git a/macros/latex/contrib/ed/ed.sty b/macros/latex/contrib/ed/ed.sty new file mode 100644 index 0000000000..fdc38fd63f --- /dev/null +++ b/macros/latex/contrib/ed/ed.sty @@ -0,0 +1,145 @@ +%% +%% This is file `ed.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% ed.dtx (with options: `package') +%% +\NeedsTeXFormat{LaTeX2e}[1999/12/01] +\ProvidesPackage{ed}[2012/01/29 v1.8 Editorial Notes] +\newif\ifshowednotes\showednotesfalse +\newif\ifmargins\marginstrue +\DeclareOption{show}{\showednotestrue\message{ed.sty: showing ednotes}} +\DeclareOption{hide}{\showednotesfalse\message{ed.sty: hiding ednotes}} +\DeclareOption{draft}{\showednotestrue\message{ed.sty: showing ednotes}} +\DeclareOption{final}{\showednotesfalse\message{ed.sty: hiding ednotes}} +\DeclareOption{nomargins}{\marginsfalse} +\ProcessOptions +\ifshowednotes +\RequirePackage{paralist} +\RequirePackage{xcolor} +\else +\RequirePackage{verbatim} +\fi +\newcommand\ednoteshape{\sffamily} +\newcounter{ednote} +\newcommand\ed@foot[3]% text, type, label +{\def\@test{#3}\footnotetext[\arabic{ednote}]% +{{\scshape{#2}\if\@test\@empty\else\label{ed:#3}[{#3}]\fi:} \ednoteshape #1}} +\newcommand\ed@footnote[3]{\footnotemark[\arabic{ednote}]\ed@foot{#1}{#2}{#3}} +\newcommand\ed@margin[1]{\ifmargins\marginpar{#1}\fi} +\newcommand\Ed@note[3]% text, type, label +{\addtocounter{ednote}{1}\message{#2!}% +\ifshowednotes\ed@footnote{#1}{#2}{#3}\fi} +\newcommand\ed@note[4]% text, type, label, margin +{\Ed@note{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\arabic{ednote}}\fi} +\newcommand\ednote@label{EdNote} +\newcommand\ednote@margin{EdN} +\newcommand\ednotelabel[1]{\def\ednote@label{#1}} +\newcommand\ednotemargin[1]{\def\ednote@margin{#1}} +\newcommand{\Ednote}[2][]{\Ed@note{#2}\ednote@label{#1}} +\newcommand{\ednote}[2][]{\ed@note{#2}\ednote@label{#1}\ednote@margin} +\newcommand\tweaklabel[1]{\def\tweak@label{#1}} +\newcommand\tweak@label{Tweak} +\newcommand\tweakmargin[1]{\def\tweak@margin{#1}} +\newcommand\tweak@margin{Tw} +\newcommand{\tweak}[2][]{\ed@note{#2}\tweak@label{#1}\tweak@margin} +\newcommand{\Tweak}[2][]{\Ed@note{#2}\tweak@label{#1}} +\newcommand\edissue@label{Issue} +\newcommand\edissuelabel[1]{\def\edissue@label{#1}} +\newcommand\edissue@margin{Is} +\newcommand\edissuemargin[1]{\def\edissue@margin{#1}} +\providecommand{\issue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin} +\providecommand{\Issue}[2][]{\Ed@note{#2}\edissue@label{#1}} +\newcommand{\edissue}[2][]{\ed@note{#2}\edissue@label{#1}\edissue@margin} +\newcommand{\edIssue}[2][]{\Ed@note{#2}\edissue@label{#1}} +\newenvironment{Ed@part}[3]% text, mess, start +{\addtocounter{ednote}{1}\edef\new@number{\theednote}\message{#2!\new@number} +\ifshowednotes\ed@foot{#1}{#2}{}\fi} +{} +\def\ed@part#1#2#3#4% text, mess, start, margin +{\Ed@part{#1}{#2}{#3}\ifshowednotes\ed@margin{#4:\new@number}\fi} +\def\ended@part#1{\endEd@part\ifshowednotes\ed@margin{#1:\new@number}\fi} +\newcommand\b@newpart@label{BegNP}\newcommand\e@newpart@label{EndNP} +\newcommand\b@newpart@margin{BNP}\newcommand\e@newpart@margin{ENP} +\newcommand\newpartmargins[2]{\def\b@newpart@margin{#1}\def\e@newpart@margin{#2}} +\newenvironment{Newpart}[1]{\Ed@part{#1}{New Part}\b@newpart@label}{\endEd@part} +\newenvironment{newpart}[1]{\ed@part{#1}{New Part}\b@newpart@label\b@newpart@margin}{\ended@part\e@newpart@margin} +\newcommand\oldpartlabels[2]{\def\b@oldpart@label{#1}\def\e@oldpart@label{#2}} +\newcommand\oldpartmargins[2]{\def\b@oldpart@margin{#1}\def\e@oldpart@margin{#2}} +\newcommand\b@oldpart@label{BegOP}\newcommand\e@oldpart@label{EndOP} +\newcommand\b@oldpart@margin{BOP}\newcommand\e@oldpart@margin{EOP} +\newenvironment{Oldpart}[1]% +{\Ed@part{#1}{Old Part}\b@oldpart@label\ifshowednotes\color{gray}\fi} +{\endEd@part} +\newenvironment{oldpart}[1]% +{\ed@part{#1}{Old Part}\b@oldpart@label\b@oldpart@margin\ifshowednotes\color{gray}\fi} +{\ended@part\e@oldpart@margin} +\newcommand\todolabels[2]{\def\b@todo@label{#1}\def\e@todo@label{#2}} +\newcommand\todomargins[2]{\def\b@todo@margin{#1}\def\e@todo@margin{#2}} +\newcommand\b@todo@label{ToDo}\newcommand\e@todo@label{Done} +\newcommand\b@todo@margin{ToDo}\newcommand\e@todo@margin{Done} +\newenvironment{Todo}[1]% +{\Ed@part{#1}{To Do}\b@todo@label\ifshowednotes\bgroup\ednoteshape\else\comment\fi} +{\endEd@part\e@todo@label\ifshowednotes\egroup\else\endcomment\fi} +\newenvironment{todo}[1]% +{\ed@part{#1}{To Do}\b@todo@label\b@todo@margin\ifshowednotes\bgroup\ednoteshape\else\comment\fi} +{\ended@part\e@todo@margin\ifshowednotes\egroup\else\endcomment\fi} +\newenvironment{Todolist}[1]{% the comment +\ifshowednotes\message{todolist!}{{\ednoteshape To Do: #1}}\bgroup\ednoteshape\begin{compactenum}% +\else\comment% +\fi} +{\ifshowednotes\end{compactenum}\egroup\else\endcomment\fi} +\newenvironment{todolist}[1]{\ifshowednotes\ed@margin{{\ednoteshape ToDo}}\Todolist{#1}\fi} +{\endTodolist} +\newenvironment{musings}{\ifshowednotes\color{blue}\fi}{} +\def\ed@stubURI{} +\newcommand\edstuURI[1]{\gdef\ed@stubURI{#1}} +\newif\ifhref\hreffalse +\AtBeginDocument{\@ifpackageloaded{hyperref}{\hreftrue}{\hreffalse}} +\newenvironment{edstub}[2][] +{\def\@test{#1}\begin{center}\huge\color{red} +\ifx\@test\@empty The following blue text \else #1 \fi is only a provisional stub\\\Large +the Office document +\ifx\ed@stubURI\@empty{#2}\else\ifhref\href{\ed@stubURI}{#2}\else{#2}\fi\fi\ +contains more text\\which will be merged for the final document + \end{center}\color{blue}} +{} +\newcommand\@ednotemessage{\ifnum\value{ednote}>0\typeout{}% +\typeout{There are still \arabic{ednote} EdNotes, New/Oldparts, and Issues to resolve!}% +\typeout{}\fi} +\AtEndDocument{\@ednotemessage} +\newcommand\ednotemessage{\PackageWarning{ed}{The `\ednotemessage' macro is obsolete, the message + is generated automatically now.}} +\newcommand\edexplanation{\todolist{we will use the ednote system to communicate} +\item use the {\tt{\char92ednote\char123author: some explanatory text\char125}} + like a footnote to say what you have done or what should still be + done\ednote{MiKo: this is an example of an ednote}. Ednotes are numbered and + marked in the margin for easy recognition. +\item use the {\tt{\char92issue\char123author: explanation of the + issue\char125}} variant of ednote for issues\issue{this is an example of + an issue} that still have to be discussed. +\item finally, the {\tt{todolist}} environment is a list environment that can be + used to mark up todo lists. This explanation is an example of a todo list, it + is inserted into the text in a different font. +\item the {\tt{newpart}} environment can be used to mark up changed text blocks. + {\tt{\char92begin\char123newpart\char125}} takes an argument that is + interpreted as a comment and is treated like an {\tt{\char92ednote}} comment. +\item the {\tt{oldpart}} environment is similar to {\tt{newpart}} but is used + for old parts of text copied from another document that still need to be + changed in a document. +\item putting the macro {\tt{\char92ednotemessage}} just before the + {\tt{char92end\char123document\char125}} will generate a message with + cardinality information for the ednotes into the log file. +\item all of these text decorations and meta-annotations are only inserted into + the text, if the {\tt{show}} package option in the {\tt{\char92 usepackage}} + directive in the preamble of the document is set: {\tt{\char92 + usepackage[show]\char123ed\char125}} will show the decorations, while + {\tt{\char92 usepackage\char123ed\char125}} will not. This is useful for + preparing ``clean'' version for outside consumption without loosing the + management metadata. +\endtodolist} +\endinput +%% +%% End of file `ed.sty'. diff --git a/macros/latex/contrib/ed/ed.sty.ltxml b/macros/latex/contrib/ed/ed.sty.ltxml new file mode 100644 index 0000000000..ba0a792883 --- /dev/null +++ b/macros/latex/contrib/ed/ed.sty.ltxml @@ -0,0 +1,28 @@ +# -*- CPERL -*- +# /=======================================================\ # +# | ed.sty - Implementation for LaTeXML | # +# | | # +# |=======================================================| # +# | Part of LaTeXML : http://dlmf.nist.gov/LaTeXML/ | # +# | Copyright (c) 2006 arXMLiv group | # +# | Released under the GNU Public License | # +# \=======================================================/ # + +package LaTeXML::Package::Pool; +use strict; +use LaTeXML::Package; +DefConstructor('\ednote[]{}',''); +DefConstructor('\Ednote[]{}',''); +DefConstructor('\tweak[]{}',''); +DefConstructor('\Tweak[]{}',''); +DefConstructor('\issue[]{}',''); +DefConstructor('\Issue[]{}',''); +DefEnvironment('{newpart}[]','#body'); +DefEnvironment('{Newpart}[]','#body'); +DefEnvironment('{oldpart}[]','#body'); +DefEnvironment('{Oldpart}[]','#body'); +DefEnvironment('{todo}[]',''); +DefEnvironment('{Todo}[]',''); +DefConstructor('\ednotemessage',''); +#********************************************************************** +1; -- cgit v1.2.3