From 53143cc6546224759ea37ec15498083bd43dd915 Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sat, 13 Jun 2009 00:25:29 +0000
Subject: subdocs (bezos) 0.1 (11jun09)

git-svn-id: svn://tug.org/texlive/trunk@13728 c570f23f-e606-0410-a88d-b1316a301751
---
 Master/texmf-dist/tex/latex/bezos/subdocs.sty | 152 ++++++++++++++++++++++++++
 1 file changed, 152 insertions(+)
 create mode 100644 Master/texmf-dist/tex/latex/bezos/subdocs.sty

(limited to 'Master/texmf-dist/tex/latex/bezos/subdocs.sty')

diff --git a/Master/texmf-dist/tex/latex/bezos/subdocs.sty b/Master/texmf-dist/tex/latex/bezos/subdocs.sty
new file mode 100644
index 00000000000..374fab2a182
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/bezos/subdocs.sty
@@ -0,0 +1,152 @@
+% +--------------------------------------------------+
+% | Documentation in clear text follows              |
+% +--------------------------------------------------+
+%
+%% Copyright (C) 2009 Javier Bezos
+%% All Rights Reserved
+%% http://www.tex-tipografia.com
+%%
+%% This work may be distributed and/or modified under the conditions
+%% of the LaTeX Project Public License, either version 1.3 of this
+%% license or (at your option) any later version.  The latest version
+%% of this license is in
+%%     http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2003/12/01 or later.
+%%
+%% This work has the LPPL maintenance status "maintained".
+%%
+%% This Current Maintainer of this work is Javier Bezos.
+%%
+%% This work consists 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
\ No newline at end of file
-- 
cgit v1.2.3

