summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/notoccite/notoccite.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/notoccite/notoccite.sty')
-rw-r--r--macros/latex/contrib/notoccite/notoccite.sty43
1 files changed, 43 insertions, 0 deletions
diff --git a/macros/latex/contrib/notoccite/notoccite.sty b/macros/latex/contrib/notoccite/notoccite.sty
new file mode 100644
index 0000000000..af4ec3bd04
--- /dev/null
+++ b/macros/latex/contrib/notoccite/notoccite.sty
@@ -0,0 +1,43 @@
+% notoccite.sty no t.o.c. cite Jul 20, 2000
+% Donald Arseneau asnd@triumf.ca TRIUMF, Vancouver, Canada,
+% This is unrestricted software contributed to the public domain.
+%
+% Ordinarily, cites used in titles or figure captions also appear in
+% the table of contents and list of figures. If you then run bibtex
+% using the unsrt (unsorted) style, they get numbered starting from 1,
+% not the number they should have in the main text.
+%
+% A good option is to avoid cites in titles, and to specify optional
+% caption text without cites:
+% \caption [Picture of a bird.]{Picture of a bird \cite{audobon}.}
+%
+% If you must use moving cites, you could manage them by deleting toc
+% and lof files, then running latex once, then bibtex. However, the
+% following definition fixes the problem so you don't need to worry
+% about that.
+%
+% *NOTE* This definition works for the ordinary LaTeX definitions
+% for \cite and others (\addtocontents, \label) but it may well
+% fail when used with various packages for citations or cross
+% references.
+%
+% It works by locally setting \@fileswfalse, which is something like
+% \nofiles, but \@fileswfalse does not affect \label or \addtocontents.
+% \nofiles does most of its work by redefining \protected@write, and
+% neither \addtocontents nor \label check for \if@filesw. \cite *does*
+% check \if@filesw.
+
+\ProvidesPackage{notoccite}[2000/07/20]
+\def\@starttoc#1{%
+ \begingroup
+ \@fileswfalse
+ \makeatletter
+ \@input{\jobname.#1}%
+ \endgroup
+ \if@filesw
+ \expandafter\newwrite\csname tf@#1\endcsname
+ \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax
+ \fi
+ \@nobreakfalse
+}
+