summaryrefslogtreecommitdiff
path: root/obsolete/macros/latex209/contrib/misc/askinclude.sty
blob: ed0b74d1e848bb3e1b8fd0f94120f6c54c161d0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
% askinclude.sty - interactive asking of included files 
%
% VERSION 1.0   November 7, 1991
%
% (c) 1991 by Pablo A. Straub.  Permission is granted to copy and use this
% in any way and for any purpose, except direct commercial advantage,
% provided that you retain this copyright notice.
%
% HISTORY
%
% 0.95  11/05/91  First beta-test version (asked two questions)
% 0.99  11/05/91  Second beta-test version (asks one question; uses * and -.)
% 1.0   11/07/91  Changed prompts (sent to comp.text.tex)
%
% Please send enhancements and corrections to straub@cs.umd.edu.
%
% USAGE
%
% \documentstyle[...,askinclude,...]{...}
%
% HOW IT WORKS
%
% The askinclude style option asks the user which files to include.  If
% the user presses return, the files from the previous run are included
% automatically (except on the first run, in which case all files are
% included); if the answer is  *  all files are included; if the answer
% is  -  no files are included; otherwise the specified files (separated
% by commas, with no embedded spaces) are included.
% 
% RESTRICTIONS
%
% This file redefines \document, the command executed with \begin{document}.
% It may be incompatible with other styles that also redefine \document.
%
% The user's input is not validated.  Anything that is not a * or a - or an
% empty line is passed to \includeonly.
%
% ACKNOWLEDGEMENT
%
% Tom Scavo (scavo@cie.uoregon.edu) suggested saving the include file list
% from the previous run and a simplified user interface.


\def\@includeonly{\@gobble} % assume we do not include from last run

\def\@inputs{*}             % assume all files included


% determine which files to include

\def\@star{*}       % used for comparing user's answer
\def\@minus{-}      % ditto

\typeout { }
\typeout {Enter file(s) to include (separated by commas and no spaces),}
\typeout {or enter * for all files, or enter - for none, or}
\typein  [\inputfiles]{press Return if this run is the same as the last.}

\ifx\inputfiles\@star           % all files included
   % do nothing
\else \ifx\inputfiles\@minus    % no files included
   \includeonly{}
   \def\@inputs{}
\else \ifx\inputfiles\empty     % include according to previous run
   \def\@includeonly#1{%
     \gdef\@inputs{#1}
     \ifx\@inputs\@star \else \global\@partswtrue\global\edef\@partlist{#1}\fi}
\else
   \def\@inputs{\inputfiles}    % include these files
   \includeonly{\inputfiles}
\fi\fi\fi


% \document - redefinition of \begin{document} to handle last included files

\def\document{\endgroup
  \@colht\textheight  \@colroom\textheight \vsize\textheight
   \columnwidth\textwidth \@clubpenalty\clubpenalty
   \if@twocolumn \advance\columnwidth -\columnsep
      \divide\columnwidth\tw@ \hsize\columnwidth \@firstcolumntrue
   \fi
  \hsize\columnwidth \linewidth\hsize
  \begingroup\@floatplacement\@dblfloatplacement
   \makeatletter\let\@writefile\@gobbletwo
   \@input{\jobname.aux}\endgroup
  \if@filesw \immediate\openout\@mainaux=\jobname.aux
    \immediate\write\@mainaux{\relax}%
    \immediate\write\@mainaux{\string\@includeonly\string{\@inputs\string}}%NEW
  \fi
  \def\@includeonly{} %NEW
  \def\do##1{\let ##1\@notprerr}
  \@preamblecmds
  \let\do\noexpand
  \@normalsize\everypar{}}

% END OF FILE askinclude.sty