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
|
\documentclass[pagesize=auto, parskip=half, fontsize=12pt, DIV=9]{scrartcl}
\usepackage{fixltx2e}
\usepackage{etex}
\usepackage{xspace}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{microtype}
\usepackage{hyperref}
\newcommand*{\mail}[1]{\href{mailto:#1}{\texttt{#1}}}
\newcommand*{\pkg}[1]{\textsf{#1}}
\newcommand*{\cs}[1]{\texttt{\textbackslash#1}}
\makeatletter
\newcommand*{\cmd}[1]{\cs{\expandafter\@gobble\string#1}}
\makeatother
\addtokomafont{title}{\rmfamily}
\title{The \pkg{notoccite} package}
\author{Donald Arseneau\thanks{\mail{asnd@triumf.ca}; TRIUMF, Vancouver, Canada}}
\date{Jul 20, 2000}
\begin{document}
\maketitle
\noindent
Ordinarily, cites used in titles or figure captions also appear in
the table of contents and list of figures. If you then run \texttt{bibtex}
using the \pkg{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:\\[0.4ex]
\small
\verb+\caption [Picture of a bird.]{Picture of a bird \cite{audobon}.}+
\normalsize
If you must use moving cites, you could manage them by deleting \textsc{toc}
and \textsc{lof} files, then running \texttt{latex} once, then \texttt{bibtex}\@. However, the
following definition fixes the problem so you don't need to worry
about that.
\emph{NOTE:} This definition works for the ordinary \LaTeX\ definitions
for \cmd{\cite} and others (\cmd{\addtocontents}, \cmd{\label}) but it may well
fail when used with various packages for citations or cross
references.
It works by locally setting \cmd{\@fileswfalse}, which is something like
\cmd{\nofiles}, but \cmd{\@fileswfalse} does not affect \cmd{\label} or \cmd{\addtocontents}.
\cmd{\nofiles} does most of its work by redefining \cmd{\protected@write}, and
neither \cmd{\addtocontents} nor \cmd{\label} check for \cs{if@filesw}. \cmd{\cite} \emph{does}
check \cs{if@filesw}.
\end{document}
|