summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2019-06-26 20:54:50 +0000
committerKarl Berry <karl@freefriends.org>2019-06-26 20:54:50 +0000
commitdba0f5037696e767fd0d21de0e1819bd51ecfcc4 (patch)
treec846ca7cf8362ce5c311c1dde97a7f6c4dd6aa74
parentef68825bf79172e303b8f8dab68dade8a8546aa5 (diff)
subdocs (26jun19)
git-svn-id: svn://tug.org/texlive/trunk@51480 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/subdocs/README.md44
-rw-r--r--Master/texmf-dist/tex/latex/subdocs/subdocs.sty159
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check3
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/subdocs.tlpsrc0
5 files changed, 206 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/subdocs/README.md b/Master/texmf-dist/doc/latex/subdocs/README.md
new file mode 100644
index 00000000000..70ef693ae89
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/subdocs/README.md
@@ -0,0 +1,44 @@
+
+An alternative to \include's for large works consisting of
+several subdocuments. Still alpha.
+
+This is a tentative package aiming to provide a different approach
+for multidocument works (mainly, books with a document per chapter).
+Unlike the \include mechanism, every subdocument is a complete LaTeX
+document and can be typeset separately. What the package does is
+sharing the aux files. It's still an alpha version, and no attempt
+has been done yet to make it to work with, say, hyperref.
+
+This approach has the following advantages:
+1) Packages can be loaded just when a part requires them.
+2) Generated pdf/dvi/ps files are kept.
+
+You need a driver tex file containing a \subdocuments command
+listing the files. With an optional argument you can set
+its behaviour:
+
+\subdocuments[clear=double]{file1, file2, file3}
+
+The option clear=double adds an empty page at the end to give a even
+number of pages. clear=single doesn't and it's the default. Spaces
+and new lines before and after commas are ignored, as well as empty
+items. It relies on the keyval package, so names containing = must
+be given within braces.
+
+This file can be used as a shared preample, with common settings
+for all the documents.
+
+Documents must have the folowing line:
+
+\usepackage[master]{subdocs}
+
+where master is the name of the file described above.
+
+Since every subdocument reads all the aux files, \tableofcontents
+may be used where desired.
+
+License: MIT
+________
+Javier Bezos --- http://www.texnia.com
+
+
diff --git a/Master/texmf-dist/tex/latex/subdocs/subdocs.sty b/Master/texmf-dist/tex/latex/subdocs/subdocs.sty
new file mode 100644
index 00000000000..9cb64cbbd07
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/subdocs/subdocs.sty
@@ -0,0 +1,159 @@
+%
+% Copyright (C) 2009-2019 Javier Bezos http://www.texnia.com
+%
+% This file may be distributed and/or modified under the conditions of
+% the MIT License. A version can be found at the end of this file.
+%
+%
+% Usage
+% ~~~~~
+%
+% This is a tentative package aiming to provide a different approach
+% for multidocument works (mainly, books with a document per chapter).
+% Unlike the \include mechanism, every subdocument is a complete LaTeX
+% document and can be typeset separately. What the package does is
+% sharing the aux files. It's still an alpha version, and no attempt
+% has been done yet to make it to work with, say, hyperref.
+%
+% This approach has the following advantages:
+% 1) Packages can be loaded just when a part requires them.
+% 2) Generated pdf/dvi/ps files are kept.
+%
+% You need a driver tex file containing a \subdocuments command
+% listing the files. With an optional argument you can set
+% its behaviour:
+%
+% \subdocuments[clear=double]{file1, file2, file3}
+%
+% The option clear=double adds an empty page at the end to give a even
+% number of pages. clear=single doesn't and it's the default. Spaces
+% and new lines before and after commas are ignored, as well as empty
+% items. It relies on the keyval package, so names containing = must
+% be given within braces.
+%
+% This file can be used as a shared preample, with common settings
+% for all the documents.
+%
+% Documents must have the folowing line:
+%
+% \usepackage[master]{subdocs}
+%
+% where master is the name of the file described above.
+%
+% Since every subdocument reads all the aux files, \tableofcontents
+% may be used where desired.
+%
+% Code
+% ~~~~
+
+\ProvidesPackage{subdocs}[2009/06/12 v0.1 Subdocuments]
+
+\RequirePackage{keyval}
+
+% Los dos siguientes son lo encargados de hacer lo que
+% normalmente hace \include.
+
+\AtBeginDocument{%
+ \if@filesw
+ \immediate\write\@auxout{\noexpand\sdoc@readaux}%
+ \fi}
+
+% At end of document we write the counters using writeckpt
+% but with \@partaux redirected to \@auxout. Like \include
+% there is a \clearpage
+
+\AtEndDocument{%
+ \sdoc@clear
+ \let\@partaux\@auxout
+ \@writeckpt{\jobname}}
+
+\def\@wckptelt#1{%
+ \immediate\write\@partaux{%
+ \string\sdoc@setcounter{#1}{\the\@nameuse{c@#1}}}}
+
+\def\sdoc@setcounter#1{%
+ \@ifundefined{c@#1}%
+ {\@gobble}%
+ {\setcounter{#1}}}
+
+% Optional arguments
+
+\def\sdoc@opt@clearsingle{\let\sdoc@clear\clearpage}
+\def\sdoc@opt@cleardouble{\let\sdoc@clear\cleardoublepage}
+\sdoc@opt@clearsingle
+
+\define@key{sdoc@options}{clear}{\@nameuse{sdoc@opt@clear#1}}
+
+%
+
+\let\sdoc@loadaux\@empty
+
+\newcommand\subdocuments[2][]{%
+ \let\sdoc@save@kverrx\KV@errx
+ \def\KV@errx##1{% \@tempa contains the file name
+ {\let\sdoc@elt\relax % local
+ \edef\sdoc@a{\expandafter\strip@prefix\meaning\@tempa}%
+ \protected@xdef\sdoc@loadaux{\sdoc@loadaux\sdoc@elt{\sdoc@a}}}}%
+ \setkeys{sdoc@files}{#2}%
+ \let\KV@errx\sdoc@save@kverrx
+ \setkeys{sdoc@options}{#1}}
+
+% A "recursive" call. When a \jobname.aux file is
+% read the first thing is (or should be) \sdoc@readaux.
+% It reads all the aux files, and exits from the current
+% aux without further reading because it is already read.
+% This requires a file could \input itself, but, does
+% that work in all distributions?
+
+\def\sdoc@elt#1{%
+ \InputIfFileExists{#1.aux}{}%
+ {\PackageWarningNoLine{subdocs}{No file #1.aux -- Data may be wrong}}%
+ \sdoc@setcp{#1}}%
+
+\def\sdoc@readaux{%
+ \global\let\sdoc@readaux\relax
+ \sdoc@loadaux
+ \global\let\sdoc@readaux\sdoc@readaux@x
+ \endinput}
+
+\let\sdoc@readaux@x\sdoc@readaux
+
+\def\sdoc@setcp#1{%
+ \def\sdoc@a{#1}\edef\sdoc@b{\jobname}%
+ \ifx\sdoc@a\sdoc@b
+ \PackageInfo{subdocs}{Ignoring counters from #1 on, }%
+ \global\let\sdoc@setcp\@gobble
+ \else
+ \csname cp@#1\endcsname
+ \fi}
+
+% The master file name must be saved because it may contain
+% \usepackage's, not allowed before \ProcessOptions.
+
+\DeclareOption*{\edef\sdoc@a{\CurrentOption}}
+\ProcessOptions
+\InputIfFileExists{\sdoc@a}{}{}%
+
+\endinput
+
+MIT License
+-----------
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index 07ef885883c..8f20b8cd15a 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -638,7 +638,8 @@ my @TLP_working = qw(
stellenbosch stex
stickstoo stix stix2-otf stix2-type1 stmaryrd storebox storecmd
stringstrings structmech struktex
- sttools stubs studenthandouts sty2dtx suanpan subdepth subeqn subeqnarray
+ sttools stubs studenthandouts sty2dtx suanpan
+ subdocs subdepth subeqn subeqnarray
subfig subfigmat subfigure subfiles subfloat substances
substitutefont substr subsupscripts subtext
sudoku sudokubundle suftesi sugconf
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index a252b7f0e58..b85b8113017 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -1058,6 +1058,7 @@ depend sttools
depend stubs
depend studenthandouts
depend subdepth
+depend subdocs
depend subeqn
depend subeqnarray
depend subfigmat
diff --git a/Master/tlpkg/tlpsrc/subdocs.tlpsrc b/Master/tlpkg/tlpsrc/subdocs.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/subdocs.tlpsrc