summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc
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
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')
-rw-r--r--Master/texmf-dist/doc/man/man1/srcredact.1311
-rw-r--r--Master/texmf-dist/doc/man/man1/srcredact.man1.pdfbin0 -> 9850 bytes
-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
22 files changed, 1745 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/man/man1/srcredact.1 b/Master/texmf-dist/doc/man/man1/srcredact.1
new file mode 100644
index 00000000000..d8b2040ad6d
--- /dev/null
+++ b/Master/texmf-dist/doc/man/man1/srcredact.1
@@ -0,0 +1,311 @@
+.\" Automatically generated by Pod::Man 2.22 (Pod::Simple 3.07)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings. \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote. \*(C+ will
+.\" give a nicer C++. Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+. ds -- \(*W-
+. ds PI pi
+. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
+. ds L" ""
+. ds R" ""
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds -- \|\(em\|
+. ds PI \(*p
+. ds L" ``
+. ds R" ''
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.ie \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. nr % 0
+. rr F
+.\}
+.el \{\
+. de IX
+..
+.\}
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear. Run. Save yourself. No user-serviceable parts.
+. \" fudge factors for nroff and troff
+.if n \{\
+. ds #H 0
+. ds #V .8m
+. ds #F .3m
+. ds #[ \f1
+. ds #] \fP
+.\}
+.if t \{\
+. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+. ds #V .6m
+. ds #F 0
+. ds #[ \&
+. ds #] \&
+.\}
+. \" simple accents for nroff and troff
+.if n \{\
+. ds ' \&
+. ds ` \&
+. ds ^ \&
+. ds , \&
+. ds ~ ~
+. ds /
+.\}
+.if t \{\
+. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+. \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+. \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+. \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+. ds : e
+. ds 8 ss
+. ds o a
+. ds d- d\h'-1'\(ga
+. ds D- D\h'-1'\(hy
+. ds th \o'bp'
+. ds Th \o'LP'
+. ds ae ae
+. ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "SRCREDACT 1"
+.TH SRCREDACT 1 "2015-10-24" "1.0" "Text tools"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH "NAME"
+srcredact \- a program for redaction of text files
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+srcredact [\fI\s-1OPTIONS\s0\fR] \fB\-e\fR \fIaudience\fR [\fIfull_file\fR]
+.PP
+srcredact [\fI\s-1OPTIONS\s0\fR] \fB\-u\fR \fIaudience\fR \fIfull_file\fR [\fIredacted_file\fR]
+.PP
+srcredact \fB\-l\fR [\fIfull_file\fR]
+.PP
+srcredact \fB\-h|\-v\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBsrcredact\fR is the program to extract ``redacted versions'' of the
+master file (option \fB\-e\fR) or to incorporate the changes in the
+redacted versions into the master file (``unredact'', option \fB\-u\fR).
+.PP
+The master file consists of \fIchunks\fR intended for different
+audiences. Each audience has a \fIname\fR, e.g. \f(CW\*(C`classified\*(C'\fR,
+\&\f(CW\*(C`unclssified\*(C'\fR, \f(CW\*(C`expert\*(C'\fR etc. Chunks are started and stopped by
+\&\fIguard lines\fR. Each guard line has the format (for the default TeX
+syntax)
+.PP
+.Vb 1
+\& %<*name1|name2|...>
+.Ve
+.PP
+or
+.PP
+.Vb 1
+\& %</name1|name2|...>
+.Ve
+.PP
+In the first cases the text following the guard is \fIincluded\fR for the
+audiences \f(CW\*(C`name1\*(C'\fR, \f(CW\*(C`name2\*(C'\fR, .... In the second case it is
+\&\fIexcluded\fR for these audiences.
+.PP
+THere is a special audience \f(CW\*(C`ALL\*(C'\fR: a wild card for all audiences.
+Thus the idiom
+.PP
+.Vb 2
+\& %</ALL>
+\& %<*classified>
+.Ve
+.PP
+means that the chunk is excluded for all audiences but \f(CW\*(C`classified\*(C'\fR
+.PP
+Exactly one of the options \fB\-e\fR (extract) or \fB\-u\fR (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 \f(CW\*(C`\-\*(C'\fR, standard input is used.
+In the unextract mode the first non-option argument
+.SH "OPTIONS"
+.IX Header "OPTIONS"
+.IP "\fB\-c\fR \fIlist of comment patterns\fR" 4
+.IX Item "-c list of comment patterns"
+Use the given pattern for comment lines to search for guards instead
+of the default \f(CW\*(C`TeX\*(C'\fR pattern. The recognized patterns are:
+.RS 4
+.IP "\fBc\fR" 4
+.IX Item "c"
+.Vb 1
+\& /*<guard>*/
+.Ve
+.IP "\fBcpp\fR" 4
+.IX Item "cpp"
+.Vb 1
+\& //<guard>
+.Ve
+.IP "\fBfortran\fR" 4
+.IX Item "fortran"
+.Vb 1
+\& C<guard>
+.Ve
+.IP "\fBshell\fR" 4
+.IX Item "shell"
+.Vb 1
+\& #<guard>
+.Ve
+.IP "\fBTeX\fR" 4
+.IX Item "TeX"
+.Vb 1
+\& %<guard>
+.Ve
+.RE
+.RS 4
+.Sp
+The pattern names should be separated by commas, and the list may be
+enclosed in quotes to prevent shell expansion, e.g
+.Sp
+.Vb 1
+\& \-c "TeX, c, shell"
+.Ve
+.RE
+.IP "\fB\-d\fR" 4
+.IX Item "-d"
+Debug mode on.
+.IP "\fB\-e\fR \fIaudience\fR" 4
+.IX Item "-e audience"
+Extract the contents for the current audience into the file \fIfile\fR.
+The cuurent audience is guessed from the \fIfile\fR name, if the latter
+has the structure \fIbase\fR\-\fIaudience\fR.\fIextension\fR,
+e.g. \f(CW\*(C`report\-unclassified.tex\*(C'\fR. The key \fB\-a\fR overrides this guess
+and should be used if the file name does not follow this pattern. The
+file name \f(CW\*(C`\-\*(C'\fR means the standard output.
+.IP "\fB\-h\fR" 4
+.IX Item "-h"
+Print help information and exit.
+.IP "\fB\-l\fR" 4
+.IX Item "-l"
+List all audiences set in the file (one per line) and exit.
+.IP "\fB\-u\fR \fIaudience\fR" 4
+.IX Item "-u audience"
+Take a edited file intended for the \fIaudience\fR (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, \f(CW\*(C`\-\*(C'\fR also means
+standard input. Note that only one of the two file arguments in this
+case can be standard input.
+.IP "\fB\-v\fR" 4
+.IX Item "-v"
+Print version information and exit.
+.IP "\fB\-w\fR \fIon|off|1|0|true|false\fR" 4
+.IX Item "-w on|off|1|0|true|false"
+If \f(CW\*(C`on\*(C'\fR, \f(CW1\fR or \f(CW\*(C`true\*(C'\fR (the deafult), implicitly wrap the full
+document into the guards
+.Sp
+.Vb 3
+\& %<*ALL>
+\& ...
+\& %</ALL>
+.Ve
+.SH "RETURN VALUE"
+.IX Header "RETURN VALUE"
+The program returns 0 if successful, 1 if conflicts were found in the
+\&\f(CW\*(C`unextract\*(C'\fR mode and 2 in case of problems.
+.SH "CONFLICTS IN UNEXTRACT MODE"
+.IX Header "CONFLICTS IN UNEXTRACT MODE"
+Like the standard \fIdiff3\fR\|(1) tool, the program may find conflicts
+between the full version and the edited one in the \fB\-u\fR mode. Then
+the resulting file brackets the conflicts in the usual manner, e.g.
+.PP
+.Vb 10
+\& <<<<<<< /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
+.Ve
+.PP
+Here \f(CW\*(C`full\*(C'\fR is the full document, \f(CW\*(C`extracted\*(C'\fR is the extracted file
+for the given audience, \f(CW\*(C`new\*(C'\fR is the edited file.
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Boris Veytsman, borisv@lk.net
+.PP
+This work was commissioned by Consumer Financial Protection Bureau,
+United States Treasury.
+.SH "LICENSE AND COPYRIGHT"
+.IX Header "LICENSE AND COPYRIGHT"
+Copyright (C) 2015 Boris Veytsman. Version 1.0
+.PP
+This program is free software; you can redistribute it and/or modify
+it under the terms of the \s-1GNU\s0 General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+.PP
+This program is distributed in the hope that it will be useful, but
+\&\s-1WITHOUT\s0 \s-1ANY\s0 \s-1WARRANTY\s0; without even the implied warranty of
+\&\s-1MERCHANTABILITY\s0 or \s-1FITNESS\s0 \s-1FOR\s0 A \s-1PARTICULAR\s0 \s-1PURPOSE\s0. See the \s-1GNU\s0
+General Public License for more details.
+.PP
+You should have received a copy of the \s-1GNU\s0 General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \s-1MA\s0
+02110\-1301, \s-1USA\s0
diff --git a/Master/texmf-dist/doc/man/man1/srcredact.man1.pdf b/Master/texmf-dist/doc/man/man1/srcredact.man1.pdf
new file mode 100644
index 00000000000..810fab49865
--- /dev/null
+++ b/Master/texmf-dist/doc/man/man1/srcredact.man1.pdf
Binary files differ
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}