summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/excludeonly/excludeonly.tex
blob: fa13a83f619bdbf7beacf2535fba2f573649f76b (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
\documentclass[pagesize=auto]{scrartcl}

\usepackage{fixltx2e}
\usepackage{etex}
\usepackage{xspace}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{booktabs}
\usepackage{microtype}
\usepackage[unicode=true]{hyperref}

\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{<#1>}}}
\newcommand*{\pkg}[1]{\textsf{#1}}
\newcommand*{\cls}[1]{\textsf{#1}}
\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
\makeatletter
\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
\makeatother
\newcommand*{\env}[1]{\texttt{#1}}
\newcommand*{\opt}[1]{\texttt{#1}}
\newcommand*{\meta}[1]{\textlangle\textsl{#1}\textrangle}
\newcommand*{\marg}[1]{\texttt{\{}\meta{#1}\texttt{\}}}
\newcommand*{\oarg}[1]{\texttt{[}\meta{#1}\texttt{]}}
\newcommand*{\BibTeX}{Bib\kern-0.08em\TeX\@\xspace}
\newcommand*{\BigTeX}{Big\kern-0.08em\TeX\@\xspace}

\pdfstringdefDisableCommands{%
  \def\BibTeX{BibTeX\xspace}%
  \def\BigTeX{BigTeX\space}%
}

\addtokomafont{title}{\rmfamily}

\title{The \pkg{excludeonly} package}
\author{Dan Luecking \mail{luecking@uark.edu}\and Donald Arseneau \mail{asnd@triumf.ca}}
\date{2003/03/14}


\begin{document}

\maketitle

\noindent
This software is contributed to the public domain.


\section{Usage:}

In the document preamble, ``\verb+\excludeonly{+\meta{aaa}\verb+,+\meta{bbb}\verb+}+'' will prevent files
\texttt{\meta{aaa}.tex} and \texttt{\meta{bbb}.tex} from being typeset by \cmd{\include}\marg{aaa} and \cmd{\include}\marg{bbb}. 
If both \cmd{\includeonly} and \cmd{\excludeonly} are used, then only the files
permitted by both declarations are used:
%
\begin{flushleft}
\verb+\includeonly{+\meta{aaa}\verb+,+\meta{bbb}\verb+}+\\
\verb+\excludeonly{+\meta{bbb}\verb+,+\meta{ccc}\verb+}+
\end{flushleft}
%
results in only \meta{aaa} being included.
This behavior contradicts the name ``exclude only'' but the name is 
desirable anyway to show the relationship with \cmd{\includeonly}.

In case it is actually desireable that \cmd{\excludeonly} lives up
to its name, and causes \emph{all} parts to be included, except those
explicitly listed for exclusion, there is an \opt{[only]} package option
%
\begin{verbatim}
\usepackage[only]{excludeonly}
\end{verbatim}
%
The effect of this is to override any \cmd{\includeonly} commands.


\section{Conflicts:}

This package redefines the internal \cmd{\@include} command, so it could
conflict with other redefinitions.  Known conflicts are with document 
classes ``\cls{paper.cls}'' and ``\cls{thesis.cls}'' by Wenzel Matiaske.

A different method for implementing \cmd{\excludeonly} would be to 
redefine \cmd{\@setckpt} to compile a file-inclusion list (\cmd{\@partlist})
that accounts for exclusions.  Surprisingly, several packages
redefine \cmd{\@setckpt}, so this alternative would have more conflicts.

\end{document}