summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/support
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-10-25 22:41:38 +0000
committerKarl Berry <karl@freefriends.org>2015-10-25 22:41:38 +0000
commit4a0798e9378fdb2de85f56e1ef1d46653f86cc69 (patch)
treeb746b646538d7af86ae1c87e0b5c2ea708451885 /Master/texmf-dist/doc/support
parentf68a915f164bf116f1bb31ab3e1d9f5b94824e29 (diff)
srcredact (25oct15)
git-svn-id: svn://tug.org/texlive/trunk@38710 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/support')
-rw-r--r--Master/texmf-dist/doc/support/srcredact/Makefile80
-rw-r--r--Master/texmf-dist/doc/support/srcredact/README11
-rw-r--r--Master/texmf-dist/doc/support/srcredact/srcredact.pdfbin0 -> 118110 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/srcredact.pod185
-rw-r--r--Master/texmf-dist/doc/support/srcredact/srcredact.tex209
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain-edited.tex101
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1-default.pdfbin0 -> 92007 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1-default.tex102
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1-nobonds.pdfbin0 -> 81766 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1-nobonds.tex100
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1-uppercase.pdfbin0 -> 82486 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1-uppercase.tex102
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain1.tex118
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2-default.pdfbin0 -> 117166 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2-default.tex103
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2-nobonds.pdfbin0 -> 107245 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2-nobonds.tex101
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2-uppercase.pdfbin0 -> 107955 bytes
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2-uppercase.tex103
-rw-r--r--Master/texmf-dist/doc/support/srcredact/twain2.tex119
20 files changed, 1434 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/support/srcredact/Makefile b/Master/texmf-dist/doc/support/srcredact/Makefile
new file mode 100644
index 00000000000..9d55f72d653
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/Makefile
@@ -0,0 +1,80 @@
+PACKAGE=srcredact
+WD = $(shell pwd)
+CURRDIR = $(notdir ${WD})
+
+
+TEXFILES = srcredact.tex
+
+PODS = srcredact.pod
+
+MAN1 = ${PODS:%.pod=%.1}
+
+SAMPLEPDFS = \
+ twain1-default.pdf twain1-uppercase.pdf twain1-nobonds.pdf \
+ twain2-default.pdf twain2-uppercase.pdf twain2-nobonds.pdf
+
+DOCS = ${TEXFILES:%.tex=%.pdf} ${MAN1} ${SAMPLEPDFS}
+
+
+
+SCRIPTS = srcredact.pl
+
+
+
+all: ${DOCS}
+ perl -c ${SCRIPTS}
+ chmod a+x ${SCRIPTS}
+
+%.pdf: %.tex srcredact-man.tex
+ pdflatex $<
+ - for file in *.aux; do bibtex $$file; done
+ pdflatex $<
+ while ( grep -q '^LaTeX Warning: Label(s) may have changed' $*.log || \
+ grep -q '^Package pdfscreen Warning: TOC file not available' $*.log ||\
+ grep -q '^Package natbib Warning: Citation(s) may have changed' $*.log)\
+ do pdflatex $*; done
+
+srcredact-man.tex: srcredact.pod
+ pod2latex -out $@ -h1level 2 $<
+
+%.1: %.pod
+ pod2man -c "Text tools" -r "1.0" $< >$@
+
+twain1-%.tex: twain1.tex srcredact.pl
+ perl srcredact.pl -e $* twain1.tex > $@
+
+twain2-%.tex: twain2.tex srcredact.pl
+ perl srcredact.pl -e $* twain2.tex > $@
+
+twain2.tex: twain1.tex twain-edited.tex
+ perl srcredact.pl -u nobonds twain1.tex twain-edited.tex > $@
+
+clean:
+ $(RM) *.aux *.bbl *.dvi *.log *.out *.toc *.blg *.lof *.lot *.zip \
+ *.ps *.tgz depend *.4* *.css *.idv *.lg *.xref *~ *.tmp \
+ srcredact-man.tex
+
+
+.PRECIOUS: \
+ twain1-uppercase.tex twain1-default.tex twain1-nobonds.tex \
+ twain2-uppercase.tex twain2-default.tex twain2-nobonds.tex \
+ twain2.tex
+
+distclean: clean
+ $(RM) ${DOCS} *.1 twain1-* twain2*
+
+archive: all clean
+ cd ..; \
+ tar -czvf $(PACKAGE).tgz --exclude 'debug*' \
+ --exclude '*~' --exclude '*.tgz' --exclude '*.zip' \
+ --exclude CVS $(CURRDIR); \
+ mv $(PACKAGE).tgz $(CURRDIR); \
+ cd $(CURRDIR)
+
+
+zip: all clean
+ cd ..; \
+ zip -r $(PACKAGE).zip $(CURRDIR) \
+ -x 'debug*' -x '*~' -x '*.tgz' -x '*.zip' -x CVS -x '*/CVS/*'; \
+ mv $(PACKAGE).zip $(CURRDIR); \
+ cd $(CURRDIR)
diff --git a/Master/texmf-dist/doc/support/srcredact/README b/Master/texmf-dist/doc/support/srcredact/README
new file mode 100644
index 00000000000..c4c4187a0fe
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/README
@@ -0,0 +1,11 @@
+ A tool for redacting sources
+ Boris Veytsman
+ Version 1.0
+
+srcredact is a tool to keep a master source, consisting of different
+``chunks'' intended for different audiences. The tool allows to
+extract the versions intended for different audiences and to incorporate
+the changes made in any of these versions into the master document
+
+This work was commissioned by Consumer Financial Protection Bureau,
+United States Treasury.
diff --git a/Master/texmf-dist/doc/support/srcredact/srcredact.pdf b/Master/texmf-dist/doc/support/srcredact/srcredact.pdf
new file mode 100644
index 00000000000..a7bb5b36ea6
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/srcredact.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/srcredact.pod b/Master/texmf-dist/doc/support/srcredact/srcredact.pod
new file mode 100644
index 00000000000..4f690848f06
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/srcredact.pod
@@ -0,0 +1,185 @@
+=head1 NAME
+
+srcredact - a program for redaction of text files
+
+=head1 SYNOPSIS
+
+srcredact [I<OPTIONS>] B<-e> I<audience> [I<full_file>]
+
+srcredact [I<OPTIONS>] B<-u> I<audience> I<full_file> [I<redacted_file>]
+
+srcredact B<-l> [I<full_file>]
+
+srcredact B<-h|-v>
+
+=head1 DESCRIPTION
+
+B<srcredact> is the program to extract ``redacted versions'' of the
+master file (option B<-e>) or to incorporate the changes in the
+redacted versions into the master file (``unredact'', option B<-u>).
+
+The master file consists of I<chunks> intended for different
+audiences. Each audience has a I<name>, e.g. C<classified>,
+C<unclssified>, C<expert> etc. Chunks are started and stopped by
+I<guard lines>. Each guard line has the format (for the default TeX
+syntax)
+
+ %<*name1|name2|...>
+
+or
+
+ %</name1|name2|...>
+
+In the first cases the text following the guard is I<included> for the
+audiences C<name1>, C<name2>, .... In the second case it is
+I<excluded> for these audiences.
+
+THere is a special audience C<ALL>: a wild card for all audiences.
+Thus the idiom
+
+ %</ALL>
+ %<*classified>
+
+means that the chunk is excluded for all audiences but C<classified>
+
+Exactly one of the options B<-e> (extract) or B<-u> (unextract) must be
+present. In the extract mode the non-option argument is the name of
+the full file. If it is absent, or is C<->, standard input is used.
+In the unextract mode the first non-option argument
+
+=head1 OPTIONS
+
+=over 4
+
+
+=item B<-c> I<list of comment patterns>
+
+Use the given pattern for comment lines to search for guards instead
+of the default C<TeX> pattern. The recognized patterns are:
+
+=over 4
+
+=item B<c>
+
+ /*<guard>*/
+
+=item B<cpp>
+
+ //<guard>
+
+=item B<fortran>
+
+ C<guard>
+
+=item B<shell>
+
+ #<guard>
+
+=item B<TeX>
+
+ %<guard>
+
+=back
+
+The pattern names should be separated by commas, and the list may be
+enclosed in quotes to prevent shell expansion, e.g
+
+ -c "TeX, c, shell"
+
+=item B<-d>
+
+Debug mode on.
+
+=item B<-e> I<audience>
+
+Extract the contents for the current audience into the file I<file>.
+The cuurent audience is guessed from the I<file> name, if the latter
+has the structure I<base>-I<audience>.I<extension>,
+e.g. C<report-unclassified.tex>. The key B<-a> overrides this guess
+and should be used if the file name does not follow this pattern. The
+file name C<-> means the standard output.
+
+=item B<-h>
+
+Print help information and exit.
+
+=item B<-l>
+
+List all audiences set in the file (one per line) and exit.
+
+
+=item B<-u> I<audience>
+
+Take a edited file intended for the I<audience> (the second
+non-option argument) and incorporate the changes in it into the full
+file (the first non-option argument). If the second argument is
+missing, standard input is used instead. As usual, C<-> also means
+standard input. Note that only one of the two file arguments in this
+case can be standard input.
+
+=item B<-v>
+
+Print version information and exit.
+
+=item B<-w> I<on|off|1|0|true|false>
+
+If C<on>, C<1> or C<true> (the deafult), implicitly wrap the full
+document into the guards
+
+ %<*ALL>
+ ...
+ %</ALL>
+
+=back
+
+=head1 RETURN VALUE
+
+The program returns 0 if successful, 1 if conflicts were found in the
+C<unextract> mode and 2 in case of problems.
+
+=head1 CONFLICTS IN UNEXTRACT MODE
+
+Like the standard L<diff3(1)> tool, the program may find conflicts
+between the full version and the edited one in the B<-u> mode. Then
+the resulting file brackets the conflicts in the usual manner, e.g.
+
+ <<<<<<< /tmp/BrjXo0hMOB/full
+ %</nobonds>
+ Forty-five tons best old dry government bonds, suitable for furnace, gold
+ 7 per cents., 1864, preferred.
+ %<*nobonds>
+ ||||||| /tmp/BrjXo0hMOB/extracted
+ Forty-five tons best old dry government bonds, suitable for furnace, gold
+ 7 per cents., 1864, preferred.
+ =======
+ >>>>>>> /tmp/BrjXo0hMOB/new
+
+Here C<full> is the full document, C<extracted> is the extracted file
+for the given audience, C<new> is the edited file.
+
+=head1 AUTHOR
+
+Boris Veytsman, borisv@lk.net
+
+This work was commissioned by Consumer Financial Protection Bureau,
+United States Treasury.
+
+=head1 LICENSE AND COPYRIGHT
+
+Copyright (C) 2015 Boris Veytsman. Version 1.0
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA
+
diff --git a/Master/texmf-dist/doc/support/srcredact/srcredact.tex b/Master/texmf-dist/doc/support/srcredact/srcredact.tex
new file mode 100644
index 00000000000..5c1f27b2e73
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/srcredact.tex
@@ -0,0 +1,209 @@
+\documentclass{article}
+\usepackage[osf]{Baskervaldx} % tosf in text, tlf in math
+\usepackage[baskervaldx,bigdelims,vvarbb]{newtxmath} % math italic
+ % letters from Baskervaldx
+\usepackage[cal=boondoxo]{mathalfa} % mathcal from STIX, unslanted a
+ % bit
+\usepackage{inconsolata}
+\usepackage{fancyvrb}
+\usepackage{xcolor}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\def\Redbf{\color{red}\bfseries}
+\def\Red{\color{red}}
+\def\Greenbf{\color{green}\bfseries}
+\def\Green{\color{green}}
+\begin{document}
+\title{A tool for redacting the sources:
+ \textsl{srcredact}\thanks{This work was commissioned by the US Consumer
+ Financial Protection Bureau, United States Treasury}}
+\author{Boris Veytsman}
+\date{$ $Revision: 1.4 $ $Date: 2015/05/20 23:30:22 $ $}
+\maketitle
+
+\clearpage
+\tableofcontents
+
+\clearpage
+
+\section{Introduction}
+\label{sec:intro}
+
+Many documents containing confidential information exist in several
+versions: one for the general public, one for the limited audience (or
+even several confidential versions for the different audiences). In
+some cases the desire to have several versions of a document might be
+caused not by confidentiality, but by the different needs of
+audiences: e.g. an ``executive'' and ``research'' version of the same
+white paper.
+
+One can maintain several versions of the document separately, but this
+quickly becomes cumbersome and error-prone. At some point the
+versions drift away too much, and making them close again becomes a
+difficult and expensive task. This is a typical ``anti-pattern'',
+well known to programmers.
+
+Therefore the task is to enable the user to have a single source from
+which various versions of a document can be produced.
+
+There are different ways to achieve this effect. The
+\emph{output-level} redaction means that we have a specially marked
+source file, from which several different PDF files can be produced.
+
+The \emph{source-level} redaction means that we have one source file,
+also specially marked, from which several different \emph{sources} can
+be produced. This means that different co-authors can get different
+versions of a source file and work in their own versions of text.
+This is the approach taken by the present tool.
+
+One may consider the idea of different co-authors to have different
+versions of text to be rather strange. Why would an author to be
+denied the access to a part of her own text? However, there are
+situations where this idea is warranted. Suppose we have a report
+that has classified and non-classified parts. Suppose also that some
+non-classified parts are co-authored by experts that do not have the
+privilige to read (all or some) classified parts of the report. We
+want to enable their work on their parts without compromising the
+confidentiality of the whole.
+
+\LaTeX\ actually provides some facilities for this approach with its
+\verb|\input| and \verb|\include| mechanism. Indeed, one can put in
+the document:
+\begin{verbatim}
+classified text...
+
+\input{unclassified-part}
+
+classified tex
+\end{verbatim}
+However, this mechanism allows only limited control over the sources.
+
+The program \textsl{srcredact} is intended to provide a more
+fine-grained control over the included and excluded parts.
+
+\section{Concept of Operation}
+\label{sec:concept}
+
+Let us first discuss a document, that has two versions: classified and
+unclassified one. There are two modes for creation of such document
+with the package \textsl{srcredact}. In the first mode the master
+file is a valid \TeX\ file, which provides the full version of the
+document, and the redacted version is the file with certain parts
+omitted (Figure~\ref{fig:master1st}). In the second mode some parts
+of the redacted version are \emph{not} present in the unredacted
+version (Figure~\ref{fig:master2nd}). These two modes determine two
+work flows. In the first case flow we run \textsl{latex} on the
+document to get the full version, \emph{or} \textsl{srcredact} and
+then \textsl{latex} to get the redacted (unclassified) version
+(Figure~\ref{fig:flow1st}). In the second case we run
+\textsl{srcredact} (with different options) to get either classified
+or unclassified versions of the package (Figure~\ref{fig:flow2nd}).
+
+\begin{figure}
+ \centering
+ \begin{Verbatim}[commandchars=+^_]
+\documentclass{article}
+
+\begin{document}
+Common text
++Redbf%<*!unclassified>
++Red^_Classified text
++Redbf%</!unclassified>
+\end{document}
+ \end{Verbatim}
+ \caption{Master document in the first mode}
+ \label{fig:master1st}
+\end{figure}
+
+\begin{figure}
+ \centering
+ \begin{Verbatim}[commandchars=+^_]
+%<*ALL>
+\documentclass{article}
+
+\begin{document}
+Common text
+%</ALL>
++Redbf%<*classified>
++Red^_Classified version of the text
++Redbf%</!classified>
++Greenbf%<*unclassified>
++Green^_Unclassified version of the text
++Greenbf%</unclassified>
+%<*ALL>
+\end{document}
+%</ALL>
+ \end{Verbatim}
+ \caption{Master document in the second mode}
+ \label{fig:master2nd}
+\end{figure}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[draw, rectangle, on grid, color=red] (filetex)
+ {\color{red}\bfseries file.tex};
+ \node[draw, ellipse, below=2cm of filetex, on grid,
+ color=red] (filepdf) {\color{red}file.pdf};
+ \draw[arrows=-latex] (filetex) -- node [right] {\textsl{latex}}
+ (filepdf);
+ \node[draw,rectangle, right=2 cm of filetex, on grid, color=green]
+ (redactedtex) {\color{green}file-unclassified.tex};
+ \draw[arrows=-latex] (filetex) -- node[above] {\textsl{srcredact}}
+ (redactedtex);
+ \node[draw, ellipse, below=2 cm of redactedtex, on grid,
+ color=green] (redactedpdf) {\color{green}file-unclassified.pdf};
+ \draw[arrows=-latex] (redactedtex) -- node [right] {\textsl{latex}}
+ (redactedpdf);
+ \end{tikzpicture}
+ \caption{Work flow in the first mode. The red color corresponds to
+ the classified material, the green color to the unclassified one.}
+ \label{fig:flow1st}
+\end{figure}
+
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[draw, rectangle, on grid, color=red] (filetex)
+ {\color{red}\bfseries file.tex};
+ \node[draw,rectangle, left=2 cm of filetex, on grid, color=red]
+ (secrettex) {\color{red}file-classified.tex};
+ \draw[arrows=-latex] (filetex) -- node[above] {\textsl{srcredact}}
+ (secrettex);
+ \node[draw, ellipse, below=2cm of secrettex, on grid,
+ color=red] (secretpdf) {\color{red}file-classified.pdf};
+ \draw[arrows=-latex] (secrettex) -- node [right] {\textsl{latex}}
+ (secretpdf);
+ \node[draw,rectangle, right=2 cm of filetex, on grid, color=green]
+ (redactedtex) {\color{green}file-unclassified.tex};
+ \draw[arrows=-latex] (filetex) -- node[above] {\textsl{srcredact}}
+ (redactedtex);
+ \node[draw, ellipse, below=2 cm of redactedtex, on grid,
+ color=green] (redactedpdf) {\color{green}file-unclassified.pdf};
+ \draw[arrows=-latex] (redactedtex) -- node [right] {\textsl{latex}}
+ (redactedpdf);
+ \end{tikzpicture}
+ \caption{Work flow in the second mode. The red color corresponds to
+ the classified material, the green color to the unclassified one.}
+ \label{fig:flow2nd}
+\end{figure}
+
+In a more complex case we can have more than two versions of the
+document, for example, intended for different audiences. In all cases
+we can either plan to a ``full'' version, obtained by \textsl{latex}'ing
+the master document, or to assume that no version is the superset of
+all other versions, and thus we need \textsl{srcredact} to get any
+version of the document.
+
+\section{\textsl{srcredact} man page}
+\label{sec:manpage}
+
+The following is the manual page of \textsl{srcredact} tool.
+
+\input{srcredact-man}
+
+%\bibliographystyle{unsrt}
+%\bibliography{srcredact}
+
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain-edited.tex b/Master/texmf-dist/doc/support/srcredact/twain-edited.tex
new file mode 100644
index 00000000000..9ec1fdf86e7
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain-edited.tex
@@ -0,0 +1,101 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson\footnote{Now a neighborhood in Bronx},
+ October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+nobonds.
+
+This document is updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+\emph{Mark Twain, Who will be very grateful, and will vote right.}
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1-default.pdf b/Master/texmf-dist/doc/support/srcredact/twain1-default.pdf
new file mode 100644
index 00000000000..9ef36b17170
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1-default.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1-default.tex b/Master/texmf-dist/doc/support/srcredact/twain1-default.tex
new file mode 100644
index 00000000000..39fbd0fc5d9
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1-default.tex
@@ -0,0 +1,102 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson, October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+default.
+
+This document is not updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+\textsc{the hon. the secretary of the treasury, washington, d.~c.:}
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+Forty-five tons best old dry government bonds, suitable for furnace, gold
+7 per cents., 1864, preferred.
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+Mark Twain, Who will be very grateful, and will vote right.
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1-nobonds.pdf b/Master/texmf-dist/doc/support/srcredact/twain1-nobonds.pdf
new file mode 100644
index 00000000000..f08bb08cb39
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1-nobonds.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1-nobonds.tex b/Master/texmf-dist/doc/support/srcredact/twain1-nobonds.tex
new file mode 100644
index 00000000000..c38e1b75baa
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1-nobonds.tex
@@ -0,0 +1,100 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson, October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+nobonds.
+
+This document is not updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+Mark Twain, Who will be very grateful, and will vote right.
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1-uppercase.pdf b/Master/texmf-dist/doc/support/srcredact/twain1-uppercase.pdf
new file mode 100644
index 00000000000..f25a6bdbb8c
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1-uppercase.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1-uppercase.tex b/Master/texmf-dist/doc/support/srcredact/twain1-uppercase.tex
new file mode 100644
index 00000000000..76ad14ca0d7
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1-uppercase.tex
@@ -0,0 +1,102 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson, October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+uppercase.
+
+This document is not updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+Forty-five tons best old dry government bonds, suitable for furnace, gold
+7 per cents., 1864, preferred.
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+Mark Twain, Who will be very grateful, and will vote right.
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain1.tex b/Master/texmf-dist/doc/support/srcredact/twain1.tex
new file mode 100644
index 00000000000..dff4182ff9d
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain1.tex
@@ -0,0 +1,118 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson, October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+%</uppercase|nobonds>
+default.
+%</ALL>
+%<*uppercase>
+uppercase.
+%</uppercase>
+%<*nobonds>
+nobonds.
+%<*ALL>
+
+This document is not updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+%</ALL>
+%<*uppercase|nobonds>
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+%<*ALL>
+%</uppercase|nobonds>
+\textsc{the hon. the secretary of the treasury, washington, d.~c.:}
+%<*ALL>
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+%</nobonds>
+Forty-five tons best old dry government bonds, suitable for furnace, gold
+7 per cents., 1864, preferred.
+%<*nobonds>
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+Mark Twain, Who will be very grateful, and will vote right.
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2-default.pdf b/Master/texmf-dist/doc/support/srcredact/twain2-default.pdf
new file mode 100644
index 00000000000..664f103f1a5
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2-default.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2-default.tex b/Master/texmf-dist/doc/support/srcredact/twain2-default.tex
new file mode 100644
index 00000000000..1eef073ddfa
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2-default.tex
@@ -0,0 +1,103 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson\footnote{Now a neighborhood in Bronx},
+ October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+default.
+
+This document is updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+\textsc{the hon. the secretary of the treasury, washington, d.~c.:}
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+Forty-five tons best old dry government bonds, suitable for furnace, gold
+7 per cents., 1864, preferred.
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+\emph{Mark Twain, Who will be very grateful, and will vote right.}
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2-nobonds.pdf b/Master/texmf-dist/doc/support/srcredact/twain2-nobonds.pdf
new file mode 100644
index 00000000000..e938ed24fb6
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2-nobonds.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2-nobonds.tex b/Master/texmf-dist/doc/support/srcredact/twain2-nobonds.tex
new file mode 100644
index 00000000000..9ec1fdf86e7
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2-nobonds.tex
@@ -0,0 +1,101 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson\footnote{Now a neighborhood in Bronx},
+ October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+nobonds.
+
+This document is updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+\emph{Mark Twain, Who will be very grateful, and will vote right.}
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2-uppercase.pdf b/Master/texmf-dist/doc/support/srcredact/twain2-uppercase.pdf
new file mode 100644
index 00000000000..a412cfc68dc
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2-uppercase.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2-uppercase.tex b/Master/texmf-dist/doc/support/srcredact/twain2-uppercase.tex
new file mode 100644
index 00000000000..5bce736c283
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2-uppercase.tex
@@ -0,0 +1,103 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson\footnote{Now a neighborhood in Bronx},
+ October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+uppercase.
+
+This document is updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+Forty-five tons best old dry government bonds, suitable for furnace, gold
+7 per cents., 1864, preferred.
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+\emph{Mark Twain, Who will be very grateful, and will vote right.}
+\end{document}
diff --git a/Master/texmf-dist/doc/support/srcredact/twain2.tex b/Master/texmf-dist/doc/support/srcredact/twain2.tex
new file mode 100644
index 00000000000..aae41372098
--- /dev/null
+++ b/Master/texmf-dist/doc/support/srcredact/twain2.tex
@@ -0,0 +1,119 @@
+\documentclass{article}
+\usepackage{tikz}
+\usetikzlibrary{positioning,shapes}
+\begin{document}
+\title{A Letter to the Secretary of the Treasury}
+\author{Mark Twain}
+\date{Riverdale-on-the-Hudson\footnote{Now a neighborhood in Bronx},
+ October 15, 1902}
+\maketitle
+
+\begin{quotation}
+ \em
+ This document consists of three versions:
+ \begin{description}
+ \item[uppercase:] the salutation is in uppercase.
+ \item[nobonds:] the salutation is in uppercase, and the paragraph
+ about government bonds omitted.
+ \item[default:] the salutation is in small caps, and the paragraph
+ about government bonds included.
+ \end{description}
+ There are also updated versions of all three documents, which
+ include the description of the Riverdale. The update is done in the
+ nobonds version, and then propagated to the other versions of the
+ document. This is shown on Figure~\ref{fig:flow}.
+
+ This document' version is
+%</uppercase|nobonds>
+default.
+%</ALL>
+%<*uppercase>
+uppercase.
+%</uppercase>
+%<*nobonds>
+nobonds.
+%<*ALL>
+
+This document is updated.
+\end{quotation}
+
+\begin{figure}
+ \centering
+ \begin{tikzpicture}
+ \node[on grid] (twain1) {\color{blue}twain1.tex};
+ \node[on grid, below= 2cm of twain1] (twain1-nobonds)
+ {\color{red}twain1-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain1-nobonds] (twain1-default)
+ {\color{red}twain1-default.tex};
+ \node[on grid, right= 3.5cm of twain1-nobonds] (twain1-uppercase)
+ {\color{red}twain1-uppercase.tex};
+ \node[on grid, below= 2cm of twain1-nobonds] (twainedited)
+ {\color{blue}twain-edited.tex};
+ \node[on grid, below= 2cm of twainedited] (twain2)
+ {\color{green}twain2.tex};
+ \node[on grid, below= 2cm of twain2] (twain2-nobonds)
+ {\color{red}twain2-nobonds.tex};
+ \node[on grid, left= 3.5cm of twain2-nobonds] (twain2-default)
+ {\color{red}twain2-default.tex};
+ \node[on grid, right= 3.5cm of twain2-nobonds] (twain2-uppercase)
+ {\color{red}twain2-uppercase.tex};
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain1-default);
+ \draw[arrows=-latex, color=red] (twain1) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain1-nobonds);
+ \draw[arrows=-latex, color=red] (twain1) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain1-uppercase);
+ \draw[arrows=-latex, color=blue] (twain1-nobonds) -- node[right]
+ {\scriptsize Manual editing} (twainedited);
+ \draw[arrows=-latex, color=green] (twainedited) -- node[right]
+ (unredact) {\scriptsize srcredact -u nobonds} (twain2);
+ \coordinate[above=of twain1] (above1);
+ \coordinate[right=2 cm of twain1-uppercase] (right-uppercase);
+ \draw[arrows=-latex, color=green, style=dashed] (twain1)
+ -- (above1) -| (right-uppercase) |- (unredact);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e default}
+ (twain2-default);
+ \draw[arrows=-latex, color=red] (twain2) -- node[right]
+ {\scriptsize srcredact -e nobonds} (twain2-nobonds);
+ \draw[arrows=-latex, color=red] (twain2) -|
+ node[below=1cm, right] {\scriptsize srcredact -e uppercase}
+ (twain2-uppercase);
+ \end{tikzpicture}
+ \caption{Document workflow. \textcolor{blue}{Blue}---manual edits,
+ \textcolor{red}{Red}---generated by srcredact in extract mode,
+ \textcolor{green}{Green}---generated by srcredact in unextract mode.}
+ \label{fig:flow}
+\end{figure}
+
+%</ALL>
+%<*uppercase|nobonds>
+THE HON. THE SECRETARY OF THE TREASURY, WASHINGTON, D.~C.:
+%<*ALL>
+%</uppercase|nobonds>
+\textsc{the hon. the secretary of the treasury, washington, d.~c.:}
+%<*ALL>
+
+Sir,---Prices for the customary kinds of winter fuel having reached an
+altitude which puts them out of the reach of literary persons in
+straitened circumstances, I desire to place with you the following order:
+
+%</nobonds>
+Forty-five tons best old dry government bonds, suitable for furnace, gold
+7 per cents., 1864, preferred.
+%<*nobonds>
+
+Twelve tons early greenbacks, range size, suitable for cooking.
+
+Eight barrels seasoned 25 and 50 cent postal currency, vintage of 1866,
+eligible for kindlings.
+
+Please deliver with all convenient despatch at my house in Riverdale at
+lowest rates for spot cash, and send bill to
+
+Your obliged servant,
+
+\emph{Mark Twain, Who will be very grateful, and will vote right.}
+\end{document}