summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/excludeonly
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/excludeonly
Initial commit
Diffstat (limited to 'macros/latex/contrib/excludeonly')
-rw-r--r--macros/latex/contrib/excludeonly/excludeonly.pdfbin0 -> 224457 bytes
-rw-r--r--macros/latex/contrib/excludeonly/excludeonly.sty83
-rw-r--r--macros/latex/contrib/excludeonly/excludeonly.tex91
3 files changed, 174 insertions, 0 deletions
diff --git a/macros/latex/contrib/excludeonly/excludeonly.pdf b/macros/latex/contrib/excludeonly/excludeonly.pdf
new file mode 100644
index 0000000000..aeaeb0ed3f
--- /dev/null
+++ b/macros/latex/contrib/excludeonly/excludeonly.pdf
Binary files differ
diff --git a/macros/latex/contrib/excludeonly/excludeonly.sty b/macros/latex/contrib/excludeonly/excludeonly.sty
new file mode 100644
index 0000000000..91c07aef02
--- /dev/null
+++ b/macros/latex/contrib/excludeonly/excludeonly.sty
@@ -0,0 +1,83 @@
+% excludeonly.sty
+% Dan Luecking <luecking@uark.edu> and Donald Arseneau <asnd@triumf.ca>
+%
+% This software is contributed to the public domain.
+%
+% Usage:
+% ~~~~~~
+% In the document preamble, "\excludeonly{aaa,bbb}" will prevent files
+% aaa.tex and bbb.tex from being typeset by \include{aaa} and \include{bbb}.
+% If both \includeonly and \excludeonly are used, then only the files
+% permitted by both declarations are used:
+% \includeonly{aaa,bbb}
+% \excludeonly{bbb,ccc}
+% results in only aaa being included.
+%
+% This behavior contradicts the name "exclude only" but the name is
+% desirable anyway to show the relationship with \includeonly.
+% In case it is actually desireable that \excludeonly lives up
+% to its name, and causes *all* parts to be included, except those
+% explicitly listed for exclusion, there is an [only] package option
+% \usepackage[only]{excludeonly}
+% The effect of this is to override any \includeonly commands.
+%
+% Conflicts:
+% ~~~~~~~~~~
+% This package redefines the internal \@include command, so it could
+% conflict with other redefinitions. Known conflicts are with document
+% classes "paper.cls" and "thesis.cls" by Wenzel Matiaske.
+% A different method for implementing \excludeonly would be to
+% redefine \@setckpt to compile a file-inclusion list (\@partlist)
+% that accounts for exclusions. Surprisingly, several packages
+% redefine \@setckpt, so this alternative would have more conflicts.
+%
+\ProvidesPackage{excludeonly}[2003/03/14 v1.0 %
+ eponymous command opposite to \string\includeonly]
+%
+\newif\if@excludesw \@excludeswfalse
+\let\ExOn@swaset\relax
+%
+\DeclareOption{only}{\let\ExOn@swaset\@tempswatrue}
+\ProcessOptions
+%
+\newcommand*{\excludeonly}[1]{%
+ \@excludeswtrue
+ \edef\@excllist{\zap@space#1 \@empty}}
+\@onlypreamble\excludeonly
+%
+\def\@include#1 {%
+ \clearpage
+ \if@filesw
+ \immediate\write\@mainaux{\string\@input{#1.aux}}%
+ \fi
+ \@tempswatrue
+ \if@partsw
+ \@tempswafalse
+ \edef\reserved@b{#1}%
+ \@for\reserved@a:=\@partlist\do
+ {\ifx\reserved@a\reserved@b\@tempswatrue\fi}%
+ \fi
+ \if@excludesw
+ \ExOn@swaset
+ \edef\reserved@b{#1}%
+ \@for\reserved@a:=\@excllist\do
+ {\ifx\reserved@a\reserved@b\@tempswafalse\fi}%
+ \fi
+ \if@tempswa
+ \let\@auxout\@partaux
+ \if@filesw
+ \immediate\openout\@partaux #1.aux
+ \immediate\write\@partaux{\relax}%
+ \fi
+ \@input@{#1.tex}%
+ \clearpage
+ \@writeckpt{#1}%
+ \if@filesw
+ \immediate\closeout\@partaux
+ \fi
+ \else
+ \deadcycles\z@
+ \@nameuse{cp@#1}%
+ \fi
+ \let\@auxout\@mainaux}
+\endinput
diff --git a/macros/latex/contrib/excludeonly/excludeonly.tex b/macros/latex/contrib/excludeonly/excludeonly.tex
new file mode 100644
index 0000000000..fa13a83f61
--- /dev/null
+++ b/macros/latex/contrib/excludeonly/excludeonly.tex
@@ -0,0 +1,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}
+
+
+
+
+